diff options
author | Bryan Bishop <kanzure@gmail.com> | 2010-12-01 20:56:11 -0800 |
---|---|---|
committer | Bryan Bishop <kanzure@gmail.com> | 2010-12-01 20:56:11 -0800 |
commit | bccd9f1e5b764cc7af7f09db93c6c4443f21ceaa (patch) | |
tree | cddabdf803e63031cff6ddc6428cbd7ca9b95dc2 /sim/src | |
parent | 6a22b483dbe77db42861f3b076708428e5e91ad3 (diff) | |
download | nanoengineer-theirix-bccd9f1e5b764cc7af7f09db93c6c4443f21ceaa.tar.gz nanoengineer-theirix-bccd9f1e5b764cc7af7f09db93c6c4443f21ceaa.zip |
Moving files in preparation for merge.
Diffstat (limited to 'sim/src')
1691 files changed, 92262 insertions, 0 deletions
diff --git a/sim/src/BUGS b/sim/src/BUGS new file mode 100755 index 000000000..98fa8699e --- /dev/null +++ b/sim/src/BUGS @@ -0,0 +1,40 @@ + Copyright 2006 Nanorex, Inc. See LICENSE file for details. + +Known issues with the simulator/minimizer. + +When minimizing a complex structure, the RMS force value can fluctuate +from one iteration to the next. This is a natural result of the +minimization process, since it is the potential energy which is being +minimized, not the force value. When an actual minimum is approached, +the force should be low, since the gradient (force) must be zero at +the exact minimum location. + +For a complex structure, the shape of the potential surface is also +complex. Long, narrow "valleys" in the potential surface may arise. +If the minimizer drops into one of these valleys, it may bounce from +side to side as it progresses down the valley. If the sides of the +valley have differing slopes, the RMS force value will fluctuate with +each "bounce." + +The RMS force value may drop below the exit threshold of 1 pN on one +side of such a valley, causing the minimizer to terminate. It may be +obvious to the user that this is not a minimum energy configuration, +and the minimizer may be restarted. At that point, the minimizer may +bounce to the other side of the valley with a resulting increase in +the RMS force. + +The minimizer also exits if it detects that it is making little +forward progress, and it may do so even if the RMS force value is +quite high. This can happen if the calculated gradient points in a +direction which does not lead downhill along the actual potential +energy surface. This could be due to a bug in the gradient code, or +due to the fact that the calculated gradient can only be an +approximation of the actual gradient. Different stretch and bend +parameters may be coupled in a complex structure, and that coupling is +not directly represented in the gradient calculation. + +The end result is that minimizing a structure could result in a new +structure with a higher RMS force value than the input structure. It +should be the case that the new structure will always have a lower +potential energy than the input structure, even if the RMS force value +may sometimes be higher. diff --git a/sim/src/CHANGENOTES.txt b/sim/src/CHANGENOTES.txt new file mode 100755 index 000000000..4900b807e --- /dev/null +++ b/sim/src/CHANGENOTES.txt @@ -0,0 +1,21 @@ + Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +nanoENGINEER-1 Change Log + +$Id$ + + +INSTRUCTIONS +------------ + +Developers should update this file after every commit that fixes a bug +or adds new functionality to nanoENGINEER-1. Please include the following +information: + +Name: +Date: +Files: +Summary: + + +CHANGE NOTES +------------ diff --git a/sim/src/Doxyfile b/sim/src/Doxyfile new file mode 100755 index 000000000..3eb33533d --- /dev/null +++ b/sim/src/Doxyfile @@ -0,0 +1,999 @@ +# Copyright 2004, 2006 Nanorex, Inc. See LICENSE file for details. +# Doxyfile 1.2.18 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# General configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = DiamondAge Simulator + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = ../doc + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, +# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en +# (Japanese with english messages), Korean, Norwegian, Polish, Portuguese, +# Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish and Ukrainian. + +OUTPUT_LANGUAGE = English + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these class will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited +# members of a class in the documentation of that class as if those members were +# ordinary class members. Constructors, destructors and assignment operators of +# the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. It is allowed to use relative paths in the argument list. + +STRIP_FROM_PATH = + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower case letters. If set to YES upper case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# users are adviced to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explict @brief command for a brief description. + +JAVADOC_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# reimplements. + +INHERIT_DOCS = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consist of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. +# For instance some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources +# only. Doxygen will then generate output that is more tailored for Java. +# For instance namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = dumpxyz.c lin-alg.c printers.c readers.c \ + simulator.c simulator.h tables.c xyzreader.c +# INPUT = mol.h mol.c display-opengl.c lin-alg.c dumpxyz.c physeng.c +# INPUT = mol.h mol.c display-gtk.c lin-alg.c + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp +# *.h++ *.idl *.odl + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories +# that are symbolic links (a Unix filesystem feature) are excluded from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command <filter> <input-file>, where <filter> +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. + +INPUT_FILTER = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = c + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output dir. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non empty doxygen will try to run +# the html help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the Html help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, +# or Internet explorer 4.0+). Note that for large projects the tree generation +# can take a very long time. In such cases it is better to disable this feature. +# Windows users are probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name +# to be invoked. If left blank `latex' will be used as the default +# command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimised for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assigments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_XML = NO + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse the +# parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::addtions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES tag can be used to specify one or more tagfiles. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or +# super classes. Setting the tag to NO turns the diagrams off. Note that this +# option is superceded by the HAVE_DOT option below. This is only a fallback. It is +# recommended to install and use dot, since it yield more powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found on the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermedate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::addtions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO + +# The CGI_NAME tag should be the name of the CGI script that +# starts the search engine (doxysearch) with the correct parameters. +# A script with this name will be generated by doxygen. + +#CGI_NAME = search.cgi + +# The CGI_URL tag should be the absolute URL to the directory where the +# cgi binaries are located. See the documentation of your http daemon for +# details. + +#CGI_URL = + +# The DOC_URL tag should be the absolute URL to the directory where the +# documentation is located. If left blank the absolute path to the +# documentation, with file:// prepended to it, will be used. + +#DOC_URL = + +# The DOC_ABSPATH tag should be the absolute path to the directory where the +# documentation is located. If left blank the directory on the local machine +# will be used. + +#DOC_ABSPATH = + +# The BIN_ABSPATH tag must point to the directory where the doxysearch binary +# is installed. + +#BIN_ABSPATH = /usr/local/bin/ + +# The EXT_DOC_PATHS tag can be used to specify one or more paths to +# documentation generated for other projects. This allows doxysearch to search +# the documentation for these projects as well. + +#EXT_DOC_PATHS = diff --git a/sim/src/Makefile b/sim/src/Makefile new file mode 100755 index 000000000..4ab3ad700 --- /dev/null +++ b/sim/src/Makefile @@ -0,0 +1,334 @@ +# Makefile for the simulator +# Copyright 2004-2007 Nanorex, Inc. See LICENSE file for details. +# $Id$ + +UNAME := $(shell uname) +# dotted python version (2.3, 2.4) +PYDVER := $(shell python -c "import sys; print sys.version[:3]") +# un-dotted python version (23, 24) +PYVER := $(shell python -c "import sys; print sys.version[0]+sys.version[2]") + +LODE= +USEODE= +#LODE=-lode +#USEODE=-DUSE_ODE + +ifeq ($(OS),Windows_NT) +#---------------------------------------- Start Windows stuff +# One dollar sign for DOS and two for Cygwin +UNAME_A=$(shell ver) +# UNAME_A=$$(shell ver) # Cygwin: but in this case use 'uname -a' anyway +# Location of the MinGW compiler +CCDIR = C:/MinGW +#CCDIR = C:/Dev-Cpp +CC = "$(CCDIR)/bin/gcc.exe" +#CFLAGS=-g -I"$(CCDIR)/include" -I"C:/cygwin/usr/local/include" -I"C:/Python$(PYVER)/include" -Disnan=_isnan + +CFLAGS=-g -I"$(CCDIR)/include" -I"C:/ode-win32-0.7/include" -I"C:/Python$(PYVER)/include" -Disnan=_isnan $(USEODE) + +LDFLAGS=-L"$(CCDIR)/lib" -L"C:/ode-win32-0.7/lib/releasedll" $(LODE) +PYREXTARGET=sim.dll +STDC99= +SIMTARGET=simulator.exe +PYREXC=python c:/Python$(PYVER)/Scripts/pyrexc.py +#---------------------------------------- End of Windows stuff +else +#---------------------------------------- Start Unix/Mac stuff +UNAME_A=$$(uname -a) +CC=gcc +PYREXTARGET=sim.so +STDC99=-std=c99 +SIMTARGET=simulator +#CFLAGS=-pthread -fno-strict-aliasing -g -I/usr/include/python2.3 -fno-strict-aliasing -Wall -Wmissing-prototypes -Wstrict-prototypes -fPIC +CFLAGS:=$(shell python distutils_compile_options.py compiler_so) +ifeq ($(strip $(UNAME)),Darwin) +#---------------------------------------- Mac +CFLAGS+=-I/System/Library/Frameworks/Python.framework/Versions/$(PYDVER)/lib/python$(PYDVER)/config \ + -I/System/Library/Frameworks/Python.framework/Versions/$(PYDVER)/include/python$(PYDVER)/ +LDFLAGS=-Wl,-F. -framework Python +LDSHARED=gcc -bundle +else +#---------------------------------------- Unix +PYBASE:=$(shell which python | sed "s%/bin/python%%") +CFLAGS+=-I$(PYBASE)/include/python$(PYDVER) $(USEODE) +LDFLAGS=-L$(PYBASE)/lib/python$(PYDVER)/config $(LODE) -lm -lpython$(PYDVER) +LDSHARED=gcc -shared +#---------------------------------------- End of Unix +endif +PYREXC=$(shell python -c "import findpyrex; print findpyrex.find_pyrexc()") +LDFLAGS+=-L/usr/lib -lm +CFLAGS+=-fno-strict-aliasing -DNDEBUG -g -Wall -Wmissing-prototypes \ + -Wstrict-prototypes -fPIC +# These CFLAGS and LDFLAGS are not used by distutils. If asked to +# compile or link, Pyrex uses distutils, and will therefore not +# use these CFLAGS and LDFLAGS. +#---------------------------------------- End of Unix/Mac stuff +endif + +COMMONOBJS=\ + allocate.o \ + dynamics.o \ + globals.o \ + hashtable.o \ + interpolate.o \ + jigs.o \ + lin-alg.o \ + minimize.o \ + minstructure.o \ + newtables.o \ + part.o \ + potential.o \ + printers.o \ + readmmp.o \ + readxyz.o \ + rigid.o \ + rigid-ode.o \ + structcompare.o \ + writemovie.o + +PYREXSRCS=$(COMMONOBJS:.o=.c) + +SIMOBJS=$(COMMONOBJS) simulator.o + +PYREXOBJS=$(COMMONOBJS) sim.o + +EXE_DIRECTORY=../../cad/bin +#EXE_DIRECTORY=~/bin + +ifeq ($(PROFILING),1) +CFLAGS+=-pg +LDFLAGS+=-pg +endif + +ifeq ($(WWDEBUG),1) +CFLAGS+=-DWWDEBUG +endif + +# It's important not to change these two targets. +all: $(SIMTARGET) + +help: + echo $(DISTU) + +# It's important not to change these two targets. +pyx: $(PYREXTARGET) + +.PHONY: all lall noopt pyx install install-linux clean dist_clean depend depends + +lall: all pyx glviewer + +SUFFIXES: .c .h .o ; + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $(@:.o=.c) + +#bruce 051230 added dependency on Makefile to some rules (not all, and not as many are +# affected as I'd hoped); +# this is desirable since Makefile defines CFLAGS (and full remake doesn't take very long); +# feel free to do this in a cleaner way, or not at all if it causes problems. + +# -std-c99 gets us isnormal() +structcompare.o: structcompare.c simulator.h + $(CC) -c $(STDC99) $(CFLAGS) -o structcompare.o structcompare.c + +ifeq ($(OS),Windows_NT) +# We need sim.c rule to build for Windows +sim.c: simhelp.c sim.pyx + $(PYREXC) sim.pyx + +libpython$(PYVER).a: libpython$(PYVER).a.gz + gunzip < libpython$(PYVER).a.gz > libpython$(PYVER).a + +sim.dll: sim.c $(PYREXOBJS) libpython$(PYVER).a version.h + gcc -shared -I"C:/Python$(PYVER)/include" -o sim.dll $(PYREXOBJS) \ + -Wl,--output-def,sim.def -L. -lpython$(PYVER) -L"C:/ode-win32-0.7/lib/releasedll" $(LODE) +else +# here's the distutils version: +#sim.so: Makefile $(PYREXSRCS) version.h bends.gen bonds.gen sim.pyx simhelp.c +# python setup.py build_ext --inplace + +sim.c: sim.pyx simhelp.c + $(PYREXC) sim.pyx + +sim.so: $(PYREXOBJS) + $(LDSHARED) $(PYREXOBJS) -o sim.so $(LDFLAGS) +endif + +tables.c: gentab.py + python gentab.py > tables.c + +bonds.gen: stretch.py stretch.parms + python stretch.py stretch.parms > bonds.gen + +bends.gen: bend.py bending.parms + python bend.py bending.parms > bends.gen + +# There is something about bends.gen that the compiler doesn't want to +# optimize. It's getting tripped up by the bend names; if they are all +# the same it doesn't get stuck. +newtables.o: newtables.c + $(CC) -o newtables.o -c -g newtables.c + +version.h: + python makehelp.py "$(CFLAGS)" "$(LDFLAGS)" "$(UNAME_A)" \ + | grep -v "^running " > version.h + +noopt: + make CFLAGS=-g $(SIMTARGET) + +$(SIMTARGET): $(SIMOBJS) version.h + $(CC) -o $(SIMTARGET) $(LDFLAGS) $(SIMOBJS) + +testminimize: minimize.c allocate.o + $(CC) -o testminimize.o $(CFLAGS) -DTEST -c minimize.c + $(CC) -o testminimize $(LDFLAGS) testminimize.o allocate.o +teststructcompare: structcompare.c minimize.o allocate.o lin-alg.o + $(CC) -o teststructcompare.o $(CFLAGS) -DTEST -c structcompare.c + $(CC) -o teststructcompare $(LDFLAGS) teststructcompare.o minimize.o allocate.o lin-alg.o + +glviewer: glviewer.c allocate.o + $(CC) -o glviewer.o $(CFLAGS) -c glviewer.c + $(CC) -o glviewer $(LDFLAGS) -L/usr/X11R6/lib -lGL -lGLU glviewer.o allocate.o + +install: $(SIMTARGET) + if [ ! -d $$HOME/bin ] ; then \ + mkdir $$HOME/bin ;\ + fi + cp -f $(SIMTARGET) $$HOME/bin + if [ ! -d $(EXE_DIRECTORY) ] ; then \ + mkdir $(EXE_DIRECTORY) ;\ + fi + cp $(SIMTARGET) $(EXE_DIRECTORY) + +install-linux: install $(PYREXTARGET) + cp sim.so $(EXE_DIRECTORY) + +clean: + rm -f version.h bonds.gen bends.gen + rm -f $(SIMTARGET) moldisp molsim physeng sim.so sim.c + rm -f glviewer + rm -f *.o *.a *.dll *.def sim.c *.so \.\#* *~ fmc.mmp dumpstruct.xyz *.pyc *.gcno + rm -rf html gmon.out build obj + rm -f tests/*/*.trcnew + rm -f tests/*/*.altout + rm -f tests/*/*.diff + rm -f tests/*/*.xyz + rm -f tests/*/*.dpb + +dist_clean: clean + rm -f TAGS + +TAGS: + etags *.c *.h + + +doxy: + doxygen Doxyfile + +depend: version.h + head -`egrep -n "^# BEGIN" Makefile | sed 's/:.*//'` Makefile > tmp.mk + makedepend -f tmp.mk -Y. *.[ch] + mv -f tmp.mk Makefile + rm tmp.mk.bak + +depends: depend + +# BEGIN DEPENDENCIES +# DO NOT DELETE + +allocate.o: allocate.h +dynamics.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +dynamics.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +dynamics.o: readxyz.h printers.h dynamics.h jigs.h potential.h minstructure.h +dynamics.o: writemovie.h rigid.h globals.h +globals.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +globals.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +globals.o: readxyz.h printers.h dynamics.h jigs.h potential.h minstructure.h +globals.o: writemovie.h rigid.h globals.h +glviewer.o: allocate.h +hashtable.o: allocate.h hashtable.h +interpolate.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h +interpolate.o: minimize.h structcompare.h part.h newtables.h interpolate.h +interpolate.o: readmmp.h readxyz.h printers.h dynamics.h jigs.h potential.h +interpolate.o: minstructure.h writemovie.h rigid.h globals.h +jigs.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +jigs.o: structcompare.h part.h newtables.h interpolate.h readmmp.h readxyz.h +jigs.o: printers.h dynamics.h jigs.h potential.h minstructure.h writemovie.h +jigs.o: rigid.h globals.h +lin-alg.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +lin-alg.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +lin-alg.o: readxyz.h printers.h dynamics.h jigs.h potential.h minstructure.h +lin-alg.o: writemovie.h rigid.h globals.h +minimize.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +minimize.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +minimize.o: readxyz.h printers.h dynamics.h jigs.h potential.h minstructure.h +minimize.o: writemovie.h rigid.h globals.h +minstructure.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h +minstructure.o: minimize.h structcompare.h part.h newtables.h interpolate.h +minstructure.o: readmmp.h readxyz.h printers.h dynamics.h jigs.h potential.h +minstructure.o: minstructure.h writemovie.h rigid.h globals.h +newtables.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +newtables.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +newtables.o: readxyz.h printers.h dynamics.h jigs.h potential.h +newtables.o: minstructure.h writemovie.h rigid.h globals.h bonds.gen +newtables.o: bends.gen +part.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +part.o: structcompare.h part.h newtables.h interpolate.h readmmp.h readxyz.h +part.o: printers.h dynamics.h jigs.h potential.h minstructure.h writemovie.h +part.o: rigid.h globals.h +potential.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +potential.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +potential.o: readxyz.h printers.h dynamics.h jigs.h potential.h +potential.o: minstructure.h writemovie.h rigid.h globals.h +printers.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +printers.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +printers.o: readxyz.h printers.h dynamics.h jigs.h potential.h minstructure.h +printers.o: writemovie.h rigid.h globals.h +readers.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +readers.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +readers.o: readxyz.h printers.h dynamics.h jigs.h potential.h minstructure.h +readers.o: writemovie.h rigid.h globals.h +readmmp.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +readmmp.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +readmmp.o: readxyz.h printers.h dynamics.h jigs.h potential.h minstructure.h +readmmp.o: writemovie.h rigid.h globals.h +readxyz.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +readxyz.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +readxyz.o: readxyz.h printers.h dynamics.h jigs.h potential.h minstructure.h +readxyz.o: writemovie.h rigid.h globals.h +rigid-ode.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +rigid-ode.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +rigid-ode.o: readxyz.h printers.h dynamics.h jigs.h potential.h +rigid-ode.o: minstructure.h writemovie.h rigid.h globals.h rigid-ode.h +rigid.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +rigid.o: structcompare.h part.h newtables.h interpolate.h readmmp.h readxyz.h +rigid.o: printers.h dynamics.h jigs.h potential.h minstructure.h writemovie.h +rigid.o: rigid.h globals.h rigid-ode.h +sim.o: simhelp.c simulator.h debug.h lin-alg.h allocate.h hashtable.h +sim.o: minimize.h structcompare.h part.h newtables.h interpolate.h readmmp.h +sim.o: readxyz.h printers.h dynamics.h jigs.h potential.h minstructure.h +sim.o: writemovie.h rigid.h globals.h version.h +simhelp.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +simhelp.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +simhelp.o: readxyz.h printers.h dynamics.h jigs.h potential.h minstructure.h +simhelp.o: writemovie.h rigid.h globals.h version.h +simulator.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +simulator.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +simulator.o: readxyz.h printers.h dynamics.h jigs.h potential.h +simulator.o: minstructure.h writemovie.h rigid.h globals.h version.h +simulator.o: debug.h lin-alg.h allocate.h hashtable.h minimize.h +simulator.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +simulator.o: readxyz.h printers.h dynamics.h jigs.h potential.h +simulator.o: minstructure.h writemovie.h rigid.h globals.h +structcompare.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h +structcompare.o: minimize.h structcompare.h part.h newtables.h interpolate.h +structcompare.o: readmmp.h readxyz.h printers.h dynamics.h jigs.h potential.h +structcompare.o: minstructure.h writemovie.h rigid.h globals.h +testminimize.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h +testminimize.o: minimize.h structcompare.h part.h newtables.h interpolate.h +testminimize.o: readmmp.h readxyz.h printers.h dynamics.h jigs.h potential.h +testminimize.o: minstructure.h writemovie.h rigid.h globals.h +writemovie.o: simulator.h debug.h lin-alg.h allocate.h hashtable.h minimize.h +writemovie.o: structcompare.h part.h newtables.h interpolate.h readmmp.h +writemovie.o: readxyz.h printers.h dynamics.h jigs.h potential.h +writemovie.o: minstructure.h writemovie.h rigid.h globals.h diff --git a/sim/src/Makefile.win32 b/sim/src/Makefile.win32 new file mode 100755 index 000000000..c6a45a0b6 --- /dev/null +++ b/sim/src/Makefile.win32 @@ -0,0 +1,40 @@ +# Copyright (c) 2006 Nanorex, Inc. All rights reserved. +CC=C:/Dev-Cpp/bin/gcc.exe +CFLAGS=-IC:/Dev-Cpp/include +LDFLAGS=-LC:/Dev-Cpp/lib + +PYREXOBJS=allocate.o \ + dynamics.o \ + globals.o \ + hashtable.o \ + interpolate.o \ + jigs.o \ + lin-alg.o \ + minimize.o \ + minstructure.o \ + newtables.o \ + part.o \ + potential.o \ + printers.o \ + readmmp.o \ + readxyz.o \ + structcompare.o \ + writemovie.o + +all: sim.dll + +# I'm now trained to type "make pyx" +pyx: sim.dll + +clean: + rm -f *~ *.o *.a *.dll sim.c *.def + +sim.c: simhelp.c sim.pyx + python c:/Python23/Scripts/pyrexc.py sim.pyx + +libpython23.a: libpython23.a.gz + gunzip < libpython23.a.gz > libpython23.a + +sim.dll: sim.c $(PYREXOBJS) libpython23.a + gcc -shared -I"C:/Python23/include" -o sim.dll sim.c $(PYREXOBJS) \ + -Wl,--output-def,sim.def -L. -lpython23 diff --git a/sim/src/MergingParameterFiles b/sim/src/MergingParameterFiles new file mode 100755 index 000000000..b5704bde3 --- /dev/null +++ b/sim/src/MergingParameterFiles @@ -0,0 +1,27 @@ + Copyright 2006 Nanorex, Inc. See LICENSE file for details. + +To merge new parameters into the parameter files (stretch.parms and +bending.parms), with new parameters overriding older ones: + +sort --stable --key=1,1 newfiles oldfiles | uniq --check-fields=1 + +--stable means that lines whose sort fields are identical will be left +in their original order, instead of being sorted by the entire line. +This will cause newer parameters to preceed older ones. uniq will +print the first line, selecting the newer parameter. + +The --key and --check-fields options cause the commands to work on +only the first field on each line. + +To look at the parameters that are being overridden: + +diff oldparams newparams | sed '/^[^<>]/d' | sort --stable --key=2,2 | + uniq --skip-fields=1 --check-fields=1 --all-repeated + +The sed leaves only lines starting with < or >. The stable sort +places the same parameters next to each other, and the uniq removes +lines that were mearly added or left unchanged. Note that we have to +skip the first field in both sort and uniq, since it's just the < or +>. + + diff --git a/sim/src/README b/sim/src/README new file mode 100755 index 000000000..4bb1713bd --- /dev/null +++ b/sim/src/README @@ -0,0 +1,22 @@ + Copyright 2004-2006 Nanorex, Inc. See LICENSE file for details. +# README file for sim/src directory. +# $Id$ +# [initial draft by bruce 051230, very incomplete] + +To remake the standalone simulator: + make clean # this doesn't yet remove the python-or-perl-produced source files + make + +To remake the Pyrex extension: + make clean # might not clean enough to force this remake; try touching *.pyx + make pyx + +To test the Pyrex extension, see its module docstring in sim.pyx: + + python -c "import sim; sim.test()" + +For other info which might or might not be more up-to-date than this, +see the wiki, searching for Simulator, Pyrex, Windows. +[We can add the URLs to this file sometime.] + +# end diff --git a/sim/src/VQT.py b/sim/src/VQT.py new file mode 100755 index 000000000..79b752d4b --- /dev/null +++ b/sim/src/VQT.py @@ -0,0 +1,368 @@ +# Copyright 2004-2006 Nanorex, Inc. See LICENSE file for details. +"""Vectors, Quaternions, and Trackballs + +Vectors are a simplified interface to the Numeric arrays. +A relatively full implementation of Quaternions. +Trackball produces incremental quaternions using a mapping of the screen +onto a sphere, tracking the cursor on the sphere. +""" + +import math, types +from math import * +from Numeric import * +from LinearAlgebra import * + +intType = type(2) +floType = type(2.0) +numTypes = [intType, floType] + +def V(*v): return array(v, Float) +def A(a): return array(a, Float) + +def cross(v1, v2): + return V(v1[1]*v2[2] - v1[2]*v2[1], + v1[2]*v2[0] - v1[0]*v2[2], + v1[0]*v2[1] - v1[1]*v2[0]) + +def vlen(v1): return sqrt(dot(v1, v1)) + +def norm(v1): + lng = vlen(v1) + if lng: + return v1 / lng + # bruce 041012 optimized this by using lng instead of + # recomputing vlen(v1) -- code was v1 / vlen(v1) + else: return v1+0 + + +# p1 and p2 are points, v1 is a direction vector from p1. +# return (dist, wid) where dist is the distance from p1 to p2 +# measured in the direction of v1, and wid is the orthogonal +# distance from p2 to the p1-v1 line. +# v1 should be a unit vector. +def orthodist(p1, v1, p2): + dist = dot(v1, p2-p1) + wid = vlen(p1+dist*v1-p2) + return (dist, wid) + +class Q: + """Q(W, x, y, z) is the quaternion with axis vector x,y,z + and sin(theta/2) = W + (e.g. Q(1,0,0,0) is no rotation) + Q(x, y, z) where x, y, and z are three orthonormal vectors + is the quaternion that rotates the standard axes into that + reference frame. (the frame has to be right handed, or there's + no quaternion that can do it!) + Q(V(x,y,z), theta) is what you probably want. + Q(vector, vector) gives the quat that rotates between them + """ + def __init__(self, x, y=None, z=None, w=None): + # 4 numbers + if w != None: self.vec=V(x,y,z,w) + elif z: # three axis vectors + # Just use first two + a100 = V(1,0,0) + c1 = cross(a100,x) + if vlen(c1)<0.000001: + self.vec = Q(y,z).vec + return + ax1 = norm((a100+x)/2.0) + x2 = cross(ax1,c1) + a010 = V(0,1,0) + c2 = cross(a010,y) + if vlen(c2)<0.000001: + self.vec = Q(x,z).vec + return + ay1 = norm((a010+y)/2.0) + y2 = cross(ay1,c2) + axis = cross(x2, y2) + nw = sqrt(1.0 + x[0] + y[1] + z[2])/2.0 + axis = norm(axis)*sqrt(1.0-nw**2) + self.vec = V(nw, axis[0], axis[1], axis[2]) + + elif type(y) in numTypes: + # axis vector and angle + v = (x / vlen(x)) * sin(y*0.5) + self.vec = V(cos(y*0.5), v[0], v[1], v[2]) + elif y: + # rotation between 2 vectors + x = norm(x) + y = norm(y) + v = cross(x, y) + theta = acos(min(1.0,max(-1.0,dot(x, y)))) + if dot(y, cross(x, v)) > 0.0: + theta = 2.0 * pi - theta + w=cos(theta*0.5) + vl = vlen(v) + # null rotation + if w==1.0: self.vec=V(1, 0, 0, 0) + # opposite pole + elif vl<0.000001: + ax1 = cross(x,V(1,0,0)) + ax2 = cross(x,V(0,1,0)) + if vlen(ax1)>vlen(ax2): + self.vec = norm(V(0, ax1[0],ax1[1],ax1[2])) + else: + self.vec = norm(V(0, ax2[0],ax2[1],ax2[2])) + else: + s=sqrt(1-w**2)/vl + self.vec=V(w, v[0]*s, v[1]*s, v[2]*s) + elif type(x) in numTypes: + # just one number + self.vec=V(1, 0, 0, 0) + else: + self.vec=V(x[0], x[1], x[2], x[3]) + self.counter = 50 + + def __getattr__(self, name): + if name == 'w': + return self.vec[0] + elif name in ('x', 'i'): + return self.vec[1] + elif name in ('y', 'j'): + return self.vec[2] + elif name in ('z', 'k'): + return self.vec[3] + elif name == 'angle': + if -1.0<self.vec[0]<1.0: return 2.0*acos(self.vec[0]) + else: return 0.0 + elif name == 'axis': + return V(self.vec[1], self.vec[2], self.vec[3]) + elif name == 'matrix': + # this the transpose of the normal form + # so we can use it on matrices of row vectors + self.__dict__['matrix'] = array([\ + [1.0 - 2.0*(self.y**2 + self.z**2), + 2.0*(self.x*self.y + self.z*self.w), + 2.0*(self.z*self.x - self.y*self.w)], + [2.0*(self.x*self.y - self.z*self.w), + 1.0 - 2.0*(self.z**2 + self.x**2), + 2.0*(self.y*self.z + self.x*self.w)], + [2.0*(self.z*self.x + self.y*self.w), + 2.0*(self.y*self.z - self.x*self.w), + 1.0 - 2.0 * (self.y**2 + self.x**2)]]) + return self.__dict__['matrix'] + else: + raise AttributeError, 'No "%s" in Quaternion' % name + + def __getitem__(self, num): + return self.vec[num] + + def setangle(self, theta): + """Set the quaternion's rotation to theta (destructive modification). + (In the same direction as before.) + """ + theta = remainder(theta/2.0, pi) + self.vec[1:] = norm(self.vec[1:]) * sin(theta) + self.vec[0] = cos(theta) + self.__reset() + return self + + + def __reset(self): + if self.__dict__.has_key('matrix'): + del self.__dict__['matrix'] + + + def __setattr__(self, name, value): + if name=="w": self.vec[0] = value + elif name=="x": self.vec[1] = value + elif name=="y": self.vec[2] = value + elif name=="z": self.vec[3] = value + else: self.__dict__[name] = value + + + def __len__(self): + return 4 + + + def __add__(self, q1): + """Q + Q1 is the quaternion representing the rotation achieved + by doing Q and then Q1. + """ + return Q(q1.w*self.w - q1.x*self.x - q1.y*self.y - q1.z*self.z, + q1.w*self.x + q1.x*self.w + q1.y*self.z - q1.z*self.y, + q1.w*self.y - q1.x*self.z + q1.y*self.w + q1.z*self.x, + q1.w*self.z + q1.x*self.y - q1.y*self.x + q1.z*self.w) + + def __iadd__(self, q1): + """this is self += q1 + """ + temp=V(q1.w*self.w - q1.x*self.x - q1.y*self.y - q1.z*self.z, + q1.w*self.x + q1.x*self.w + q1.y*self.z - q1.z*self.y, + q1.w*self.y - q1.x*self.z + q1.y*self.w + q1.z*self.x, + q1.w*self.z + q1.x*self.y - q1.y*self.x + q1.z*self.w) + self.vec=temp + + self.counter -= 1 + if self.counter <= 0: + self.counter = 50 + self.normalize() + self.__reset() + + return self + + def __sub__(self, q1): + return self + (-q1) + + def __isub__(self, q1): + return __iadd__(self, -q1) + + + def __mul__(self, n): + """multiplication by a scalar, i.e. Q1 * 1.3, defined so that + e.g. Q1 * 2 == Q1 + Q1, or Q1 = Q1*0.5 + Q1*0.5 + Python syntax makes it hard to do n * Q, unfortunately. + """ + if type(n) in numTypes: + nq = +self + nq.setangle(n*self.angle) + return nq + else: + raise MulQuat + + def __imul__(self, q2): + if type(n) in numTypes: + self.setangle(n*self.angle) + self.__reset() + return self + else: + raise MulQuat + + + + def __div__(self, q2): + return self*q2.conj()*(1.0/(q2*q2.conj()).w) + + + def __repr__(self): + return 'Q(%g, %g, %g, %g)' % (self.w, self.x, self.y, self.z) + + def __str__(self): + a= "<q:%6.2f @ " % (2.0*acos(self.w)*180/pi) + l = sqrt(self.x**2 + self.y**2 + self.z**2) + if l: + z=V(self.x, self.y, self.z)/l + a += "[%4.3f, %4.3f, %4.3f] " % (z[0], z[1], z[2]) + else: a += "[%4.3f, %4.3f, %4.3f] " % (self.x, self.y, self.z) + a += "|%8.6f|>" % vlen(self.vec) + return a + + def __pos__(self): + return Q(self.w, self.x, self.y, self.z) + + def __neg__(self): + return Q(self.w, -self.x, -self.y, -self.z) + + def conj(self): + return Q(self.w, -self.x, -self.y, -self.z) + + def normalize(self): + w=self.vec[0] + v=V(self.vec[1],self.vec[2],self.vec[3]) + length = vlen(v) + if length: + s=sqrt(1.0-w**2)/length + self.vec = V(w, v[0]*s, v[1]*s, v[2]*s) + else: self.vec = V(1,0,0,0) + return self + + def unrot(self,v): + return matrixmultiply(self.matrix,v) + + def vunrot(self,v): + # for use with row vectors + return matrixmultiply(v,transpose(self.matrix)) + + def rot(self,v): + return matrixmultiply(v,self.matrix) + +def twistor(axis, pt1, pt2): + """return the quaternion that, rotating around axis, will bring + pt1 closest to pt2. + """ + q = Q(axis, V(0,0,1)) + pt1 = q.rot(pt1) + pt2 = q.rot(pt2) + a1 = atan2(pt1[1],pt1[0]) + a2 = atan2(pt2[1],pt2[0]) + theta = a2-a1 + return Q(axis, theta) + + +# project a point from a tangent plane onto a unit sphere +def proj2sphere(x, y): + d = sqrt(x*x + y*y) + theta = pi * 0.5 * d + s=sin(theta) + if d>0.0001: return V(s*x/d, s*y/d, cos(theta)) + else: return V(0.0, 0.0, 1.0) + +class Trackball: + '''A trackball object. The current transformation matrix + can be retrieved using the "matrix" attribute.''' + + def __init__(self, wide, high): + '''Create a Trackball object. + "size" is the radius of the inner trackball + sphere. ''' + self.w2=wide/2.0 + self.h2=high/2.0 + self.scale = 1.1 / min(wide/2.0, high/2.0) + self.quat = Q(1,0,0,0) + self.oldmouse = None + + def rescale(self, wide, high): + self.w2=wide/2.0 + self.h2=high/2.0 + self.scale = 1.1 / min(wide/2.0, high/2.0) + + def start(self, px, py): + self.oldmouse=proj2sphere((px-self.w2)*self.scale, + (self.h2-py)*self.scale) + + def update(self, px, py, uq=None): + newmouse = proj2sphere((px-self.w2)*self.scale, + (self.h2-py)*self.scale) + if self.oldmouse and not uq: + quat = Q(self.oldmouse, newmouse) + elif self.oldmouse and uq: + quat = uq + Q(self.oldmouse, newmouse) - uq + else: + quat = Q(1,0,0,0) + self.oldmouse = newmouse + return quat + +def ptonline(xpt, lpt, ldr): + """return the point on a line (point lpt, direction ldr) + nearest to point xpt + """ + ldr = norm(ldr) + return dot(xpt-lpt,ldr)*ldr + lpt + +def planeXline(ppt, pv, lpt, lv): + """find the intersection of a line (point lpt, vector lv) + with a plane (point ppt, normal pv) + return None if (almost) parallel + """ + d=dot(lv,pv) + if abs(d)<0.000001: return None + return lpt+lv*(dot(ppt-lpt,pv)/d) + +def cat(a,b): + """concatenate two arrays (the NumPy version is a mess) + """ + if not a: return b + if not b: return a + r1 = shape(a) + r2 = shape(b) + if len(r1) == len(r2): return concatenate((a,b)) + if len(r1)<len(r2): + return concatenate((reshape(a,(1,)+r1), b)) + else: return concatenate((a,reshape(b,(1,)+r2))) + +def Veq(v1, v2): + "tells if v1 is all equal to v2" + return logical_and.reduce(v1==v2) + +__author__ = "Josh" diff --git a/sim/src/allocate.c b/sim/src/allocate.c new file mode 100755 index 000000000..8a99348ed --- /dev/null +++ b/sim/src/allocate.c @@ -0,0 +1,157 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "allocate.h" + +static char const rcsid[] = "$Id$"; + +void * +allocate(int size) +{ + void *ret = malloc(size); + if (ret == NULL) { + fprintf(stderr, "Out of memory\n"); + exit(1); + } + return ret; +} + +void * +reallocate(void *p, int size) +{ + void *ret; + ret = realloc(p, size); + if (ret == NULL) { + fprintf(stderr, "Out of memory\n"); + exit(1); + } + return ret; +} + +char * +copy_string(char *s) +{ + int n = strlen(s)+1; + char *ret = (char *)allocate(n); + return strcpy(ret, s); +} + +void * +copy_memory(void *src, int len) +{ + void *ret = allocate(len); + return memcpy(ret, src, len); +} + +// find the smallest power of 2 greater than len +static unsigned int +quantize_length(unsigned int len) +{ + unsigned int i; + unsigned int j; + + for (i=8; i<(8*sizeof(int)); i++) { + j = (1<<i); + if (j > len) { + return j; + } + } + fprintf(stderr, "Out of memory, requesting %d bytes\n", len); + exit(1); +} + +/* Automatically reallocate storage for a buffer that has an unknown + * final size. To create a new accumulator, pass in old==NULL. To + * reuse an existing accumulator, pass it in as old. The new desired + * size in bytes is len. If zerofill is non-zero, all bytes between + * the old and new length will be zero filled. + * + * Call this every time before placing a new element in the + * accumulator. If you may place new elements non-sequentially, you + * should set zerofill on every call for a given accumulator. + * + * If it's non-NULL, the argument 'old' points four bytes into an + * allocated block. The four preceding bytes give the length of the + * most recent allocation for that block. That's why we back up from + * old to get the value for accumulator, which is a block of size + * length+sizeof(unsigned int). + */ +void * +accumulator(void *old, unsigned int len, int zerofill) +{ + unsigned int *accumulator; // points to length word, or NULL if a new accumulator + unsigned int new_len; // includes the length word + unsigned int accum_length; // includes the length word + unsigned int old_accum_length; // includes the length word + // The value stored in the length word includes the length word itself. + + // allocate something even if len==0 + new_len = (len ? len : 1) + sizeof(int); + if (old == NULL) { + accumulator = NULL; + old_accum_length = sizeof(int); + } else { + accumulator = ((unsigned int *)old) - 1; + old_accum_length = *accumulator; + } + if (new_len > old_accum_length) { + accum_length = quantize_length(new_len); + accumulator = (unsigned int *)reallocate(accumulator, accum_length); + *accumulator = accum_length; + if (zerofill) { + memset(((char *)accumulator)+old_accum_length, 0, + accum_length - old_accum_length); + } + return (void *)(accumulator+1); + } + return old; +} + +void +destroyAccumulator(void *a) +{ + unsigned int *accumulator; // points to length word + + if (a == NULL) { + return; + } + accumulator = ((unsigned int *)a) - 1; + free(accumulator); +} + +// given a template filename, returns a new string which is a copy of +// the template, but with characters after the trailing '.' replaced +// with newExtension. If there is no '.' after the last '/' or '\' in +// template, then a '.' and newExtension are appended to template. +char * +replaceExtension(char *template, char *newExtension) +{ + char *end; + int len; + char *ret; + + end = template + strlen(template); // end points to '\0' at end of string + while (--end > template) { + if (*end == '.') { + break; // found a . in filename component, add .newExtension from there + } + if (*end == '/' || *end == '\\') { + // there's no . in the filename component, so add .newExtension to the end + end = template + strlen(template); + break; + } + } + if (end < template) { + // there's no . anywhere in the string, so add .newExtension to the end + end = template + strlen(template); + } + + len = end-template + strlen(newExtension) + 2; // add 1 for . and for \0 + ret = (char *)allocate(len); + ret[0] = '\0'; + strncat(ret, template, end-template); + strcat(ret, "."); + strcat(ret, newExtension); + return ret; +} diff --git a/sim/src/allocate.h b/sim/src/allocate.h new file mode 100755 index 000000000..6bc4e8874 --- /dev/null +++ b/sim/src/allocate.h @@ -0,0 +1,21 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#ifndef ALLOCATE_H_INCLUDED +#define ALLOCATE_H_INCLUDED + +#define RCSID_ALLOCATE_H "$Id$" + +extern void *allocate(int size); + +extern void *reallocate(void *p, int size); + +extern char *copy_string(char *s); + +extern void *copy_memory(void *src, int len); + +extern void *accumulator(void *old, unsigned int len, int zerofill); + +extern void destroyAccumulator(void *a); + +extern char *replaceExtension(char *template, char *newExtension); + +#endif diff --git a/sim/src/bend.py b/sim/src/bend.py new file mode 100755 index 000000000..1e4d28a1e --- /dev/null +++ b/sim/src/bend.py @@ -0,0 +1,133 @@ +#! /usr/bin/python +# Copyright 2006-2007 Nanorex, Inc. See LICENSE file for details. + +from string import * +import re +import os +import sys +from math import sqrt + +findBondNamePattern = re.compile(r"^(\S+)\s+(.*)$") +bondNamePattern = re.compile(r"(.*)([-=+@#])(.*)([-=+@#])(.*)$") +parameterPattern = re.compile(r"^([^=]+)\s*\=\s*(\S+)\s*(.*)") +idPattern = re.compile(r"(\$Id\:.*\$)") +commentPattern = re.compile("#") +leadingWhitespacePattern = re.compile(r"^\s*") +trailingWhitespacePattern = re.compile(r"\s*$") + + +elmnts=[("H", 1, 1.6737), + ("He", 2, 6.646), + ("Li", 3, 11.525), + ("Be", 4, 14.964), + ("B", 5, 17.949), + ("C", 6, 19.925), + ("N", 7, 23.257), + ("O", 8, 26.565), + ("F", 9, 31.545), + ("Ne", 10, 33.49), + + ("Na", 11, 38.1726), + ("Mg", 12, 40.356), + ("Al", 13, 44.7997), + ("Si", 14, 46.6245), + ("P", 15, 51.429), + ("S", 16, 53.233), + ("Cl", 17, 58.867), + ("Ar", 18, 66.33), + + ("K", 19, 64.9256), + ("Ca", 20, 66.5495), + ("Sc", 21, 74.646), + ("Ti", 22, 79.534), + ("V", 23, 84.584), + ("Cr", 24, 86.335), + ("Mn", 25, 91.22), + ("Fe", 26, 92.729), + ("Co", 27, 97.854), + ("Ni", 28, 97.483), + ("Cu", 29, 105.513), + ("Zn", 30, 108.541), + ("Ga", 31, 115.764), + ("Ge", 32, 120.53), + ("As", 33, 124.401), + ("Se", 34, 131.106), + ("Br", 35, 132.674), + ("Kr", 36, 134.429), + + ("Ax", 200, 0.000), + ("Ss", 201, 0.000), + ("Sp", 202, 0.000), + ] + +sym2num={} +bends={} + +for (sym, num, mass) in elmnts: + sym2num[sym] = num + +bontyp = {'-':'1', '=':'2', '+':'3','@':'a', '#':'g'} + +def printBond(a1, bond1, ac, bond2, a2, parameters): + ktheta = parameters['Ktheta'] + theta0 = parameters['theta0'] + centerHybridization = parameters['CenterHybridization'] + quality = int(parameters['Quality']) + b1 = bontyp[bond1] + b2 = bontyp[bond2] + if sym2num[a1] > sym2num[a2] or (a1 == a2 and b1 > b2): + a1, b1, b2, a2 = a2, b2, b1, a1 + bendName = '%s-%s-%s.%s-%s-%s' % (a1, b1, ac, centerHybridization, b2, a2) + bendLine = 'addInitialBendData(%-14s, %-13s, %2d, "%s");' % (ktheta, theta0, quality, bendName) + if (bendName in bends): + print '//' + bendLine + else: + print ' ' + bendLine + bends[bendName] = 1 + +if __name__ == "__main__": + f=open(sys.argv[1]) + headerPrinted = False + for lin in f.readlines(): + # remove leading and trailing whitespace + lin = leadingWhitespacePattern.sub('', lin) + lin = trailingWhitespacePattern.sub('', lin) + + # find RCSID + m = idPattern.search(lin) + if m: + print '#define RCSID_BENDS_H "Generated from: ' + m.group(1) + '"' + continue + + # ignore comments and blank lines + if commentPattern.match(lin): continue + if len(lin) == 0: continue + + m = findBondNamePattern.match(lin) + if (m): + bond = m.group(1) + rest = m.group(2) + parameters = {} + parameters['bond'] = bond + # default values for particular parameters: + parameters['Quality'] = 9 + parameters['CenterHybridization'] = "sp3" + # extract parameters from rest of line into dictionary + m = parameterPattern.match(rest) + while m: + key = m.group(1) + value = m.group(2) + rest = m.group(3) + parameters[key] = value + m = parameterPattern.match(rest) + m = bondNamePattern.match(bond) + if m: + if not headerPrinted: + headerPrinted = True + print '// ktheta theta0 quality bondName' + printBond(m.group(1), m.group(2), m.group(3), m.group(4), m.group(5), parameters) + else: + print >> sys.stderr, 'malformed bond: ' + bond + continue + else: + print >> sys.stderr, 'unrecognized line: "' + lin + '"' diff --git a/sim/src/bending.parms b/sim/src/bending.parms new file mode 100755 index 000000000..d0eaecd9f --- /dev/null +++ b/sim/src/bending.parms @@ -0,0 +1,1745 @@ +# Copyright (c) 2006 Nanorex, Inc. All rights reserved. +# +# $Id$ +# + +Al-Al-Al theta0=2.2374519859 Ktheta=0.182274339929 CenterHybridization=sp2 +Al-Al-B theta0=2.1625384681 Ktheta=0.187045936933 CenterHybridization=sp2 +Al-Al-Br theta0=2.0198887047 Ktheta=0.254732090074 CenterHybridization=sp2 +Al-Al-Cl theta0=2.0380160556 Ktheta=0.273290694743 CenterHybridization=sp2 +Al-Al-F theta0=2.0540253325 Ktheta=0.338651767702 CenterHybridization=sp2 +Al-Al-H theta0=2.1342728574 Ktheta=0.266471671121 CenterHybridization=sp2 +Al-Al-N theta0=2.1349190569 Ktheta=0.364375915615 CenterHybridization=sp2 +Al-Al-O theta0=1.9319762069 Ktheta=0.275497766740 CenterHybridization=sp2 +Al-Al-S theta0=2.0473725336 Ktheta=0.328824433176 CenterHybridization=sp2 +Al-Al-Se theta0=2.1017645730 Ktheta=0.296544776355 CenterHybridization=sp2 +Al-As-Al theta0=2.3474380398 Ktheta=0.293792096532 CenterHybridization=sp3 +Al-As-B theta0=2.2864046473 Ktheta=0.299175307619 CenterHybridization=sp3 +Al-As-Br theta0=2.1440381160 Ktheta=0.355370348715 CenterHybridization=sp3 +Al-As-Cl theta0=2.1670764795 Ktheta=0.341454097868 CenterHybridization=sp3 +Al-As-F theta0=2.0968126131 Ktheta=0.390750561445 CenterHybridization=sp3 +Al-As-H theta0=2.2183830107 Ktheta=0.324826925024 CenterHybridization=sp3 +Al-As-N theta0=2.1509681674 Ktheta=0.369819352615 CenterHybridization=sp3 +Al-As-O theta0=2.2144121719 Ktheta=0.407647166281 CenterHybridization=sp3 +Al-As-S theta0=2.3039237579 Ktheta=0.336612736318 CenterHybridization=sp3 +Al-As-Se theta0=2.2414515283 Ktheta=0.359278255730 CenterHybridization=sp3 +Al-B-Al theta0=2.2165197652 Ktheta=0.209285477749 CenterHybridization=sp3 +Al-B-B theta0=2.0651913783 Ktheta=0.134367051664 CenterHybridization=sp3 +Al-B-Br theta0=2.0410438912 Ktheta=0.273928679756 CenterHybridization=sp3 +Al-B-Cl theta0=2.0860900380 Ktheta=0.311999345355 CenterHybridization=sp3 +Al-B-F theta0=2.1106829140 Ktheta=0.410725672188 CenterHybridization=sp3 +Al-B-H theta0=2.1418163240 Ktheta=0.234218096515 CenterHybridization=sp3 +Al-B-N theta0=2.0683873240 Ktheta=0.497215047403 CenterHybridization=sp3 +Al-B-O theta0=2.0477674702 Ktheta=0.359167791942 CenterHybridization=sp3 +Al-B-S theta0=2.1110037648 Ktheta=0.338007943257 CenterHybridization=sp3 +Al-B-Se theta0=2.2103950157 Ktheta=0.331598871640 CenterHybridization=sp3 +Al-C-Al theta0=2.0942202704 Ktheta=0.311884853023 CenterHybridization=sp3 +Al-C-As theta0=2.0944428033 Ktheta=0.486784724478 CenterHybridization=sp3 +Al-C-B theta0=1.8559500679 Ktheta=0.370893273426 CenterHybridization=sp3 +Al-C-Ga theta0=2.0411991644 Ktheta=0.349721991076 CenterHybridization=sp3 +Al-C-N theta0=2.0928927223 Ktheta=0.591915356031 CenterHybridization=sp3 +Al-C-O theta0=1.2371181232 Ktheta=1.363111388736 CenterHybridization=sp3 +Al-C-S theta0=1.9873088077 Ktheta=0.491701035666 CenterHybridization=sp3 +Al-C-Se theta0=1.9527811354 Ktheta=0.514101040112 CenterHybridization=sp3 +Al-Ga-Al theta0=2.2844912690 Ktheta=0.167597782879 CenterHybridization=sp3 +Al-Ga-B theta0=2.2099293287 Ktheta=0.163677322460 CenterHybridization=sp3 +Al-Ga-Br theta0=1.8962196849 Ktheta=0.166230172073 CenterHybridization=sp3 +Al-Ga-Cl theta0=1.9180951653 Ktheta=0.198764669456 CenterHybridization=sp3 +Al-Ga-F theta0=1.8635528670 Ktheta=0.243369816052 CenterHybridization=sp3 +Al-Ga-H theta0=2.1513100216 Ktheta=0.253641301864 CenterHybridization=sp3 +Al-Ga-N theta0=2.0381765631 Ktheta=0.327982240657 CenterHybridization=sp3 +Al-Ga-O theta0=1.9122577929 Ktheta=0.236030986765 CenterHybridization=sp3 +Al-Ga-S theta0=2.0321824601 Ktheta=0.298858734511 CenterHybridization=sp3 +Al-Ga-Se theta0=2.1156742607 Ktheta=0.290681512573 CenterHybridization=sp3 +Al-Ge-Al theta0=2.0287473415 Ktheta=0.211117506237 CenterHybridization=sp3 +Al-Ge-As theta0=1.8959541174 Ktheta=0.172088724552 CenterHybridization=sp3 +Al-Ge-B theta0=1.8826025650 Ktheta=0.205980230222 CenterHybridization=sp3 +Al-Ge-Ga theta0=1.9894287143 Ktheta=0.233906252492 CenterHybridization=sp3 +Al-Ge-N theta0=1.9406018858 Ktheta=0.434835361099 CenterHybridization=sp3 +Al-Ge-O theta0=1.7749367937 Ktheta=0.281960944090 CenterHybridization=sp3 +Al-Ge-S theta0=1.8926011252 Ktheta=0.400841170960 CenterHybridization=sp3 +Al-Ge-Se theta0=1.9182856662 Ktheta=0.381792885133 CenterHybridization=sp3 +Al-N-Al theta0=2.3039599770 Ktheta=0.436537012001 CenterHybridization=sp3 +Al-N-B theta0=2.1896944474 Ktheta=0.468855746278 CenterHybridization=sp3 +Al-N-Br theta0=2.2018182810 Ktheta=0.512044004952 CenterHybridization=sp3 +Al-N-Cl theta0=2.1737987687 Ktheta=0.482103458670 CenterHybridization=sp3 +Al-N-F theta0=2.1179499414 Ktheta=0.460975633709 CenterHybridization=sp3 +Al-N-H theta0=2.1790428914 Ktheta=0.350038228266 CenterHybridization=sp3 +Al-N-N theta0=2.1383108250 Ktheta=0.477403865206 CenterHybridization=sp3 +Al-N-O theta0=2.2874354841 Ktheta=0.551263215203 CenterHybridization=sp3 +Al-N-S theta0=2.3199569685 Ktheta=0.499600188225 CenterHybridization=sp3 +Al-N-Se theta0=2.2770032166 Ktheta=0.540101520847 CenterHybridization=sp3 +Al-O-Al theta0=3.1415420651 Ktheta=0.091100210035 CenterHybridization=sp3 +Al-O-As theta0=2.3129498224 Ktheta=0.226704457638 CenterHybridization=sp3 +Al-O-B theta0=3.1415693848 Ktheta=0.106589559748 CenterHybridization=sp3 +Al-O-Br theta0=2.1035698700 Ktheta=0.407894828658 CenterHybridization=sp3 +Al-O-Cl theta0=2.0853335268 Ktheta=0.400661729452 CenterHybridization=sp3 +Al-O-F theta0=1.8274469964 Ktheta=0.525024834837 CenterHybridization=sp3 +Al-O-H theta0=2.2260664963 Ktheta=0.147229943805 CenterHybridization=sp3 +Al-O-N theta0=2.9018006985 Ktheta=0.053711401704 CenterHybridization=sp3 +Al-O-O theta0=1.9200989376 Ktheta=0.458516000363 CenterHybridization=sp3 +Al-O-P theta0=3.0833679182 Ktheta=0.060270571307 CenterHybridization=sp3 +Al-O-S theta0=2.2518992577 Ktheta=0.250291440310 CenterHybridization=sp3 +Al-O-Se theta0=2.2717990480 Ktheta=0.256002796073 CenterHybridization=sp3 +Al-P-Al theta0=2.3336266787 Ktheta=0.299048885163 CenterHybridization=sp3 +Al-P-B theta0=2.2647407305 Ktheta=0.342129178919 CenterHybridization=sp3 +Al-P-Br theta0=2.1874157141 Ktheta=0.384895230458 CenterHybridization=sp3 +Al-P-Cl theta0=2.1933299664 Ktheta=0.417241001085 CenterHybridization=sp3 +Al-P-F theta0=2.1382888548 Ktheta=0.448458560483 CenterHybridization=sp3 +Al-P-H theta0=1.6904136642 Ktheta=0.331990540628 CenterHybridization=sp3 +Al-P-N theta0=2.1624306591 Ktheta=0.461962098391 CenterHybridization=sp3 +Al-P-O theta0=2.2428738564 Ktheta=0.499773169251 CenterHybridization=sp3 +Al-P-S theta0=2.2970288487 Ktheta=0.356981576760 CenterHybridization=sp3 +Al-P-Se theta0=2.3188640259 Ktheta=0.361361072747 CenterHybridization=sp3 +Al-S-Al theta0=1.8208241980 Ktheta=0.505486917193 CenterHybridization=sp3 +Al-S-As theta0=1.8649194633 Ktheta=0.608491122860 CenterHybridization=sp3 +Al-S-B theta0=1.7839819818 Ktheta=0.695283492847 CenterHybridization=sp3 +Al-S-Br theta0=1.7951067017 Ktheta=0.638450213700 CenterHybridization=sp3 +Al-S-Cl theta0=1.7709559665 Ktheta=0.637087218955 CenterHybridization=sp3 +Al-S-F theta0=1.7306428716 Ktheta=0.516152191145 CenterHybridization=sp3 +Al-S-H theta0=1.6523354704 Ktheta=0.412352073728 CenterHybridization=sp3 +Al-S-N theta0=1.7180440187 Ktheta=0.578896175335 CenterHybridization=sp3 +Al-S-O theta0=1.7354286499 Ktheta=0.589596896174 CenterHybridization=sp3 +Al-S-P theta0=1.7656678772 Ktheta=0.659356583476 CenterHybridization=sp3 +Al-S-S theta0=1.7530505587 Ktheta=0.619052472278 CenterHybridization=sp3 +Al-S-Se theta0=1.7955473223 Ktheta=0.565156782273 CenterHybridization=sp3 +Al-Se-Al theta0=1.7171068379 Ktheta=0.771669621219 CenterHybridization=sp3 +Al-Se-As theta0=1.7751028828 Ktheta=0.701057998881 CenterHybridization=sp3 +Al-Se-B theta0=1.7098056388 Ktheta=0.695637370269 CenterHybridization=sp3 +Al-Se-Br theta0=1.7230785308 Ktheta=0.659260325182 CenterHybridization=sp3 +Al-Se-Cl theta0=1.7213168548 Ktheta=0.649080793873 CenterHybridization=sp3 +Al-Se-F theta0=1.7135596168 Ktheta=0.545078919418 CenterHybridization=sp3 +Al-Se-H theta0=1.5946070840 Ktheta=0.433139516773 CenterHybridization=sp3 +Al-Se-N theta0=1.6869505924 Ktheta=0.522479624156 CenterHybridization=sp3 +Al-Se-O theta0=1.7095361861 Ktheta=0.563863542642 CenterHybridization=sp3 +Al-Se-P theta0=1.7930330114 Ktheta=0.659117858123 CenterHybridization=sp3 +Al-Se-S theta0=1.7030950991 Ktheta=0.640087209491 CenterHybridization=sp3 +Al-Se-Se theta0=1.7057287346 Ktheta=0.605139957032 CenterHybridization=sp3 +Al-Si-Al theta0=1.9797100717 Ktheta=0.225576970321 CenterHybridization=sp3 +Al-Si-As theta0=1.8897065316 Ktheta=0.193059081495 CenterHybridization=sp3 +Al-Si-B theta0=1.8029571682 Ktheta=0.202703078971 CenterHybridization=sp3 +Al-Si-Ga theta0=1.9518211153 Ktheta=0.245450635929 CenterHybridization=sp3 +Al-Si-N theta0=1.9020126421 Ktheta=0.494326116203 CenterHybridization=sp3 +Al-Si-O theta0=1.8581771918 Ktheta=0.483747169242 CenterHybridization=sp3 +Al-Si-S theta0=1.9011494896 Ktheta=0.438494094884 CenterHybridization=sp3 +Al-Si-Se theta0=1.8893712817 Ktheta=0.386822396094 CenterHybridization=sp3 +As-Al-Al theta0=2.1239784709 Ktheta=0.257339408256 CenterHybridization=sp2 +As-Al-As theta0=2.0671290778 Ktheta=0.470854479928 CenterHybridization=sp2 +As-Al-B theta0=2.0956571371 Ktheta=0.273144861225 CenterHybridization=sp2 +As-Al-Br theta0=2.0372588253 Ktheta=0.479034190242 CenterHybridization=sp2 +As-Al-Cl theta0=2.0216488169 Ktheta=0.468012843913 CenterHybridization=sp2 +As-Al-F theta0=2.0502928866 Ktheta=0.497224369953 CenterHybridization=sp2 +As-Al-Ga theta0=2.1174006549 Ktheta=0.269050744476 CenterHybridization=sp2 +As-Al-H theta0=2.0136934963 Ktheta=0.366596343778 CenterHybridization=sp2 +As-Al-O theta0=2.1242405478 Ktheta=0.466855454699 CenterHybridization=sp2 +As-Al-P theta0=2.0755298466 Ktheta=0.418340451294 CenterHybridization=sp2 +As-Al-S theta0=2.0625811355 Ktheta=0.472132220401 CenterHybridization=sp2 +As-Al-Se theta0=2.1124198988 Ktheta=0.401508610627 CenterHybridization=sp2 +As-As-Al theta0=2.1685490836 Ktheta=0.335025151730 CenterHybridization=sp3 +As-As-As theta0=1.8720933233 Ktheta=0.755786572313 CenterHybridization=sp3 +As-As-B theta0=2.1630953137 Ktheta=0.463197699701 CenterHybridization=sp3 +As-As-Br theta0=1.6831107266 Ktheta=0.737745893921 CenterHybridization=sp3 +As-As-Cl theta0=1.9868105389 Ktheta=0.458960686010 CenterHybridization=sp3 +As-As-F theta0=1.8889459869 Ktheta=0.504669988180 CenterHybridization=sp3 +As-As-Ga theta0=2.2247386882 Ktheta=0.315053384768 CenterHybridization=sp3 +As-As-H theta0=2.0737227048 Ktheta=0.438487153159 CenterHybridization=sp3 +As-As-O theta0=1.6566399899 Ktheta=0.800558899555 CenterHybridization=sp3 +As-As-P theta0=1.7438270538 Ktheta=0.702518568876 CenterHybridization=sp3 +As-As-S theta0=1.6943090750 Ktheta=0.725157567689 CenterHybridization=sp3 +As-As-Se theta0=1.6964774337 Ktheta=0.704867114114 CenterHybridization=sp3 +As-B-Al theta0=2.1359841685 Ktheta=0.278930240400 CenterHybridization=sp3 +As-B-As theta0=2.2030040490 Ktheta=0.566809819009 CenterHybridization=sp3 +As-B-B theta0=2.0428658893 Ktheta=0.194425002115 CenterHybridization=sp3 +As-B-Br theta0=2.1160268730 Ktheta=0.706473285323 CenterHybridization=sp3 +As-B-Cl theta0=2.1222832815 Ktheta=0.749610099957 CenterHybridization=sp3 +As-B-F theta0=2.1090045460 Ktheta=0.802116034793 CenterHybridization=sp3 +As-B-Ga theta0=2.1433929253 Ktheta=0.311536846842 CenterHybridization=sp3 +As-B-H theta0=2.0387656990 Ktheta=0.493918754280 CenterHybridization=sp3 +As-B-O theta0=2.0663946816 Ktheta=0.743935827371 CenterHybridization=sp3 +As-B-P theta0=2.2173966675 Ktheta=0.575728713322 CenterHybridization=sp3 +As-B-S theta0=2.1175786435 Ktheta=0.643037029836 CenterHybridization=sp3 +As-B-Se theta0=2.1276643602 Ktheta=0.640261584010 CenterHybridization=sp3 +As-C-As theta0=2.1281540455 Ktheta=0.850741708444 CenterHybridization=sp3 +As-C-Br theta0=2.0539064983 Ktheta=0.901963128049 CenterHybridization=sp3 +As-C-Cl theta0=2.0380806747 Ktheta=0.969667719062 CenterHybridization=sp3 +As-C-F theta0=1.9849657712 Ktheta=0.964146603459 CenterHybridization=sp3 +As-C-H theta0=1.9675873900 Ktheta=0.604334943968 CenterHybridization=sp3 +As-C-O theta0=1.9477856209 Ktheta=0.999490999100 CenterHybridization=sp3 +As-C-S theta0=1.9752519458 Ktheta=0.890718771492 CenterHybridization=sp3 +As-C-Se theta0=1.9903327494 Ktheta=0.838409764314 CenterHybridization=sp3 +As-Ga-Al theta0=2.1221481232 Ktheta=0.230168256816 CenterHybridization=sp3 +As-Ga-As theta0=2.0524474920 Ktheta=0.498701450967 CenterHybridization=sp3 +As-Ga-B theta0=2.0712195920 Ktheta=0.232384385528 CenterHybridization=sp3 +As-Ga-Br theta0=2.0097199261 Ktheta=0.480276690066 CenterHybridization=sp3 +As-Ga-Cl theta0=1.9912012043 Ktheta=0.455595462463 CenterHybridization=sp3 +As-Ga-F theta0=1.9117053229 Ktheta=0.486288507563 CenterHybridization=sp3 +As-Ga-Ga theta0=2.1141504155 Ktheta=0.253264871461 CenterHybridization=sp3 +As-Ga-H theta0=1.9885645267 Ktheta=0.383692989519 CenterHybridization=sp3 +As-Ga-O theta0=1.9748851300 Ktheta=0.414745588165 CenterHybridization=sp3 +As-Ga-P theta0=2.0767105601 Ktheta=0.418394414121 CenterHybridization=sp3 +As-Ga-S theta0=2.0634884815 Ktheta=0.417036638896 CenterHybridization=sp3 +As-Ga-Se theta0=2.0202628178 Ktheta=0.393743004951 CenterHybridization=sp3 +As-Ge-As theta0=2.0756450453 Ktheta=0.485478433310 CenterHybridization=sp3 +As-Ge-Br theta0=1.9719394767 Ktheta=0.574311832130 CenterHybridization=sp3 +As-Ge-Cl theta0=1.9700502311 Ktheta=0.560108281589 CenterHybridization=sp3 +As-Ge-F theta0=1.9165536800 Ktheta=0.585630462836 CenterHybridization=sp3 +As-Ge-H theta0=1.9685943752 Ktheta=0.479452760079 CenterHybridization=sp3 +As-Ge-O theta0=1.8665740180 Ktheta=0.580670204980 CenterHybridization=sp3 +As-Ge-S theta0=1.9217133410 Ktheta=0.517274005342 CenterHybridization=sp3 +As-Ge-Se theta0=1.9020768598 Ktheta=0.585437783452 CenterHybridization=sp3 +As-N-Al theta0=2.2185640607 Ktheta=0.446561055751 CenterHybridization=sp3 +As-N-As theta0=2.1609865004 Ktheta=0.635824270233 CenterHybridization=sp3 +As-N-B theta0=2.1712224690 Ktheta=0.750073404110 CenterHybridization=sp3 +As-N-Br theta0=2.1008313943 Ktheta=0.742751761401 CenterHybridization=sp3 +As-N-Cl theta0=2.0864317875 Ktheta=0.793001863773 CenterHybridization=sp3 +As-N-F theta0=1.9863536658 Ktheta=0.765040881213 CenterHybridization=sp3 +As-N-Ga theta0=2.2178674230 Ktheta=0.518882515219 CenterHybridization=sp3 +As-N-H theta0=2.1019120254 Ktheta=0.635310812690 CenterHybridization=sp3 +As-N-O theta0=2.0392235948 Ktheta=0.884588805478 CenterHybridization=sp3 +As-N-P theta0=2.1608616640 Ktheta=0.683965053516 CenterHybridization=sp3 +As-N-S theta0=2.1800179231 Ktheta=0.772483835753 CenterHybridization=sp3 +As-N-Se theta0=2.1588905624 Ktheta=0.674845096687 CenterHybridization=sp3 +As-O-As theta0=2.2151625989 Ktheta=0.694936238034 CenterHybridization=sp3 +As-O-Br theta0=2.0882824107 Ktheta=0.828632804523 CenterHybridization=sp3 +As-O-Cl theta0=2.0574975743 Ktheta=0.882814946338 CenterHybridization=sp3 +As-O-F theta0=1.9057956276 Ktheta=0.864592108603 CenterHybridization=sp3 +As-O-H theta0=1.9724580263 Ktheta=0.466484800794 CenterHybridization=sp3 +As-O-O theta0=1.8985518113 Ktheta=0.963265039915 CenterHybridization=sp3 +As-O-P theta0=2.2315833599 Ktheta=0.683317085924 CenterHybridization=sp3 +As-O-S theta0=2.0498300148 Ktheta=0.752264021108 CenterHybridization=sp3 +As-O-Se theta0=2.0530732694 Ktheta=0.705950033992 CenterHybridization=sp3 +As-P-Al theta0=2.1523161655 Ktheta=0.342608573498 CenterHybridization=sp3 +As-P-As theta0=2.0655102011 Ktheta=0.411889206991 CenterHybridization=sp3 +As-P-B theta0=2.1311404784 Ktheta=0.573553778161 CenterHybridization=sp3 +As-P-Br theta0=2.0371292608 Ktheta=0.510185979991 CenterHybridization=sp3 +As-P-Cl theta0=2.0262639439 Ktheta=0.545421622504 CenterHybridization=sp3 +As-P-F theta0=1.9494249074 Ktheta=0.492342318818 CenterHybridization=sp3 +As-P-Ga theta0=2.1985168441 Ktheta=0.371088310179 CenterHybridization=sp3 +As-P-H theta0=2.0811787636 Ktheta=0.482504299231 CenterHybridization=sp3 +As-P-O theta0=1.7447639413 Ktheta=0.872445424677 CenterHybridization=sp3 +As-P-P theta0=2.0592540178 Ktheta=0.502553080670 CenterHybridization=sp3 +As-P-S theta0=1.8665784843 Ktheta=0.802965459555 CenterHybridization=sp3 +As-P-Se theta0=1.8959308923 Ktheta=0.788320619112 CenterHybridization=sp3 +As-S-As theta0=1.8128269824 Ktheta=0.754814449838 CenterHybridization=sp3 +As-S-Br theta0=1.8726612255 Ktheta=0.795793716482 CenterHybridization=sp3 +As-S-Cl theta0=1.8648141012 Ktheta=0.825271139741 CenterHybridization=sp3 +As-S-F theta0=1.7938180501 Ktheta=0.865788479534 CenterHybridization=sp3 +As-S-H theta0=1.7065559614 Ktheta=0.569454945992 CenterHybridization=sp3 +As-S-O theta0=1.7509589631 Ktheta=0.886683664435 CenterHybridization=sp3 +As-S-P theta0=1.8339349961 Ktheta=0.776112840766 CenterHybridization=sp3 +As-S-S theta0=1.7920951937 Ktheta=0.786840322174 CenterHybridization=sp3 +As-S-Se theta0=1.7681711890 Ktheta=0.781473405097 CenterHybridization=sp3 +As-Se-As theta0=1.7620134789 Ktheta=0.714745169158 CenterHybridization=sp3 +As-Se-Br theta0=1.8280662026 Ktheta=0.732747192454 CenterHybridization=sp3 +As-Se-Cl theta0=1.8189890646 Ktheta=0.739201593235 CenterHybridization=sp3 +As-Se-F theta0=1.8059322949 Ktheta=0.670476090429 CenterHybridization=sp3 +As-Se-H theta0=1.6747543415 Ktheta=0.498055331245 CenterHybridization=sp3 +As-Se-O theta0=1.6864410662 Ktheta=0.787699567745 CenterHybridization=sp3 +As-Se-P theta0=1.7717997110 Ktheta=0.764400730298 CenterHybridization=sp3 +As-Se-S theta0=1.7270439974 Ktheta=0.762350542758 CenterHybridization=sp3 +As-Se-Se theta0=1.7307545011 Ktheta=0.736610075733 CenterHybridization=sp3 +As-Si-As theta0=2.0923291677 Ktheta=0.537555536130 CenterHybridization=sp3 +As-Si-Br theta0=2.0051688020 Ktheta=0.632936632090 CenterHybridization=sp3 +As-Si-Cl theta0=2.0076887381 Ktheta=0.634256980236 CenterHybridization=sp3 +As-Si-F theta0=1.9852338189 Ktheta=0.565604798793 CenterHybridization=sp3 +As-Si-H theta0=1.9791777358 Ktheta=0.506962462242 CenterHybridization=sp3 +As-Si-O theta0=1.9103731864 Ktheta=0.706426037021 CenterHybridization=sp3 +As-Si-S theta0=1.9449916315 Ktheta=0.626141316190 CenterHybridization=sp3 +As-Si-Se theta0=1.9180968739 Ktheta=0.600637507603 CenterHybridization=sp3 +B-Al-B theta0=2.1643944303 Ktheta=0.221771952680 CenterHybridization=sp2 +B-Al-Br theta0=2.0170849782 Ktheta=0.294576318087 CenterHybridization=sp2 +B-Al-Cl theta0=2.0310459454 Ktheta=0.325307106213 CenterHybridization=sp2 +B-Al-F theta0=2.0315517278 Ktheta=0.294856908251 CenterHybridization=sp2 +B-Al-H theta0=2.1162353072 Ktheta=0.298805675376 CenterHybridization=sp2 +B-Al-O theta0=2.0130903489 Ktheta=0.409483541180 CenterHybridization=sp2 +B-Al-S theta0=2.0704766245 Ktheta=0.357584738444 CenterHybridization=sp2 +B-Al-Se theta0=2.0774348316 Ktheta=0.314651331961 CenterHybridization=sp2 +B-As-B theta0=2.2191487547 Ktheta=0.483608139929 CenterHybridization=sp3 +B-As-Br theta0=2.1744207587 Ktheta=0.552423872979 CenterHybridization=sp3 +B-As-Cl theta0=2.1599312970 Ktheta=0.554336899519 CenterHybridization=sp3 +B-As-F theta0=2.1240467569 Ktheta=0.619588899214 CenterHybridization=sp3 +B-As-H theta0=2.2000068491 Ktheta=0.488414476702 CenterHybridization=sp3 +B-As-O theta0=2.2190693195 Ktheta=0.656202672157 CenterHybridization=sp3 +B-As-S theta0=1.7784729582 Ktheta=0.661804605440 CenterHybridization=sp3 +B-As-Se theta0=1.7788501448 Ktheta=0.622064416269 CenterHybridization=sp3 +B-B-B theta0=2.2605060382 Ktheta=0.186365895624 CenterHybridization=sp3 +B-B-Br theta0=2.0096789493 Ktheta=0.261321377520 CenterHybridization=sp3 +B-B-Cl theta0=2.0709305428 Ktheta=0.334986758710 CenterHybridization=sp3 +B-B-F theta0=2.1097626525 Ktheta=0.480200440865 CenterHybridization=sp3 +B-B-H theta0=2.1301472516 Ktheta=0.279503610719 CenterHybridization=sp3 +B-B-O theta0=2.1337169282 Ktheta=0.472729201076 CenterHybridization=sp3 +B-B-S theta0=2.2075631230 Ktheta=0.336600236698 CenterHybridization=sp3 +B-B-Se theta0=2.1477649960 Ktheta=0.291593260362 CenterHybridization=sp3 +B-C-As theta0=1.7270357595 Ktheta=0.686859569052 CenterHybridization=sp3 +B-C-B theta0=1.8738333415 Ktheta=0.443291862132 CenterHybridization=sp3 +B-C-N theta0=1.1206340724 Ktheta=4.450624596286 CenterHybridization=sp3 +B-C-O theta0=1.9866254223 Ktheta=1.000509755007 CenterHybridization=sp3 +B-C-P theta0=1.7215296122 Ktheta=0.651308985717 CenterHybridization=sp3 +B-C-S theta0=1.9899898795 Ktheta=0.763999851626 CenterHybridization=sp3 +B-C-Se theta0=1.6954714381 Ktheta=0.601689728822 CenterHybridization=sp3 +B-Ga-B theta0=2.2471455201 Ktheta=0.195485220227 CenterHybridization=sp3 +B-Ga-Br theta0=1.9217575258 Ktheta=0.222647348131 CenterHybridization=sp3 +B-Ga-Cl theta0=1.9496108199 Ktheta=0.264062077860 CenterHybridization=sp3 +B-Ga-F theta0=1.9596639460 Ktheta=0.256819959041 CenterHybridization=sp3 +B-Ga-H theta0=2.1391846433 Ktheta=0.266650247653 CenterHybridization=sp3 +B-Ga-O theta0=2.0363313591 Ktheta=0.351546784113 CenterHybridization=sp3 +B-Ga-S theta0=2.0321152109 Ktheta=0.327843109337 CenterHybridization=sp3 +B-Ga-Se theta0=2.0909826672 Ktheta=0.249010780522 CenterHybridization=sp3 +B-Ge-As theta0=1.7133281949 Ktheta=0.185087837008 CenterHybridization=sp3 +B-Ge-B theta0=1.8744770259 Ktheta=0.284718734590 CenterHybridization=sp3 +B-Ge-N theta0=1.8346544209 Ktheta=0.292847014160 CenterHybridization=sp3 +B-Ge-O theta0=1.8685086072 Ktheta=0.578288032206 CenterHybridization=sp3 +B-Ge-P theta0=1.7798862438 Ktheta=0.179773006789 CenterHybridization=sp3 +B-Ge-S theta0=1.8986844668 Ktheta=0.546766441276 CenterHybridization=sp3 +B-Ge-Se theta0=1.9584323562 Ktheta=0.466373017200 CenterHybridization=sp3 +B-N-B theta0=2.1987689656 Ktheta=0.878912196189 CenterHybridization=sp3 +B-N-Br theta0=2.1940340096 Ktheta=0.897459883741 CenterHybridization=sp3 +B-N-Cl theta0=2.1849680434 Ktheta=1.017171458144 CenterHybridization=sp3 +B-N-F theta0=2.1203040816 Ktheta=1.042672710710 CenterHybridization=sp3 +B-N-H theta0=2.1497798705 Ktheta=0.654224412056 CenterHybridization=sp3 +B-N-O theta0=2.1985721152 Ktheta=1.144152092916 CenterHybridization=sp3 +B-N-S theta0=2.2615532061 Ktheta=0.983572329698 CenterHybridization=sp3 +B-N-Se theta0=2.2552244939 Ktheta=0.880735007076 CenterHybridization=sp3 +B-O-As theta0=2.1249978357 Ktheta=0.631054038651 CenterHybridization=sp3 +B-O-B theta0=2.1927451782 Ktheta=0.619571793936 CenterHybridization=sp3 +B-O-Br theta0=2.0717079595 Ktheta=0.966841054165 CenterHybridization=sp3 +B-O-Cl theta0=2.0501862923 Ktheta=1.065425403638 CenterHybridization=sp3 +B-O-F theta0=1.9283191173 Ktheta=1.250849719120 CenterHybridization=sp3 +B-O-H theta0=1.9918559646 Ktheta=0.555063899947 CenterHybridization=sp3 +B-O-N theta0=2.0125775362 Ktheta=1.113770609706 CenterHybridization=sp3 +B-O-O theta0=1.9573674959 Ktheta=1.144820869949 CenterHybridization=sp3 +B-O-P theta0=2.1405117114 Ktheta=0.647558896093 CenterHybridization=sp3 +B-O-S theta0=2.0837814055 Ktheta=0.746376005727 CenterHybridization=sp3 +B-O-Se theta0=2.0849427144 Ktheta=0.669794913551 CenterHybridization=sp3 +B-P-B theta0=2.1813157360 Ktheta=0.650945028525 CenterHybridization=sp3 +B-P-Br theta0=2.2355154558 Ktheta=0.628159393384 CenterHybridization=sp3 +B-P-Cl theta0=2.2204119332 Ktheta=0.699458459070 CenterHybridization=sp3 +B-P-F theta0=2.1655023025 Ktheta=0.763233307397 CenterHybridization=sp3 + +# use old B-P-H term instead of new +B-P-H theta0=1.94386186364 Ktheta=0.651319755046 CenterHybridization=sp3 +#B-P-H theta0=2.1885881983 Ktheta=0.569562651033 CenterHybridization=sp3 + +B-P-O theta0=2.2498451884 Ktheta=0.754186856601 CenterHybridization=sp3 +B-P-S theta0=1.8980407353 Ktheta=0.644560530865 CenterHybridization=sp3 +B-P-Se theta0=1.8876356757 Ktheta=0.577881056536 CenterHybridization=sp3 +B-S-As theta0=1.8833726060 Ktheta=0.838473852549 CenterHybridization=sp3 +B-S-B theta0=1.8278937623 Ktheta=1.016241030542 CenterHybridization=sp3 +B-S-Br theta0=1.8599991183 Ktheta=0.980037918947 CenterHybridization=sp3 +B-S-Cl theta0=1.8597018451 Ktheta=1.060044016295 CenterHybridization=sp3 +B-S-F theta0=1.8457268961 Ktheta=1.068458039487 CenterHybridization=sp3 +B-S-H theta0=1.7334553685 Ktheta=0.741076021894 CenterHybridization=sp3 +B-S-N theta0=1.8125412249 Ktheta=1.189234532159 CenterHybridization=sp3 +B-S-O theta0=1.8043743442 Ktheta=1.139421300999 CenterHybridization=sp3 +B-S-P theta0=1.4394517852 Ktheta=0.942142878112 CenterHybridization=sp3 +B-S-S theta0=1.8206183975 Ktheta=0.914166526160 CenterHybridization=sp3 +B-S-Se theta0=1.8223191057 Ktheta=0.807185833710 CenterHybridization=sp3 +B-Se-As theta0=1.8268000989 Ktheta=0.818425742501 CenterHybridization=sp3 +B-Se-B theta0=1.7739802818 Ktheta=0.968923432694 CenterHybridization=sp3 +B-Se-Br theta0=1.8108743849 Ktheta=0.925331310949 CenterHybridization=sp3 +B-Se-Cl theta0=1.8075543794 Ktheta=0.937108171866 CenterHybridization=sp3 +B-Se-F theta0=1.7943973929 Ktheta=0.975046988432 CenterHybridization=sp3 +B-Se-H theta0=1.6981053668 Ktheta=0.730446361599 CenterHybridization=sp3 +B-Se-N theta0=1.7569372271 Ktheta=1.048837144298 CenterHybridization=sp3 +B-Se-O theta0=1.7541157087 Ktheta=0.997300395089 CenterHybridization=sp3 +B-Se-P theta0=1.3734014578 Ktheta=0.912988530436 CenterHybridization=sp3 +B-Se-S theta0=1.7708627031 Ktheta=0.846091927548 CenterHybridization=sp3 +B-Se-Se theta0=1.7648186890 Ktheta=0.810445276708 CenterHybridization=sp3 +B-Si-As theta0=1.7059097131 Ktheta=0.239528066121 CenterHybridization=sp3 +B-Si-B theta0=1.8151465599 Ktheta=0.302723706777 CenterHybridization=sp3 +B-Si-N theta0=1.8668305674 Ktheta=0.333455158309 CenterHybridization=sp3 +B-Si-O theta0=1.9192969222 Ktheta=0.696787072369 CenterHybridization=sp3 +B-Si-P theta0=1.7469587086 Ktheta=0.229282839029 CenterHybridization=sp3 +B-Si-S theta0=1.9021856985 Ktheta=0.573302506716 CenterHybridization=sp3 +B-Si-Se theta0=1.8940471898 Ktheta=0.564624291931 CenterHybridization=sp3 +Br-Al-Br theta0=2.0771649164 Ktheta=0.556950153120 CenterHybridization=sp2 +Br-Al-Cl theta0=2.0712844327 Ktheta=0.577446734044 CenterHybridization=sp2 +Br-Al-F theta0=2.0609737291 Ktheta=0.608913074132 CenterHybridization=sp2 +Br-Al-H theta0=2.0490360436 Ktheta=0.459690005387 CenterHybridization=sp2 +Br-As-Br theta0=1.8022158675 Ktheta=0.773024981445 CenterHybridization=sp3 +Br-As-Cl theta0=1.7889225254 Ktheta=0.812237852726 CenterHybridization=sp3 +Br-As-F theta0=1.7555704214 Ktheta=0.723737713615 CenterHybridization=sp3 +Br-As-H theta0=2.0391279263 Ktheta=0.505617774501 CenterHybridization=sp3 +Br-B-Br theta0=2.1244133110 Ktheta=0.968428884432 CenterHybridization=sp3 +Br-B-Cl theta0=2.1200357407 Ktheta=1.033335193480 CenterHybridization=sp3 +Br-B-F theta0=2.0802819296 Ktheta=1.063067773311 CenterHybridization=sp3 +Br-B-H theta0=2.0499635499 Ktheta=0.670628354990 CenterHybridization=sp3 +Br-C-Al theta0=1.4848704220 Ktheta=0.891596588790 CenterHybridization=sp3 +Br-C-B theta0=1.4905487285 Ktheta=0.738059505260 CenterHybridization=sp3 +Br-C-Br theta0=1.9976194223 Ktheta=1.076749749319 CenterHybridization=sp3 +Br-C-Ga theta0=1.5875532468 Ktheta=0.626431041600 CenterHybridization=sp3 +Br-C-O theta0=1.9761390845 Ktheta=1.239501742942 CenterHybridization=sp3 +Br-C-S theta0=1.9108022948 Ktheta=1.000101927996 CenterHybridization=sp3 +Br-C-Se theta0=1.9102958107 Ktheta=0.981134966171 CenterHybridization=sp3 +Br-Ga-Br theta0=2.0350897912 Ktheta=0.537683353280 CenterHybridization=sp3 +Br-Ga-Cl theta0=2.0238936385 Ktheta=0.549007450526 CenterHybridization=sp3 +Br-Ga-F theta0=1.9694999096 Ktheta=0.513053227869 CenterHybridization=sp3 +Br-Ga-H theta0=2.0038550491 Ktheta=0.448212978927 CenterHybridization=sp3 +Br-Ge-Al theta0=1.0462430504 Ktheta=5.184578560035 CenterHybridization=sp3 +Br-Ge-B theta0=1.1167100120 Ktheta=1.838206797249 CenterHybridization=sp3 +Br-Ge-Br theta0=1.9181960052 Ktheta=0.674430155116 CenterHybridization=sp3 +Br-Ge-Ga theta0=1.2334603075 Ktheta=1.246834131452 CenterHybridization=sp3 +Br-Ge-O theta0=1.9052256886 Ktheta=0.676954307165 CenterHybridization=sp3 +Br-Ge-S theta0=1.8258231264 Ktheta=0.683139474923 CenterHybridization=sp3 +Br-Ge-Se theta0=1.8232921023 Ktheta=0.677367245262 CenterHybridization=sp3 +Br-N-Br theta0=2.1446635460 Ktheta=0.960507901872 CenterHybridization=sp3 +Br-N-Cl theta0=2.1313846552 Ktheta=1.055980458452 CenterHybridization=sp3 +Br-N-F theta0=2.0460658946 Ktheta=1.103186368377 CenterHybridization=sp3 +Br-N-H theta0=2.0598741787 Ktheta=0.758218730280 CenterHybridization=sp3 +Br-O-Br theta0=1.9955063783 Ktheta=1.075234633615 CenterHybridization=sp3 +Br-O-Cl theta0=1.9836560273 Ktheta=1.125377505930 CenterHybridization=sp3 +Br-O-F theta0=1.8689157280 Ktheta=1.169810559347 CenterHybridization=sp3 +Br-O-H theta0=1.7937954358 Ktheta=0.738586042670 CenterHybridization=sp3 +Br-P-Br theta0=2.0931010797 Ktheta=0.656455820082 CenterHybridization=sp3 +Br-P-Cl theta0=2.0771363052 Ktheta=0.693201047839 CenterHybridization=sp3 +Br-P-F theta0=2.0304377837 Ktheta=0.686613450051 CenterHybridization=sp3 +Br-P-H theta0=2.0608324272 Ktheta=0.582926244002 CenterHybridization=sp3 +Br-S-Br theta0=1.8474493790 Ktheta=0.903396271139 CenterHybridization=sp3 +Br-S-Cl theta0=1.8341276857 Ktheta=0.957706235466 CenterHybridization=sp3 +Br-S-F theta0=1.7625115906 Ktheta=0.993343666735 CenterHybridization=sp3 +Br-S-H theta0=1.6617759737 Ktheta=0.749614786058 CenterHybridization=sp3 +Br-Se-Br theta0=1.8099903686 Ktheta=0.800201373458 CenterHybridization=sp3 +Br-Se-Cl theta0=1.7948054055 Ktheta=0.837979113404 CenterHybridization=sp3 +Br-Se-F theta0=1.7537627734 Ktheta=0.754449676831 CenterHybridization=sp3 +Br-Se-H theta0=1.6371900843 Ktheta=0.717590002324 CenterHybridization=sp3 +Br-Si-Al theta0=1.7652586254 Ktheta=0.166741678089 CenterHybridization=sp3 +Br-Si-B theta0=1.6676043437 Ktheta=0.188636390077 CenterHybridization=sp3 +Br-Si-Br theta0=1.9466265756 Ktheta=0.764652427619 CenterHybridization=sp3 +Br-Si-Ga theta0=1.7740165235 Ktheta=0.224419724287 CenterHybridization=sp3 +Br-Si-O theta0=1.9424260132 Ktheta=0.811779371942 CenterHybridization=sp3 +Br-Si-S theta0=1.8701791770 Ktheta=0.789353249803 CenterHybridization=sp3 +Br-Si-Se theta0=1.8501904762 Ktheta=0.702263105064 CenterHybridization=sp3 +C+C-B theta0=3.14159265359 Ktheta=0.319460781474 CenterHybridization=sp +C+C-C theta0=3.14239417016 Ktheta=0.353027344158 CenterHybridization=sp +C+C-Cl theta0=3.14159265359 Ktheta=0.268683948028 CenterHybridization=sp +C+C-F theta0=3.14159265359 Ktheta=0.317338843136 CenterHybridization=sp +C+C-H theta0=3.14159265359 Ktheta=0.253294978883 CenterHybridization=sp +C+C-N theta0=3.07088872072 Ktheta=0.410249987657 CenterHybridization=sp +C+C-O theta0=3.07588768041 Ktheta=0.342364901739 CenterHybridization=sp +C+C-P theta0=2.98881064674 Ktheta=0.315457133034 CenterHybridization=sp +C+C-S theta0=3.01852526144 Ktheta=0.240408060042 CenterHybridization=sp +C+C-Si theta0=3.14101459215 Ktheta=0.229702558193 CenterHybridization=sp +C-Al-Al theta0=2.2001756103 Ktheta=0.259470616993 CenterHybridization=sp2 +C-Al-As theta0=2.1008353335 Ktheta=0.447398393131 CenterHybridization=sp2 +C-Al-B theta0=2.1449488043 Ktheta=0.374104842365 CenterHybridization=sp2 +C-Al-Br theta0=2.0620473160 Ktheta=0.546171053102 CenterHybridization=sp2 +C-Al-C theta0=2.1291820322 Ktheta=0.594981513406 CenterHybridization=sp2 +C-Al-Cl theta0=2.0556292395 Ktheta=0.556626074869 CenterHybridization=sp2 +C-Al-F theta0=2.0755084000 Ktheta=0.574599583405 CenterHybridization=sp2 +C-Al-Ga theta0=2.1138230074 Ktheta=0.319780137889 CenterHybridization=sp2 +C-Al-H theta0=2.0874977997 Ktheta=0.483552522344 CenterHybridization=sp2 +C-Al-N theta0=2.0512280148 Ktheta=0.657060180767 CenterHybridization=sp2 +C-Al-O theta0=2.0200380124 Ktheta=0.602084761993 CenterHybridization=sp2 +C-Al-P theta0=2.0789811305 Ktheta=0.451106721972 CenterHybridization=sp2 +C-Al-S theta0=2.0586590141 Ktheta=0.508233241965 CenterHybridization=sp2 +C-Al-Se theta0=2.0338196523 Ktheta=0.517558100707 CenterHybridization=sp2 +C-As-Al theta0=2.2331872163 Ktheta=0.369639748948 CenterHybridization=sp3 +C-As-As theta0=1.6810089802 Ktheta=0.799787710062 CenterHybridization=sp3 +C-As-B theta0=2.2224104173 Ktheta=0.567950926882 CenterHybridization=sp3 +C-As-Br theta0=1.7134898752 Ktheta=0.926366325420 CenterHybridization=sp3 +C-As-C theta0=1.7155880071 Ktheta=0.978890681010 CenterHybridization=sp3 +C-As-Cl theta0=1.6986714784 Ktheta=0.961677869044 CenterHybridization=sp3 +C-As-F theta0=1.6811753258 Ktheta=1.054268886541 CenterHybridization=sp3 +C-As-Ga theta0=2.2771533656 Ktheta=0.381230269627 CenterHybridization=sp3 +C-As-H theta0=1.6684336823 Ktheta=0.774057262164 CenterHybridization=sp3 +C-As-N theta0=1.6867049565 Ktheta=1.062554313469 CenterHybridization=sp3 +C-As-O theta0=1.6666975369 Ktheta=1.051714992677 CenterHybridization=sp3 +C-As-P theta0=1.6819388881 Ktheta=0.824774941783 CenterHybridization=sp3 +C-As-S theta0=1.7236695447 Ktheta=0.897547306150 CenterHybridization=sp3 +C-As-Se theta0=1.7383321535 Ktheta=0.870475558703 CenterHybridization=sp3 +C-B-Al theta0=2.2436355635 Ktheta=0.306707843425 CenterHybridization=sp3 +C-B-As theta0=2.1546652146 Ktheta=0.703513153553 CenterHybridization=sp3 +C-B-B theta0=2.2368253638 Ktheta=0.327848039314 CenterHybridization=sp3 +C-B-Br theta0=2.1049934932 Ktheta=0.924368778539 CenterHybridization=sp3 +C-B-C theta0=2.1904586782 Ktheta=0.919901971926 CenterHybridization=sp3 +C-B-Cl theta0=2.0959091819 Ktheta=1.013022090601 CenterHybridization=sp3 +C-B-F theta0=2.0643800463 Ktheta=1.073412017475 CenterHybridization=sp3 +C-B-Ga theta0=2.2173926567 Ktheta=0.338168199037 CenterHybridization=sp3 +C-B-H theta0=2.0859791224 Ktheta=0.675262257188 CenterHybridization=sp3 +C-B-N theta0=2.1183065750 Ktheta=0.984446054948 CenterHybridization=sp3 +C-B-O theta0=2.0857086923 Ktheta=1.085196320469 CenterHybridization=sp3 +C-B-P theta0=2.1556600819 Ktheta=0.691160668525 CenterHybridization=sp3 +C-B-S theta0=2.0863620755 Ktheta=0.844560468694 CenterHybridization=sp3 +C-B-Se theta0=2.0768968897 Ktheta=0.798167641283 CenterHybridization=sp3 +C-C-Al theta0=2.0410185246 Ktheta=0.530955604238 CenterHybridization=sp3 +C-C-As theta0=2.0413131012 Ktheta=0.949094518329 CenterHybridization=sp3 +C-C-B theta0=2.0683661724 Ktheta=0.864307238368 CenterHybridization=sp3 +C-C-Br theta0=1.9574939084 Ktheta=1.076784811516 CenterHybridization=sp3 +C-C-C theta0=1.9710141223 Ktheta=1.133302050816 CenterHybridization=sp3 +C-C-Cl theta0=1.9513010596 Ktheta=1.200962924126 CenterHybridization=sp3 +C-C-F theta0=1.9151573730 Ktheta=1.313014616595 CenterHybridization=sp3 +C-C-Ga theta0=2.0369195438 Ktheta=0.623832121244 CenterHybridization=sp3 +C-C-H theta0=1.9401169758 Ktheta=0.802391737383 CenterHybridization=sp3 +C-C-N theta0=2.0283688302 Ktheta=1.272083752266 CenterHybridization=sp3 +C-C-O theta0=1.8821913672 Ktheta=1.378878850558 CenterHybridization=sp3 +C-C-P theta0=2.0433643728 Ktheta=1.027391015623 CenterHybridization=sp3 +C-C-S theta0=1.9077631233 Ktheta=1.107294059694 CenterHybridization=sp3 +C-C-Se theta0=1.9170407805 Ktheta=0.975424485773 CenterHybridization=sp3 +C-Ga-Al theta0=2.1653001253 Ktheta=0.273771591905 CenterHybridization=sp3 +C-Ga-As theta0=2.0317872129 Ktheta=0.463784394304 CenterHybridization=sp3 +C-Ga-B theta0=2.1585881423 Ktheta=0.299140891866 CenterHybridization=sp3 +C-Ga-Br theta0=2.0116670922 Ktheta=0.515071804047 CenterHybridization=sp3 +C-Ga-C theta0=2.1202365723 Ktheta=0.522459348072 CenterHybridization=sp3 +C-Ga-Cl theta0=2.0205018581 Ktheta=0.521661329895 CenterHybridization=sp3 +C-Ga-F theta0=2.0037469067 Ktheta=0.489167498189 CenterHybridization=sp3 +C-Ga-Ga theta0=2.1519235816 Ktheta=0.327314429990 CenterHybridization=sp3 +C-Ga-H theta0=2.0856459565 Ktheta=0.448453828397 CenterHybridization=sp3 +C-Ga-N theta0=2.0249972416 Ktheta=0.608320753374 CenterHybridization=sp3 +C-Ga-O theta0=2.0037481250 Ktheta=0.546507551793 CenterHybridization=sp3 +C-Ga-P theta0=2.0676695190 Ktheta=0.460746085918 CenterHybridization=sp3 +C-Ga-S theta0=2.0102766303 Ktheta=0.522852011506 CenterHybridization=sp3 +C-Ga-Se theta0=2.0789096837 Ktheta=0.464302808329 CenterHybridization=sp3 +C-Ge-Al theta0=2.0105725578 Ktheta=0.405927328311 CenterHybridization=sp3 +C-Ge-As theta0=2.0086110870 Ktheta=0.538043570512 CenterHybridization=sp3 +C-Ge-B theta0=1.9951296001 Ktheta=0.539752464059 CenterHybridization=sp3 +C-Ge-Br theta0=1.8944555183 Ktheta=0.643531414622 CenterHybridization=sp3 +C-Ge-C theta0=1.9411100402 Ktheta=0.639245767623 CenterHybridization=sp3 +C-Ge-Cl theta0=1.8865559697 Ktheta=0.693429634099 CenterHybridization=sp3 +C-Ge-F theta0=1.8493674469 Ktheta=0.668134576331 CenterHybridization=sp3 +C-Ge-Ga theta0=2.0171198708 Ktheta=0.456908602079 CenterHybridization=sp3 +C-Ge-Ge theta0=1.9569435031 Ktheta=0.507836782837 CenterHybridization=sp3 +C-Ge-H theta0=1.9280855259 Ktheta=0.572843766055 CenterHybridization=sp3 +C-Ge-N theta0=2.0035881307 Ktheta=0.697736643350 CenterHybridization=sp3 +C-Ge-O theta0=1.8188273075 Ktheta=0.729664457063 CenterHybridization=sp3 +C-Ge-P theta0=1.9929891214 Ktheta=0.573567491824 CenterHybridization=sp3 +C-Ge-S theta0=1.8431147717 Ktheta=0.673717659992 CenterHybridization=sp3 +C-Ge-Se theta0=1.8742086483 Ktheta=0.591918032389 CenterHybridization=sp3 +C-N-Al theta0=2.2439133187 Ktheta=0.577451816968 CenterHybridization=sp3 +C-N-As theta0=2.0122000372 Ktheta=0.765265726210 CenterHybridization=sp3 +C-N-B theta0=2.2210822723 Ktheta=1.018940105237 CenterHybridization=sp3 +C-N-Br theta0=2.0965456982 Ktheta=1.023448128713 CenterHybridization=sp3 +C-N-C theta0=1.9835791072 Ktheta=1.073248551677 CenterHybridization=sp3 +C-N-Cl theta0=2.0843543098 Ktheta=1.072010500860 CenterHybridization=sp3 +C-N-F theta0=2.0138506736 Ktheta=1.150194723114 CenterHybridization=sp3 +C-N-Ga theta0=2.2296897405 Ktheta=0.728771989885 CenterHybridization=sp3 + +# use old term +C-N-H theta0=1.93312034512 Ktheta=0.801774333697 CenterHybridization=sp3 +#C-N-H theta0=2.1168333059 Ktheta=0.770514289861 CenterHybridization=sp3 + +C-N-N theta0=2.0560091296 Ktheta=1.185418460046 CenterHybridization=sp3 +C-N-O theta0=2.0025350479 Ktheta=1.358485908372 CenterHybridization=sp3 +C-N-P theta0=2.0622755283 Ktheta=0.834614070715 CenterHybridization=sp3 +C-N-S theta0=2.0960941082 Ktheta=1.005643254996 CenterHybridization=sp3 +C-N-Se theta0=2.1177584578 Ktheta=0.900520166503 CenterHybridization=sp3 +C-O-Al theta0=2.3594951093 Ktheta=0.215002202226 CenterHybridization=sp3 +C-O-As theta0=2.0710076043 Ktheta=0.857906344238 CenterHybridization=sp3 +C-O-B theta0=2.1428934453 Ktheta=0.955911818377 CenterHybridization=sp3 +C-O-Br theta0=1.9491291334 Ktheta=1.205668168925 CenterHybridization=sp3 +C-O-C theta0=1.9700068649 Ktheta=1.197791683028 CenterHybridization=sp3 +C-O-Cl theta0=1.9304922354 Ktheta=1.306331242803 CenterHybridization=sp3 +C-O-F theta0=1.8286080034 Ktheta=1.424741505741 CenterHybridization=sp3 +C-O-Ga theta0=2.1764827378 Ktheta=0.461444122414 CenterHybridization=sp3 +C-O-H theta0=1.8983582683 Ktheta=0.760397107508 CenterHybridization=sp3 +C-O-N theta0=1.9702141961 Ktheta=1.438512049637 CenterHybridization=sp3 +C-O-O theta0=1.8257686983 Ktheta=1.463888970900 CenterHybridization=sp3 +C-O-P theta0=2.1037064211 Ktheta=0.850491048808 CenterHybridization=sp3 +C-O-S theta0=1.9407027170 Ktheta=1.043271684984 CenterHybridization=sp3 +C-O-Se theta0=1.9455161151 Ktheta=0.984751547681 CenterHybridization=sp3 +C-P-Al theta0=2.2197200027 Ktheta=0.423080366602 CenterHybridization=sp3 +C-P-As theta0=1.7377730338 Ktheta=0.784859380522 CenterHybridization=sp3 +C-P-B theta0=2.2106493154 Ktheta=0.712297312762 CenterHybridization=sp3 +C-P-Br theta0=1.7613050585 Ktheta=1.001437221991 CenterHybridization=sp3 +C-P-C theta0=1.7523735612 Ktheta=1.095031229341 CenterHybridization=sp3 +C-P-Cl theta0=1.7467637658 Ktheta=1.112585771750 CenterHybridization=sp3 +C-P-F theta0=1.7238889570 Ktheta=1.225461420821 CenterHybridization=sp3 +C-P-Ga theta0=2.2308960475 Ktheta=0.465383599118 CenterHybridization=sp3 +C-P-H theta0=1.7048980312 Ktheta=0.820883779349 CenterHybridization=sp3 +C-P-N theta0=1.7539308260 Ktheta=1.200266569427 CenterHybridization=sp3 +C-P-O theta0=1.7296928348 Ktheta=1.178696828086 CenterHybridization=sp3 +C-P-P theta0=1.7216952806 Ktheta=0.920689991012 CenterHybridization=sp3 +C-P-S theta0=1.7705025003 Ktheta=1.025043819355 CenterHybridization=sp3 +C-P-Se theta0=1.7866903523 Ktheta=0.935124607511 CenterHybridization=sp3 +C-S-Al theta0=1.8128468548 Ktheta=0.587222949804 CenterHybridization=sp3 +C-S-As theta0=1.8160019755 Ktheta=0.903526700723 CenterHybridization=sp3 +C-S-B theta0=1.8285331375 Ktheta=1.018767699422 CenterHybridization=sp3 +C-S-Br theta0=1.7679993805 Ktheta=1.028898705334 CenterHybridization=sp3 +C-S-C theta0=1.7421916245 Ktheta=1.133464722013 CenterHybridization=sp3 +C-S-Cl theta0=1.7481415461 Ktheta=1.138039560759 CenterHybridization=sp3 +C-S-F theta0=1.7049343341 Ktheta=1.223196027674 CenterHybridization=sp3 +C-S-Ga theta0=1.8007614550 Ktheta=0.737128555505 CenterHybridization=sp3 +C-S-H theta0=1.6932456407 Ktheta=0.883421690330 CenterHybridization=sp3 +C-S-N theta0=1.8332773439 Ktheta=1.176832443315 CenterHybridization=sp3 +C-S-O theta0=1.6645423974 Ktheta=1.261897809200 CenterHybridization=sp3 +C-S-P theta0=1.8233681655 Ktheta=0.961259134905 CenterHybridization=sp3 +C-S-S theta0=1.6913411164 Ktheta=1.097887448000 CenterHybridization=sp3 +C-S-Se theta0=1.7090504103 Ktheta=0.920598898676 CenterHybridization=sp3 +C-Se-Al theta0=1.7458029184 Ktheta=0.588366618952 CenterHybridization=sp3 +C-Se-As theta0=1.7655471912 Ktheta=0.793648611689 CenterHybridization=sp3 +C-Se-B theta0=1.7777940496 Ktheta=0.928948496067 CenterHybridization=sp3 +C-Se-Br theta0=1.7223878936 Ktheta=0.917653401154 CenterHybridization=sp3 +C-Se-C theta0=1.7132420210 Ktheta=0.975554208112 CenterHybridization=sp3 +C-Se-Cl theta0=1.6958230015 Ktheta=0.981374379867 CenterHybridization=sp3 +C-Se-F theta0=1.6752331918 Ktheta=1.024745531632 CenterHybridization=sp3 +C-Se-Ga theta0=1.7647142066 Ktheta=0.630481242374 CenterHybridization=sp3 +C-Se-H theta0=1.6612506506 Ktheta=0.815969676807 CenterHybridization=sp3 +C-Se-N theta0=1.7973856200 Ktheta=0.978389887797 CenterHybridization=sp3 +C-Se-O theta0=1.6122555549 Ktheta=1.068384624960 CenterHybridization=sp3 +C-Se-P theta0=1.7607280648 Ktheta=0.866536022127 CenterHybridization=sp3 +C-Se-S theta0=1.6535273103 Ktheta=0.945308032511 CenterHybridization=sp3 +C-Se-Se theta0=1.6625586352 Ktheta=0.874853901763 CenterHybridization=sp3 +C-Si-Al theta0=1.9942125849 Ktheta=0.435285239946 CenterHybridization=sp3 +C-Si-As theta0=2.0099127256 Ktheta=0.616678587542 CenterHybridization=sp3 +C-Si-B theta0=2.0223108255 Ktheta=0.610287204200 CenterHybridization=sp3 +C-Si-Br theta0=1.9203955162 Ktheta=0.763342540358 CenterHybridization=sp3 +C-Si-C theta0=1.9539972669 Ktheta=0.773619220643 CenterHybridization=sp3 +C-Si-Cl theta0=1.9096498940 Ktheta=0.790758348516 CenterHybridization=sp3 +C-Si-F theta0=1.8835683692 Ktheta=0.846049105915 CenterHybridization=sp3 +C-Si-Ga theta0=2.0070934936 Ktheta=0.467813147430 CenterHybridization=sp3 +C-Si-H theta0=1.9317851945 Ktheta=0.629214123540 CenterHybridization=sp3 +C-Si-N theta0=2.0175554299 Ktheta=0.837217254304 CenterHybridization=sp3 +C-Si-O theta0=1.8526223534 Ktheta=0.936559658329 CenterHybridization=sp3 +C-Si-P theta0=2.0055854680 Ktheta=0.662468224604 CenterHybridization=sp3 +C-Si-S theta0=1.8582744939 Ktheta=0.779993633587 CenterHybridization=sp3 +C-Si-Se theta0=1.8742140711 Ktheta=0.730827113220 CenterHybridization=sp3 +C=C-B theta0=2.16309448855 Ktheta=1.12651176378 CenterHybridization=sp2 +C=C-C theta0=2.1885381567 Ktheta=1.22694309791 CenterHybridization=sp2 +C=C-Cl theta0=2.1555506527 Ktheta=1.24107140242 CenterHybridization=sp2 +C=C-F theta0=2.12629044823 Ktheta=1.27810406084 CenterHybridization=sp2 +C=C-H theta0=2.1321064846 Ktheta=0.815373444257 CenterHybridization=sp2 +C=C-N theta0=2.12475624934 Ktheta=1.2669580118 CenterHybridization=sp2 +C=C-O theta0=2.12649557568 Ktheta=1.28582550494 CenterHybridization=sp2 +C=C-P theta0=2.09091632928 Ktheta=1.01706722106 CenterHybridization=sp2 +C=C-S theta0=2.12063073843 Ktheta=1.01751346991 CenterHybridization=sp2 +C=C-Si theta0=2.18774446121 Ktheta=0.734381938292 CenterHybridization=sp2 +C=N-B theta0=2.11202853781 Ktheta=1.13426849915 CenterHybridization=sp2 +C=N-C theta0=2.05897777134 Ktheta=1.04423716095 CenterHybridization=sp2 +C=N-Cl theta0=1.99737185534 Ktheta=1.21860216885 CenterHybridization=sp2 +C=N-F theta0=1.91907701759 Ktheta=2.23662944604 CenterHybridization=sp2 +C=N-H theta0=1.94763059675 Ktheta=0.944693618863 CenterHybridization=sp2 +C=N-N theta0=1.95191463763 Ktheta=2.31797932001 CenterHybridization=sp2 +C=N-O theta0=1.93947677369 Ktheta=2.27901087712 CenterHybridization=sp2 +C=N-P theta0=1.99421923687 Ktheta=0.846357675504 CenterHybridization=sp2 +C=N-S theta0=1.99867661957 Ktheta=0.885608492675 CenterHybridization=sp2 +C=N-Si theta0=2.17936138259 Ktheta=0.52215141094 CenterHybridization=sp2 +Cl-Al-Cl theta0=2.0636887354 Ktheta=0.591378354055 CenterHybridization=sp2 +Cl-Al-F theta0=2.0270797126 Ktheta=0.642353179361 CenterHybridization=sp2 +Cl-Al-H theta0=2.0449529156 Ktheta=0.485496479886 CenterHybridization=sp2 +Cl-As-Cl theta0=2.0189000595 Ktheta=0.591402033650 CenterHybridization=sp3 +Cl-As-F theta0=1.9820475144 Ktheta=0.562371408344 CenterHybridization=sp3 +Cl-As-H theta0=2.0152026458 Ktheta=0.543009251655 CenterHybridization=sp3 +Cl-B-Cl theta0=2.1110503215 Ktheta=1.107655674088 CenterHybridization=sp3 +Cl-B-F theta0=2.0746130112 Ktheta=1.173458348390 CenterHybridization=sp3 +Cl-B-H theta0=2.0558421470 Ktheta=0.742597146153 CenterHybridization=sp3 +Cl-C-Al theta0=1.4322052811 Ktheta=0.991903239361 CenterHybridization=sp3 +Cl-C-B theta0=2.0418291148 Ktheta=0.919940661905 CenterHybridization=sp3 +Cl-C-Br theta0=1.9878815410 Ktheta=1.169424043876 CenterHybridization=sp3 +Cl-C-Cl theta0=1.9788887268 Ktheta=1.269125784015 CenterHybridization=sp3 +Cl-C-Ga theta0=1.6806852496 Ktheta=0.412505495402 CenterHybridization=sp3 +Cl-C-O theta0=1.9653063896 Ktheta=1.399298782006 CenterHybridization=sp3 +Cl-C-S theta0=1.9138826438 Ktheta=1.121500180792 CenterHybridization=sp3 +Cl-C-Se theta0=1.9044172852 Ktheta=1.036338809149 CenterHybridization=sp3 +Cl-Ga-Cl theta0=2.0111324245 Ktheta=0.563773674422 CenterHybridization=sp3 +Cl-Ga-F theta0=2.0043341699 Ktheta=0.534903429300 CenterHybridization=sp3 +Cl-Ga-H theta0=1.9963124691 Ktheta=0.469927462464 CenterHybridization=sp3 +Cl-Ge-Al theta0=1.6915767987 Ktheta=0.119274822445 CenterHybridization=sp3 +Cl-Ge-B theta0=1.9319979066 Ktheta=0.600533187503 CenterHybridization=sp3 +Cl-Ge-Br theta0=1.9063595382 Ktheta=0.697503338201 CenterHybridization=sp3 +Cl-Ge-Cl theta0=1.8943316296 Ktheta=0.729019776145 CenterHybridization=sp3 +Cl-Ge-Ga theta0=1.7318311354 Ktheta=0.210536724116 CenterHybridization=sp3 +Cl-Ge-O theta0=1.8845789759 Ktheta=0.764849589527 CenterHybridization=sp3 +Cl-Ge-S theta0=1.8215141075 Ktheta=0.736927890085 CenterHybridization=sp3 +Cl-Ge-Se theta0=1.8290251371 Ktheta=0.677634839283 CenterHybridization=sp3 +Cl-N-Cl theta0=2.1133265380 Ktheta=1.183142248972 CenterHybridization=sp3 +Cl-N-F theta0=2.0309214371 Ktheta=1.230133711428 CenterHybridization=sp3 +Cl-N-H theta0=2.0528026299 Ktheta=0.822910717727 CenterHybridization=sp3 +Cl-O-Cl theta0=1.9676157062 Ktheta=1.252446877326 CenterHybridization=sp3 +Cl-O-F theta0=1.8648778756 Ktheta=1.352329192433 CenterHybridization=sp3 +Cl-O-H theta0=1.7948833519 Ktheta=0.800425120393 CenterHybridization=sp3 +Cl-P-Cl theta0=2.0570818840 Ktheta=0.739294992321 CenterHybridization=sp3 +Cl-P-F theta0=1.9968421661 Ktheta=0.773720308099 CenterHybridization=sp3 + +# use old term +Cl-P-H theta0=1.75482460802 Ktheta=0.88240296702 CenterHybridization=sp3 +#Cl-P-H theta0=2.0437938302 Ktheta=0.639569662266 CenterHybridization=sp3 + +Cl-S-Cl theta0=1.8212538160 Ktheta=1.018175021624 CenterHybridization=sp3 +Cl-S-F theta0=1.7569440933 Ktheta=1.002810386793 CenterHybridization=sp3 +Cl-S-H theta0=1.6684818917 Ktheta=0.853716687246 CenterHybridization=sp3 +Cl-Se-Cl theta0=1.7808858986 Ktheta=0.874902294409 CenterHybridization=sp3 +Cl-Se-F theta0=1.7434207377 Ktheta=0.855697792875 CenterHybridization=sp3 +Cl-Se-H theta0=1.6373969408 Ktheta=0.804279262138 CenterHybridization=sp3 +Cl-Si-Al theta0=1.9684134299 Ktheta=0.446122752507 CenterHybridization=sp3 +Cl-Si-B theta0=1.9878527361 Ktheta=0.613137825683 CenterHybridization=sp3 +Cl-Si-Br theta0=1.9393161105 Ktheta=0.797614802652 CenterHybridization=sp3 +Cl-Si-Cl theta0=1.9304580235 Ktheta=0.836305539676 CenterHybridization=sp3 +Cl-Si-Ga theta0=1.9644813340 Ktheta=0.492867368530 CenterHybridization=sp3 +Cl-Si-O theta0=1.9229153912 Ktheta=0.906765850666 CenterHybridization=sp3 +Cl-Si-S theta0=1.8483151984 Ktheta=0.810554451546 CenterHybridization=sp3 +Cl-Si-Se theta0=1.8678820270 Ktheta=0.765633838108 CenterHybridization=sp3 +F-Al-F theta0=2.0687134283 Ktheta=0.747340588259 CenterHybridization=sp2 +F-Al-H theta0=2.0374611718 Ktheta=0.518218174351 CenterHybridization=sp2 +F-As-F theta0=1.9072605557 Ktheta=0.562238316378 CenterHybridization=sp3 +F-As-H theta0=1.9639921811 Ktheta=0.571018443069 CenterHybridization=sp3 +F-B-F theta0=2.0579302466 Ktheta=1.284142826685 CenterHybridization=sp3 +F-B-H theta0=2.0505365049 Ktheta=0.851790079003 CenterHybridization=sp3 +F-C-Al theta0=1.9620824750 Ktheta=0.524851397979 CenterHybridization=sp3 +F-C-B theta0=2.0097977573 Ktheta=1.006894565008 CenterHybridization=sp3 +F-C-Br theta0=1.9346420437 Ktheta=1.207075229499 CenterHybridization=sp3 +F-C-Cl theta0=1.9263363499 Ktheta=1.369481436455 CenterHybridization=sp3 +F-C-F theta0=1.8930056280 Ktheta=1.624648738707 CenterHybridization=sp3 +F-C-Ga theta0=1.9694766775 Ktheta=0.679455732704 CenterHybridization=sp3 +F-C-O theta0=1.9173740825 Ktheta=1.649419689716 CenterHybridization=sp3 +F-C-S theta0=1.8679462220 Ktheta=1.189006689878 CenterHybridization=sp3 +F-C-Se theta0=1.8821062475 Ktheta=1.024983106405 CenterHybridization=sp3 +F-Ga-F theta0=1.9854555228 Ktheta=0.567095145332 CenterHybridization=sp3 +F-Ga-H theta0=1.9798782255 Ktheta=0.476970103733 CenterHybridization=sp3 +F-Ge-Al theta0=1.8579510984 Ktheta=0.426771576293 CenterHybridization=sp3 +F-Ge-B theta0=1.9011422464 Ktheta=0.538301890850 CenterHybridization=sp3 +F-Ge-Br theta0=1.8722451756 Ktheta=0.709169032992 CenterHybridization=sp3 +F-Ge-Cl theta0=1.8366526850 Ktheta=0.741812951205 CenterHybridization=sp3 +F-Ge-F theta0=1.8307150190 Ktheta=0.633245956152 CenterHybridization=sp3 +F-Ge-Ga theta0=1.8916573594 Ktheta=0.485275114717 CenterHybridization=sp3 +F-Ge-O theta0=1.8318355710 Ktheta=0.815745616617 CenterHybridization=sp3 +F-Ge-S theta0=1.8168881402 Ktheta=0.807148747528 CenterHybridization=sp3 +F-Ge-Se theta0=1.8314457412 Ktheta=0.642769804894 CenterHybridization=sp3 +F-N-F theta0=1.9732323922 Ktheta=1.359689635529 CenterHybridization=sp3 +F-N-H theta0=1.7644234400 Ktheta=1.016602224174 CenterHybridization=sp3 +F-O-F theta0=1.8136666603 Ktheta=1.559833128520 CenterHybridization=sp3 +F-O-H theta0=1.7119020602 Ktheta=1.014743173661 CenterHybridization=sp3 +F-P-F theta0=1.9539420656 Ktheta=0.774700805730 CenterHybridization=sp3 + +# use old term +F-P-H theta0=1.73995872817 Ktheta=1.02128368997 CenterHybridization=sp3 +#F-P-H theta0=1.9983989561 Ktheta=0.685211236788 CenterHybridization=sp3 + +F-S-F theta0=1.7123360555 Ktheta=1.165355836907 CenterHybridization=sp3 +F-S-H theta0=1.6599436730 Ktheta=1.007326357222 CenterHybridization=sp3 +F-Se-F theta0=1.6778568161 Ktheta=0.980778002661 CenterHybridization=sp3 +F-Se-H theta0=1.6396818193 Ktheta=0.895707074058 CenterHybridization=sp3 +F-Si-Al theta0=1.9963715904 Ktheta=0.447547221965 CenterHybridization=sp3 +F-Si-B theta0=1.9634674443 Ktheta=0.622048220414 CenterHybridization=sp3 +F-Si-Br theta0=1.8880721302 Ktheta=0.737995751293 CenterHybridization=sp3 +F-Si-Cl theta0=1.9179214596 Ktheta=0.793341459524 CenterHybridization=sp3 +F-Si-F theta0=1.8990031325 Ktheta=0.788266580435 CenterHybridization=sp3 +F-Si-Ga theta0=1.8917010275 Ktheta=0.480537437365 CenterHybridization=sp3 +F-Si-O theta0=1.9128050357 Ktheta=0.897728213301 CenterHybridization=sp3 +F-Si-S theta0=1.8278120827 Ktheta=0.759797359693 CenterHybridization=sp3 +F-Si-Se theta0=1.8137904740 Ktheta=0.802569865254 CenterHybridization=sp3 +Ga-Al-Al theta0=2.2067218568 Ktheta=0.187386856213 CenterHybridization=sp2 +Ga-Al-B theta0=2.1488149215 Ktheta=0.194726531171 CenterHybridization=sp2 +Ga-Al-Br theta0=2.0221756411 Ktheta=0.274644463505 CenterHybridization=sp2 +Ga-Al-Cl theta0=2.0299758491 Ktheta=0.276343173467 CenterHybridization=sp2 +Ga-Al-F theta0=2.0710944571 Ktheta=0.336452429445 CenterHybridization=sp2 +Ga-Al-Ga theta0=2.1931761366 Ktheta=0.191634774160 CenterHybridization=sp2 +Ga-Al-H theta0=2.1237831058 Ktheta=0.273896095983 CenterHybridization=sp2 +Ga-Al-N theta0=2.1492160261 Ktheta=0.366331144947 CenterHybridization=sp2 +Ga-Al-O theta0=1.9421829464 Ktheta=0.302934660544 CenterHybridization=sp2 +Ga-Al-P theta0=2.1234834659 Ktheta=0.283197796425 CenterHybridization=sp2 +Ga-Al-S theta0=2.0637563930 Ktheta=0.328839335282 CenterHybridization=sp2 +Ga-Al-Se theta0=2.0613858048 Ktheta=0.327880002078 CenterHybridization=sp2 +Ga-As-Al theta0=2.2258736863 Ktheta=0.289949224470 CenterHybridization=sp3 +Ga-As-B theta0=2.2725986200 Ktheta=0.333063216414 CenterHybridization=sp3 +Ga-As-Br theta0=2.1864267075 Ktheta=0.342706501201 CenterHybridization=sp3 +Ga-As-Cl theta0=2.1686431150 Ktheta=0.352876394752 CenterHybridization=sp3 +Ga-As-F theta0=2.1359671480 Ktheta=0.380246774777 CenterHybridization=sp3 +Ga-As-Ga theta0=2.3372429049 Ktheta=0.319322171108 CenterHybridization=sp3 +Ga-As-H theta0=2.2157440903 Ktheta=0.343948807995 CenterHybridization=sp3 +Ga-As-N theta0=2.1457071586 Ktheta=0.378101442713 CenterHybridization=sp3 +Ga-As-O theta0=2.2600787572 Ktheta=0.405653281801 CenterHybridization=sp3 +Ga-As-S theta0=2.2594947403 Ktheta=0.370545584811 CenterHybridization=sp3 +Ga-As-Se theta0=2.3379174275 Ktheta=0.346517897921 CenterHybridization=sp3 +Ga-B-Al theta0=2.2132215380 Ktheta=0.232184492269 CenterHybridization=sp3 +Ga-B-B theta0=2.1176629220 Ktheta=0.166980159407 CenterHybridization=sp3 +Ga-B-Br theta0=2.0707892008 Ktheta=0.341692826595 CenterHybridization=sp3 +Ga-B-Cl theta0=2.1049752789 Ktheta=0.368354312217 CenterHybridization=sp3 +Ga-B-F theta0=2.1086981797 Ktheta=0.446188400773 CenterHybridization=sp3 +Ga-B-Ga theta0=2.2032158447 Ktheta=0.251566381282 CenterHybridization=sp3 +Ga-B-H theta0=2.1291731694 Ktheta=0.258367297506 CenterHybridization=sp3 +Ga-B-N theta0=2.2041312716 Ktheta=0.446063955074 CenterHybridization=sp3 +Ga-B-O theta0=2.0558488263 Ktheta=0.417979170098 CenterHybridization=sp3 +Ga-B-P theta0=2.1946235190 Ktheta=0.342097848095 CenterHybridization=sp3 +Ga-B-S theta0=2.1214000402 Ktheta=0.384856832229 CenterHybridization=sp3 +Ga-B-Se theta0=2.2221021380 Ktheta=0.359853433269 CenterHybridization=sp3 +Ga-C-As theta0=2.1114875404 Ktheta=0.575412515218 CenterHybridization=sp3 +Ga-C-B theta0=1.8346030139 Ktheta=0.404036950451 CenterHybridization=sp3 +Ga-C-Ga theta0=1.9631341877 Ktheta=0.467129490217 CenterHybridization=sp3 +Ga-C-N theta0=2.0911052469 Ktheta=0.723450712602 CenterHybridization=sp3 +Ga-C-O theta0=1.9337070010 Ktheta=0.641737837683 CenterHybridization=sp3 +Ga-C-P theta0=2.1000169958 Ktheta=0.621573482805 CenterHybridization=sp3 +Ga-C-S theta0=1.9638589269 Ktheta=0.582499236271 CenterHybridization=sp3 +Ga-C-Se theta0=1.9568435446 Ktheta=0.592652233266 CenterHybridization=sp3 +Ga-Ga-Al theta0=2.2365063141 Ktheta=0.176811536720 CenterHybridization=sp3 +Ga-Ga-B theta0=2.1821889975 Ktheta=0.178703135465 CenterHybridization=sp3 +Ga-Ga-Br theta0=1.9451618168 Ktheta=0.208042259466 CenterHybridization=sp3 +Ga-Ga-Cl theta0=1.9495477262 Ktheta=0.237459539740 CenterHybridization=sp3 +Ga-Ga-F theta0=1.8976472054 Ktheta=0.291186411128 CenterHybridization=sp3 +Ga-Ga-Ga theta0=2.2297727274 Ktheta=0.179094059528 CenterHybridization=sp3 +Ga-Ga-H theta0=2.1387294126 Ktheta=0.266294264714 CenterHybridization=sp3 +Ga-Ga-N theta0=2.0582285182 Ktheta=0.342782502912 CenterHybridization=sp3 +Ga-Ga-O theta0=1.8873867115 Ktheta=0.266086480597 CenterHybridization=sp3 +Ga-Ga-P theta0=2.1279690319 Ktheta=0.247900123759 CenterHybridization=sp3 +Ga-Ga-S theta0=2.0539804165 Ktheta=0.292890439216 CenterHybridization=sp3 +Ga-Ga-Se theta0=2.1480082949 Ktheta=0.229736055302 CenterHybridization=sp3 +Ga-Ge-As theta0=1.8888740671 Ktheta=0.214862648636 CenterHybridization=sp3 +Ga-Ge-B theta0=1.8565613869 Ktheta=0.226342693692 CenterHybridization=sp3 +Ga-Ge-Ga theta0=1.9698162976 Ktheta=0.241170156599 CenterHybridization=sp3 +Ga-Ge-N theta0=2.0550869063 Ktheta=0.505654205558 CenterHybridization=sp3 +Ga-Ge-O theta0=1.8497343047 Ktheta=0.449069564468 CenterHybridization=sp3 +Ga-Ge-P theta0=1.9393187913 Ktheta=0.205264383980 CenterHybridization=sp3 +Ga-Ge-S theta0=1.8549061132 Ktheta=0.441462485659 CenterHybridization=sp3 +Ga-Ge-Se theta0=1.8581079110 Ktheta=0.434646974237 CenterHybridization=sp3 +Ga-N-Al theta0=2.2716855300 Ktheta=0.455725835282 CenterHybridization=sp3 +Ga-N-B theta0=2.1877935517 Ktheta=0.569825717225 CenterHybridization=sp3 +Ga-N-Br theta0=2.2204983968 Ktheta=0.552200855034 CenterHybridization=sp3 +Ga-N-Cl theta0=2.1856434125 Ktheta=0.591261138577 CenterHybridization=sp3 +Ga-N-F theta0=2.1210522327 Ktheta=0.579876610659 CenterHybridization=sp3 +Ga-N-Ga theta0=2.2877601555 Ktheta=0.531493373324 CenterHybridization=sp3 +Ga-N-H theta0=2.1689954533 Ktheta=0.416129003980 CenterHybridization=sp3 +Ga-N-N theta0=2.1419511699 Ktheta=0.663571711137 CenterHybridization=sp3 +Ga-N-O theta0=2.2715500070 Ktheta=0.634894946711 CenterHybridization=sp3 +Ga-N-P theta0=2.2082408640 Ktheta=0.612187372213 CenterHybridization=sp3 +Ga-N-S theta0=2.2957117709 Ktheta=0.591499984788 CenterHybridization=sp3 +Ga-N-Se theta0=2.3013053033 Ktheta=0.603176845153 CenterHybridization=sp3 +Ga-O-Al theta0=3.1397396270 Ktheta=0.072702158442 CenterHybridization=sp3 +Ga-O-As theta0=2.2135883207 Ktheta=0.335380489360 CenterHybridization=sp3 +Ga-O-B theta0=2.2035672702 Ktheta=0.377430539113 CenterHybridization=sp3 +Ga-O-Br theta0=2.0421525104 Ktheta=0.668322100033 CenterHybridization=sp3 +Ga-O-Cl theta0=2.0378163620 Ktheta=0.577540580454 CenterHybridization=sp3 +Ga-O-F theta0=1.8278283265 Ktheta=0.683974055173 CenterHybridization=sp3 +Ga-O-Ga theta0=3.1415870632 Ktheta=0.057919427480 CenterHybridization=sp3 +Ga-O-H theta0=1.9905578725 Ktheta=0.340886427833 CenterHybridization=sp3 +Ga-O-N theta0=1.9616805920 Ktheta=0.642429261256 CenterHybridization=sp3 +Ga-O-O theta0=1.8916664682 Ktheta=0.654588219427 CenterHybridization=sp3 +Ga-O-P theta0=2.2135875335 Ktheta=0.345769636510 CenterHybridization=sp3 +Ga-O-S theta0=2.1536149767 Ktheta=0.383850752066 CenterHybridization=sp3 +Ga-O-Se theta0=2.1637413979 Ktheta=0.348633367688 CenterHybridization=sp3 +Ga-P-Al theta0=2.3140773766 Ktheta=0.296640045328 CenterHybridization=sp3 +Ga-P-B theta0=2.2332573994 Ktheta=0.342307930997 CenterHybridization=sp3 +Ga-P-Br theta0=2.2153796010 Ktheta=0.425074070118 CenterHybridization=sp3 +Ga-P-Cl theta0=2.2102003975 Ktheta=0.423190112037 CenterHybridization=sp3 +Ga-P-F theta0=2.1390192035 Ktheta=0.488860743577 CenterHybridization=sp3 +Ga-P-Ga theta0=2.3136755338 Ktheta=0.338226012826 CenterHybridization=sp3 +Ga-P-H theta0=2.2057049320 Ktheta=0.384700939894 CenterHybridization=sp3 +Ga-P-N theta0=2.1706871364 Ktheta=0.508592905159 CenterHybridization=sp3 +Ga-P-O theta0=2.2608996187 Ktheta=0.512761048578 CenterHybridization=sp3 +Ga-P-P theta0=2.1744338521 Ktheta=0.425301069125 CenterHybridization=sp3 +Ga-P-S theta0=2.2765097091 Ktheta=0.416363093625 CenterHybridization=sp3 +Ga-P-Se theta0=2.3382566881 Ktheta=0.365334951733 CenterHybridization=sp3 +Ga-S-Al theta0=1.8209654370 Ktheta=0.618116161392 CenterHybridization=sp3 +Ga-S-As theta0=1.7639905442 Ktheta=0.758828994601 CenterHybridization=sp3 +Ga-S-B theta0=1.8040964075 Ktheta=0.745070398795 CenterHybridization=sp3 +Ga-S-Br theta0=1.7918561080 Ktheta=0.737798442427 CenterHybridization=sp3 +Ga-S-Cl theta0=1.8064848975 Ktheta=0.696580048604 CenterHybridization=sp3 +Ga-S-F theta0=1.7486159528 Ktheta=0.672217209830 CenterHybridization=sp3 +Ga-S-Ga theta0=1.7694250422 Ktheta=0.880884084712 CenterHybridization=sp3 +Ga-S-H theta0=1.6766752841 Ktheta=0.470821801130 CenterHybridization=sp3 +Ga-S-N theta0=1.7445197663 Ktheta=0.782247572089 CenterHybridization=sp3 +Ga-S-O theta0=1.7352715441 Ktheta=0.708247014669 CenterHybridization=sp3 +Ga-S-P theta0=1.7873085095 Ktheta=0.702238835427 CenterHybridization=sp3 +Ga-S-S theta0=1.8004241597 Ktheta=0.641138070278 CenterHybridization=sp3 +Ga-S-Se theta0=1.7554826575 Ktheta=0.654728708806 CenterHybridization=sp3 +Ga-Se-Al theta0=1.7120527397 Ktheta=0.825283759703 CenterHybridization=sp3 +Ga-Se-As theta0=1.7992553807 Ktheta=0.697228660842 CenterHybridization=sp3 +Ga-Se-B theta0=1.7346786959 Ktheta=0.793806258974 CenterHybridization=sp3 +Ga-Se-Br theta0=1.7494649578 Ktheta=0.718374792090 CenterHybridization=sp3 +Ga-Se-Cl theta0=1.7472792139 Ktheta=0.679722881500 CenterHybridization=sp3 +Ga-Se-F theta0=1.7325383428 Ktheta=0.605875770285 CenterHybridization=sp3 +Ga-Se-Ga theta0=1.7100386332 Ktheta=0.901288277958 CenterHybridization=sp3 +Ga-Se-H theta0=1.6354786878 Ktheta=0.453227886518 CenterHybridization=sp3 +Ga-Se-N theta0=1.7093128468 Ktheta=0.635547028286 CenterHybridization=sp3 +Ga-Se-O theta0=1.7198242702 Ktheta=0.592724064764 CenterHybridization=sp3 +Ga-Se-P theta0=1.7216506491 Ktheta=0.707831652527 CenterHybridization=sp3 +Ga-Se-S theta0=1.7124622219 Ktheta=0.654444670344 CenterHybridization=sp3 +Ga-Se-Se theta0=1.7157583512 Ktheta=0.650587492384 CenterHybridization=sp3 +Ga-Si-As theta0=1.8894638645 Ktheta=0.236565282194 CenterHybridization=sp3 +Ga-Si-B theta0=1.8033095781 Ktheta=0.229030176647 CenterHybridization=sp3 +Ga-Si-Ga theta0=1.9314708799 Ktheta=0.264513315521 CenterHybridization=sp3 +Ga-Si-N theta0=2.0757747495 Ktheta=0.501355940990 CenterHybridization=sp3 +Ga-Si-O theta0=1.8792699443 Ktheta=0.545783291187 CenterHybridization=sp3 +Ga-Si-P theta0=1.9501678923 Ktheta=0.261806122692 CenterHybridization=sp3 +Ga-Si-S theta0=1.9235296458 Ktheta=0.470308636394 CenterHybridization=sp3 +Ga-Si-Se theta0=1.8690857038 Ktheta=0.439113174894 CenterHybridization=sp3 +Ge-Al-Al theta0=2.1942104048 Ktheta=0.242449642006 CenterHybridization=sp2 +Ge-Al-As theta0=2.0600454042 Ktheta=0.402542440339 CenterHybridization=sp2 +Ge-Al-B theta0=2.1066471612 Ktheta=0.253303413324 CenterHybridization=sp2 +Ge-Al-Br theta0=2.0575352909 Ktheta=0.430253053007 CenterHybridization=sp2 +Ge-Al-C theta0=2.1408724517 Ktheta=0.401603817270 CenterHybridization=sp2 +Ge-Al-Cl theta0=2.0426734266 Ktheta=0.425651277585 CenterHybridization=sp2 +Ge-Al-F theta0=2.0750879921 Ktheta=0.465056135640 CenterHybridization=sp2 +Ge-Al-Ga theta0=2.1662886745 Ktheta=0.213134795375 CenterHybridization=sp2 +Ge-Al-Ge theta0=2.2244842279 Ktheta=0.313565988951 CenterHybridization=sp2 +Ge-Al-H theta0=2.0958850823 Ktheta=0.365673520829 CenterHybridization=sp2 +Ge-Al-N theta0=2.0192521709 Ktheta=0.488765575221 CenterHybridization=sp2 +Ge-Al-O theta0=1.9709740723 Ktheta=0.442398732492 CenterHybridization=sp2 +Ge-Al-P theta0=2.0440145096 Ktheta=0.345436388660 CenterHybridization=sp2 +Ge-Al-S theta0=2.0660005496 Ktheta=0.435828515022 CenterHybridization=sp2 +Ge-Al-Se theta0=1.9876364566 Ktheta=0.438842086954 CenterHybridization=sp2 +Ge-Al-Si theta0=2.1810010217 Ktheta=0.364009536636 CenterHybridization=sp2 +Ge-As-Al theta0=2.2507929284 Ktheta=0.331014153568 CenterHybridization=sp3 +Ge-As-As theta0=1.6552558740 Ktheta=0.645062490371 CenterHybridization=sp3 +Ge-As-B theta0=2.2029835501 Ktheta=0.419426632427 CenterHybridization=sp3 +Ge-As-Br theta0=1.6829522263 Ktheta=0.654873944312 CenterHybridization=sp3 +Ge-As-C theta0=1.6947396704 Ktheta=0.733574564621 CenterHybridization=sp3 +Ge-As-Cl theta0=1.6821347752 Ktheta=0.683407835004 CenterHybridization=sp3 +Ge-As-F theta0=1.6872699929 Ktheta=0.576021089561 CenterHybridization=sp3 +Ge-As-Ga theta0=2.2819291065 Ktheta=0.291285559271 CenterHybridization=sp3 +Ge-As-Ge theta0=2.1829343281 Ktheta=0.451726240721 CenterHybridization=sp3 +Ge-As-H theta0=1.6168137057 Ktheta=0.539413940229 CenterHybridization=sp3 +Ge-As-N theta0=1.6471569685 Ktheta=0.759352340858 CenterHybridization=sp3 +Ge-As-O theta0=1.6299880198 Ktheta=0.707796969346 CenterHybridization=sp3 +Ge-As-P theta0=1.6602537290 Ktheta=0.653177582252 CenterHybridization=sp3 +Ge-As-S theta0=1.6811478875 Ktheta=0.658973450818 CenterHybridization=sp3 +Ge-As-Se theta0=2.1343535126 Ktheta=0.447980670718 CenterHybridization=sp3 +Ge-As-Si theta0=2.2489217417 Ktheta=0.319361224698 CenterHybridization=sp3 +Ge-B-Al theta0=2.1832788649 Ktheta=0.271114784783 CenterHybridization=sp3 +Ge-B-As theta0=2.1219144062 Ktheta=0.521393038780 CenterHybridization=sp3 +Ge-B-B theta0=2.0795130667 Ktheta=0.186357636322 CenterHybridization=sp3 +Ge-B-Br theta0=2.0931449346 Ktheta=0.648072628254 CenterHybridization=sp3 +Ge-B-C theta0=2.1408724517 Ktheta=0.409637623434 CenterHybridization=sp3 +Ge-B-Cl theta0=2.0969091857 Ktheta=0.646259265816 CenterHybridization=sp3 +Ge-B-F theta0=2.0819444814 Ktheta=0.675451888197 CenterHybridization=sp3 +Ge-B-Ga theta0=2.1936632056 Ktheta=0.294557796957 CenterHybridization=sp3 +Ge-B-Ge theta0=2.2244842279 Ktheta=0.275746162032 CenterHybridization=sp3 +Ge-B-H theta0=2.0686001390 Ktheta=0.431579235152 CenterHybridization=sp3 +Ge-B-N theta0=2.1143897717 Ktheta=0.635395433038 CenterHybridization=sp3 +Ge-B-O theta0=2.0622049908 Ktheta=0.666110464383 CenterHybridization=sp3 +Ge-B-P theta0=2.1461625831 Ktheta=0.460123808188 CenterHybridization=sp3 +Ge-B-S theta0=2.0903404349 Ktheta=0.569889976003 CenterHybridization=sp3 +Ge-B-Se theta0=2.1042083813 Ktheta=0.534561569420 CenterHybridization=sp3 +Ge-B-Si theta0=2.1810010217 Ktheta=0.308682458875 CenterHybridization=sp3 +Ge-C-Al theta0=2.0627585202 Ktheta=0.444505563646 CenterHybridization=sp3 +Ge-C-As theta0=2.0481817520 Ktheta=0.686791830718 CenterHybridization=sp3 +Ge-C-B theta0=2.0555296981 Ktheta=0.586126543754 CenterHybridization=sp3 +Ge-C-Br theta0=1.9331777456 Ktheta=0.776312080003 CenterHybridization=sp3 +Ge-C-C theta0=1.9990178324 Ktheta=0.722013501279 CenterHybridization=sp3 +Ge-C-Cl theta0=1.9478710652 Ktheta=0.748989739908 CenterHybridization=sp3 +Ge-C-F theta0=1.9326329795 Ktheta=0.769673974759 CenterHybridization=sp3 +Ge-C-Ga theta0=2.0305512475 Ktheta=0.523938465921 CenterHybridization=sp3 +Ge-C-Ge theta0=1.9929986683 Ktheta=0.651755278912 CenterHybridization=sp3 +Ge-C-H theta0=1.9406396373 Ktheta=0.576438073772 CenterHybridization=sp3 +Ge-C-N theta0=2.0447759951 Ktheta=0.785451319083 CenterHybridization=sp3 +Ge-C-O theta0=1.8838381185 Ktheta=0.763006736206 CenterHybridization=sp3 +Ge-C-P theta0=2.0472750133 Ktheta=0.727074793295 CenterHybridization=sp3 +Ge-C-S theta0=1.9345286863 Ktheta=0.720018464304 CenterHybridization=sp3 +Ge-C-Se theta0=1.9366101782 Ktheta=0.764862772577 CenterHybridization=sp3 +Ge-C-Si theta0=2.0228641124 Ktheta=0.587629057560 CenterHybridization=sp3 +Ge-Ga-Al theta0=2.1873246812 Ktheta=0.231775149746 CenterHybridization=sp3 +Ge-Ga-As theta0=2.0529599451 Ktheta=0.409997327562 CenterHybridization=sp3 +Ge-Ga-B theta0=2.1453174842 Ktheta=0.218820246337 CenterHybridization=sp3 +Ge-Ga-Br theta0=2.0269848260 Ktheta=0.404092117618 CenterHybridization=sp3 +Ge-Ga-C theta0=2.1408724517 Ktheta=0.435305769429 CenterHybridization=sp3 +Ge-Ga-Cl theta0=1.9889517332 Ktheta=0.402364844771 CenterHybridization=sp3 +Ge-Ga-F theta0=1.9164235971 Ktheta=0.429128085914 CenterHybridization=sp3 +Ge-Ga-Ga theta0=2.2024153930 Ktheta=0.219389160341 CenterHybridization=sp3 +Ge-Ga-Ge theta0=2.2244842279 Ktheta=0.311940391110 CenterHybridization=sp3 +Ge-Ga-H theta0=2.0964861127 Ktheta=0.354553644858 CenterHybridization=sp3 +Ge-Ga-N theta0=2.0409334258 Ktheta=0.447185307954 CenterHybridization=sp3 +Ge-Ga-O theta0=1.9855190930 Ktheta=0.396245685418 CenterHybridization=sp3 +Ge-Ga-P theta0=2.0080038137 Ktheta=0.394611404894 CenterHybridization=sp3 +Ge-Ga-S theta0=2.0623969526 Ktheta=0.387134707166 CenterHybridization=sp3 +Ge-Ga-Se theta0=1.9790357219 Ktheta=0.457491827865 CenterHybridization=sp3 +Ge-Ga-Si theta0=2.1810010217 Ktheta=0.391873008763 CenterHybridization=sp3 +Ge-Ge-Al theta0=2.0031134901 Ktheta=0.353901243992 CenterHybridization=sp3 +Ge-Ge-As theta0=2.0117603643 Ktheta=0.416565671521 CenterHybridization=sp3 +Ge-Ge-B theta0=2.0245779332 Ktheta=0.451373535816 CenterHybridization=sp3 +Ge-Ge-Br theta0=1.8734043221 Ktheta=0.479921679142 CenterHybridization=sp3 +Ge-Ge-Cl theta0=1.8686080543 Ktheta=0.513402976646 CenterHybridization=sp3 +Ge-Ge-F theta0=1.8630251039 Ktheta=0.545391398221 CenterHybridization=sp3 +Ge-Ge-Ga theta0=2.0438803776 Ktheta=0.354599561170 CenterHybridization=sp3 +Ge-Ge-Ge theta0=1.9971103446 Ktheta=0.391338337363 CenterHybridization=sp3 +Ge-Ge-H theta0=1.9224399670 Ktheta=0.453681195229 CenterHybridization=sp3 +Ge-Ge-N theta0=2.0129604632 Ktheta=0.560532549937 CenterHybridization=sp3 +Ge-Ge-O theta0=1.8285398291 Ktheta=0.514698710535 CenterHybridization=sp3 +Ge-Ge-P theta0=2.0052092029 Ktheta=0.413089338603 CenterHybridization=sp3 +Ge-Ge-S theta0=1.8358240829 Ktheta=0.533826836150 CenterHybridization=sp3 +Ge-Ge-Se theta0=1.8607331043 Ktheta=0.515528454503 CenterHybridization=sp3 +Ge-N-Al theta0=2.2935264546 Ktheta=0.495227933943 CenterHybridization=sp3 +Ge-N-As theta0=2.1979566126 Ktheta=0.456277255664 CenterHybridization=sp3 +Ge-N-B theta0=2.2170762757 Ktheta=0.680259235952 CenterHybridization=sp3 +Ge-N-Br theta0=2.1563787806 Ktheta=0.550035720028 CenterHybridization=sp3 +Ge-N-C theta0=2.2056229295 Ktheta=0.905463526392 CenterHybridization=sp3 +Ge-N-Cl theta0=2.1290544207 Ktheta=0.644908637069 CenterHybridization=sp3 +Ge-N-F theta0=2.0472157245 Ktheta=0.597209778990 CenterHybridization=sp3 +Ge-N-Ga theta0=2.2933283405 Ktheta=0.552237663454 CenterHybridization=sp3 +Ge-N-Ge theta0=2.2517027423 Ktheta=0.584341695242 CenterHybridization=sp3 +Ge-N-H theta0=2.1622517105 Ktheta=0.515445896307 CenterHybridization=sp3 +Ge-N-N theta0=2.1626608244 Ktheta=0.755850597259 CenterHybridization=sp3 +Ge-N-O theta0=2.0227558793 Ktheta=0.726671520808 CenterHybridization=sp3 +Ge-N-P theta0=2.2282278021 Ktheta=0.584657613181 CenterHybridization=sp3 +Ge-N-S theta0=2.1393213445 Ktheta=0.689819136461 CenterHybridization=sp3 +Ge-N-Se theta0=2.1375688035 Ktheta=0.623214118579 CenterHybridization=sp3 +Ge-N-Si theta0=2.2443873641 Ktheta=0.711509512421 CenterHybridization=sp3 +Ge-O-Al theta0=2.6046876192 Ktheta=0.075049564053 CenterHybridization=sp3 +Ge-O-As theta0=2.1932988961 Ktheta=0.426600819049 CenterHybridization=sp3 +Ge-O-B theta0=2.2229335605 Ktheta=0.464100214990 CenterHybridization=sp3 +Ge-O-Br theta0=1.9751720412 Ktheta=0.728136766130 CenterHybridization=sp3 +Ge-O-C theta0=2.0544514686 Ktheta=0.590264070229 CenterHybridization=sp3 +Ge-O-Cl theta0=1.9487055944 Ktheta=0.712423366353 CenterHybridization=sp3 +Ge-O-F theta0=1.7648073792 Ktheta=0.802650583747 CenterHybridization=sp3 +Ge-O-Ga theta0=2.3108478089 Ktheta=0.283838138329 CenterHybridization=sp3 +Ge-O-Ge theta0=2.2645714755 Ktheta=0.267760064338 CenterHybridization=sp3 +Ge-O-H theta0=1.9745788701 Ktheta=0.417826820445 CenterHybridization=sp3 +Ge-O-N theta0=2.0089420363 Ktheta=0.745330136694 CenterHybridization=sp3 +Ge-O-O theta0=1.8145336614 Ktheta=0.798434711789 CenterHybridization=sp3 +Ge-O-P theta0=2.2137745124 Ktheta=0.430747384857 CenterHybridization=sp3 +Ge-O-S theta0=2.0497109135 Ktheta=0.540151862993 CenterHybridization=sp3 +Ge-O-Se theta0=2.0261615280 Ktheta=0.619831439275 CenterHybridization=sp3 +Ge-O-Si theta0=2.3489272699 Ktheta=0.195331168210 CenterHybridization=sp3 +Ge-P-Al theta0=2.3214233243 Ktheta=0.275522584205 CenterHybridization=sp3 +Ge-P-As theta0=1.6878089069 Ktheta=0.660151880089 CenterHybridization=sp3 +Ge-P-B theta0=2.2286883456 Ktheta=0.422257095770 CenterHybridization=sp3 +Ge-P-Br theta0=2.1553679958 Ktheta=0.445381520950 CenterHybridization=sp3 +Ge-P-C theta0=2.1668071578 Ktheta=0.519921035437 CenterHybridization=sp3 +Ge-P-Cl theta0=2.1362240203 Ktheta=0.481280028566 CenterHybridization=sp3 +Ge-P-F theta0=1.7241909199 Ktheta=0.816863467165 CenterHybridization=sp3 +Ge-P-Ga theta0=2.2649602493 Ktheta=0.349257516838 CenterHybridization=sp3 +Ge-P-Ge theta0=2.1896657489 Ktheta=0.479439909561 CenterHybridization=sp3 +Ge-P-H theta0=2.1838403617 Ktheta=0.428929763129 CenterHybridization=sp3 +Ge-P-N theta0=1.7335085469 Ktheta=0.781420648094 CenterHybridization=sp3 +Ge-P-O theta0=1.9857971676 Ktheta=0.516440008695 CenterHybridization=sp3 +Ge-P-P theta0=1.7193146690 Ktheta=0.626311098460 CenterHybridization=sp3 +Ge-P-S theta0=2.1007387767 Ktheta=0.448146823820 CenterHybridization=sp3 +Ge-P-Se theta0=2.1295514852 Ktheta=0.483789392911 CenterHybridization=sp3 +Ge-P-Si theta0=2.2021996040 Ktheta=0.412097766804 CenterHybridization=sp3 +Ge-S-Al theta0=1.7946087942 Ktheta=0.548722417068 CenterHybridization=sp3 +Ge-S-As theta0=1.8015471621 Ktheta=0.676044164820 CenterHybridization=sp3 +Ge-S-B theta0=1.8005764431 Ktheta=0.650016291908 CenterHybridization=sp3 +Ge-S-Br theta0=1.7451583020 Ktheta=0.682529954890 CenterHybridization=sp3 +Ge-S-C theta0=1.7546806124 Ktheta=0.775656553453 CenterHybridization=sp3 +Ge-S-Cl theta0=1.7272902477 Ktheta=0.717695978754 CenterHybridization=sp3 +Ge-S-F theta0=1.6921178578 Ktheta=0.786012157201 CenterHybridization=sp3 +Ge-S-Ga theta0=1.7796021321 Ktheta=0.588090552775 CenterHybridization=sp3 +Ge-S-Ge theta0=1.7799634764 Ktheta=0.585878847913 CenterHybridization=sp3 +Ge-S-H theta0=1.6427030890 Ktheta=0.569209266227 CenterHybridization=sp3 +Ge-S-N theta0=1.8300560944 Ktheta=0.797808179576 CenterHybridization=sp3 +Ge-S-O theta0=1.6475717216 Ktheta=0.777153770282 CenterHybridization=sp3 +Ge-S-P theta0=1.8143414814 Ktheta=0.685404748922 CenterHybridization=sp3 +Ge-S-S theta0=1.7180594858 Ktheta=0.716859562921 CenterHybridization=sp3 +Ge-S-Se theta0=1.7131813342 Ktheta=0.708768428509 CenterHybridization=sp3 +Ge-S-Si theta0=1.7530422544 Ktheta=0.646275725751 CenterHybridization=sp3 +Ge-Se-Al theta0=1.7155323625 Ktheta=0.555794211317 CenterHybridization=sp3 +Ge-Se-As theta0=1.7341363924 Ktheta=0.667555879155 CenterHybridization=sp3 +Ge-Se-B theta0=1.7473116857 Ktheta=0.660308587476 CenterHybridization=sp3 +Ge-Se-Br theta0=1.6957375275 Ktheta=0.622362081549 CenterHybridization=sp3 +Ge-Se-C theta0=1.7115991705 Ktheta=0.676515511619 CenterHybridization=sp3 +Ge-Se-Cl theta0=1.6917358785 Ktheta=0.654262865637 CenterHybridization=sp3 +Ge-Se-F theta0=1.6831777787 Ktheta=0.567327151059 CenterHybridization=sp3 +Ge-Se-Ga theta0=1.7285327441 Ktheta=0.569030040135 CenterHybridization=sp3 +Ge-Se-Ge theta0=1.7005526640 Ktheta=0.566262079022 CenterHybridization=sp3 +Ge-Se-H theta0=1.6048063623 Ktheta=0.556165922522 CenterHybridization=sp3 +Ge-Se-N theta0=1.7930040337 Ktheta=0.657412943535 CenterHybridization=sp3 +Ge-Se-O theta0=1.5883405614 Ktheta=0.722275758475 CenterHybridization=sp3 +Ge-Se-P theta0=1.7353448602 Ktheta=0.722535837405 CenterHybridization=sp3 +Ge-Se-S theta0=1.6700938848 Ktheta=0.694043931670 CenterHybridization=sp3 +Ge-Se-Se theta0=1.6597660194 Ktheta=0.697368292402 CenterHybridization=sp3 +Ge-Se-Si theta0=1.6922260822 Ktheta=0.585535210180 CenterHybridization=sp3 +Ge-Si-Al theta0=1.9817374671 Ktheta=0.358617168831 CenterHybridization=sp3 +Ge-Si-As theta0=2.0187690987 Ktheta=0.469145324327 CenterHybridization=sp3 +Ge-Si-B theta0=2.0075432562 Ktheta=0.450365106529 CenterHybridization=sp3 +Ge-Si-Br theta0=1.9322423190 Ktheta=0.547555628113 CenterHybridization=sp3 +Ge-Si-C theta0=1.9587459639 Ktheta=0.545636024890 CenterHybridization=sp3 +Ge-Si-Cl theta0=1.9126006663 Ktheta=0.564106846861 CenterHybridization=sp3 +Ge-Si-F theta0=1.8662642971 Ktheta=0.576533115568 CenterHybridization=sp3 +Ge-Si-Ga theta0=2.0326171187 Ktheta=0.372895044006 CenterHybridization=sp3 +Ge-Si-Ge theta0=1.9892145379 Ktheta=0.437366571295 CenterHybridization=sp3 +Ge-Si-H theta0=1.9167504781 Ktheta=0.482133973883 CenterHybridization=sp3 +Ge-Si-N theta0=2.0205092286 Ktheta=0.581745163997 CenterHybridization=sp3 +Ge-Si-O theta0=1.8551947837 Ktheta=0.635616081647 CenterHybridization=sp3 +Ge-Si-P theta0=2.0196739542 Ktheta=0.494365935492 CenterHybridization=sp3 +Ge-Si-S theta0=1.8866300275 Ktheta=0.561928268625 CenterHybridization=sp3 +Ge-Si-Se theta0=1.8730637193 Ktheta=0.542323288489 CenterHybridization=sp3 +Ge-Si-Si theta0=1.9485735620 Ktheta=0.424000247879 CenterHybridization=sp3 +H-Al-H theta0=2.0943951000 Ktheta=0.446598206006 CenterHybridization=sp2 +H-As-H theta0=2.0943949551 Ktheta=0.520515195863 CenterHybridization=sp3 +H-B-H theta0=2.0943951000 Ktheta=0.546480999782 CenterHybridization=sp3 +H-C-Al theta0=1.9425338920 Ktheta=0.361712034927 CenterHybridization=sp3 +H-C-B theta0=1.8059460969 Ktheta=0.350928331698 CenterHybridization=sp3 +H-C-Br theta0=1.8880020378 Ktheta=0.743919645625 CenterHybridization=sp3 +H-C-Cl theta0=1.8922784610 Ktheta=0.829771695974 CenterHybridization=sp3 +H-C-F theta0=1.8956024318 Ktheta=0.998086205366 CenterHybridization=sp3 +H-C-Ga theta0=1.9251050498 Ktheta=0.413690518320 CenterHybridization=sp3 +H-C-H theta0=1.9111430651 Ktheta=0.660042365894 CenterHybridization=sp3 +H-C-O theta0=1.8594917738 Ktheta=1.017666730562 CenterHybridization=sp3 +H-C-S theta0=1.8551663854 Ktheta=0.763149990069 CenterHybridization=sp3 +H-C-Se theta0=1.8535475524 Ktheta=0.684585201497 CenterHybridization=sp3 +H-Ga-H theta0=2.0943951000 Ktheta=0.421550504584 CenterHybridization=sp3 +H-Ge-Al theta0=1.9183781425 Ktheta=0.316094679224 CenterHybridization=sp3 +H-Ge-B theta0=1.8815969883 Ktheta=0.340357300698 CenterHybridization=sp3 +H-Ge-Br theta0=1.8690729263 Ktheta=0.582041906791 CenterHybridization=sp3 +H-Ge-Cl theta0=1.8658368398 Ktheta=0.599233558133 CenterHybridization=sp3 +H-Ge-F theta0=1.8521916043 Ktheta=0.631744962759 CenterHybridization=sp3 +H-Ge-Ga theta0=1.9004987628 Ktheta=0.338789188076 CenterHybridization=sp3 +H-Ge-H theta0=1.9109561316 Ktheta=0.526625261192 CenterHybridization=sp3 +H-Ge-O theta0=1.8136954530 Ktheta=0.654441748515 CenterHybridization=sp3 +H-Ge-S theta0=1.8367536069 Ktheta=0.568534220684 CenterHybridization=sp3 +H-Ge-Se theta0=1.8414556548 Ktheta=0.545214956838 CenterHybridization=sp3 + +# use old term +H-N-H theta0=1.91065124785 Ktheta=0.689583037074 CenterHybridization=sp3 +#H-N-H theta0=2.0943944001 Ktheta=0.689494535736 CenterHybridization=sp3 + +H-O-H theta0=1.8465727699 Ktheta=0.667156053774 CenterHybridization=sp3 +H-P-H theta0=1.6338725712 Ktheta=0.719244866233 CenterHybridization=sp3 +H-S-H theta0=1.6204910376 Ktheta=0.777935778465 CenterHybridization=sp3 +H-Si-Al theta0=1.9130734917 Ktheta=0.338047168642 CenterHybridization=sp3 +H-Si-B theta0=1.8571985089 Ktheta=0.352817642791 CenterHybridization=sp3 +H-Si-Br theta0=1.8922825136 Ktheta=0.637107593607 CenterHybridization=sp3 +H-Si-Cl theta0=1.8940758918 Ktheta=0.667986529685 CenterHybridization=sp3 +H-Si-F theta0=1.8875125445 Ktheta=0.717697435398 CenterHybridization=sp3 +H-Si-Ga theta0=1.8931693573 Ktheta=0.357692694289 CenterHybridization=sp3 +H-Si-H theta0=1.9108108748 Ktheta=0.561368162828 CenterHybridization=sp3 +H-Si-O theta0=1.8471259154 Ktheta=0.742619996409 CenterHybridization=sp3 +H-Si-S theta0=1.8402852579 Ktheta=0.619425834122 CenterHybridization=sp3 +H-Si-Se theta0=1.8415472148 Ktheta=0.585636258039 CenterHybridization=sp3 +N+C-B theta0=3.14159265359 Ktheta=0.3011967305 CenterHybridization=sp3 +N+C-C theta0=3.14278922667 Ktheta=0.34678938974 CenterHybridization=sp3 +N+C-Cl theta0=3.14159265359 Ktheta=0.296844402333 CenterHybridization=sp3 +N+C-F theta0=3.14159265359 Ktheta=0.338297174767 CenterHybridization=sp3 +N+C-H theta0=3.14159265359 Ktheta=0.275285191583 CenterHybridization=sp3 +N+C-N theta0=3.06281429195 Ktheta=0.401314576146 CenterHybridization=sp3 +N+C-O theta0=3.07396606659 Ktheta=0.353765788426 CenterHybridization=sp3 +N+C-P theta0=2.97586281684 Ktheta=0.32130113683 CenterHybridization=sp3 +N+C-S theta0=3.02016836101 Ktheta=0.247517760763 CenterHybridization=sp3 +N+C-Si theta0=3.14083417822 Ktheta=0.222388201524 CenterHybridization=sp3 +N-Al-As theta0=2.1228188044 Ktheta=0.497116547949 CenterHybridization=sp2 +N-Al-B theta0=2.0781521986 Ktheta=0.437597454100 CenterHybridization=sp2 +N-Al-Br theta0=2.0026889876 Ktheta=0.612148124140 CenterHybridization=sp2 +N-Al-Cl theta0=2.0683588821 Ktheta=0.602298655023 CenterHybridization=sp2 +N-Al-F theta0=2.0956341721 Ktheta=0.653961846712 CenterHybridization=sp2 +N-Al-H theta0=2.0503919689 Ktheta=0.503049103734 CenterHybridization=sp2 +N-Al-N theta0=2.1584269716 Ktheta=0.662870167192 CenterHybridization=sp2 +N-Al-O theta0=1.9750330571 Ktheta=0.646981778818 CenterHybridization=sp2 +N-Al-P theta0=2.1014322832 Ktheta=0.529011440007 CenterHybridization=sp2 +N-Al-S theta0=2.0548974124 Ktheta=0.574554232414 CenterHybridization=sp2 +N-Al-Se theta0=2.1147549661 Ktheta=0.520506102269 CenterHybridization=sp2 +N-As-As theta0=1.9710891890 Ktheta=0.509280364560 CenterHybridization=sp3 +N-As-B theta0=1.7972954702 Ktheta=0.785464603761 CenterHybridization=sp3 +N-As-Br theta0=1.8384876822 Ktheta=0.755687659946 CenterHybridization=sp3 +N-As-Cl theta0=1.9545297511 Ktheta=0.615337856297 CenterHybridization=sp3 +N-As-F theta0=1.8521505455 Ktheta=0.606314074606 CenterHybridization=sp3 +N-As-H theta0=2.0346214984 Ktheta=0.582381674934 CenterHybridization=sp3 +N-As-N theta0=1.7565209225 Ktheta=1.150042917163 CenterHybridization=sp3 +N-As-O theta0=1.8176410281 Ktheta=0.719675821758 CenterHybridization=sp3 +N-As-P theta0=1.9653901898 Ktheta=0.557365030668 CenterHybridization=sp3 +N-As-S theta0=1.9664912028 Ktheta=0.551529245558 CenterHybridization=sp3 +N-As-Se theta0=1.9489958566 Ktheta=0.526802987134 CenterHybridization=sp3 +N-B-As theta0=2.1865915923 Ktheta=0.736237593653 CenterHybridization=sp3 +N-B-B theta0=2.2363988350 Ktheta=0.457233544532 CenterHybridization=sp3 +N-B-Br theta0=2.0862368551 Ktheta=0.955779558997 CenterHybridization=sp3 +N-B-Cl theta0=2.0944128325 Ktheta=1.046015430027 CenterHybridization=sp3 +N-B-F theta0=2.0743356557 Ktheta=1.198835285210 CenterHybridization=sp3 +N-B-H theta0=2.0770343361 Ktheta=0.749774108489 CenterHybridization=sp3 +N-B-N theta0=2.1428841549 Ktheta=1.141728047410 CenterHybridization=sp3 +N-B-O theta0=2.0661228204 Ktheta=1.228689773591 CenterHybridization=sp3 +N-B-P theta0=2.1883009206 Ktheta=0.749030118584 CenterHybridization=sp3 +N-B-S theta0=2.0900598784 Ktheta=0.927191283432 CenterHybridization=sp3 +N-B-Se theta0=2.1051028817 Ktheta=0.825659955295 CenterHybridization=sp3 +N-C-As theta0=2.0981725458 Ktheta=1.015846821128 CenterHybridization=sp3 +N-C-Br theta0=2.0213095755 Ktheta=1.112391949065 CenterHybridization=sp3 +N-C-Cl theta0=2.0158943652 Ktheta=1.248073085677 CenterHybridization=sp3 +N-C-F theta0=1.9809158115 Ktheta=1.465959993231 CenterHybridization=sp3 +N-C-H theta0=2.0088182436 Ktheta=0.971979253994 CenterHybridization=sp3 +N-C-N theta0=2.0898860663 Ktheta=1.451413695620 CenterHybridization=sp3 +N-C-O theta0=1.9373965538 Ktheta=1.553602918286 CenterHybridization=sp3 +N-C-S theta0=1.9694303128 Ktheta=1.167949621688 CenterHybridization=sp3 +N-C-Se theta0=1.9881321406 Ktheta=1.046149265854 CenterHybridization=sp3 +N-Ga-As theta0=2.0254339491 Ktheta=0.543648341366 CenterHybridization=sp3 +N-Ga-B theta0=2.0595846338 Ktheta=0.394077926550 CenterHybridization=sp3 +N-Ga-Br theta0=2.0071416315 Ktheta=0.574629983885 CenterHybridization=sp3 +N-Ga-Cl theta0=1.9651259993 Ktheta=0.600482358221 CenterHybridization=sp3 +N-Ga-F theta0=1.9495717280 Ktheta=0.648288247747 CenterHybridization=sp3 +N-Ga-H theta0=2.0297747697 Ktheta=0.480927350209 CenterHybridization=sp3 +N-Ga-N theta0=1.9727417400 Ktheta=0.706467169494 CenterHybridization=sp3 +N-Ga-O theta0=1.9310613541 Ktheta=0.665565736764 CenterHybridization=sp3 +N-Ga-P theta0=2.0049011523 Ktheta=0.529958463713 CenterHybridization=sp3 +N-Ga-S theta0=1.9592840455 Ktheta=0.575784422946 CenterHybridization=sp3 +N-Ga-Se theta0=2.0186679551 Ktheta=0.546617743999 CenterHybridization=sp3 +N-Ge-As theta0=2.0740861260 Ktheta=0.572810776443 CenterHybridization=sp3 +N-Ge-Br theta0=1.9931291963 Ktheta=0.663502766434 CenterHybridization=sp3 +N-Ge-Cl theta0=1.9688095446 Ktheta=0.703912218198 CenterHybridization=sp3 +N-Ge-F theta0=1.9558325993 Ktheta=0.684624805394 CenterHybridization=sp3 +N-Ge-H theta0=1.9999038767 Ktheta=0.628118521870 CenterHybridization=sp3 +N-Ge-N theta0=2.0867492611 Ktheta=0.679582428818 CenterHybridization=sp3 +N-Ge-O theta0=1.9012885469 Ktheta=0.769837649023 CenterHybridization=sp3 +N-Ge-S theta0=1.9246477072 Ktheta=0.689025544087 CenterHybridization=sp3 +N-Ge-Se theta0=1.9567805242 Ktheta=0.625314777800 CenterHybridization=sp3 +N-N-As theta0=2.0917381312 Ktheta=0.880234250707 CenterHybridization=sp3 +N-N-B theta0=2.1509170397 Ktheta=1.104121839874 CenterHybridization=sp3 +N-N-Br theta0=2.0760662421 Ktheta=1.130315135156 CenterHybridization=sp3 +N-N-Cl theta0=2.0505609168 Ktheta=1.279823256120 CenterHybridization=sp3 +N-N-F theta0=1.9545433298 Ktheta=1.364594173631 CenterHybridization=sp3 +N-N-H theta0=1.9703161809 Ktheta=0.851530858604 CenterHybridization=sp3 +N-N-N theta0=2.0476025715 Ktheta=1.515585221142 CenterHybridization=sp3 +N-N-O theta0=1.9257474165 Ktheta=1.433827314133 CenterHybridization=sp3 +N-N-P theta0=2.0860413399 Ktheta=0.954478936001 CenterHybridization=sp3 +N-N-S theta0=2.0326516832 Ktheta=1.095284413723 CenterHybridization=sp3 +N-N-Se theta0=2.0610647882 Ktheta=0.922156772918 CenterHybridization=sp3 +N-O-As theta0=1.9801748355 Ktheta=0.941653515352 CenterHybridization=sp3 +N-O-Br theta0=2.0202229074 Ktheta=1.070406737408 CenterHybridization=sp3 +N-O-Cl theta0=1.9962689441 Ktheta=1.161930252221 CenterHybridization=sp3 +N-O-F theta0=1.8916037027 Ktheta=1.238124356812 CenterHybridization=sp3 +N-O-H theta0=1.7923755372 Ktheta=0.921274485323 CenterHybridization=sp3 +N-O-N theta0=1.9283411712 Ktheta=1.711733342327 CenterHybridization=sp3 +N-O-O theta0=1.8762793070 Ktheta=1.610338711250 CenterHybridization=sp3 +N-O-P theta0=2.0015691163 Ktheta=1.010871194288 CenterHybridization=sp3 +N-O-S theta0=1.8585553523 Ktheta=1.101592372291 CenterHybridization=sp3 +N-O-Se theta0=1.8516103224 Ktheta=0.987921545567 CenterHybridization=sp3 +N-P-As theta0=2.0027501283 Ktheta=0.605569731199 CenterHybridization=sp3 +N-P-B theta0=2.1694050594 Ktheta=0.815651269486 CenterHybridization=sp3 +N-P-Br theta0=2.0163753378 Ktheta=0.705756851323 CenterHybridization=sp3 +N-P-Cl theta0=1.9794377690 Ktheta=0.785474334053 CenterHybridization=sp3 +N-P-F theta0=1.9003724707 Ktheta=0.796160534133 CenterHybridization=sp3 +N-P-H theta0=1.7991500065 Ktheta=0.954423377799 CenterHybridization=sp3 +N-P-N theta0=1.9500220247 Ktheta=1.107451244601 CenterHybridization=sp3 +N-P-O theta0=1.8438607272 Ktheta=0.957867016370 CenterHybridization=sp3 +N-P-P theta0=1.9823655134 Ktheta=0.668157935029 CenterHybridization=sp3 +N-P-S theta0=1.9538174072 Ktheta=0.709950137558 CenterHybridization=sp3 +N-P-Se theta0=2.0012942723 Ktheta=0.615728965726 CenterHybridization=sp3 +N-S-As theta0=1.9226746945 Ktheta=0.910507000151 CenterHybridization=sp3 +N-S-Br theta0=1.8918900100 Ktheta=0.951758574322 CenterHybridization=sp3 +N-S-Cl theta0=1.8751788612 Ktheta=1.027942215401 CenterHybridization=sp3 +N-S-F theta0=1.8386607857 Ktheta=1.084012035593 CenterHybridization=sp3 +N-S-H theta0=1.7907916683 Ktheta=1.035873108006 CenterHybridization=sp3 +N-S-N theta0=1.9407465701 Ktheta=1.218921777196 CenterHybridization=sp3 +N-S-O theta0=1.7647348748 Ktheta=1.307528689644 CenterHybridization=sp3 +N-S-P theta0=1.8289106784 Ktheta=1.050850829097 CenterHybridization=sp3 +N-S-S theta0=1.8062123329 Ktheta=1.073054776741 CenterHybridization=sp3 +N-S-Se theta0=1.8391088345 Ktheta=0.941392785532 CenterHybridization=sp3 +N-Se-As theta0=1.8873572747 Ktheta=0.740163356597 CenterHybridization=sp3 +N-Se-Br theta0=1.8548064270 Ktheta=0.775176225641 CenterHybridization=sp3 +N-Se-Cl theta0=1.8504712892 Ktheta=0.814895979942 CenterHybridization=sp3 +N-Se-F theta0=1.8122470183 Ktheta=0.854999246773 CenterHybridization=sp3 +N-Se-H theta0=1.7591377121 Ktheta=0.906059054593 CenterHybridization=sp3 +N-Se-N theta0=1.9185276474 Ktheta=0.982207665250 CenterHybridization=sp3 +N-Se-O theta0=1.7289432420 Ktheta=1.008652876385 CenterHybridization=sp3 +N-Se-P theta0=1.7685729446 Ktheta=0.892565469760 CenterHybridization=sp3 +N-Se-S theta0=1.7794867554 Ktheta=0.861552962406 CenterHybridization=sp3 +N-Se-Se theta0=1.7721911255 Ktheta=0.844695691098 CenterHybridization=sp3 +N-Si-As theta0=2.0879148426 Ktheta=0.647239662512 CenterHybridization=sp3 +N-Si-Br theta0=2.0070802395 Ktheta=0.754485301199 CenterHybridization=sp3 +N-Si-Cl theta0=2.0131046798 Ktheta=0.761499022047 CenterHybridization=sp3 +N-Si-F theta0=2.0083755147 Ktheta=0.796619058100 CenterHybridization=sp3 +N-Si-H theta0=2.0192918144 Ktheta=0.709701449517 CenterHybridization=sp3 +N-Si-N theta0=2.1228134968 Ktheta=0.797831613251 CenterHybridization=sp3 +N-Si-O theta0=1.9397222556 Ktheta=0.889425927087 CenterHybridization=sp3 +N-Si-S theta0=1.9229653390 Ktheta=0.788581109770 CenterHybridization=sp3 +N-Si-Se theta0=1.9461035127 Ktheta=0.756389825358 CenterHybridization=sp3 +N=C-B theta0=2.10603625807 Ktheta=1.16191296912 CenterHybridization=sp2 +N=C-C theta0=2.1216686414 Ktheta=1.35904782537 CenterHybridization=sp2 +N=C-Cl theta0=2.10261752396 Ktheta=1.42982316699 CenterHybridization=sp2 +N=C-F theta0=2.08073492109 Ktheta=1.48635434823 CenterHybridization=sp2 +N=C-H theta0=2.07111062105 Ktheta=1.02769700096 CenterHybridization=sp2 +N=C-N theta0=2.09358164917 Ktheta=1.47643161336 CenterHybridization=sp2 +N=C-O theta0=2.07942279445 Ktheta=1.45892041379 CenterHybridization=sp2 +N=C-P theta0=2.04085650405 Ktheta=1.18827860669 CenterHybridization=sp2 +N=C-S theta0=2.04294843067 Ktheta=1.18182720318 CenterHybridization=sp2 +N=C-Si theta0=2.07799501192 Ktheta=0.826079064277 CenterHybridization=sp2 +N=N-B theta0=1.98096601612 Ktheta=2.63825992047 CenterHybridization=sp2 +N=N-C theta0=1.96165533356 Ktheta=2.12870350452 CenterHybridization=sp2 +N=N-Cl theta0=1.96358848055 Ktheta=2.34850723385 CenterHybridization=sp2 +N=N-F theta0=1.89993033714 Ktheta=2.4748700498 CenterHybridization=sp2 +N=N-H theta0=1.88113447149 Ktheta=1.22992387663 CenterHybridization=sp2 +N=N-N theta0=1.92338915905 Ktheta=2.47469658838 CenterHybridization=sp2 +N=N-O theta0=1.90778768924 Ktheta=2.54256813539 CenterHybridization=sp2 +N=N-P theta0=1.93261699857 Ktheta=1.73732126435 CenterHybridization=sp2 +N=N-S theta0=1.9296707993 Ktheta=1.76594583245 CenterHybridization=sp2 +N=N-Si theta0=1.99880645236 Ktheta=0.531791063463 CenterHybridization=sp2 +O-Al-Br theta0=2.0952914802 Ktheta=0.551633183747 CenterHybridization=sp2 +O-Al-Cl theta0=2.1074174658 Ktheta=0.569030337067 CenterHybridization=sp2 +O-Al-F theta0=2.1064186400 Ktheta=0.674015173105 CenterHybridization=sp2 +O-Al-H theta0=2.0146797731 Ktheta=0.517499244044 CenterHybridization=sp2 +O-Al-O theta0=2.0333912124 Ktheta=0.589772190059 CenterHybridization=sp2 +O-As-Br theta0=1.7869134647 Ktheta=0.769117558742 CenterHybridization=sp3 +O-As-Cl theta0=2.0204635708 Ktheta=0.547904903239 CenterHybridization=sp3 +O-As-F theta0=1.9284194423 Ktheta=0.570973515336 CenterHybridization=sp3 +O-As-H theta0=1.9375964707 Ktheta=0.577686177693 CenterHybridization=sp3 +O-As-O theta0=1.8568340894 Ktheta=0.716818007539 CenterHybridization=sp3 +O-B-Br theta0=2.1066678137 Ktheta=1.108798863674 CenterHybridization=sp3 +O-B-Cl theta0=2.1046146381 Ktheta=1.186601066292 CenterHybridization=sp3 +O-B-F theta0=2.0973918966 Ktheta=1.289290447202 CenterHybridization=sp3 +O-B-H theta0=2.0360621752 Ktheta=0.819327704938 CenterHybridization=sp3 +O-B-O theta0=2.0812803016 Ktheta=1.330335011060 CenterHybridization=sp3 +O-C-O theta0=1.8748722295 Ktheta=1.784491800304 CenterHybridization=sp3 +O-C-Se theta0=1.8215143675 Ktheta=1.124159991361 CenterHybridization=sp3 +O-Ga-Br theta0=1.9996806596 Ktheta=0.555581401285 CenterHybridization=sp3 +O-Ga-Cl theta0=2.0074167320 Ktheta=0.550758896318 CenterHybridization=sp3 +O-Ga-F theta0=1.9908850519 Ktheta=0.562223864616 CenterHybridization=sp3 +O-Ga-H theta0=1.9770500695 Ktheta=0.477457655721 CenterHybridization=sp3 +O-Ga-O theta0=1.9750108268 Ktheta=0.571041949072 CenterHybridization=sp3 +O-Ge-O theta0=1.7625211061 Ktheta=1.000961617939 CenterHybridization=sp3 +O-Ge-Se theta0=1.7860977572 Ktheta=0.655567867451 CenterHybridization=sp3 +O-N-Br theta0=2.1265919304 Ktheta=1.089517941999 CenterHybridization=sp3 +O-N-Cl theta0=2.1064603237 Ktheta=1.199644672050 CenterHybridization=sp3 +O-N-F theta0=2.0149952937 Ktheta=1.277047789750 CenterHybridization=sp3 +O-N-H theta0=1.9709362824 Ktheta=0.899414189919 CenterHybridization=sp3 +O-N-O theta0=1.9716383638 Ktheta=1.372836305847 CenterHybridization=sp3 +O-O-Br theta0=1.8401062203 Ktheta=1.301733602640 CenterHybridization=sp3 +O-O-Cl theta0=1.8395422189 Ktheta=1.450694992881 CenterHybridization=sp3 +O-O-F theta0=1.8352659144 Ktheta=1.648181123492 CenterHybridization=sp3 +O-O-H theta0=1.7282316259 Ktheta=0.967404359270 CenterHybridization=sp3 +O-O-O theta0=1.8032984656 Ktheta=1.815396091842 CenterHybridization=sp3 +O-O-S theta0=1.7928422749 Ktheta=1.207093425926 CenterHybridization=sp3 +O-P-Br theta0=1.8196666555 Ktheta=0.949331508836 CenterHybridization=sp3 +O-P-Cl theta0=2.0776102285 Ktheta=0.705550100098 CenterHybridization=sp3 +O-P-F theta0=1.9898737854 Ktheta=0.747898007277 CenterHybridization=sp3 +O-P-H theta0=1.7080227308 Ktheta=0.970396462654 CenterHybridization=sp3 +O-P-O theta0=1.8951190594 Ktheta=0.929746169692 CenterHybridization=sp3 +O-S-Br theta0=1.6977812487 Ktheta=1.102730207632 CenterHybridization=sp3 +O-S-Cl theta0=1.8048132194 Ktheta=1.100124254132 CenterHybridization=sp3 +O-S-F theta0=1.7386541720 Ktheta=1.167491347321 CenterHybridization=sp3 +O-S-H theta0=1.6189592285 Ktheta=1.016606949459 CenterHybridization=sp3 +O-S-O theta0=1.6620221734 Ktheta=1.421872459876 CenterHybridization=sp3 +O-S-S theta0=1.6036569635 Ktheta=1.180295602854 CenterHybridization=sp3 +O-S-Se theta0=1.6203836911 Ktheta=0.976061154620 CenterHybridization=sp3 +O-Se-Br theta0=1.7625386764 Ktheta=0.916280421139 CenterHybridization=sp3 +O-Se-Cl theta0=1.7492129776 Ktheta=0.921278226551 CenterHybridization=sp3 +O-Se-F theta0=1.7068046638 Ktheta=0.967349127087 CenterHybridization=sp3 +O-Se-H theta0=1.5890292072 Ktheta=0.900913861704 CenterHybridization=sp3 +O-Se-O theta0=1.6127471461 Ktheta=1.166395765984 CenterHybridization=sp3 +O-Se-S theta0=1.5636522927 Ktheta=1.023122509586 CenterHybridization=sp3 +O-Se-Se theta0=1.5631724825 Ktheta=0.948167931868 CenterHybridization=sp3 +O-Si-O theta0=1.8375042957 Ktheta=1.059211050995 CenterHybridization=sp3 +O-Si-Se theta0=1.8073032423 Ktheta=0.815087912925 CenterHybridization=sp3 +O=C-B theta0=2.15074232802 Ktheta=1.29107706336 CenterHybridization=sp2 +O=C-C theta0=2.1609521982 Ktheta=1.49063161033 CenterHybridization=sp2 +O=C-Cl theta0=2.1554649044 Ktheta=1.49372220774 CenterHybridization=sp2 +O=C-F theta0=2.13655764504 Ktheta=1.61745266452 CenterHybridization=sp2 +O=C-H theta0=2.12519860731 Ktheta=1.1489781057 CenterHybridization=sp2 +O=C-N theta0=2.14037709159 Ktheta=1.64677800851 CenterHybridization=sp2 +O=C-O theta0=2.13030721559 Ktheta=1.60501951705 CenterHybridization=sp2 +O=C-P theta0=2.08479575316 Ktheta=1.2557172612 CenterHybridization=sp2 +O=C-S theta0=2.09466277712 Ktheta=1.25131675346 CenterHybridization=sp2 +O=C-Si theta0=2.13127572285 Ktheta=0.854365254268 CenterHybridization=sp2 +O=N-B theta0=3.13535893586 Ktheta=0.488352171839 CenterHybridization=sp2 +O=N-C theta0=1.97188470125 Ktheta=2.34140412197 CenterHybridization=sp2 +O=N-Cl theta0=2.00803322817 Ktheta=1.58480750142 CenterHybridization=sp2 +O=N-F theta0=1.93881437339 Ktheta=2.69127719545 CenterHybridization=sp2 +O=N-H theta0=1.90340717211 Ktheta=1.47614929846 CenterHybridization=sp2 +O=N-N theta0=1.94407826065 Ktheta=2.8220650125 CenterHybridization=sp2 +O=N-O theta0=1.93520007861 Ktheta=2.80425464224 CenterHybridization=sp2 +O=N-P theta0=1.93694415265 Ktheta=1.90771200667 CenterHybridization=sp2 +O=N-S theta0=1.95368292649 Ktheta=1.97993636585 CenterHybridization=sp2 +O=N-Si theta0=1.99220034093 Ktheta=0.61317302257 CenterHybridization=sp2 +P-Al-Al theta0=2.1286498237 Ktheta=0.277720955419 CenterHybridization=sp2 +P-Al-B theta0=2.1017182781 Ktheta=0.290093038185 CenterHybridization=sp2 +P-Al-Br theta0=2.0509432608 Ktheta=0.457551362012 CenterHybridization=sp2 +P-Al-Cl theta0=2.0355268758 Ktheta=0.485673552972 CenterHybridization=sp2 +P-Al-F theta0=2.0230873086 Ktheta=0.523527295976 CenterHybridization=sp2 +P-Al-H theta0=2.0217486306 Ktheta=0.388704107547 CenterHybridization=sp2 +P-Al-O theta0=2.0615767456 Ktheta=0.436966223650 CenterHybridization=sp2 +P-Al-P theta0=2.0815602489 Ktheta=0.444147434366 CenterHybridization=sp2 +P-Al-S theta0=2.0405424476 Ktheta=0.446992002335 CenterHybridization=sp2 +P-Al-Se theta0=2.0900423309 Ktheta=0.464313239249 CenterHybridization=sp2 +P-As-Al theta0=2.2042569772 Ktheta=0.334582730511 CenterHybridization=sp3 +P-As-B theta0=2.1564631498 Ktheta=0.506529149881 CenterHybridization=sp3 +P-As-Br theta0=1.6860392146 Ktheta=0.774396174993 CenterHybridization=sp3 +P-As-Cl theta0=1.9622478030 Ktheta=0.502260664210 CenterHybridization=sp3 +P-As-F theta0=1.8563340351 Ktheta=0.521590376922 CenterHybridization=sp3 +P-As-Ga theta0=2.1737939010 Ktheta=0.347828782779 CenterHybridization=sp3 +P-As-H theta0=2.0662468732 Ktheta=0.473159685112 CenterHybridization=sp3 +P-As-O theta0=1.6983409078 Ktheta=0.812472276126 CenterHybridization=sp3 +P-As-P theta0=1.9888291273 Ktheta=0.492033533264 CenterHybridization=sp3 +P-As-S theta0=1.8284913020 Ktheta=0.798686814105 CenterHybridization=sp3 +P-As-Se theta0=1.6925245073 Ktheta=0.723415710642 CenterHybridization=sp3 +P-B-Al theta0=2.0551679420 Ktheta=0.342391721594 CenterHybridization=sp3 +P-B-B theta0=2.0922775566 Ktheta=0.219995381706 CenterHybridization=sp3 +P-B-Br theta0=2.1327381947 Ktheta=0.667212779508 CenterHybridization=sp3 +P-B-Cl theta0=2.1303118362 Ktheta=0.730250113767 CenterHybridization=sp3 +P-B-F theta0=2.1074530670 Ktheta=0.811584874619 CenterHybridization=sp3 +P-B-H theta0=2.0553740147 Ktheta=0.489458238132 CenterHybridization=sp3 +P-B-O theta0=2.0784596296 Ktheta=0.785183349993 CenterHybridization=sp3 +P-B-P theta0=2.2232995438 Ktheta=0.577099562985 CenterHybridization=sp3 +P-B-S theta0=2.1293218889 Ktheta=0.693163898697 CenterHybridization=sp3 +P-B-Se theta0=2.1227110669 Ktheta=0.679292193093 CenterHybridization=sp3 +P-C-Al theta0=1.7038265701 Ktheta=0.263711193804 CenterHybridization=sp3 +P-C-As theta0=2.1262131364 Ktheta=0.915340069609 CenterHybridization=sp3 +P-C-Br theta0=2.0563536593 Ktheta=0.974743389431 CenterHybridization=sp3 +P-C-Cl theta0=2.0433868177 Ktheta=1.031599426034 CenterHybridization=sp3 +P-C-F theta0=1.9902705477 Ktheta=1.042122135236 CenterHybridization=sp3 +P-C-H theta0=1.9845394170 Ktheta=0.627909302691 CenterHybridization=sp3 +P-C-N theta0=2.1014293162 Ktheta=1.100516116985 CenterHybridization=sp3 +P-C-O theta0=1.9510784603 Ktheta=1.112273860827 CenterHybridization=sp3 +P-C-P theta0=2.1331033751 Ktheta=0.943287304956 CenterHybridization=sp3 +P-C-S theta0=1.9917798456 Ktheta=0.934742114326 CenterHybridization=sp3 +P-C-Se theta0=1.9933443814 Ktheta=0.896288628623 CenterHybridization=sp3 +P-Ga-Al theta0=2.1283751264 Ktheta=0.249933433235 CenterHybridization=sp3 +P-Ga-B theta0=2.1008006276 Ktheta=0.252794904871 CenterHybridization=sp3 +P-Ga-Br theta0=1.9892153268 Ktheta=0.489371850434 CenterHybridization=sp3 +P-Ga-Cl theta0=1.9956060227 Ktheta=0.488266234331 CenterHybridization=sp3 +P-Ga-F theta0=1.9949257195 Ktheta=0.448170660574 CenterHybridization=sp3 +P-Ga-H theta0=2.0766923301 Ktheta=0.378312763133 CenterHybridization=sp3 +P-Ga-O theta0=1.9980866207 Ktheta=0.470680840631 CenterHybridization=sp3 +P-Ga-P theta0=2.0645066752 Ktheta=0.477774125963 CenterHybridization=sp3 +P-Ga-S theta0=2.0153147343 Ktheta=0.462871434885 CenterHybridization=sp3 +P-Ga-Se theta0=2.0552707855 Ktheta=0.448503477438 CenterHybridization=sp3 +P-Ge-Al theta0=1.9339655541 Ktheta=0.225244409363 CenterHybridization=sp3 +P-Ge-As theta0=2.0907319838 Ktheta=0.497648827116 CenterHybridization=sp3 +P-Ge-Br theta0=1.9814330363 Ktheta=0.572670211762 CenterHybridization=sp3 +P-Ge-Cl theta0=1.9598265339 Ktheta=0.619184343879 CenterHybridization=sp3 +P-Ge-F theta0=1.8966534865 Ktheta=0.605686138457 CenterHybridization=sp3 +P-Ge-H theta0=1.9769413669 Ktheta=0.502083707731 CenterHybridization=sp3 +P-Ge-N theta0=2.0626318949 Ktheta=0.597541659987 CenterHybridization=sp3 +P-Ge-O theta0=1.8654188840 Ktheta=0.608438385244 CenterHybridization=sp3 +P-Ge-P theta0=2.0744039783 Ktheta=0.547240709713 CenterHybridization=sp3 +P-Ge-S theta0=1.9099091854 Ktheta=0.630316799639 CenterHybridization=sp3 +P-Ge-Se theta0=1.9333152462 Ktheta=0.544418952229 CenterHybridization=sp3 +P-N-Al theta0=2.2090383870 Ktheta=0.497036800784 CenterHybridization=sp3 +P-N-B theta0=2.1792285473 Ktheta=0.807917659195 CenterHybridization=sp3 +P-N-Br theta0=2.0987189124 Ktheta=0.801838196658 CenterHybridization=sp3 +P-N-Cl theta0=2.0827977432 Ktheta=0.853690275208 CenterHybridization=sp3 +P-N-F theta0=1.9808033931 Ktheta=0.847966523608 CenterHybridization=sp3 +P-N-H theta0=2.1121643774 Ktheta=0.636582760200 CenterHybridization=sp3 +P-N-O theta0=2.0057769865 Ktheta=0.969543001072 CenterHybridization=sp3 +P-N-P theta0=2.1569550621 Ktheta=0.692551585799 CenterHybridization=sp3 +P-N-S theta0=2.2423429517 Ktheta=0.868549651521 CenterHybridization=sp3 +P-N-Se theta0=2.2126876313 Ktheta=0.750451015967 CenterHybridization=sp3 +P-O-Br theta0=2.1272766772 Ktheta=0.829523865511 CenterHybridization=sp3 +P-O-Cl theta0=2.0910122313 Ktheta=0.920901683504 CenterHybridization=sp3 +P-O-F theta0=1.9416072618 Ktheta=0.959736390513 CenterHybridization=sp3 +P-O-H theta0=2.0260346304 Ktheta=0.507094751475 CenterHybridization=sp3 +P-O-O theta0=1.9338731302 Ktheta=1.052967215112 CenterHybridization=sp3 +P-O-P theta0=2.2639581092 Ktheta=0.633622530525 CenterHybridization=sp3 +P-O-S theta0=2.0913826425 Ktheta=0.698286015575 CenterHybridization=sp3 +P-O-Se theta0=2.1143651939 Ktheta=0.628488307756 CenterHybridization=sp3 +P-P-Al theta0=2.1858877307 Ktheta=0.385711650458 CenterHybridization=sp3 +P-P-B theta0=2.1568134426 Ktheta=0.576895272172 CenterHybridization=sp3 +P-P-Br theta0=2.0334249042 Ktheta=0.572048186830 CenterHybridization=sp3 +P-P-Cl theta0=2.0061173501 Ktheta=0.593425762463 CenterHybridization=sp3 +P-P-F theta0=1.9536243319 Ktheta=0.566200022604 CenterHybridization=sp3 +P-P-H theta0=1.6388593486 Ktheta=0.676193921164 CenterHybridization=sp3 +P-P-O theta0=1.7369605970 Ktheta=0.987791750662 CenterHybridization=sp3 +P-P-P theta0=2.0261834284 Ktheta=0.533837141431 CenterHybridization=sp3 +P-P-S theta0=1.7576560096 Ktheta=0.813382170363 CenterHybridization=sp3 +P-P-Se theta0=1.7543179260 Ktheta=0.780226168586 CenterHybridization=sp3 +P-S-Br theta0=1.9017091050 Ktheta=0.847646871187 CenterHybridization=sp3 +P-S-Cl theta0=1.8852395638 Ktheta=0.885567871565 CenterHybridization=sp3 +P-S-F theta0=1.8453771565 Ktheta=0.826040554857 CenterHybridization=sp3 +P-S-H theta0=1.7430013037 Ktheta=0.665482514632 CenterHybridization=sp3 +P-S-O theta0=1.7690134308 Ktheta=1.001025436709 CenterHybridization=sp3 +P-S-P theta0=1.8414702702 Ktheta=0.875021537377 CenterHybridization=sp3 +P-S-S theta0=1.7950925506 Ktheta=0.869217842519 CenterHybridization=sp3 +P-S-Se theta0=1.8245653741 Ktheta=0.761745760191 CenterHybridization=sp3 +P-Se-Br theta0=1.8482074784 Ktheta=0.775446368046 CenterHybridization=sp3 +P-Se-Cl theta0=1.8315937556 Ktheta=0.799783024901 CenterHybridization=sp3 +P-Se-F theta0=1.8053016742 Ktheta=0.775482851106 CenterHybridization=sp3 +P-Se-H theta0=1.7010725191 Ktheta=0.655962314011 CenterHybridization=sp3 +P-Se-O theta0=1.7230365068 Ktheta=0.836298483378 CenterHybridization=sp3 +P-Se-P theta0=1.7809848710 Ktheta=0.823411825643 CenterHybridization=sp3 +P-Se-S theta0=1.7453338559 Ktheta=0.816883247410 CenterHybridization=sp3 +P-Se-Se theta0=1.7487926482 Ktheta=0.761857970982 CenterHybridization=sp3 +P-Si-Al theta0=1.9582024579 Ktheta=0.251021127420 CenterHybridization=sp3 +P-Si-As theta0=2.1108253573 Ktheta=0.546913640492 CenterHybridization=sp3 +P-Si-Br theta0=2.0203848984 Ktheta=0.667799434690 CenterHybridization=sp3 +P-Si-Cl theta0=2.0048904709 Ktheta=0.682926769184 CenterHybridization=sp3 +P-Si-F theta0=2.0023751897 Ktheta=0.637778422024 CenterHybridization=sp3 +P-Si-H theta0=1.9931900262 Ktheta=0.535461143208 CenterHybridization=sp3 +P-Si-N theta0=2.0997973234 Ktheta=0.663751013841 CenterHybridization=sp3 +P-Si-O theta0=1.9140844004 Ktheta=0.725895819563 CenterHybridization=sp3 +P-Si-P theta0=2.1045328432 Ktheta=0.591107457290 CenterHybridization=sp3 +P-Si-S theta0=1.9253266508 Ktheta=0.684146885948 CenterHybridization=sp3 +P-Si-Se theta0=1.9701304220 Ktheta=0.620061503383 CenterHybridization=sp3 +S-Al-Br theta0=2.0775947282 Ktheta=0.609372941064 CenterHybridization=sp2 +S-Al-Cl theta0=2.0561171882 Ktheta=0.591981632859 CenterHybridization=sp2 +S-Al-F theta0=2.0327269156 Ktheta=0.622135018601 CenterHybridization=sp2 +S-Al-H theta0=2.0334511382 Ktheta=0.436681682606 CenterHybridization=sp2 +S-Al-O theta0=2.0797197765 Ktheta=0.543257899138 CenterHybridization=sp2 +S-Al-S theta0=2.0513221282 Ktheta=0.490863271598 CenterHybridization=sp2 +S-As-Br theta0=1.8200097401 Ktheta=0.791352068124 CenterHybridization=sp3 +S-As-Cl theta0=2.0409763225 Ktheta=0.580459276759 CenterHybridization=sp3 +S-As-F theta0=1.9699972900 Ktheta=0.474472417532 CenterHybridization=sp3 +S-As-H theta0=2.0336688820 Ktheta=0.493787795492 CenterHybridization=sp3 +S-As-O theta0=1.8939212155 Ktheta=0.554760510319 CenterHybridization=sp3 +S-As-S theta0=2.0562388184 Ktheta=0.546853713026 CenterHybridization=sp3 +S-B-Br theta0=2.1561503868 Ktheta=0.968009572860 CenterHybridization=sp3 +S-B-Cl theta0=2.1592002938 Ktheta=0.958536961411 CenterHybridization=sp3 +S-B-F theta0=2.1197118024 Ktheta=1.043791266879 CenterHybridization=sp3 +S-B-H theta0=2.0200348359 Ktheta=0.646380595895 CenterHybridization=sp3 +S-B-O theta0=2.0367776450 Ktheta=0.965115016946 CenterHybridization=sp3 +S-B-S theta0=2.1575232541 Ktheta=0.831912764738 CenterHybridization=sp3 +S-C-O theta0=1.8289037320 Ktheta=1.256041944388 CenterHybridization=sp3 +S-C-S theta0=1.8804600215 Ktheta=1.050078163164 CenterHybridization=sp3 +S-C-Se theta0=1.8649308760 Ktheta=0.979501782425 CenterHybridization=sp3 +S-Ga-Br theta0=2.0582169781 Ktheta=0.546941387568 CenterHybridization=sp3 +S-Ga-Cl theta0=2.0068986118 Ktheta=0.601422863396 CenterHybridization=sp3 +S-Ga-F theta0=1.9884669803 Ktheta=0.487201257669 CenterHybridization=sp3 +S-Ga-H theta0=2.0003795366 Ktheta=0.431015172066 CenterHybridization=sp3 +S-Ga-O theta0=2.0156795378 Ktheta=0.533307265478 CenterHybridization=sp3 +S-Ga-S theta0=1.9951175347 Ktheta=0.559168071251 CenterHybridization=sp3 +S-Ge-O theta0=1.8707084324 Ktheta=0.739638187533 CenterHybridization=sp3 +S-Ge-S theta0=1.7819595902 Ktheta=0.763558364605 CenterHybridization=sp3 +S-Ge-Se theta0=1.7858709132 Ktheta=0.691030550914 CenterHybridization=sp3 +S-N-Br theta0=2.1748181876 Ktheta=1.016647814099 CenterHybridization=sp3 +S-N-Cl theta0=2.1507271217 Ktheta=1.111574988339 CenterHybridization=sp3 +S-N-F theta0=2.0448220560 Ktheta=1.130589360387 CenterHybridization=sp3 +S-N-H theta0=2.0517149442 Ktheta=0.749628047886 CenterHybridization=sp3 +S-N-O theta0=1.9417615140 Ktheta=1.032621241384 CenterHybridization=sp3 +S-N-S theta0=2.1190749719 Ktheta=0.959844573116 CenterHybridization=sp3 +S-O-Br theta0=1.9280492841 Ktheta=0.966128168577 CenterHybridization=sp3 +S-O-Cl theta0=1.9062506768 Ktheta=1.066900080809 CenterHybridization=sp3 +S-O-F theta0=1.7927401399 Ktheta=1.184592616428 CenterHybridization=sp3 +S-O-H theta0=1.8414215842 Ktheta=0.693603945111 CenterHybridization=sp3 +S-O-S theta0=1.9082527597 Ktheta=0.931833158455 CenterHybridization=sp3 +S-P-Br theta0=2.1247996728 Ktheta=0.645600348375 CenterHybridization=sp3 +S-P-Cl theta0=2.0793985312 Ktheta=0.708840766691 CenterHybridization=sp3 +S-P-F theta0=2.0173709416 Ktheta=0.633274915649 CenterHybridization=sp3 +S-P-H theta0=1.7007969979 Ktheta=0.774344118742 CenterHybridization=sp3 +S-P-O theta0=1.8674117673 Ktheta=0.714676320657 CenterHybridization=sp3 +S-P-S theta0=2.0646532584 Ktheta=0.655322586115 CenterHybridization=sp3 +S-S-Br theta0=1.7449497247 Ktheta=0.933565188856 CenterHybridization=sp3 +S-S-Cl theta0=1.7202744971 Ktheta=1.006703436929 CenterHybridization=sp3 +S-S-F theta0=1.6590679593 Ktheta=1.099310408440 CenterHybridization=sp3 +S-S-H theta0=1.6211224750 Ktheta=0.818765552264 CenterHybridization=sp3 +S-S-S theta0=1.6576426152 Ktheta=1.035464872629 CenterHybridization=sp3 +S-S-Se theta0=1.6862891492 Ktheta=0.869729766890 CenterHybridization=sp3 +S-Se-Br theta0=1.6868021678 Ktheta=0.866437815740 CenterHybridization=sp3 +S-Se-Cl theta0=1.6756728769 Ktheta=0.922869265084 CenterHybridization=sp3 +S-Se-F theta0=1.6545104002 Ktheta=0.864040730906 CenterHybridization=sp3 +S-Se-H theta0=1.5902364305 Ktheta=0.777424597427 CenterHybridization=sp3 +S-Se-S theta0=1.6186527015 Ktheta=0.971092568188 CenterHybridization=sp3 +S-Se-Se theta0=1.6306159509 Ktheta=0.861247466408 CenterHybridization=sp3 +S-Si-O theta0=1.8796310163 Ktheta=0.905929651390 CenterHybridization=sp3 +S-Si-S theta0=1.7899411450 Ktheta=0.845981817405 CenterHybridization=sp3 +S-Si-Se theta0=1.8373527348 Ktheta=0.755798685007 CenterHybridization=sp3 +Se-Al-Br theta0=2.0642267715 Ktheta=0.564073768670 CenterHybridization=sp2 +Se-Al-Cl theta0=2.1119250020 Ktheta=0.550346542790 CenterHybridization=sp2 +Se-Al-F theta0=2.0602514665 Ktheta=0.558359612247 CenterHybridization=sp2 +Se-Al-H theta0=2.0378510819 Ktheta=0.410241145297 CenterHybridization=sp2 +Se-Al-O theta0=2.1081382938 Ktheta=0.522263960409 CenterHybridization=sp2 +Se-Al-S theta0=2.0768933240 Ktheta=0.588361836240 CenterHybridization=sp2 +Se-Al-Se theta0=2.0892670870 Ktheta=0.454530814354 CenterHybridization=sp2 +Se-As-Br theta0=2.0710489790 Ktheta=0.537773099455 CenterHybridization=sp3 +Se-As-Cl theta0=2.0768481671 Ktheta=0.476963363225 CenterHybridization=sp3 +Se-As-F theta0=1.9191310862 Ktheta=0.558982685852 CenterHybridization=sp3 +Se-As-H theta0=2.0574770841 Ktheta=0.451651891821 CenterHybridization=sp3 +Se-As-O theta0=1.8258618972 Ktheta=0.715968726087 CenterHybridization=sp3 +Se-As-S theta0=2.1050136622 Ktheta=0.397234177474 CenterHybridization=sp3 +Se-As-Se theta0=2.0880563242 Ktheta=0.495607946195 CenterHybridization=sp3 +Se-B-Br theta0=2.1862843742 Ktheta=0.826643088082 CenterHybridization=sp3 +Se-B-Cl theta0=2.1774329945 Ktheta=0.908147693266 CenterHybridization=sp3 +Se-B-F theta0=2.1282506669 Ktheta=0.946214120525 CenterHybridization=sp3 +Se-B-H theta0=2.0159815705 Ktheta=0.587416048235 CenterHybridization=sp3 +Se-B-O theta0=2.0351553685 Ktheta=0.884336554428 CenterHybridization=sp3 +Se-B-S theta0=2.1386799203 Ktheta=0.818528422088 CenterHybridization=sp3 +Se-B-Se theta0=2.1677935323 Ktheta=0.729517439829 CenterHybridization=sp3 +Se-C-Se theta0=1.8874572263 Ktheta=0.944054123378 CenterHybridization=sp3 +Se-Ga-Br theta0=2.0226821391 Ktheta=0.567163724771 CenterHybridization=sp3 +Se-Ga-Cl theta0=2.0531600122 Ktheta=0.547592745863 CenterHybridization=sp3 +Se-Ga-F theta0=1.9387421537 Ktheta=0.541876992779 CenterHybridization=sp3 +Se-Ga-H theta0=2.0021468430 Ktheta=0.408536520146 CenterHybridization=sp3 +Se-Ga-O theta0=2.0516487770 Ktheta=0.515497979344 CenterHybridization=sp3 +Se-Ga-S theta0=2.0589243356 Ktheta=0.533492051134 CenterHybridization=sp3 +Se-Ga-Se theta0=1.9953462618 Ktheta=0.517312854708 CenterHybridization=sp3 +Se-Ge-Se theta0=1.7888421059 Ktheta=0.730562987174 CenterHybridization=sp3 +Se-N-Br theta0=2.1707130144 Ktheta=0.886640209996 CenterHybridization=sp3 +Se-N-Cl theta0=2.1571855538 Ktheta=0.953373415282 CenterHybridization=sp3 +Se-N-F theta0=2.0478933381 Ktheta=0.966195587059 CenterHybridization=sp3 +Se-N-H theta0=2.0637122956 Ktheta=0.680242509690 CenterHybridization=sp3 +Se-N-O theta0=1.9446756065 Ktheta=0.900494332862 CenterHybridization=sp3 +Se-N-S theta0=2.1430888244 Ktheta=0.815663880030 CenterHybridization=sp3 +Se-N-Se theta0=2.1311093906 Ktheta=0.757346796695 CenterHybridization=sp3 +Se-O-Br theta0=1.9273708589 Ktheta=0.891526229683 CenterHybridization=sp3 +Se-O-Cl theta0=1.9091789553 Ktheta=0.947545987530 CenterHybridization=sp3 +Se-O-F theta0=1.7778246592 Ktheta=1.028895793730 CenterHybridization=sp3 +Se-O-H theta0=1.8328266353 Ktheta=0.654344088293 CenterHybridization=sp3 +Se-O-O theta0=1.7793129869 Ktheta=1.095744362965 CenterHybridization=sp3 +Se-O-S theta0=1.9286218708 Ktheta=0.841583671339 CenterHybridization=sp3 +Se-O-Se theta0=1.9334579443 Ktheta=0.817028559323 CenterHybridization=sp3 +Se-P-Br theta0=1.8669629506 Ktheta=0.815118559299 CenterHybridization=sp3 +Se-P-Cl theta0=2.0848596612 Ktheta=0.589477975051 CenterHybridization=sp3 +Se-P-F theta0=2.0374345870 Ktheta=0.548864816523 CenterHybridization=sp3 +Se-P-H theta0=2.0581105165 Ktheta=0.509252228827 CenterHybridization=sp3 +Se-P-O theta0=1.8982428496 Ktheta=0.643699207078 CenterHybridization=sp3 +Se-P-S theta0=2.1077491586 Ktheta=0.526892410177 CenterHybridization=sp3 +Se-P-Se theta0=2.0935379688 Ktheta=0.582950139778 CenterHybridization=sp3 +Se-S-Br theta0=1.7258491887 Ktheta=0.834801317617 CenterHybridization=sp3 +Se-S-Cl theta0=1.7330208635 Ktheta=0.904029625392 CenterHybridization=sp3 +Se-S-F theta0=1.6914847658 Ktheta=0.967581442601 CenterHybridization=sp3 +Se-S-H theta0=1.6088922741 Ktheta=0.740975192223 CenterHybridization=sp3 +Se-S-Se theta0=1.6590130198 Ktheta=0.902907430367 CenterHybridization=sp3 +Se-Se-Br theta0=1.6856112476 Ktheta=0.801326672048 CenterHybridization=sp3 +Se-Se-Cl theta0=1.6773737369 Ktheta=0.836693984697 CenterHybridization=sp3 +Se-Se-F theta0=1.6352197001 Ktheta=0.786956074222 CenterHybridization=sp3 +Se-Se-H theta0=1.5945010832 Ktheta=0.745086981847 CenterHybridization=sp3 +Se-Se-Se theta0=1.6339607871 Ktheta=0.842129258674 CenterHybridization=sp3 +Se-Si-Se theta0=1.7875122278 Ktheta=0.760091174672 CenterHybridization=sp3 +Si-Al-Al theta0=2.1341459301 Ktheta=0.261867505532 CenterHybridization=sp2 +Si-Al-As theta0=2.0533867811 Ktheta=0.366956736322 CenterHybridization=sp2 +Si-Al-B theta0=2.1482959008 Ktheta=0.264633003605 CenterHybridization=sp2 +Si-Al-Br theta0=2.0698554967 Ktheta=0.406624934428 CenterHybridization=sp2 +Si-Al-C theta0=2.1565644330 Ktheta=0.405590857687 CenterHybridization=sp2 +Si-Al-Cl theta0=2.0472658800 Ktheta=0.450472029953 CenterHybridization=sp2 +Si-Al-F theta0=2.0554787048 Ktheta=0.470399216739 CenterHybridization=sp2 +Si-Al-Ga theta0=2.1415533919 Ktheta=0.296979588614 CenterHybridization=sp2 +Si-Al-H theta0=2.0952042800 Ktheta=0.364233619473 CenterHybridization=sp2 +Si-Al-N theta0=2.1126437478 Ktheta=0.457213057391 CenterHybridization=sp2 +Si-Al-O theta0=2.0180363536 Ktheta=0.402289792348 CenterHybridization=sp2 +Si-Al-P theta0=2.0676186688 Ktheta=0.392419270354 CenterHybridization=sp2 +Si-Al-S theta0=2.0101681266 Ktheta=0.457463800657 CenterHybridization=sp2 +Si-Al-Se theta0=2.0778485060 Ktheta=0.442600239168 CenterHybridization=sp2 +Si-Al-Si theta0=2.1087031992 Ktheta=0.395516214583 CenterHybridization=sp2 +Si-As-Al theta0=2.2691505580 Ktheta=0.311257919233 CenterHybridization=sp3 +Si-As-As theta0=1.6554669960 Ktheta=0.636928209083 CenterHybridization=sp3 +Si-As-B theta0=2.2401962788 Ktheta=0.406705214232 CenterHybridization=sp3 +Si-As-Br theta0=2.1294669240 Ktheta=0.416681221945 CenterHybridization=sp3 +Si-As-C theta0=2.1728427210 Ktheta=0.452359820697 CenterHybridization=sp3 +Si-As-Cl theta0=1.6863786584 Ktheta=0.659400111260 CenterHybridization=sp3 +Si-As-F theta0=1.6797271720 Ktheta=0.630327939454 CenterHybridization=sp3 +Si-As-Ga theta0=2.2755476871 Ktheta=0.347757961857 CenterHybridization=sp3 +Si-As-H theta0=2.1936568526 Ktheta=0.404715470247 CenterHybridization=sp3 +Si-As-N theta0=1.6653446991 Ktheta=0.709513659284 CenterHybridization=sp3 +Si-As-O theta0=1.6230981197 Ktheta=0.663845211621 CenterHybridization=sp3 +Si-As-P theta0=1.6571462785 Ktheta=0.632469707083 CenterHybridization=sp3 +Si-As-S theta0=2.1131307976 Ktheta=0.464169746555 CenterHybridization=sp3 +Si-As-Se theta0=2.0751325067 Ktheta=0.425267878958 CenterHybridization=sp3 +Si-As-Si theta0=1.6652702520 Ktheta=0.624141805017 CenterHybridization=sp3 +Si-B-Al theta0=2.2435238502 Ktheta=0.237081103835 CenterHybridization=sp3 +Si-B-As theta0=2.1191659716 Ktheta=0.517362639916 CenterHybridization=sp3 +Si-B-B theta0=2.1211801112 Ktheta=0.181439899013 CenterHybridization=sp3 +Si-B-Br theta0=2.0836845973 Ktheta=0.612683377072 CenterHybridization=sp3 +Si-B-C theta0=2.2197639169 Ktheta=0.529413007749 CenterHybridization=sp3 +Si-B-Cl theta0=2.0904288026 Ktheta=0.624056587387 CenterHybridization=sp3 +Si-B-F theta0=2.0828091280 Ktheta=0.670685760109 CenterHybridization=sp3 +Si-B-Ga theta0=2.2175668598 Ktheta=0.259154699532 CenterHybridization=sp3 +Si-B-H theta0=2.0741981464 Ktheta=0.438355894454 CenterHybridization=sp3 +Si-B-N theta0=2.1202591795 Ktheta=0.625509398766 CenterHybridization=sp3 +Si-B-O theta0=2.0764667690 Ktheta=0.641167466583 CenterHybridization=sp3 +Si-B-P theta0=2.1459304857 Ktheta=0.441550321801 CenterHybridization=sp3 +Si-B-S theta0=2.0878957190 Ktheta=0.526273737776 CenterHybridization=sp3 +Si-B-Se theta0=2.0805558608 Ktheta=0.557279347485 CenterHybridization=sp3 +Si-B-Si theta0=2.2517256253 Ktheta=0.362445437720 CenterHybridization=sp3 +Si-C-Al theta0=2.0679816781 Ktheta=0.433928863577 CenterHybridization=sp3 +Si-C-As theta0=2.0381900091 Ktheta=0.688965004361 CenterHybridization=sp3 +Si-C-B theta0=2.0576809979 Ktheta=0.539425006617 CenterHybridization=sp3 +Si-C-Br theta0=1.9376866449 Ktheta=0.691151875691 CenterHybridization=sp3 +Si-C-C theta0=2.0018942258 Ktheta=0.707530184541 CenterHybridization=sp3 +Si-C-Cl theta0=1.9398008041 Ktheta=0.703644656664 CenterHybridization=sp3 +Si-C-F theta0=1.9312144352 Ktheta=0.731238187230 CenterHybridization=sp3 +Si-C-Ga theta0=2.0478107578 Ktheta=0.489737358286 CenterHybridization=sp3 +Si-C-H theta0=1.9449732951 Ktheta=0.531369635187 CenterHybridization=sp3 +Si-C-N theta0=2.0370822730 Ktheta=0.740687765974 CenterHybridization=sp3 +Si-C-O theta0=1.8990894565 Ktheta=0.737398440109 CenterHybridization=sp3 +Si-C-P theta0=2.0384512587 Ktheta=0.686709636427 CenterHybridization=sp3 +Si-C-S theta0=1.9481494644 Ktheta=0.700183805901 CenterHybridization=sp3 +Si-C-Se theta0=1.9467956143 Ktheta=0.722674310297 CenterHybridization=sp3 +Si-C-Si theta0=2.0262602997 Ktheta=0.568375053367 CenterHybridization=sp3 +Si-Ga-Al theta0=2.1582784615 Ktheta=0.214765682794 CenterHybridization=sp3 +Si-Ga-As theta0=1.9879631404 Ktheta=0.393511549989 CenterHybridization=sp3 +Si-Ga-B theta0=2.1473133904 Ktheta=0.228994772576 CenterHybridization=sp3 +Si-Ga-Br theta0=1.9854297339 Ktheta=0.413354404878 CenterHybridization=sp3 +Si-Ga-C theta0=2.1208638262 Ktheta=0.403559098943 CenterHybridization=sp3 +Si-Ga-Cl theta0=2.0121307756 Ktheta=0.413514898542 CenterHybridization=sp3 +Si-Ga-F theta0=1.9975371614 Ktheta=0.352505195028 CenterHybridization=sp3 +Si-Ga-Ga theta0=2.1846418797 Ktheta=0.283900110074 CenterHybridization=sp3 +Si-Ga-H theta0=2.0972656500 Ktheta=0.350438709825 CenterHybridization=sp3 +Si-Ga-N theta0=2.0191516976 Ktheta=0.447801126208 CenterHybridization=sp3 +Si-Ga-O theta0=2.0084535937 Ktheta=0.422962937955 CenterHybridization=sp3 +Si-Ga-P theta0=2.0658815409 Ktheta=0.403653018303 CenterHybridization=sp3 +Si-Ga-S theta0=1.9971293181 Ktheta=0.448396545161 CenterHybridization=sp3 +Si-Ga-Se theta0=2.0792097581 Ktheta=0.416250423525 CenterHybridization=sp3 +Si-Ga-Si theta0=2.1174562017 Ktheta=0.364694541396 CenterHybridization=sp3 +Si-Ge-Al theta0=2.0658458803 Ktheta=0.324910683518 CenterHybridization=sp3 +Si-Ge-As theta0=2.0016998746 Ktheta=0.429119002385 CenterHybridization=sp3 +Si-Ge-B theta0=2.0017569277 Ktheta=0.432199509642 CenterHybridization=sp3 +Si-Ge-Br theta0=1.9047659235 Ktheta=0.488653250637 CenterHybridization=sp3 +Si-Ge-C theta0=1.9669084796 Ktheta=0.500679736796 CenterHybridization=sp3 +Si-Ge-Cl theta0=1.8876247360 Ktheta=0.498604438208 CenterHybridization=sp3 +Si-Ge-F theta0=1.8444263046 Ktheta=0.530579591679 CenterHybridization=sp3 +Si-Ge-Ga theta0=1.9979592850 Ktheta=0.368721997444 CenterHybridization=sp3 +Si-Ge-Ge theta0=1.9592911489 Ktheta=0.420271990687 CenterHybridization=sp3 +Si-Ge-H theta0=1.9334759823 Ktheta=0.448183591780 CenterHybridization=sp3 +Si-Ge-N theta0=2.0086668555 Ktheta=0.533753951322 CenterHybridization=sp3 +Si-Ge-O theta0=1.8017276641 Ktheta=0.512660736567 CenterHybridization=sp3 +Si-Ge-P theta0=2.0224702701 Ktheta=0.432587145268 CenterHybridization=sp3 +Si-Ge-S theta0=1.8836942109 Ktheta=0.539125625774 CenterHybridization=sp3 +Si-Ge-Se theta0=1.8933635863 Ktheta=0.504009755313 CenterHybridization=sp3 +Si-Ge-Si theta0=2.0226848234 Ktheta=0.407374496639 CenterHybridization=sp3 +Si-N-Al theta0=2.2852769901 Ktheta=0.452490035611 CenterHybridization=sp3 +Si-N-As theta0=2.2279976525 Ktheta=0.554359456629 CenterHybridization=sp3 +Si-N-B theta0=2.2411224499 Ktheta=0.671439726534 CenterHybridization=sp3 +Si-N-Br theta0=2.1454661583 Ktheta=0.579491176469 CenterHybridization=sp3 +Si-N-C theta0=2.2115581904 Ktheta=0.881712671669 CenterHybridization=sp3 +Si-N-Cl theta0=2.1326200551 Ktheta=0.608703373917 CenterHybridization=sp3 +Si-N-F theta0=2.0466557042 Ktheta=0.618923369502 CenterHybridization=sp3 +Si-N-Ga theta0=2.2505822165 Ktheta=0.602540553162 CenterHybridization=sp3 +Si-N-H theta0=2.1741893874 Ktheta=0.512945193929 CenterHybridization=sp3 +Si-N-N theta0=2.1714594079 Ktheta=0.729590889283 CenterHybridization=sp3 +Si-N-O theta0=2.0559157772 Ktheta=0.736173425342 CenterHybridization=sp3 +Si-N-P theta0=2.2456646903 Ktheta=0.537678002617 CenterHybridization=sp3 +Si-N-S theta0=2.1402292316 Ktheta=0.703782124924 CenterHybridization=sp3 +Si-N-Se theta0=2.1606302665 Ktheta=0.625715264773 CenterHybridization=sp3 +Si-N-Si theta0=2.2459387436 Ktheta=0.596426971210 CenterHybridization=sp3 +Si-O-Al theta0=3.1213748310 Ktheta=0.114692346877 CenterHybridization=sp3 +Si-O-As theta0=2.2339191061 Ktheta=0.353747763417 CenterHybridization=sp3 +Si-O-B theta0=2.3553070644 Ktheta=0.232724532994 CenterHybridization=sp3 +Si-O-Br theta0=1.9961663414 Ktheta=0.599618888620 CenterHybridization=sp3 +Si-O-C theta0=2.1550651585 Ktheta=0.396453587225 CenterHybridization=sp3 +Si-O-Cl theta0=1.9632458940 Ktheta=0.625871747661 CenterHybridization=sp3 +Si-O-F theta0=1.7851967519 Ktheta=0.685392421077 CenterHybridization=sp3 +Si-O-Ga theta0=2.5249542316 Ktheta=0.130567967634 CenterHybridization=sp3 +Si-O-H theta0=2.0717272489 Ktheta=0.339731942778 CenterHybridization=sp3 +Si-O-N theta0=2.0376421782 Ktheta=0.597773781684 CenterHybridization=sp3 +Si-O-O theta0=1.8490710045 Ktheta=0.666741813647 CenterHybridization=sp3 +Si-O-P theta0=2.2837206154 Ktheta=0.290858217547 CenterHybridization=sp3 +Si-O-S theta0=2.1289798358 Ktheta=0.405335253700 CenterHybridization=sp3 +Si-O-Se theta0=2.1450784753 Ktheta=0.392605788759 CenterHybridization=sp3 +Si-O-Si theta0=3.0880606181 Ktheta=0.042944355224 CenterHybridization=sp3 +Si-P-Al theta0=2.2663949850 Ktheta=0.351521415697 CenterHybridization=sp3 +Si-P-As theta0=1.7195358964 Ktheta=0.629826752441 CenterHybridization=sp3 +Si-P-B theta0=2.2475774437 Ktheta=0.455178443423 CenterHybridization=sp3 +Si-P-Br theta0=1.7185766373 Ktheta=0.685821749024 CenterHybridization=sp3 +Si-P-C theta0=2.1405540723 Ktheta=0.574173499031 CenterHybridization=sp3 +Si-P-Cl theta0=1.7384764905 Ktheta=0.716735635362 CenterHybridization=sp3 +Si-P-F theta0=1.7190450156 Ktheta=0.797043528313 CenterHybridization=sp3 +Si-P-Ga theta0=2.2651422802 Ktheta=0.405495684088 CenterHybridization=sp3 +Si-P-H theta0=1.6604304226 Ktheta=0.538569724999 CenterHybridization=sp3 +Si-P-N theta0=1.7375524730 Ktheta=0.761490196309 CenterHybridization=sp3 +Si-P-O theta0=1.7186181325 Ktheta=0.750429291192 CenterHybridization=sp3 +Si-P-P theta0=2.2275375855 Ktheta=0.448741260573 CenterHybridization=sp3 +Si-P-S theta0=1.7377036325 Ktheta=0.651074090051 CenterHybridization=sp3 +Si-P-Se theta0=1.7474794171 Ktheta=0.755294286932 CenterHybridization=sp3 +Si-P-Si theta0=1.7503913436 Ktheta=0.552682928472 CenterHybridization=sp3 +Si-S-Al theta0=1.7928503941 Ktheta=0.490104494980 CenterHybridization=sp3 +Si-S-As theta0=1.7896065235 Ktheta=0.718106296593 CenterHybridization=sp3 +Si-S-B theta0=1.7988494747 Ktheta=0.608316753951 CenterHybridization=sp3 +Si-S-Br theta0=1.7314260427 Ktheta=0.694812345346 CenterHybridization=sp3 +Si-S-C theta0=1.7540301090 Ktheta=0.750451375162 CenterHybridization=sp3 +Si-S-Cl theta0=1.7486789906 Ktheta=0.707499746732 CenterHybridization=sp3 +Si-S-F theta0=1.7024487793 Ktheta=0.698808721865 CenterHybridization=sp3 +Si-S-Ga theta0=1.8003701260 Ktheta=0.499771114326 CenterHybridization=sp3 +Si-S-H theta0=1.6576515513 Ktheta=0.576298898026 CenterHybridization=sp3 +Si-S-N theta0=1.8222989471 Ktheta=0.755082809529 CenterHybridization=sp3 +Si-S-O theta0=1.6706966308 Ktheta=0.759034737832 CenterHybridization=sp3 +Si-S-P theta0=1.8072157559 Ktheta=0.666383797902 CenterHybridization=sp3 +Si-S-S theta0=1.7297618399 Ktheta=0.730250740430 CenterHybridization=sp3 +Si-S-Se theta0=1.7317849313 Ktheta=0.704602321529 CenterHybridization=sp3 +Si-S-Si theta0=1.7974926314 Ktheta=0.537097585538 CenterHybridization=sp3 +Si-Se-Al theta0=1.7211054693 Ktheta=0.526494725127 CenterHybridization=sp3 +Si-Se-As theta0=1.7216640846 Ktheta=0.703131617483 CenterHybridization=sp3 +Si-Se-B theta0=1.7254952167 Ktheta=0.651394254420 CenterHybridization=sp3 +Si-Se-Br theta0=1.6955644066 Ktheta=0.622993135800 CenterHybridization=sp3 +Si-Se-C theta0=1.6963139417 Ktheta=0.711081127122 CenterHybridization=sp3 +Si-Se-Cl theta0=1.6968172475 Ktheta=0.632170832769 CenterHybridization=sp3 +Si-Se-F theta0=1.6789373372 Ktheta=0.642715524911 CenterHybridization=sp3 +Si-Se-Ga theta0=1.7358693997 Ktheta=0.542117180605 CenterHybridization=sp3 +Si-Se-H theta0=1.6149755092 Ktheta=0.589634109881 CenterHybridization=sp3 +Si-Se-N theta0=1.7840855775 Ktheta=0.689592154157 CenterHybridization=sp3 +Si-Se-O theta0=1.6062989120 Ktheta=0.639429517707 CenterHybridization=sp3 +Si-Se-P theta0=1.7288677339 Ktheta=0.694700905910 CenterHybridization=sp3 +Si-Se-S theta0=1.6678721767 Ktheta=0.691767839121 CenterHybridization=sp3 +Si-Se-Se theta0=1.6610246112 Ktheta=0.685736678852 CenterHybridization=sp3 +Si-Se-Si theta0=1.6859560409 Ktheta=0.583960570712 CenterHybridization=sp3 +Si-Si-Al theta0=2.0454854173 Ktheta=0.338269877409 CenterHybridization=sp3 +Si-Si-As theta0=1.9958387484 Ktheta=0.427861253386 CenterHybridization=sp3 +Si-Si-B theta0=2.0486807382 Ktheta=0.423143551492 CenterHybridization=sp3 +Si-Si-Br theta0=1.9141653627 Ktheta=0.508666593636 CenterHybridization=sp3 +Si-Si-C theta0=1.9622837219 Ktheta=0.541796302027 CenterHybridization=sp3 +Si-Si-Cl theta0=1.9239277694 Ktheta=0.574331306013 CenterHybridization=sp3 +Si-Si-F theta0=1.9481128387 Ktheta=0.524943610953 CenterHybridization=sp3 +Si-Si-Ga theta0=2.0152842626 Ktheta=0.343776921532 CenterHybridization=sp3 +Si-Si-H theta0=1.9282838756 Ktheta=0.471209283277 CenterHybridization=sp3 +Si-Si-N theta0=2.0332282597 Ktheta=0.553031041781 CenterHybridization=sp3 +Si-Si-O theta0=1.8495644894 Ktheta=0.616103357090 CenterHybridization=sp3 +Si-Si-P theta0=2.0258086259 Ktheta=0.482464139753 CenterHybridization=sp3 +Si-Si-S theta0=1.8800957661 Ktheta=0.599002858033 CenterHybridization=sp3 +Si-Si-Se theta0=1.8927521136 Ktheta=0.500915569778 CenterHybridization=sp3 +Si-Si-Si theta0=1.9982258299 Ktheta=0.436439156125 CenterHybridization=sp3 +C@C@C theta0=2.0943951 Ktheta=2.23792624 CenterHybridization=sp2 +C@C#C theta0=2.0943951 Ktheta=2.23792624 CenterHybridization=sp2 +C#C#C theta0=2.0943951 Ktheta=2.23792624 CenterHybridization=sp2 +H-C@C theta0=2.095267765 Ktheta=1.081569144 CenterHybridization=sp2 +H-C#C theta0=2.095267765 Ktheta=1.081569144 CenterHybridization=sp2 +H@C@C theta0=2.095267765 Ktheta=1.081569144 CenterHybridization=sp2 +H#C@C theta0=2.095267765 Ktheta=1.081569144 CenterHybridization=sp2 +H@C#C theta0=2.095267765 Ktheta=1.081569144 CenterHybridization=sp2 +H#C#C theta0=2.095267765 Ktheta=1.081569144 CenterHybridization=sp2 diff --git a/sim/src/branch b/sim/src/branch new file mode 100755 index 000000000..ee36fa20c --- /dev/null +++ b/sim/src/branch @@ -0,0 +1,33 @@ + Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. + +CVS branching is sometimes usefully done with small subsets of a +source tree. In that case, you would change the branch file to be +a list of the files specific to your branch, like this: + +----- 8< ----- +simulator.h +printers.h +part.c +minimize.c +readmmp.c +writemovie.c +debug.h +----- 8< ----- + +When you want to check out your branch, you first check out the +entire tree, then check out your branch on top of it: + +cvs co sim +cd sim/src +cvs up -r wware_mybranch_20051228 branch +cvs up -r wware_mybranch_20051228 `cat branch` + +When you've done some work in your branch and you want to commit +it, use this command: + +cvs commit -r wware_mybranch_20051228 `cat branch` + +and if the contents of the branch files changes (you need +to branch more files, or fewer, or different ones), then: + +cvs commit -r wware_mybranch_20051228 branch diff --git a/sim/src/cube.mmp b/sim/src/cube.mmp new file mode 100755 index 000000000..ea66830cf --- /dev/null +++ b/sim/src/cube.mmp @@ -0,0 +1,305 @@ +# Copyright (c) 2006 Nanorex, Inc. All rights reserved. +kelvin 300 +group (Data) +csys (Csys) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (XZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (cube) +mol (cube) def +atom 1 (1) (-3805, -4285, -1259) def +atom 2 (1) (-3846, -4155, 2186) def +atom 3 (8) (-3946, -2806, -2666) def +atom 4 (8) (-3996, -2637, 819) def +atom 5 (1) (-3876, -2247, 4066) def +atom 6 (1) (-3815, -1389, -4135) def +atom 7 (8) (-4006, -969, -869) def +atom 8 (8) (-4016, -879, 2547) def +atom 9 (8) (-3946, 698, -2547) def +atom 10 (8) (-4026, 819, 889) def +atom 11 (1) (-3935, 1209, 4135) def +atom 12 (1) (-3755, 2077, -4046) def +atom 13 (8) (-3956, 2517, -758) def +atom 14 (8) (-4036, 2607, 2637) def +atom 15 (1) (-3756, 4016, -2136) def +atom 16 (1) (-3856, 4075, 1229) def +atom 17 (8) (-2277, -4386, -2617) def +atom 18 (8) (-2327, -4316, 808) def +atom 19 (1) (-1967, -4165, 4106) def +atom 20 (8) (-2297, -2756, -4256) def +atom 21 (6) (-3147, -3596, -1838) def +bond1 1 3 17 +atom 22 (6) (-2347, -2706, -889) def +bond1 21 +atom 23 (6) (-3167, -3487, 1607) def +bond1 2 4 18 +atom 24 (6) (-2337, -2647, 2597) def +bond1 23 +atom 25 (6) (-3147, -1968, -3457) def +bond1 3 6 20 +atom 26 (6) (-2327, -1019, -2597) def +bond1 25 +atom 27 (6) (-3217, -1808, -10) def +bond1 4 7 22 +atom 28 (6) (-2366, -939, 879) def +bond1 27 +atom 29 (6) (-3187, -1668, 3407) def +bond1 5 8 24 +atom 30 (8) (-2377, -859, 4256) def +bond1 29 +atom 31 (8) (-2247, 698, -4196) def +atom 32 (6) (-3197, -139, -1698) def +bond1 7 9 26 +atom 33 (6) (-2347, 778, -829) def +bond1 32 +atom 34 (6) (-3237, -30, 1728) def +bond1 8 10 28 +atom 35 (6) (-2397, 849, 2646) def +bond1 34 +atom 36 (6) (-3097, 1497, -3367) def +bond1 9 12 31 +atom 37 (6) (-2267, 2487, -2527) def +bond1 36 +atom 38 (6) (-3207, 1658, 60) def +bond1 10 13 33 +atom 39 (6) (-2347, 2547, 939) def +bond1 38 +atom 40 (6) (-3257, 1788, 3477) def +bond1 11 14 35 +atom 41 (8) (-2437, 2597, 4286) def +bond1 40 +atom 42 (1) (-1827, 3995, -4015) def +atom 43 (6) (-3097, 3337, -1547) def +bond1 13 15 37 +atom 44 (8) (-2257, 4166, -758) def +bond1 43 +atom 45 (6) (-3217, 3417, 1838) def +bond1 14 16 39 +atom 46 (8) (-2397, 4216, 2656) def +bond1 45 +atom 47 (1) (-859, -4215, -4096) def +atom 48 (8) (-598, -4356, -819) def +atom 49 (8) (-568, -4326, 2627) def +atom 50 (6) (-1487, -3566, -3437) def +bond1 17 20 47 +atom 51 (6) (-598, -2696, -2566) def +bond1 50 +atom 52 (6) (-1457, -3556, 0) def +bond1 18 22 48 +atom 53 (6) (-618, -2697, 919) def +bond1 52 +atom 54 (6) (-1377, -3487, 3447) def +bond1 19 24 49 +atom 55 (8) (-598, -2656, 4306) def +bond1 54 +atom 56 (8) (-538, -959, -4216) def +atom 57 (6) (-1457, -1828, -1698) def +bond1 22 26 51 +atom 58 (6) (-598, -959, -819) def +bond1 57 +atom 59 (6) (-1477, -1788, 1758) def +bond1 24 28 53 +atom 60 (6) (-638, -939, 2676) def +bond1 59 +atom 61 (6) (-1407, -129, -3427) def +bond1 26 31 56 +atom 62 (6) (-558, 768, -2556) def +bond1 61 +atom 63 (6) (-1467, -70, 40) def +bond1 28 33 58 +atom 64 (6) (-618, 788, 929) def +bond1 63 +atom 65 (6) (-1517, -20, 3517) def +bond1 30 35 60 +atom 66 (8) (-678, 819, 4326) def +bond1 65 +atom 67 (8) (-448, 2497, -4166) def +atom 68 (6) (-1417, 1628, -1658) def +bond1 33 37 62 +atom 69 (6) (-558, 2527, -808) def +bond1 68 +atom 70 (6) (-1487, 1668, 1788) def +bond1 35 39 64 +atom 71 (6) (-668, 2557, 2666) def +bond1 70 +atom 72 (6) (-1257, 3327, -3347) def +bond1 37 42 67 +atom 73 (8) (-468, 4156, -2497) def +bond1 72 +atom 74 (6) (-1427, 3397, 90) def +bond1 39 44 69 +atom 75 (8) (-568, 4196, 909) def +bond1 74 +atom 76 (6) (-1607, 3417, 3496) def +bond1 41 46 71 +atom 77 (1) (-1029, 4075, 4175) def +bond1 76 +atom 78 (8) (1089, -4326, -2477) def +atom 79 (8) (1109, -4366, 959) def +atom 80 (1) (1389, -4225, 4246) def +atom 81 (8) (1139, -2647, -4156) def +atom 82 (6) (240, -3556, -1648) def +bond1 48 51 78 +atom 83 (6) (1139, -2697, -768) def +bond1 82 +atom 84 (6) (270, -3556, 1798) def +bond1 49 53 79 +atom 85 (6) (1129, -2706, 2716) def +bond1 84 +atom 86 (6) (280, -1808, -3407) def +bond1 51 56 81 +atom 87 (6) (1159, -949, -2526) def +bond1 86 +atom 88 (6) (250, -1818, 70) def +bond1 53 58 83 +atom 89 (6) (1119, -969, 969) def +bond1 88 +atom 90 (6) (240, -1808, 3556) def +bond1 55 60 85 +atom 91 (8) (1059, -959, 4376) def +bond1 90 +atom 92 (8) (1209, 788, -4186) def +atom 93 (6) (280, -80, -1668) def +bond1 58 62 87 +atom 94 (6) (1159, 778, -788) def +bond1 93 +atom 95 (6) (230, -80, 1808) def +bond1 60 64 89 +atom 96 (6) (1089, 768, 2696) def +bond1 95 +atom 97 (6) (360, 1638, -3397) def +bond1 62 67 92 +atom 98 (6) (1249, 2517, -2537) def +bond1 97 +atom 99 (6) (270, 1648, 60) def +bond1 64 69 94 +atom 100 (6) (1139, 2517, 929) def +bond1 99 +atom 101 (6) (170, 1658, 3536) def +bond1 66 71 96 +atom 102 (8) (1009, 2507, 4306) def +bond1 101 +atom 103 (1) (1669, 4016, -4065) def +atom 104 (6) (360, 3387, -1658) def +bond1 69 73 98 +atom 105 (8) (1199, 4166, -798) def +bond1 104 +atom 106 (6) (229, 3397, 1768) def +bond1 71 75 100 +atom 107 (8) (1079, 4156, 2617) def +bond1 106 +atom 108 (1) (2497, -4165, -3955) def +atom 109 (8) (2836, -4336, -668) def +atom 110 (8) (2816, -4396, 2786) def +atom 111 (6) (1908, -3487, -3297) def +bond1 78 81 108 +atom 112 (6) (2866, -2657, -2447) def +bond1 111 +atom 113 (6) (1978, -3566, 140) def +bond1 79 83 109 +atom 114 (6) (2856, -2736, 1049) def +bond1 113 +atom 115 (6) (2008, -3576, 3596) def +bond1 80 85 110 +atom 116 (8) (2816, -2776, 4415) def +bond1 115 +atom 117 (8) (2886, -889, -4126) def +atom 118 (6) (1998, -1798, -1607) def +bond1 83 87 112 +atom 119 (6) (2896, -969, -728) def +bond1 118 +atom 120 (6) (1968, -1848, 1858) def +bond1 85 89 114 +atom 121 (6) (2836, -1029, 2756) def +bond1 120 +atom 122 (6) (2037, -50, -3377) def +bond1 87 92 117 +atom 123 (6) (2936, 788, -2497) def +bond1 122 +atom 124 (6) (1998, -99, 99) def +bond1 89 94 119 +atom 125 (6) (2886, 738, 979) def +bond1 124 +atom 126 (6) (1928, -139, 3586) def +bond1 91 96 121 +atom 127 (8) (2756, 698, 4356) def +bond1 126 +atom 128 (8) (3006, 2477, -4166) def +atom 129 (6) (2058, 1638, -1648) def +bond1 94 98 123 +atom 130 (6) (2946, 2497, -808) def +bond1 129 +atom 131 (6) (1968, 1607, 1808) def +bond1 96 100 125 +atom 132 (6) (2816, 2457, 2667) def +bond1 131 +atom 133 (6) (2227, 3337, -3387) def +bond1 98 103 128 +atom 134 (8) (3056, 4126, -2567) def +bond1 133 +atom 135 (6) (2027, 3357, 30) def +bond1 100 105 130 +atom 136 (8) (2876, 4116, 879) def +bond1 135 +atom 137 (6) (1838, 3317, 3476) def +bond1 102 107 132 +atom 138 (1) (2417, 3985, 4145) def +bond1 137 +atom 139 (1) (4366, -4166, -2027) def +atom 140 (1) (4335, -4285, 1419) def +atom 141 (1) (4385, -2277, -3936) def +atom 142 (6) (3696, -3497, -1447) def +bond1 109 112 139 +atom 143 (8) (4515, -2666, -638) def +bond1 142 +atom 144 (6) (3666, -3606, 1998) def +bond1 110 114 140 +atom 145 (8) (4465, -2796, 2826) def +bond1 144 +atom 146 (6) (3716, -1688, -3277) def +bond1 112 117 141 +atom 147 (8) (4545, -909, -2427) def +bond1 146 +atom 148 (6) (3736, -1838, 199) def +bond1 114 119 143 +atom 149 (8) (4525, -1009, 1049) def +bond1 148 +atom 150 (6) (3656, -1978, 3626) def +bond1 116 121 145 +atom 151 (1) (4315, -1389, 4305) def +bond1 150 +atom 152 (1) (4475, 1049, -4005) def +atom 153 (6) (3776, -70, -1587) def +bond1 119 123 147 +atom 154 (8) (4575, 748, -738) def +bond1 153 +atom 155 (6) (3706, -170, 1868) def +bond1 121 125 149 +atom 156 (8) (4465, 658, 2716) def +bond1 155 +atom 157 (6) (3816, 1678, -3357) def +bond1 123 128 152 +atom 158 (8) (4635, 2467, -2527) def +bond1 157 +atom 159 (6) (3766, 1587, 80) def +bond1 125 130 154 +atom 160 (8) (4525, 2417, 929) def +bond1 159 +atom 161 (6) (3626, 1477, 3527) def +bond1 127 132 156 +atom 162 (1) (4285, 2057, 4206) def +bond1 161 +atom 163 (6) (3836, 3307, -1738) def +bond1 130 134 158 +atom 164 (1) (4515, 3966, -1139) def +bond1 163 +atom 165 (6) (3686, 3277, 1698) def +bond1 132 136 160 +atom 166 (1) (4356, 3936, 2287) def +bond1 165 +egroup (cube) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part cube diff --git a/sim/src/debug.h b/sim/src/debug.h new file mode 100755 index 000000000..d2c6a1282 --- /dev/null +++ b/sim/src/debug.h @@ -0,0 +1,80 @@ +// Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. +#ifndef DEBUG_H_INCLUDED +#define DEBUG_H_INCLUDED + +#define RCSID_DEBUG_H "$Id$" + +#if 0 +#define DBGPRINTF(fmt) fprintf(stderr, fmt) +#define DBGPRINTF1(fmt,a) fprintf(stderr, fmt, a) +#define DBGPRINTF2(fmt,a,b) fprintf(stderr, fmt, a, b) +#else +#define DBGPRINTF(fmt) ((void) 0) +#define DBGPRINTF1(fmt,a) ((void) 0) +#define DBGPRINTF2(fmt,a,b) ((void) 0) +#endif + +extern int debug_flags; +#define DEBUG(flag) (debug_flags & (flag)) +#define DPRINT(flag, fmt) (DEBUG(flag) ? fprintf(stderr, fmt) : (void) 0) +#define DPRINT1(flag, fmt,a) (DEBUG(flag) ? fprintf(stderr, fmt,a) : (void) 0) +#define DPRINT2(flag, fmt,a,b) (DEBUG(flag) ? fprintf(stderr, fmt,a,b) : (void) 0) +#define DPRINT3(flag, fmt,a,b,c) (DEBUG(flag) ? fprintf(stderr, fmt,a,b,c) : (void) 0) +#define DPRINT4(flag, fmt,a,b,c,d) (DEBUG(flag) ? fprintf(stderr, fmt,a,b,c,d) : (void) 0) +#define DPRINT5(flag, fmt,a,b,c,d,e) (DEBUG(flag) ? fprintf(stderr, fmt,a,b,c,d,e) : (void) 0) +#define DPRINT6(flag, fmt,a,b,c,d,e,f) (DEBUG(flag) ? fprintf(stderr, fmt,a,b,c,d,e,f) : (void) 0) +#define DPRINT7(flag, fmt,a,b,c,d,e,f,g) (DEBUG(flag) ? fprintf(stderr, fmt,a,b,c,d,e,f,g) : (void) 0) +#define DPRINT8(flag, fmt,a,b,c,d,e,f,g,h) (DEBUG(flag) ? fprintf(stderr, fmt,a,b,c,d,e,f,g,h) : (void) 0) +#define DPRINT9(flag, fmt,a,b,c,d,e,f,g,h,i) (DEBUG(flag) ? fprintf(stderr, fmt,a,b,c,d,e,f,g,h,i) : (void) 0) +#define DPRINT10(flag, fmt,a,b,c,d,e,f,g,h,i,j) (DEBUG(flag) ? fprintf(stderr, fmt,a,b,c,d,e,f,g,h,i,j) : (void) 0) +#define DPRINT11(flag, fmt,a,b,c,d,e,f,g,h,i,j,k) (DEBUG(flag) ? fprintf(stderr, fmt,a,b,c,d,e,f,g,h,i,j,k) : (void) 0) + +#define D_TABLE_BOUNDS (1<<0) +#define D_READER (1<<1) +#define D_MINIMIZE (1<<2) +#define D_MINIMIZE_POTENTIAL_MOVIE (1<<3) +#define D_MINIMIZE_GRADIENT_MOVIE (1<<4) +#define D_MINIMIZE_GRADIENT_MOVIE_DETAIL (1<<5) +#define D_SKIP_STRETCH (1<<6) +#define D_SKIP_BEND (1<<7) +#define D_PRINT_BEND_STRETCH (1<<8) +#define D_SKIP_VDW (1<<9) +#define D_GRADIENT_FROM_POTENTIAL (1<<10) +#define D_MINIMIZE_FINAL_PRINT (1<<11) +#define D_STRESS_MOVIE (1<<12) +#define D_VERIFY_VDW (1<<13) +#define D_MINIMIZE_PARAMETER_GUESS (1<<14) +#define D_DYNAMICS_SIMPLE_MOVIE (1<<15) +#define D_SKIP_TORSION (1<<16) +#define D_SKIP_OUT_OF_PLANE (1<<17) +#define D_GRADIENT_COMPARISON (1<<18) +#define D_PYREX_SIM (1<<19) +#define D_SKIP_ELECTROSTATIC (1<<20) +// this one is temporary: +#define D_VDW_NO_SWITCHOVER (1<<31) + +#define TYPE_ERROR 1 +#define TYPE_WARNING 2 +#define TYPE_INFO 3 + +#define ERROR(fmt) (printError(__FILE__, __LINE__, TYPE_ERROR, 0, fmt)) +#define ERROR1(fmt,a) (printError(__FILE__, __LINE__, TYPE_ERROR, 0, fmt, a)) +#define ERROR2(fmt,a,b) (printError(__FILE__, __LINE__, TYPE_ERROR, 0, fmt, a, b)) +#define ERROR3(fmt,a,b,c) (printError(__FILE__, __LINE__, TYPE_ERROR, 0, fmt, a, b, c)) +#define ERROR4(fmt,a,b,c,d) (printError(__FILE__, __LINE__, TYPE_ERROR, 0, fmt, a, b, c, d)) +#define ERROR5(fmt,a,b,c,d,e) (printError(__FILE__, __LINE__, TYPE_ERROR, 0, fmt, a, b, c, d, e)) +#define WARNING(fmt) (printError(__FILE__, __LINE__, TYPE_WARNING, 0, fmt)) +#define WARNING1(fmt,a) (printError(__FILE__, __LINE__, TYPE_WARNING, 0, fmt, a)) +#define WARNING2(fmt,a,b) (printError(__FILE__, __LINE__, TYPE_WARNING, 0, fmt, a, b)) +#define WARNING3(fmt,a,b,c) (printError(__FILE__, __LINE__, TYPE_WARNING, 0, fmt, a, b, c)) +#define INFO(fmt) (printError(__FILE__, __LINE__, TYPE_INFO, 0, fmt)) +#define INFO1(fmt,a) (printError(__FILE__, __LINE__, TYPE_INFO, 0, fmt, a)) +#define INFO2(fmt,a,b) (printError(__FILE__, __LINE__, TYPE_INFO, 0, fmt, a, b)) +#define INFO3(fmt,a,b,c) (printError(__FILE__, __LINE__, TYPE_INFO, 0, fmt, a, b, c)) +#define INFO4(fmt,a,b,c,d) (printError(__FILE__, __LINE__, TYPE_INFO, 0, fmt, a, b, c, d)) +#define ERROR_ERRNO(fmt) (printError(__FILE__, __LINE__, TYPE_ERROR, 1, fmt)) +#define ERROR_ERRNO1(fmt,a) (printError(__FILE__, __LINE__, TYPE_ERROR, 1, fmt, a)) +#define WARNING_ERRNO(fmt) (printError(__FILE__, __LINE__, TYPE_WARNING, 1, fmt)) +#define WARNING_ERRNO1(fmt,a) (printError(__FILE__, __LINE__, TYPE_WARNING, 1, fmt, a)) + +#endif diff --git a/sim/src/distutils_compile_options.py b/sim/src/distutils_compile_options.py new file mode 100755 index 000000000..65b6f17da --- /dev/null +++ b/sim/src/distutils_compile_options.py @@ -0,0 +1,23 @@ +# Copyright 2006 Nanorex, Inc. See LICENSE file for details. +import sys +import distutils.sysconfig +import distutils.ccompiler + +class FakeCompiler: + def __init__(self): + self.compiler_type = distutils.ccompiler.get_default_compiler() + def set_executables(self, **kw): + for k in kw: setattr(self, k, kw[k]) + +mcc = FakeCompiler() +distutils.sysconfig.customize_compiler(mcc) + +if len(sys.argv) < 2: + import pprint + pprint.pprint(mcc.__dict__) +else: + for arg in sys.argv[1:]: + cmd = getattr(mcc, arg) + if cmd.startswith("gcc ") or cmd.startswith("g++ "): + cmd = cmd[4:] + print cmd diff --git a/sim/src/dynamics.c b/sim/src/dynamics.c new file mode 100755 index 000000000..444486c02 --- /dev/null +++ b/sim/src/dynamics.c @@ -0,0 +1,374 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#include "simulator.h" + +static char const rcsid[] = "$Id$"; + +/* + inputs: + OldPositions[*] + Positions[*] + bond[*].an1, .an2, .type + torq[*].dir1, .dir2, .b1, .b2, .kb1, .kb2 + Constraint[*].* + + changes: + finds non-bonded interacting atoms using orion() + Force[*] contains accumulated force on atom over calculated iterations + bond[*].r = vector from bond[*].an1 to bond[*].an2 (delta of positions) + bond[*].invlen = 1/|r| + bond[*].ru = unit vector along r + OldPositions + Positions[*] + NewPositions[*] + AveragePositions[*] = average position across all iterations for this call + Constraint[*].* + + returns: + AveragePositions +*/ + +void +oneDynamicsFrame(struct part *part, + int iters, + struct xyz *averagePositions, + struct xyz **pOldPositions, + struct xyz **pNewPositions, + struct xyz **pPositions, + struct xyz *force) +{ + int j; + int loop; + double deltaTframe; + struct xyz f; + struct xyz *tmp; + struct jig *jig; + + struct xyz *oldPositions = *pOldPositions; + struct xyz *newPositions = *pNewPositions; + struct xyz *positions = *pPositions; + + // wware 060109 python exception handling + NULLPTR(part); + NULLPTR(averagePositions); + NULLPTR(oldPositions); + NULLPTR(newPositions); + NULLPTR(positions); + + iters = max(iters,1); + + deltaTframe = 1.0/iters; + + for (j=0; j<part->num_atoms; j++) { + vsetc(averagePositions[j],0.0); + } + + // See http://www.nanoengineer-1.net/mediawiki/index.php?title=Verlet_integration + // for a discussion of how dynamics is done in the simulator. + + // we want: + // x(t+dt) = 2x(t) - x(t-dt) + A dt^2 + // or: + // newPositions = 2 * positions - oldPositions + A dt^2 + + // wware 060110 don't handle Interrupted with the BAIL mechanism + for (loop=0; loop < iters && !Interrupted; loop++) { + + _last_iteration = loop == iters - 1; + + Iteration++; + + // wware 060109 python exception handling + updateVanDerWaals(part, NULL, positions); BAIL(); + calculateGradient(part, positions, force); BAIL(); + + /* first, for each atom, find non-accelerated new pos */ + /* Atom moved from oldPositions to positions last time, + now we move it the same amount from positions to newPositions */ + for (j=0; j<part->num_atoms; j++) { + // f = positions - oldPositions + vsub2(f,positions[j],oldPositions[j]); + // newPositions = positions + f + // or: + // newPositions = 2 * positions - oldPositions + vadd2(newPositions[j],positions[j],f); + // after this, we will need to add A dt^2 to newPositions + } + + // pre-force jigs + for (j=0;j<part->num_jigs;j++) { /* for each jig */ + jig = part->jigs[j]; + // wware 060109 python exception handling + NULLPTR(jig); + switch (jig->type) { + case LinearMotor: + jigLinearMotor(jig, positions, newPositions, force, deltaTframe); + break; + default: + break; + } + } + + /* convert forces to accelerations, giving new positions */ + //FoundKE = 0.0; /* and add up total KE */ + for (j=0; j<part->num_atoms; j++) { + // to complete Verlet integration, this needs to do: + // newPositions += A dt^2 + // + // force[] is in pN, mass is in g, Dt in seconds, f in pm + vmul2c(f,force[j],part->atoms[j]->inverseMass); // inverseMass = Dt*Dt/mass + + // XXX: 0.15 probably needs a scaling by Dt + // 0.15 = deltaX + // keMax = m v^2 / 2 + // v^2 = 2 keMax / m + // v = deltaX / Dt = sqrt(2 keMax / m) + // deltaX = Dt sqrt(2 keMax / m) + + // We probably don't want to do this, because a large raw + // velocity isn't a problem, it's just when that creates a + // high force between atoms that it becomes a problem. We + // check that elsewhere. + + //if (!ExcessiveEnergyWarning && vlen(f)>0.15) { // 0.15 is just below H flyaway + // WARNING3("Excessive force %.6f in iteration %d on atom %d -- further warnings suppressed", vlen(f), Iteration, j+1); + // ExcessiveEnergyWarningThisFrame++; + //} + + vadd(newPositions[j],f); + + //vsub2(f, newPositions[j], positions[j]); + //ff = vdot(f, f); + //FoundKE += atom[j].energ * ff; + } + + // Jigs are executed in the following order: motors, + // thermostats, grounds, measurements. Motions from each + // motor are added together, then thermostats operate on the + // motor output. Grounds override anything that moves atoms. + // Measurements happen after all things that could affect + // positions, including grounds. + + // motors + for (j=0;j<part->num_jigs;j++) { /* for each jig */ + jig = part->jigs[j]; + + if (jig->type == RotaryMotor) { + jigMotor(jig, deltaTframe, positions, newPositions, force); + } + // LinearMotor handled in preforce above + } + + // thermostats + for (j=0;j<part->num_jigs;j++) { /* for each jig */ + jig = part->jigs[j]; + + if (jig->type == Thermostat) { + jigThermostat(jig, deltaTframe, positions, newPositions); + } + } + + // grounds + for (j=0;j<part->num_jigs;j++) { /* for each jig */ + jig = part->jigs[j]; + + if (jig->type == Ground) { + jigGround(jig, deltaTframe, positions, newPositions, force); + } + } + + // measurements + for (j=0;j<part->num_jigs;j++) { /* for each jig */ + jig = part->jigs[j]; + + switch (jig->type) { + case Thermometer: + jigThermometer(jig, deltaTframe, positions, newPositions); + break; + case DihedralMeter: + jigDihedral(jig, newPositions); + break; + case AngleMeter: + jigAngle(jig, newPositions); + break; + case RadiusMeter: + jigRadius(jig, newPositions); + break; + default: + break; + } + } + for (j=0; j<part->num_atoms; j++) { + vadd(averagePositions[j],newPositions[j]); + } + + tmp=oldPositions; oldPositions=positions; positions=newPositions; newPositions=tmp; + if (ExcessiveEnergyWarningThisFrame > 0) { + ExcessiveEnergyWarning = 1; + } + } + + for (j=0; j<part->num_atoms; j++) { + vmulc(averagePositions[j],deltaTframe); + } + *pOldPositions = oldPositions; + *pNewPositions = newPositions; + *pPositions = positions; +} + +#ifndef WIN32 +#define SECONDS_PER_MINUTE 60 +#define SECONDS_PER_HOUR (SECONDS_PER_MINUTE * 60) +#define SECONDS_PER_DAY (SECONDS_PER_HOUR * 24) + +static char * +formatSeconds(double seconds, char *buf) +{ + double secs = seconds; + int mins = 0; + int hours = 0; + int days = 0; + + if (secs > SECONDS_PER_DAY) { + days = secs / SECONDS_PER_DAY; + secs -= days * SECONDS_PER_DAY; + } + if (secs > SECONDS_PER_HOUR) { + hours = secs / SECONDS_PER_HOUR; + secs -= hours * SECONDS_PER_HOUR; + } + if (secs > SECONDS_PER_MINUTE) { + mins = secs / SECONDS_PER_MINUTE; + secs -= mins * SECONDS_PER_MINUTE; + } + sprintf(buf, "%02d:%02d:%02d:%09.6f", days, hours, mins, secs); + return buf; +} +#endif + +static void +dynamicsMovieRun(struct part *part, + struct xyz *averagePositions, + struct xyz **pOldPositions, + struct xyz **pNewPositions, + struct xyz **pPositions, + struct xyz *force, + int start_frame, + int num_frames) +{ + int i; + int j; + + // wware 060110 don't handle Interrupted with the BAIL mechanism + for (i = start_frame; i < num_frames && !Interrupted; i++) { + if (PrintFrameNums) { + printf("%4d ", i); + if ((i & 15) == 15) { + printf("\n"); + } + fflush(stdout); + } + oneDynamicsFrame(part, IterPerFrame, + averagePositions, pOldPositions, pNewPositions, pPositions, force); + if (PrintPotentialEnergy) { + // update velocities, so they can be used to compute kinetic energy - wware 060713 + for (j = 0; j < part->num_atoms; j++) { + vsub2(part->velocities[j], (*pPositions)[j], (*pOldPositions)[j]); + } + } + writeDynamicsMovieFrame(OutputFile, i, part, averagePositions, i == NumFrames-1, *pPositions); + if (DEBUG(D_DYNAMICS_SIMPLE_MOVIE)) { + writeSimpleMovieFrame(part, *pNewPositions, force, ""); + } + } + if (PrintFrameNums) { + printf("\n"); + fflush(stdout); + } +} + + +void +dynamicsMovie(struct part *part) +{ + struct xyz *averagePositions = (struct xyz *)allocate(sizeof(struct xyz) * part->num_atoms); + struct xyz *oldPositions = (struct xyz *)allocate(sizeof(struct xyz) * part->num_atoms); + struct xyz *newPositions = (struct xyz *)allocate(sizeof(struct xyz) * part->num_atoms); + struct xyz *positions = (struct xyz *)allocate(sizeof(struct xyz) * part->num_atoms); + struct xyz *force = (struct xyz *)allocate(sizeof(struct xyz) * part->num_atoms); + struct xyz *tmp; + int i; +#ifndef WIN32 + int timefailure = 0; + struct timeval start; + struct timeval end; + double elapsedSeconds; + char timebuffer[256]; +#endif + + setThermalVelocities(part, Temperature); + for (i = 0; i < part->num_atoms; i++) { + vset(positions[i], part->positions[i]); + vsub2(oldPositions[i], positions[i], part->velocities[i]); + } + +#ifndef WIN32 + // we should probably use times() to get user and system time + // instead of wall time, but the clock ticks conversions appear to + // be system dependant. + if (gettimeofday(&start, NULL)) { + timefailure = errno; + errno = 0; + } +#endif + + + if (TimeReversal) { + dynamicsMovieRun(part, averagePositions, &oldPositions, &newPositions, &positions, force, 0, NumFrames/2); + tmp = newPositions; + newPositions = positions; + positions = tmp; + dynamicsMovieRun(part, averagePositions, &oldPositions, &newPositions, &positions, force, NumFrames/2, NumFrames); + } else { + dynamicsMovieRun(part, averagePositions, &oldPositions, &newPositions, &positions, force, 0, NumFrames); + } + + +#ifndef WIN32 + if (gettimeofday(&end, NULL)) { + timefailure = errno; + } + + if (timefailure) { + errno = timefailure; + perror("gettimeofday"); + errno = 0; + } else { + end.tv_sec -= start.tv_sec; + end.tv_usec -= start.tv_usec; + if (end.tv_usec < 0) { + end.tv_sec--; + end.tv_usec += 1000000; + } + elapsedSeconds = (double)end.tv_sec + (double)end.tv_usec / 1e6; + write_traceline("# Duration: %s, %f sec/frame, %f sec/iteration\n", + formatSeconds(elapsedSeconds, timebuffer), + elapsedSeconds / (double)i, + elapsedSeconds / (double)(i * IterPerFrame)); + } +#endif + + writeOutputTrailer(OutputFile, part, NumFrames); + + free(averagePositions); + free(oldPositions); + free(newPositions); + free(positions); + free(force); +} + +/* + * Local Variables: + * c-basic-offset: 4 + * tab-width: 8 + * End: + */ diff --git a/sim/src/dynamics.h b/sim/src/dynamics.h new file mode 100755 index 000000000..c28d66140 --- /dev/null +++ b/sim/src/dynamics.h @@ -0,0 +1,17 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#ifndef DYNAMICS_H_INCLUDED +#define DYNAMICS_H_INCLUDED + +#define RCSID_DYNAMICS_H "$Id$" + +extern void oneDynamicsFrame(struct part *part, + int iters, + struct xyz *averagePositions, + struct xyz **pOldPositions, + struct xyz **pNewPositions, + struct xyz **pPositions, + struct xyz *force); + +extern void dynamicsMovie(struct part *part); + +#endif diff --git a/sim/src/experimental/Makefile b/sim/src/experimental/Makefile new file mode 100755 index 000000000..4b7c95c7b --- /dev/null +++ b/sim/src/experimental/Makefile @@ -0,0 +1,25 @@ + + +# Copyright 2005, 2007 Nanorex, Inc. See LICENSE file for details. +CFLAGS=-Wall -O2 -pg + +test: testsqrt + ./testsqrt + +testsqrt: testsqrt.c interp_sqrt.c + gcc $(CFLAGS) testsqrt.c -o testsqrt -lrt -lm + +interp_sqrt.c: interp.py + python interp.py c sqrt static_inline + indent -i4 -br -ce interp_ugly.c -o interp.c + mv interp.c interp_sqrt.c + +clean: + rm -f *.o *~ interp*.c gmon.out testsqrt *.pyc + +# doing a profile is incompatible with "static_inline" +profile: + make clean + make testsqrt + ./testsqrt + gprof testsqrt diff --git a/sim/src/experimental/dumpxyz.c b/sim/src/experimental/dumpxyz.c new file mode 100755 index 000000000..a538575f4 --- /dev/null +++ b/sim/src/experimental/dumpxyz.c @@ -0,0 +1,76 @@ +// Copyright 2004-2006 Nanorex, Inc. See LICENSE file for details. +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "mol.h" + +/** + * @file + * + * Instead of sending frames to an OpenGL pane, let's dump frames as a + * sequence of XYZ snapshots. Because it's a 3D representation, the + * display animation program can place light sources and the camera + * wherever we want. + * + * Info about sequential XYZ file format: + * http://willware.net:8080/xyz2rgb.html + */ + + +FILE *outf; + + +/** + */ +void display(void) { +} + +/** + */ +void snapshot(int n) { + int i,j; + fwrite(&Nexatom, sizeof(int), 1, outf); + for (i=0; i<Nexatom; i++) { + if (atom[i].disp == 0) + continue; + fwrite(&atom[i].elt, sizeof(int), 1, outf); + fwrite(&avg[i], sizeof(struct xyz), 1, outf); + } +} + + +/** + */ +void display_init(int *argc, char *argv[]) { + outf = fopen("dumpstruct.xyz", "w"); // humorously homophonic with "dumptruck" +} + + +/** + */ +void display_fini(void) { + fclose(outf); +} + +/** + */ +void display_mainloop() { + int x; + printf("making movie\n"); + for (x=0; x<100; x++) { + printf(" %d", x); + fflush(stdout); + if ((x & 15) == 15) + printf("\n"); + calcloop(15); + snapshot(x); + } + printf("\n"); +} + +/* + * Local Variables: + * c-basic-offset: 8 + * tab-width: 8 + * End: + */ diff --git a/sim/src/experimental/interp.py b/sim/src/experimental/interp.py new file mode 100755 index 000000000..0e805112c --- /dev/null +++ b/sim/src/experimental/interp.py @@ -0,0 +1,474 @@ +# Copyright 2005 Nanorex, Inc. See LICENSE file for details. +"""Usage: + +Type 'python interp.py c' to generate C code. + +Type 'python interp.py gnuplot' to see graphs of the approximations. + +Type 'python interp.py quadratic c' to generate C code for a +quadratic interpolator. +Type 'python interp.py linear c' to generate C code for a +linear interpolator. +'quadratic' and 'linear' also work for the 'gnuplot' mode. +The default behavior is 'quadratic' but the behavioral difference +appears to be negligible. + +Type 'python interp.py discontinuity' to investigate any +discontinuities in potential or force near r=r0. + +------------------ + +In order to apply this to each of the types of bond length terms, we +need to call this script with each (Ks, R0, De, Beta) set and use it +to generate a C function for that term. In each case, we should +visually inspect the left-of-r0 and right-of-r0 gnuplot graphs to make +sure they look reasonable (and possibly discuss what 'reasonable' +means here). We will probably want to generate the 'points' list based +on the values of R0 and R1; that can probably be done in some +automated way. + +The result would be one or more automatically generated C files that +go into the source code, and the Makefile would generate those files +from text files containing the (Ks, R0, De, Beta) sets. + +""" + +import os +import sys +from math import exp, log, sqrt + +# Use 1 if the input to the interpolator is r. +# Use 2 if the input to the interpolator is r**2. +# The default is 2. +TABLE_INPUT_ORDER = 2 + +if "quadratic" in sys.argv[1:]: + TABLE_INPUT_ORDER = 2 +if "linear" in sys.argv[1:]: + TABLE_INPUT_ORDER = 1 + +name = "Csp3_Csp3" +Ks = 440.0 # newtons per meter +R0 = 152.3 # picometers +De = 0.556 # attojoules +Beta = 1.989 # beta + +if "nitrogen" in sys.argv[1:]: + name = "Nsp3_Nsp3" + Ks = 560.0 + R0 = 138.1 + De = 0.417 + Beta = 2.592 + +def lippincottPotential(r): + return De * (1 - exp(-1e-6 * Ks * R0 * (r - R0) * (r - R0) / (2 * De * r))) + +def lippincottDerivative(r): + if r < 0.001: r = 0.001 + a = 5.0e-7 + b = a * Ks * (r - R0)**2 * R0 + c = 2 * a * Ks * (r - R0) * R0 + return -De * (b / (De * r**2) - c / (De * r)) * exp(-b / (De * r)) + +def morsePotential(r): + return De * (1 - exp(-Beta * (r - R0))) ** 2 + +def morseDerivative(r): + expFoo = exp(-Beta * (r - R0)) + return 2 * Beta * De * (1 - expFoo) * expFoo + +#################################################### + +# Do the V1-r1 trick for putting a bound on Morse potential. +V1 = 10.0 * De +R1 = R0 - log(sqrt(V1/De) + 1) / Beta +D1 = 2.0 * Beta * De * (1 - exp(-Beta * (R1 - R0))) * exp(-Beta * (R1 - R0)) + +def boundedMorsePotential(r, oldMorse=morsePotential): + if r < R1: return D1 * (r - R1) + V1 + else: return oldMorse(r) + +def boundedMorseDerivative(r, oldDeriv=morseDerivative): + if r < R1: return D1 + else: return oldDeriv(r) + +morsePotential = boundedMorsePotential +morseDerivative = boundedMorseDerivative + +################################################## + +# Josh wanted to switch from Morse to Lippincott abruptly. +# This gives a discontinuity in the force, and we might want +# something a little smoother. +if "smooth" in sys.argv[1:]: + def blend(r): + "zero for r << R0, one for r >> R0, smooth everywhere" + width = 1.0e-9 * R0 # needed empirical tinkering + x = (r - R0) / width + return 0.5 * (1 + x / sqrt(x**2 + 1)) + + def compositePotential(r): + b = blend(r) + return (b * lippincottPotential(r) + + (1 - b) * morsePotential(r)) + + def compositeDerivative(r): + b = blend(r) + return (b * lippincottDerivative(r) + + (1 - b) * morseDerivative(r)) + +else: + def compositePotential(r): + if r >= R0: return lippincottPotential(r) + else: return morsePotential(r) + + def compositeDerivative(r): + if r >= R0: return lippincottDerivative(r) + else: return morseDerivative(r) + +############################################################### + +if "discontinuity" in sys.argv[1:]: + # Check for continuity when we switch from Lippincott to Morse + h = 1.0e-10 * R0 + sys.stderr.write("%f %f\n" % + (compositePotential(R0 - h), + compositePotential(R0 + h))) + # 5.1035893951e-08 -5.10296338518e-12 for abrupt switch + sys.stderr.write("%f %f\n" % + (compositeDerivative(R0 - h), + compositeDerivative(R0 + h))) + # -0.000670303668534 6.70118994284e-08 for abrupt switch + + # Alternatively, allowing for round-off error, do asserts + diff = compositePotential(R0 - h) - compositePotential(R0 + h) + assert abs(diff) < 1.0e-6 * De # this one is OK + diff = compositeDerivative(R0 - h) - compositeDerivative(R0 + h) + assert abs(diff) < 1.0e-4 * De / R0 # Is this OK? + +GNUPLOT_PAUSE = 5 + +class Gnuplot: + def __init__(self, enable=True): + if enable: + self.outf = open("/tmp/results", "w") + else: + self.outf = None + def add(self, x, *y): + if self.outf != None: + if hasattr(self, "graphs"): + assert len(y) == self.graphs + else: + self.graphs = len(y) + format = "%.16e " + (self.graphs * " %.16e") + "\n" + self.outf.write(format % ((x,) + y)) + def plot(self): + if self.outf != None: + self.outf.close() + g = os.popen("gnuplot", "w") + if hasattr(self, "ylimits"): + cmd = "plot [] [%.16e:%.16e] " % self.ylimits + else: + cmd = "plot " + for i in range(self.graphs): + cmd += "\"/tmp/results\" using 1:%d with lines" % (i + 2) + if i < self.graphs - 1: + cmd += "," + cmd += " " + cmd += "; pause %f\n" % GNUPLOT_PAUSE + g.write(cmd) + g.close() + #os.system("rm -f /tmp/results") + +if False: + gp = Gnuplot() + r = R0 + 0.0001 + while r < 3 * R0: + gp.add(r, compositePotential(r)) + r += 0.01 + gp.plot() + sys.exit(0) + +# Does r0 need to be in this list? +points = [ + 0, + 0.99 * R1, + R1, + 0.8 * R1 + 0.2 * R0, + 0.6 * R1 + 0.4 * R0, + 0.4 * R1 + 0.6 * R0, + 0.2 * R1 + 0.8 * R0, + 0.05 * R1 + 0.95 * R0, + R0, + R0 * 1.05, + R0 * 1.2, + R0 * 1.3, + R0 * 1.5, + R0 * 1.8, + R0 * 2.0, + R0 * 2.2 + ] +points.sort() # in case I messed up + +if "static_inline" in sys.argv[1:]: + STATIC_INLINE = "static inline" +else: + STATIC_INLINE = "" + +# We will instantiate an Interpolator for each bond type. +# Note that the tables used by Interpolators are pretty small, +# typically about 512 bytes (~64 doubles). +class Interpolator: + def __init__(self, name, func, points): + self.name = name + self.intervals = intervals = [ ] + # Generate a cubic spline for each interpolation interval. + for u, v in map(None, points[:-1], points[1:]): + FU, FV = func(u), func(v) + h = 0.01 # picometers? + # I know I said we shouldn't do numerical integration, + # and yet here I am, doing it anyway. Shame on me. + DU = (func(u + h) - FU) / h + DV = (func(v + h) - FV) / h + denom = (u - v)**3 + A = ((-DV - DU) * v + (DV + DU) * u + + 2 * FV - 2 * FU) / denom + B = -((-DV - 2 * DU) * v**2 + + u * ((DU - DV) * v + 3 * FV - 3 * FU) + + 3 * FV * v - 3 * FU * v + + (2 * DV + DU) * u**2) / denom + C = (- DU * v**3 + + u * ((- 2 * DV - DU) * v**2 + 6 * FV * v - 6 * FU * v) + + (DV + 2 * DU) * u**2 * v + DV * u**3) / denom + D = -(u *(-DU * v**3 - 3 * FU * v**2) + + FU * v**3 + u**2 * ((DU - DV) * v**2 + 3 * FV * v) + + u**3 * (DV * v - FV)) / denom + intervals.append((u, A, B, C, D)) + + def __call__(self, x): + def getInterval(x, intervalList): + # run-time proportional to the log of the length + # of the interval list + n = len(intervalList) + if n < 2: + return intervalList[0] + n2 = n / 2 + if x < intervalList[n2][0]: + return getInterval(x, intervalList[:n2]) + else: + return getInterval(x, intervalList[n2:]) + # Tree-search the intervals to get coefficients. + u, A, B, C, D = getInterval(x, self.intervals) + # Plug coefficients into polynomial. + return ((A * x + B) * x + C) * x + D + + def c_code(self): + """Generate C code to efficiently implement this interpolator.""" + def codeChoice(intervalList): + n = len(intervalList) + if n < 2: + return ("A=%.16e;B=%.16e;C=%.16e;D=%.16e;" + % intervalList[0][1:]) + n2 = n / 2 + return ("if (x < %.16e) {%s} else {%s}" + % (intervalList[n2][0], + codeChoice(intervalList[:n2]), + codeChoice(intervalList[n2:]))) + return (STATIC_INLINE + " double interpolator_%s(double x) {" % self.name + + "double A,B,C,D;%s" % codeChoice(self.intervals) + + "return ((A * x + B) * x + C) * x + D;}") + +DISCRETIZE_POINTS = ("discretize" in sys.argv[1:]) +NUM_SLOTS = 10000 + +class EvenOrderInterpolator: + def __init__(self, name, func, points): + self.name = name + self.intervals = intervals = [ ] + if DISCRETIZE_POINTS: + self.startPoint = start = 1. * points[0] ** 2 + self.finishPoint = finish = 1. * points[-1] ** 2 + self.xstep = xstep = (finish - start) / NUM_SLOTS + intpoints = [ ] + newpoints = [ ] + for p in points: + index = int((p**2 - start) / xstep) + newvalue = (start + index * xstep) ** 0.5 + intpoints.append(index) + newpoints.append(newvalue) + points = newpoints + j = 0 + for u, v in map(None, points[:-1], points[1:]): + s0 = s2 = s4 = s6 = s8 = 0.0 + P = Q = R = 0.0 + N = 2 + x = 1. * u + dx = (1. * v - u) / N + for i in range(N+1): + y = func(x) + s0 += dx + s2 += dx * x**2 + s4 += dx * x**4 + s6 += dx * x**6 + s8 += dx * x**8 + P += dx * y * x**4 + Q += dx * y * x**2 + R += dx * y + x += dx + denom = ((s0*s4 - s2**2) * s8 + + (s2*s6 - s4**2) * s4 + + (s2*s4 - s0*s6) * s6) + a11 = (s0 * s4 - s2**2) / denom + a12 = (s2 * s4 - s0 * s6) / denom + a13 = (s2 * s6 - s4**2) / denom + a21 = a12 + a22 = (s0 * s8 - s4**2) / denom + a23 = (s4 * s6 - s2 * s8) / denom + a31 = a13 + a32 = a23 + a33 = (s4 * s8 - s6**2) / denom + + A = a11 * P + a12 * Q + a13 * R + B = a21 * P + a22 * Q + a23 * R + C = a31 * P + a32 * Q + a33 * R + + if DISCRETIZE_POINTS: + intervals.append((intpoints[j], A, B, C)) + else: + intervals.append((u**2, A, B, C)) + j += 1 + + def __call__(self, xsq): + def getInterval(xsq, intervalList): + # run-time proportional to the log of the length + # of the interval list + n = len(intervalList) + if n < 2: + return intervalList[0] + n2 = n / 2 + if xsq < intervalList[n2][0]: + return getInterval(xsq, intervalList[:n2]) + else: + return getInterval(xsq, intervalList[n2:]) + # Tree-search the intervals to get coefficients. + if DISCRETIZE_POINTS: + j = (xsq - self.startPoint) / self.xstep + u, A, B, C = getInterval(j, self.intervals) + else: + u, A, B, C = getInterval(xsq, self.intervals) + # Plug coefficients into polynomial. + return (A * xsq + B) * xsq + C + + def c_code(self): + """Generate C code to efficiently implement this interpolator.""" + def codeChoice(intervalList): + n = len(intervalList) + if n < 2: + return ("return (%.16e * xsq + %.16e) * xsq + %.16e;" + % intervalList[0][1:]) + n2 = n / 2 + if DISCRETIZE_POINTS: + return ("if (j < %d) {%s} else {%s}" + % (intervalList[n2][0], + codeChoice(intervalList[:n2]), + codeChoice(intervalList[n2:]))) + else: + return ("if (xsq < %.16e) {%s} else {%s}" + % (intervalList[n2][0], + codeChoice(intervalList[:n2]), + codeChoice(intervalList[n2:]))) + if DISCRETIZE_POINTS: + return (STATIC_INLINE + " double interpolator_%s(double xsq) {\n" % self.name + + "int j = (int) (%.16e * (xsq - %.16e));" % (1.0 / self.xstep, self.startPoint) + + codeChoice(self.intervals) + + "}") + else: + return (STATIC_INLINE + " double interpolator_%s(double xsq) {\n" % self.name + + codeChoice(self.intervals) + + "}") + +class MaybeFasterEvenOrderInterpolator(EvenOrderInterpolator): + def c_code(self): + assert DISCRETIZE_POINTS + """Generate C code to efficiently implement this interpolator.""" + ccode = "double A[] = {" + for ivl in self.intervals: + ccode += "%.16e," % ivl[1] + ccode += "};\n" + ccode += "double B[] = {" + for ivl in self.intervals: + ccode += "%.16e," % ivl[2] + ccode += "};\n" + ccode += "double C[] = {" + for ivl in self.intervals: + ccode += "%.16e," % ivl[3] + ccode += "};\n" + ccode += "int slots[] = {\n" + j = 0 + for i in range(NUM_SLOTS): + ccode += "%d," % j + if j < len(self.intervals) and i >= self.intervals[j][0]: + j += 1 + ccode += "};\n" + ccode += STATIC_INLINE + " double interpolator_%s(double xsq) {\n" % self.name + ccode += "int j = (int) (%.16e * (xsq - %.16e));\n" % (1.0 / self.xstep, self.startPoint) + ccode += "j = j[slots];" + ccode += "return (A[j] * xsq + B[j]) * xsq + C[j];}" + return ccode + + +if "sqrt" in sys.argv[1:]: + points = [1, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 8, 10, + 12, 14, 17, 20, 25, 30, 35, 40, 50, 60, 80, 100] + def myFunction(x): + return x ** 0.5 + name = "sqrt" +else: + myFunction = compositeDerivative + + +if TABLE_INPUT_ORDER == 2: + interp = EvenOrderInterpolator(name, myFunction, points) +else: + interp = Interpolator(name, myFunction, points) + +def graphRegion(start, finish): + gp = Gnuplot() + N = 10000 + + rstep = (1.0 * finish - start) / N + r = 1.0 * start + errsq = 0.0 + + for i in range(N): + f_real = myFunction(r) + f_approx = interp(r ** TABLE_INPUT_ORDER) + errsq += (f_real - f_approx) ** 2 + gp.add(r, f_real, f_approx) + r += rstep + + sys.stderr.write("Total square error is %g\n" % errsq) + sys.stderr.write("Mean square error is %g\n"% (errsq / N)) + gp.plot() + +if "c" in sys.argv[1:]: + # crank it thru 'indent' so it's not so ugly + outf = open("interp_ugly.c", "w") + outf.write(interp.c_code()) + outf.close() + +if "graph" in sys.argv[1:]: + # Because the Morse potential is so huge, we need + # to graph Morse and Lippincott separately. + + if "sqrt" in sys.argv[1:]: + graphRegion(points[0], points[-1]) + else: + if True: + GNUPLOT_PAUSE = 10 + #graphRegion(0, R0) + graphRegion(.5*(R0+R1), R0) + #graphRegion(R0, points[-1]) + else: + graphRegion(R1, R0) + graphRegion(R0, points[-1]) diff --git a/sim/src/experimental/josh_dev/VQT.py b/sim/src/experimental/josh_dev/VQT.py new file mode 100755 index 000000000..694107a7d --- /dev/null +++ b/sim/src/experimental/josh_dev/VQT.py @@ -0,0 +1,541 @@ +# Copyright 2004-2005 Nanorex, Inc. See LICENSE file for details. +""" +VQT.py + +Vectors, Quaternions, and Trackballs + +Vectors are a simplified interface to the Numeric arrays. +A relatively full implementation of Quaternions. +Trackball produces incremental quaternions using a mapping of the screen +onto a sphere, tracking the cursor on the sphere. + +$Id$ +""" + +__author__ = "Josh" + +import math, types +from math import * +from Numeric import * +from LinearAlgebra import * +import platform +debug_quats = 1 #bruce 050518; I'll leave this turned on in the main sources for awhile + +intType = type(2) +floType = type(2.0) +numTypes = [intType, floType] + +def V(*v): return array(v, Float) +def A(a): return array(a, Float) + +def cross(v1, v2): + #bruce 050518 comment: for int vectors, this presumably gives an int vector result + # (which is correct, and unlikely to cause bugs even in calling code unaware of it, + # but ideally all calling code would be checked). + return V(v1[1]*v2[2] - v1[2]*v2[1], + v1[2]*v2[0] - v1[0]*v2[2], + v1[0]*v2[1] - v1[1]*v2[0]) + +def vlen(v1): + #bruce 050518 question: is vlen correct for int vectors, not only float ones? + # In theory it should be, since sqrt works for int args and always gives float answers. + # And is it correct for Numeric arrays of vectors? I don't know; norm is definitely not. + return sqrt(dot(v1, v1)) + +def norm(v1): + #bruce 050518 questions: + # - Is this correct for int vectors, not only float ones? + # In theory it should be, since vlen is always a float (see above). + # - Is it correct for Numeric arrays of vectors (doing norm on each one alone)? + # No... clearly the "if" makes the same choice for all of them, but even ignoring that, + # it gives an alignment exception for any vector-array rather than working at all. + # I don't know how hard that would be to fix. + lng = vlen(v1) + if lng: + return v1 / lng + # bruce 041012 optimized this by using lng instead of + # recomputing vlen(v1) -- code was v1 / vlen(v1) + else: return v1+0 + + +# p1 and p2 are points, v1 is a direction vector from p1. +# return (dist, wid) where dist is the distance from p1 to p2 +# measured in the direction of v1, and wid is the orthogonal +# distance from p2 to the p1-v1 line. +# v1 should be a unit vector. +def orthodist(p1, v1, p2): + dist = dot(v1, p2-p1) + wid = vlen(p1+dist*v1-p2) + return (dist, wid) + +#bruce 050518 added these: +X_AXIS = V(1,0,0) +Y_AXIS = V(0,1,0) +Z_AXIS = V(0,0,1) + +class Q: # by Josh; some comments and docstring revised by bruce 050518 + """Q(W, x, y, z) is the quaternion with axis vector x,y,z + and sin(theta/2) = W + (e.g. Q(1,0,0,0) is no rotation [used a lot]) + [Warning: the python argument names are not in the same order as in + the usage-form above! This is not a bug, just possibly confusing.] + + Q(x, y, z) where x, y, and z are three orthonormal vectors + is the quaternion that rotates the standard axes into that + reference frame [this was first used, and first made correct, by bruce 050518] + (the frame has to be right handed, or there's no quaternion that can do it!) + + Q(V(x,y,z), theta) is what you probably want [axis vector and angle]. [used widely] + + Q(vector, vector) gives the quat that rotates between them [used widely] + [bruce 050518 asks: which such quat? presumably the one that does the least rotation in all] + + [undocumented until 050518: Q(number) gives Q(1,0,0,0) [perhaps never used, not sure]; + Q(quat) gives a copy of that quat [used fairly often]; + Q([W,x,y,z]) (for any sequence type) gives the same quat as Q(W, x, y, z) + [used for parsing csys records, maybe in other places].] + """ + counter = 50 # initial value of instance variable + # [bruce 050518 moved it here, fixing bug in which it sometimes didn't get inited] + def __init__(self, x, y=None, z=None, w=None): + if w is not None: # 4 numbers + # [bruce comment 050518: note than ints are not turned to floats, + # and no checking (of types or values) or normalization is done, + # and that these arg names don't correspond to their meanings, + # which are W,x,y,z (as documented) rather than x,y,z,w.] + self.vec = V(x,y,z,w) + + elif z is not None: # three axis vectors + # Just use first two + # [bruce comments 050518: + # - bugfix/optim: test z for None, not for truth value + # (only fixes z = V(0,0,0) which is not allowed here anyway, so not very important) + # - This case was not used until now, and was wrong for some or all inputs + # (not just returning the inverse quat as I initially thought); + # so I fixed it. + # - The old code sometimes used 'z' but the new code never does + # (except to decide to use this case, and when debug_quats to check the results). + + # Q(x, y, z) where x, y, and z are three orthonormal vectors + # is the quaternion that rotates the standard axes into that + # reference frame + ##e could have a debug check for vlen(x), y,z, and ortho and right-handed... + # but when this is false (due to caller bugs), the check_posns_near below should catch it. + xfixer = Q( X_AXIS, x) + y_axis_2 = xfixer.rot(Y_AXIS) + yfixer = twistor( x, y_axis_2, y) + res = xfixer + res += yfixer # warning: modifies res -- xfixer is no longer what it was + if debug_quats: + check_posns_near( res.rot(X_AXIS), x, "x" ) + check_posns_near( res.rot(Y_AXIS), y, "y" ) + check_posns_near( res.rot(Z_AXIS), z, "z" ) + self.vec = res.vec + if debug_quats: + res = self # sanity check + check_posns_near( res.rot(X_AXIS), x, "sx" ) + check_posns_near( res.rot(Y_AXIS), y, "sy" ) + check_posns_near( res.rot(Z_AXIS), z, "sz" ) + return +## # the old code (incorrect, and was not used): +## a100 = V(1,0,0) +## c1 = cross(a100,x) +## if vlen(c1)<0.000001: +## if debug_quats or platform.atom_debug: #bruce 050518 +## # i suspect it's wrong, always giving a 90 degree rotation, and not setting self.counter +## print "debug_quats: using Q(y,z).vec case" +## self.vec = Q(y,z).vec +## return +## ax1 = norm((a100+x)/2.0) +## x2 = cross(ax1,c1) +## a010 = V(0,1,0) +## c2 = cross(a010,y) +## if vlen(c2)<0.000001: +## if debug_quats or platform.atom_debug: #bruce 050518 -- same comment as above +## print "debug_quats: using Q(x,z).vec case" +## self.vec = Q(x,z).vec +## return +## ay1 = norm((a010+y)/2.0) +## y2 = cross(ay1,c2) +## axis = cross(x2, y2) +## nw = sqrt(1.0 + x[0] + y[1] + z[2])/2.0 +## axis = norm(axis)*sqrt(1.0-nw**2) +## self.vec = V(nw, axis[0], axis[1], axis[2]) + + elif type(y) in numTypes: + # axis vector and angle [used often] + v = (x / vlen(x)) * sin(y*0.5) + self.vec = V(cos(y*0.5), v[0], v[1], v[2]) + + elif y is not None: + # rotation between 2 vectors [used often] + #bruce 050518 bugfix/optim: test y for None, not for truth value + # (only fixes y = V(0,0,0) which is not allowed here anyway, so not very important) + # [I didn't yet verify it does this in correct order; could do that from its use + # in bonds.py or maybe the new indirect use in jigs.py (if I checked iadd too). ###@@@] + #bruce 050730 bugfix: when x and y are very close to equal, original code treats them as opposite. + # Rewriting it to fix that, though not yet in an ideal way (just returns identity). + # Also, when they're close but not that close, original code might be numerically unstable. + # I didn't fix that problem. + x = norm(x) + y = norm(y) + dotxy = dot(x, y) + v = cross(x, y) + vl = vlen(v) + if vl<0.000001: + # x,y are very close, or very close to opposite, or one of them is zero + if dotxy < 0: + # close to opposite; treat as actually opposite (same as pre-050730 code) + ax1 = cross(x,V(1,0,0)) + ax2 = cross(x,V(0,1,0)) + if vlen(ax1)>vlen(ax2): + self.vec = norm(V(0, ax1[0],ax1[1],ax1[2])) + else: + self.vec = norm(V(0, ax2[0],ax2[1],ax2[2])) + else: + # very close, or one is zero -- we could pretend they're equal, but let's be a little + # more accurate than that -- vl is sin of desired theta, so vl/2 is approximately sin(theta/2) + # (##e could improve this further by using a better formula to relate sin(theta/2) to sin(theta)), + # so formula for xyz part is v/vl * vl/2 == v/2 [bruce 050730] + xyz = v/2.0 + sintheta2 = vl/2.0 # sin(theta/2) + costheta2 = sqrt(1-sintheta2**2) # cos(theta/2) + self.vec = V(costheta2, xyz[0], xyz[1], xyz[2]) + else: + # old code's method is numerically unstable if abs(dotxy) is close to 1. I didn't fix this. + # I also didn't review this code (unchanged from old code) for correctness. [bruce 050730] + theta = acos(min(1.0,max(-1.0,dotxy))) + if dot(y, cross(x, v)) > 0.0: + theta = 2.0 * pi - theta + w=cos(theta*0.5) + s=sqrt(1-w**2)/vl + self.vec=V(w, v[0]*s, v[1]*s, v[2]*s) + pass + + elif type(x) in numTypes: + # just one number [#k is this ever used?] + self.vec=V(1, 0, 0, 0) + + else: + #bruce 050518 comment: a copy of the quat x, or of any length-4 sequence [both forms are used] + self.vec=V(x[0], x[1], x[2], x[3]) + return # from Q.__init__ + + def __getattr__(self, name): + if name == 'w': + return self.vec[0] + elif name in ('x', 'i'): + return self.vec[1] + elif name in ('y', 'j'): + return self.vec[2] + elif name in ('z', 'k'): + return self.vec[3] + elif name == 'angle': + if -1.0<self.vec[0]<1.0: return 2.0*acos(self.vec[0]) + else: return 0.0 + elif name == 'axis': + return V(self.vec[1], self.vec[2], self.vec[3]) + elif name == 'matrix': + # this the transpose of the normal form + # so we can use it on matrices of row vectors + # [bruce comment 050518: there is a comment on self.vunrot() + # which seems to contradict the above old comment by Josh. + # Josh says he revised the transpose situation later than he wrote the rest, + # so he's not surprised if some comments (or perhaps even rarely-used + # code cases?? not sure) are out of date. + # I didn't yet investigate the true situation. + # To clarify the code, I'll introduce local vars w,x,y,z, mat. + # This will optimize it too (avoiding 42 __getattr__ calls!). + # ] + w, x, y, z = self.vec + self.__dict__['matrix'] = mat = array([\ + [1.0 - 2.0*(y**2 + z**2), + 2.0*(x*y + z*w), + 2.0*(z*x - y*w)], + [2.0*(x*y - z*w), + 1.0 - 2.0*(z**2 + x**2), + 2.0*(y*z + x*w)], + [2.0*(z*x + y*w), + 2.0*(y*z - x*w), + 1.0 - 2.0 * (y**2 + x**2)]]) + return mat + else: + raise AttributeError, 'No "%s" in Quaternion' % name + + def __getitem__(self, num): + return self.vec[num] + + def setangle(self, theta): + """Set the quaternion's rotation to theta (destructive modification). + (In the same direction as before.) + """ + theta = remainder(theta/2.0, pi) + self.vec[1:] = norm(self.vec[1:]) * sin(theta) + self.vec[0] = cos(theta) + self.__reset() + return self + + + def __reset(self): + if self.__dict__.has_key('matrix'): + del self.__dict__['matrix'] + + + def __setattr__(self, name, value): + #bruce comment 050518: possible bug (depends on usage, unknown): this doesn't call __reset + if name=="w": self.vec[0] = value + elif name=="x": self.vec[1] = value + elif name=="y": self.vec[2] = value + elif name=="z": self.vec[3] = value + else: self.__dict__[name] = value + + + def __len__(self): + return 4 + + + def __add__(self, q1): + """Q + Q1 is the quaternion representing the rotation achieved + by doing Q and then Q1. + """ + return Q(q1.w*self.w - q1.x*self.x - q1.y*self.y - q1.z*self.z, + q1.w*self.x + q1.x*self.w + q1.y*self.z - q1.z*self.y, + q1.w*self.y - q1.x*self.z + q1.y*self.w + q1.z*self.x, + q1.w*self.z + q1.x*self.y - q1.y*self.x + q1.z*self.w) + + def __iadd__(self, q1): + """this is self += q1 + """ + temp=V(q1.w*self.w - q1.x*self.x - q1.y*self.y - q1.z*self.z, + q1.w*self.x + q1.x*self.w + q1.y*self.z - q1.z*self.y, + q1.w*self.y - q1.x*self.z + q1.y*self.w + q1.z*self.x, + q1.w*self.z + q1.x*self.y - q1.y*self.x + q1.z*self.w) + self.vec=temp + + self.counter -= 1 + if self.counter <= 0: + self.counter = 50 + self.normalize() + self.__reset() + + return self + + def __sub__(self, q1): + return self + (-q1) + + def __isub__(self, q1): + return __iadd__(self, -q1) + + + def __mul__(self, n): + """multiplication by a scalar, i.e. Q1 * 1.3, defined so that + e.g. Q1 * 2 == Q1 + Q1, or Q1 = Q1*0.5 + Q1*0.5 + Python syntax makes it hard to do n * Q, unfortunately. + """ + if type(n) in numTypes: + nq = +self + nq.setangle(n*self.angle) + return nq + else: + raise MulQuat + + def __imul__(self, q2): + if type(n) in numTypes: + self.setangle(n*self.angle) + self.__reset() + return self + else: + raise MulQuat + + + + def __div__(self, q2): + return self*q2.conj()*(1.0/(q2*q2.conj()).w) + + + def __repr__(self): + return 'Q(%g, %g, %g, %g)' % (self.w, self.x, self.y, self.z) + + def __str__(self): + a= "<q:%6.2f @ " % (2.0*acos(self.w)*180/pi) + l = sqrt(self.x**2 + self.y**2 + self.z**2) + if l: + z=V(self.x, self.y, self.z)/l + a += "[%4.3f, %4.3f, %4.3f] " % (z[0], z[1], z[2]) + else: a += "[%4.3f, %4.3f, %4.3f] " % (self.x, self.y, self.z) + a += "|%8.6f|>" % vlen(self.vec) + return a + + def __pos__(self): + return Q(self.w, self.x, self.y, self.z) + + def __neg__(self): + return Q(self.w, -self.x, -self.y, -self.z) + + def conj(self): + return Q(self.w, -self.x, -self.y, -self.z) + + def normalize(self): + w=self.vec[0] + v=V(self.vec[1],self.vec[2],self.vec[3]) + length = vlen(v) + if length: + s=sqrt(1.0-w**2)/length + self.vec = V(w, v[0]*s, v[1]*s, v[2]*s) + else: self.vec = V(1,0,0,0) + return self + + def unrot(self,v): + return matrixmultiply(self.matrix,v) + + def vunrot(self,v): + # for use with row vectors + # [bruce comment 050518: the above old comment by Josh seems to contradict + # the comment about 'matrix' in __getattr__ (also old and by Josh) + # that it's the transpose of the normal form so it can be used for row vectors. + # See the other comment for more info.] + return matrixmultiply(v,transpose(self.matrix)) + + def rot(self,v): + return matrixmultiply(v,self.matrix) + +def twistor(axis, pt1, pt2): #bruce 050724 revised code (should not change the result) + """return the quaternion that, rotating around axis, will bring pt1 closest to pt2. + """ + #bruce 050518 comment: now using this in some cases of Q.__init__; not the ones this uses! + theta = twistor_angle(axis, pt1, pt2) + return Q(axis, theta) + +def twistor_angle(axis, pt1, pt2): #bruce 050724 split this out of twistor() + q = Q(axis, V(0,0,1)) + pt1 = q.rot(pt1) + pt2 = q.rot(pt2) + a1 = atan2(pt1[1],pt1[0]) + a2 = atan2(pt2[1],pt2[0]) + theta = a2-a1 + return theta + +# project a point from a tangent plane onto a unit sphere +def proj2sphere(x, y): + d = sqrt(x*x + y*y) + theta = pi * 0.5 * d + s=sin(theta) + if d>0.0001: return V(s*x/d, s*y/d, cos(theta)) + else: return V(0.0, 0.0, 1.0) + +class Trackball: + '''A trackball object. The current transformation matrix + can be retrieved using the "matrix" attribute.''' + + def __init__(self, wide, high): + '''Create a Trackball object. + "size" is the radius of the inner trackball + sphere. ''' + self.w2=wide/2.0 + self.h2=high/2.0 + self.scale = 1.1 / min(wide/2.0, high/2.0) + self.quat = Q(1,0,0,0) + self.oldmouse = None + + def rescale(self, wide, high): + self.w2=wide/2.0 + self.h2=high/2.0 + self.scale = 1.1 / min(wide/2.0, high/2.0) + + def start(self, px, py): + self.oldmouse=proj2sphere((px-self.w2)*self.scale, + (self.h2-py)*self.scale) + + def update(self, px, py, uq=None): + newmouse = proj2sphere((px-self.w2)*self.scale, + (self.h2-py)*self.scale) + if self.oldmouse and not uq: + quat = Q(self.oldmouse, newmouse) + elif self.oldmouse and uq: + quat = uq + Q(self.oldmouse, newmouse) - uq + else: + quat = Q(1,0,0,0) + self.oldmouse = newmouse + return quat + +def ptonline(xpt, lpt, ldr): + """return the point on a line (point lpt, direction ldr) + nearest to point xpt + """ + ldr = norm(ldr) + return dot(xpt-lpt,ldr)*ldr + lpt + +def planeXline(ppt, pv, lpt, lv): + """find the intersection of a line (point lpt, vector lv) + with a plane (point ppt, normal pv) + return None if (almost) parallel + (warning to callers: retvals other than None might still be false, + e.g. V(0,0,0) -- untested, but likely; so don't use retval as boolean) + """ + d=dot(lv,pv) + if abs(d)<0.000001: return None + return lpt+lv*(dot(ppt-lpt,pv)/d) + +def cat(a,b): + """concatenate two arrays (the NumPy version is a mess) + """ + #bruce comment 050518: these boolean tests look like bugs! + # I bet they should be testing the number of entries being 0, or so. + # So I added some debug code to warn us if this happens. + if not a: + if (debug_quats or platform.atom_debug): + print "debug_quats: cat(a,b) with false a -- is it right?",a + return b + if not b: + if (debug_quats or platform.atom_debug): + print "debug_quats: cat(a,b) with false b -- is it right?",b + return a + r1 = shape(a) + r2 = shape(b) + if len(r1) == len(r2): return concatenate((a,b)) + if len(r1)<len(r2): + return concatenate((reshape(a,(1,)+r1), b)) + else: return concatenate((a,reshape(b,(1,)+r2))) + +def Veq(v1, v2): + "tells if v1 is all equal to v2" + return logical_and.reduce(v1==v2) + #bruce comment 050518: I guess that not (v1 != v2) would also work (and be slightly faster) + # (in principle it would work, based on my current understanding of Numeric...) + +# == bruce 050518 moved the following here from extrudeMode.py (and bugfixed/docstringed them) + +def floats_near(f1,f2): #bruce, circa 040924, revised 050518 to be relative, 050520 to be absolute for small numbers. + """Say whether two floats are "near" in value (just for use in sanity-check assertions). + """ + ## return abs( f1-f2 ) <= 0.0000001 + ## return abs( f1-f2 ) <= 0.000001 * max(abs(f1),abs(f2)) + return abs( f1-f2 ) <= 0.000001 * max( abs(f1), abs(f2), 0.1) #e maybe let callers pass a different "scale" than 0.1? + +def check_floats_near(f1,f2,msg = ""): #bruce, circa 040924 + "Complain to stdout if two floats are not near; return whether they are." + if floats_near(f1,f2): + return True # means good (they were near) + if msg: + fmt = "not near (%s):" % msg + else: + fmt = "not near:" + # fmt is not a format but a prefix + print fmt,f1,f2 + return False # means bad + +def check_posns_near(p1,p2,msg=""): #bruce, circa 040924 + "Complain to stdout if two length-3 float vectors are not near; return whether they are." + res = True #bruce 050518 bugfix -- was False (which totally disabled this) + for i in [0,1,2]: + res = res and check_floats_near(p1[i],p2[i],msg+"[%d]"%i) + return res + +def check_quats_near(q1,q2,msg=""): #bruce, circa 040924 + "Complain to stdout if two quats are not near; return whether they are." + res = True #bruce 050518 bugfix -- was False (which totally disabled this) + for i in [0,1,2,3]: + res = res and check_floats_near(q1[i],q2[i],msg+"[%d]"%i) + return res + +# end diff --git a/sim/src/experimental/josh_dev/bending.parms b/sim/src/experimental/josh_dev/bending.parms new file mode 100755 index 000000000..3853aa571 --- /dev/null +++ b/sim/src/experimental/josh_dev/bending.parms @@ -0,0 +1,769 @@ +B-B-B theta0= 2.05289932288 Ktheta= 0.197581523174 +B-B-C theta0= 2.08624096827 Ktheta= 0.315333105014 +B-B-Cl theta0= 2.02538090734 Ktheta= 0.321247268994 +B-B-F theta0= 2.14814922413 Ktheta= 0.496539367358 +B-B-H theta0= 2.15570735751 Ktheta= 0.302187224917 +B-B-N theta0= 2.01394799603 Ktheta= 0.241687811975 +B-B-O theta0= 2.12886951191 Ktheta= 0.500343247001 +B-B-P theta0= 1.61756247378 Ktheta= 0.338196181835 +B-B-S theta0= 2.0189376229 Ktheta= 0.389322713295 +B-B-Si theta0= 1.95615291319 Ktheta= 0.338914499363 +B-C-B theta0= 1.68651632476 Ktheta= 1.18277763618 +B-C-C theta0= 1.63617010526 Ktheta= 1.45480863161 +B-C-Cl theta0= 1.5425559044 Ktheta= 1.89235954027 +B-C-F theta0= 1.62404100285 Ktheta= 0.758293867045 +B-C-H theta0= 1.81478310766 Ktheta= 0.352011548448 +B-C-N theta0= 1.39508106627 Ktheta= 1.35258630192 +B-C-O theta0= 1.61452829559 Ktheta= 0.797332164447 +B-C-P theta0= 1.47698457406 Ktheta= 2.0231715236 +B-C-S theta0= 1.61610433307 Ktheta= 1.55201424954 +B-C-Si theta0= 1.64472301455 Ktheta= 1.87653446525 +B-N-B theta0= 1.74906534293 Ktheta= 1.06103268115 +B-N-C theta0= 1.67586351524 Ktheta= 1.37069553624 +B-N-Cl theta0= 1.56012320381 Ktheta= 2.10265292875 +B-N-F theta0= 1.57581027233 Ktheta= 0.988976920937 +B-N-H theta0= 2.12135833553 Ktheta= 0.166905397492 +B-N-N theta0= 1.44069242177 Ktheta= 1.72522569206 +B-N-O theta0= 1.6255414512 Ktheta= 0.838098626752 +B-N-P theta0= 1.54158437066 Ktheta= 2.13522392859 +B-N-S theta0= 1.66252746168 Ktheta= 1.46551044973 +B-N-Si theta0= 1.70215355447 Ktheta= 1.71149370531 +B-O-B theta0= 1.77038113211 Ktheta= 0.768420349435 +B-O-C theta0= 1.63039269115 Ktheta= 1.89315341487 +B-O-Cl theta0= 1.52815951064 Ktheta= 2.94596503653 +B-O-F theta0= 1.48744105739 Ktheta= 1.69743948634 +B-O-H theta0= 2.60591200233 Ktheta= 0.197400822031 +B-O-N theta0= 1.4189940676 Ktheta= 2.58453004573 +B-O-O theta0= 1.52281529792 Ktheta= 1.50973968952 +B-O-P theta0= 1.52568272422 Ktheta= 3.13318689876 +B-O-S theta0= 1.61657065788 Ktheta= 2.04005758108 +B-O-Si theta0= 1.6819248297 Ktheta= 2.14028817397 +B-P-B theta0= 1.62140481716 Ktheta= 0.689215840912 +B-P-C theta0= 1.65818360297 Ktheta= 0.609280340499 +B-P-Cl theta0= 1.47461842621 Ktheta= 0.868363683964 +B-P-F theta0= 1.61781683906 Ktheta= 0.339624680232 +B-P-H theta0= 1.82581344328 Ktheta= 0.257815012025 +B-P-N theta0= 1.02765172454 Ktheta= 0.244553473201 +B-P-O theta0= 1.70148807706 Ktheta= 0.329064745912 +B-P-P theta0= 1.37917549652 Ktheta= 0.678457216625 +B-P-S theta0= 1.60195269912 Ktheta= 0.749004300625 +B-P-Si theta0= 1.60850949695 Ktheta= 0.913977451802 +B-S-B theta0= 1.57907039668 Ktheta= 0.848341761766 +B-S-C theta0= 1.51774858191 Ktheta= 1.11040764164 +B-S-Cl theta0= 1.40132569952 Ktheta= 1.26070702131 +B-S-F theta0= 1.40288377364 Ktheta= 0.517557687851 +B-S-H theta0= 1.56752231477 Ktheta= 0.381616887017 +B-S-N theta0= 0.926969878617 Ktheta= 0.447526447894 +B-S-O theta0= 1.41606323445 Ktheta= 0.481357242412 +B-S-P theta0= 1.32740275087 Ktheta= 1.30794853028 +B-S-S theta0= 1.49276024723 Ktheta= 1.13305888985 +B-S-Si theta0= 1.53244227076 Ktheta= 1.60167920238 +B-Si-B theta0= 1.68181537348 Ktheta= 0.482222575532 +B-Si-C theta0= 1.75771281942 Ktheta= 0.45362530209 +B-Si-Cl theta0= 1.65828141686 Ktheta= 0.464109609491 +B-Si-F theta0= 1.85713244197 Ktheta= 0.446186469682 +B-Si-H theta0= 1.88662451204 Ktheta= 0.348417229957 +B-Si-N theta0= 1.79671672451 Ktheta= 0.259411497911 +B-Si-O theta0= 1.83093511008 Ktheta= 0.47053969591 +B-Si-P theta0= 1.4371395129 Ktheta= 0.392275701737 +B-Si-S theta0= 1.66167954895 Ktheta= 0.622354122512 +B-Si-Si theta0= 1.6506784837 Ktheta= 0.657956459209 +C+C-C theta0= 3.14158851478 Ktheta= 0.33235977825 +C+C-Cl theta0= 3.14159264993 Ktheta= 0.269840000064 +C+C-F theta0= 3.14159265362 Ktheta= 0.299324093628 +C+C-H theta0= 3.14159265463 Ktheta= 0.25393543434 +C+C-N theta0= 3.06584438408 Ktheta= 0.405737482515 +C+C-O theta0= 3.06830603215 Ktheta= 0.310734564505 +C+C-P theta0= 2.98022685252 Ktheta= 0.32783714089 +C+C-S theta0= 3.01382700305 Ktheta= 0.23687827562 +C-B-B theta0= 2.08624091414 Ktheta= 0.315333188586 +C-B-C theta0= 1.95551804063 Ktheta= 1.41525574282 +C-B-Cl theta0= 1.98288650921 Ktheta= 1.30899523791 +C-B-F theta0= 2.02759495436 Ktheta= 1.15851565059 +C-B-H theta0= 2.08939654582 Ktheta= 0.678758848469 +C-B-N theta0= 2.07272839645 Ktheta= 1.12008248937 +C-B-O theta0= 2.00530214426 Ktheta= 1.16650915478 +C-B-P theta0= 1.97100657114 Ktheta= 1.14406455683 +C-B-S theta0= 1.93542605821 Ktheta= 1.20468745563 +C-B-Si theta0= 2.02156527056 Ktheta= 0.659359429793 +C-C-B theta0= 1.6361701115 Ktheta= 1.45480862208 +C-C-C theta0= 1.73120968315 Ktheta= 2.98923156394 +C-C-Cl theta0= 1.79574372687 Ktheta= 1.95748650371 +C-C-F theta0= 1.84074408322 Ktheta= 1.47915823143 +C-C-H theta0= 1.93281765849 Ktheta= 0.829274278062 +C-C-N theta0= 1.90531880681 Ktheta= 1.40793191154 +C-C-O theta0= 1.79296612635 Ktheta= 1.73123557692 +C-C-P theta0= 1.82789484518 Ktheta= 1.46262627235 +C-C-S theta0= 1.72769536219 Ktheta= 2.17197357971 +C-C-Si theta0= 1.76414867288 Ktheta= 1.5196405402 +C-N-B theta0= 1.67586351447 Ktheta= 1.37069556808 +C-N-C theta0= 1.72573215331 Ktheta= 3.25973746328 +C-N-Cl theta0= 1.81310016202 Ktheta= 1.92440251308 +C-N-F theta0= 1.78951856597 Ktheta= 1.77817992708 +C-N-H theta0= 1.91595824229 Ktheta= 0.799087502459 +C-N-N theta0= 1.87396172515 Ktheta= 1.55828486073 +C-N-O theta0= 1.76409784045 Ktheta= 2.00589373585 +C-N-P theta0= 1.86514868473 Ktheta= 1.37062165039 +C-N-S theta0= 1.73074950936 Ktheta= 2.26752463215 +C-N-Si theta0= 1.75534902518 Ktheta= 1.77571474493 +C-O-B theta0= 1.63039269307 Ktheta= 1.89315340047 +C-O-C theta0= 1.69279400673 Ktheta= 3.90182401124 +C-O-Cl theta0= 1.82237843056 Ktheta= 1.82476851727 +C-O-F theta0= 1.73960683233 Ktheta= 1.99128969475 +C-O-H theta0= 1.86377951006 Ktheta= 0.738203631822 +C-O-N theta0= 1.83603441258 Ktheta= 1.65076305031 +C-O-O theta0= 1.71332224869 Ktheta= 2.28762026503 +C-O-P theta0= 1.87332329871 Ktheta= 1.16904136849 +C-O-S theta0= 1.71386773707 Ktheta= 2.36267605952 +C-O-Si theta0= 1.70670275963 Ktheta= 2.43631130125 +C-P-B theta0= 1.6581836446 Ktheta= 0.609280287959 +C-P-C theta0= 1.63609033748 Ktheta= 2.7943300388 +C-P-Cl theta0= 1.66088632313 Ktheta= 2.19399515625 +C-P-F theta0= 1.68295724815 Ktheta= 1.5994024756 +C-P-H theta0= 1.78620400261 Ktheta= 0.79408620462 +C-P-N theta0= 1.74152380457 Ktheta= 1.38773775747 +C-P-O theta0= 1.65330343002 Ktheta= 1.85061921702 +C-P-P theta0= 1.68364612043 Ktheta= 1.66417609887 +C-P-S theta0= 1.61344999416 Ktheta= 2.23099806634 +C-P-Si theta0= 1.68206767737 Ktheta= 1.29935951724 +C-S-B theta0= 1.5177485823 Ktheta= 1.11040764487 +C-S-C theta0= 1.57109112406 Ktheta= 3.64869074184 +C-S-Cl theta0= 1.62330503383 Ktheta= 2.26912961069 +C-S-F theta0= 1.63591452677 Ktheta= 1.6799152246 +C-S-H theta0= 1.68129728727 Ktheta= 0.90303439735 +C-S-N theta0= 1.67654208106 Ktheta= 1.62090960413 +C-S-O theta0= 1.58811111345 Ktheta= 2.0700506479 +C-S-P theta0= 1.64224178963 Ktheta= 2.04127771328 +C-S-S theta0= 1.56211444304 Ktheta= 2.46596686607 +C-S-Si theta0= 1.59327424893 Ktheta= 1.97622800489 +C-Si-B theta0= 1.75771278661 Ktheta= 0.45362533808 +C-Si-C theta0= 1.68783835777 Ktheta= 2.05067974023 +C-Si-Cl theta0= 1.71806946539 Ktheta= 1.65178417564 +C-Si-F theta0= 1.79194434917 Ktheta= 1.02235727454 +C-Si-H theta0= 1.92345245935 Ktheta= 0.643922224311 +C-Si-N theta0= 1.85875406135 Ktheta= 0.886027912933 +C-Si-O theta0= 1.75093926301 Ktheta= 1.20544165278 +C-Si-P theta0= 1.73489587014 Ktheta= 1.23784369865 +C-Si-S theta0= 1.66900570184 Ktheta= 1.66007656622 +C-Si-Si theta0= 1.76811663842 Ktheta= 0.800311283899 +C=C-B theta0= 1.46367868923 Ktheta= 1.2914694035 +C=C-Cl theta0= 2.01897185286 Ktheta= 0.750331170018 +C=C-O theta0= 2.06886627221 Ktheta= 0.984056533846 +C=C-P theta0= 1.97762249421 Ktheta= 0.667822425684 +C=C-S theta0= 1.89908803597 Ktheta= 0.675404023501 +C=C-Si theta0= 1.76007552697 Ktheta= 0.697311755474 +C=N-B theta0= 2.97607732048 Ktheta= 1.07089103894 +C=N-C theta0= 2.97196476029 Ktheta= 1.07195792926 +C=N-Cl theta0= 2.95422851688 Ktheta= 1.05922516086 +C=N-H theta0= 3.09039498895 Ktheta= 0.245274285872 +C=N-P theta0= 2.93423961369 Ktheta= 1.23966924827 +C=N-S theta0= 2.93339508495 Ktheta= 0.599582193722 +C=N-Si theta0= 2.96915455241 Ktheta= 1.28101190739 +Cl-B-B theta0= 2.02538098144 Ktheta= 0.321247286451 +Cl-B-C theta0= 1.98288654443 Ktheta= 1.30899514614 +Cl-B-Cl theta0= 2.08236793975 Ktheta= 1.22749193431 +Cl-B-F theta0= 1.98457215756 Ktheta= 1.38844545083 +Cl-B-H theta0= 2.05491004634 Ktheta= 0.74552578588 +Cl-B-N theta0= 2.07929390763 Ktheta= 1.26853677792 +Cl-B-O theta0= 1.97392915767 Ktheta= 1.38214530201 +Cl-B-P theta0= 2.04315123357 Ktheta= 1.13469804711 +Cl-B-S theta0= 1.93971126515 Ktheta= 1.26216055118 +Cl-B-Si theta0= 2.02449063747 Ktheta= 0.67106746447 +Cl-C-B theta0= 1.54255591813 Ktheta= 1.89235931548 +Cl-C-C theta0= 1.79574374279 Ktheta= 1.95748639019 +Cl-C-Cl theta0= 1.89141943447 Ktheta= 1.49481285835 +Cl-C-F theta0= 1.84926574366 Ktheta= 1.53652155517 +Cl-C-H theta0= 1.89330327744 Ktheta= 0.860367494255 +Cl-C-N theta0= 1.95277012496 Ktheta= 1.60575239951 +Cl-C-O theta0= 1.80171310585 Ktheta= 1.78130671191 +Cl-C-P theta0= 1.87353822851 Ktheta= 1.34484713653 +Cl-C-S theta0= 1.70790190928 Ktheta= 2.33474535217 +Cl-C-Si theta0= 1.67711837617 Ktheta= 2.22299655371 +Cl-N-B theta0= 1.56012320914 Ktheta= 2.1026528175 +Cl-N-C theta0= 1.8131001739 Ktheta= 1.92440236634 +Cl-N-Cl theta0= 1.91866395881 Ktheta= 1.50908802887 +Cl-N-F theta0= 1.85808598786 Ktheta= 1.61588790316 +Cl-N-H theta0= 1.84973201799 Ktheta= 0.86905266282 +Cl-N-N theta0= 1.96070510028 Ktheta= 1.82452177451 +Cl-N-O theta0= 1.81575897944 Ktheta= 1.85368131782 +Cl-N-P theta0= 1.90202909206 Ktheta= 1.35193412971 +Cl-N-S theta0= 1.70568759856 Ktheta= 2.4949051421 +Cl-N-Si theta0= 1.65932955489 Ktheta= 2.86685958186 +Cl-O-B theta0= 1.52815951145 Ktheta= 2.94596497953 +Cl-O-C theta0= 1.82237843808 Ktheta= 1.82476843284 +Cl-O-Cl theta0= 1.8787332206 Ktheta= 1.35145516067 +Cl-O-F theta0= 1.85577408244 Ktheta= 1.5541143956 +Cl-O-H theta0= 1.78384612371 Ktheta= 0.839519417712 +Cl-O-N theta0= 1.94684201032 Ktheta= 1.70569641769 +Cl-O-O theta0= 1.81351243132 Ktheta= 1.78184659365 +Cl-O-P theta0= 1.88327455465 Ktheta= 1.39685263055 +Cl-O-S theta0= 1.6669393786 Ktheta= 2.93279216159 +Cl-O-Si theta0= 1.85540372974 Ktheta= 1.02570713912 +Cl-P-B theta0= 1.47461852692 Ktheta= 0.868363533239 +Cl-P-C theta0= 1.66088638061 Ktheta= 2.19399480994 +Cl-P-Cl theta0= 1.71038758111 Ktheta= 1.87659110743 +Cl-P-F theta0= 1.67583868211 Ktheta= 1.8303449205 +Cl-P-H theta0= 1.75525027306 Ktheta= 0.802542713641 +Cl-P-N theta0= 1.75589746194 Ktheta= 1.46427266828 +Cl-P-O theta0= 1.64394018272 Ktheta= 2.15669508442 +Cl-P-P theta0= 1.73435465957 Ktheta= 1.40364860324 +Cl-P-S theta0= 1.62050942961 Ktheta= 2.21718652905 +Cl-P-Si theta0= 1.65711659541 Ktheta= 1.26399817334 +Cl-S-B theta0= 1.40132572958 Ktheta= 1.26070692785 +Cl-S-C theta0= 1.62330514698 Ktheta= 2.26912884099 +Cl-S-Cl theta0= 1.74745456152 Ktheta= 1.38722803349 +Cl-S-F theta0= 1.68492882926 Ktheta= 1.44791296774 +Cl-S-H theta0= 1.67888644257 Ktheta= 0.823251493517 +Cl-S-N theta0= 1.79676527719 Ktheta= 1.34787107231 +Cl-S-O theta0= 1.62525925751 Ktheta= 1.81606115056 +Cl-S-P theta0= 1.75119489832 Ktheta= 1.42082920447 +Cl-S-S theta0= 1.56445878349 Ktheta= 1.81042862394 +Cl-S-Si theta0= 1.56869328217 Ktheta= 1.95666856293 +Cl-Si-B theta0= 1.65828148999 Ktheta= 0.464109576524 +Cl-Si-C theta0= 1.71806952722 Ktheta= 1.65178385314 +Cl-Si-Cl theta0= 1.74249496916 Ktheta= 1.59777548011 +Cl-Si-F theta0= 1.74754542006 Ktheta= 1.30338907917 +Cl-Si-H theta0= 1.88535332654 Ktheta= 0.668849864955 +Cl-Si-N theta0= 1.82079548477 Ktheta= 1.05514003686 +Cl-Si-O theta0= 1.71936087798 Ktheta= 1.4553109799 +Cl-Si-P theta0= 1.77611122369 Ktheta= 1.11659205327 +Cl-Si-S theta0= 1.67220519565 Ktheta= 1.65362604928 +Cl-Si-Si theta0= 1.76659917514 Ktheta= 0.755279017451 +F-B-B theta0= 2.14814925595 Ktheta= 0.496539393592 +F-B-C theta0= 2.02759494593 Ktheta= 1.15851563473 +F-B-Cl theta0= 1.98457215449 Ktheta= 1.38844549115 +F-B-F theta0= 1.92290890186 Ktheta= 2.01330361036 +F-B-H theta0= 2.05030261085 Ktheta= 0.875779445131 +F-B-N theta0= 2.0013968477 Ktheta= 1.50990734754 +F-B-O theta0= 1.9437104972 Ktheta= 1.69640426947 +F-B-P theta0= 1.99888195686 Ktheta= 1.1466460124 +F-B-S theta0= 1.953724575 Ktheta= 1.12944877109 +F-B-Si theta0= 2.0923501844 Ktheta= 0.710187129929 +F-C-B theta0= 1.62404100622 Ktheta= 0.758293836436 +F-C-C theta0= 1.8407440599 Ktheta= 1.479158084 +F-C-Cl theta0= 1.84926574123 Ktheta= 1.53652159384 +F-C-F theta0= 1.84621788228 Ktheta= 1.77777535996 +F-C-H theta0= 1.89527817489 Ktheta= 1.02480799671 +F-C-N theta0= 1.85868932774 Ktheta= 1.71762587913 +F-C-O theta0= 1.72121556751 Ktheta= 2.59538844674 +F-C-P theta0= 1.86334492272 Ktheta= 1.26071677912 +F-C-S theta0= 1.74655573632 Ktheta= 1.56742312582 +F-C-Si theta0= 1.80604673431 Ktheta= 0.779864326336 +F-N-B theta0= 1.57581027583 Ktheta= 0.988976884922 +F-N-C theta0= 1.789518562 Ktheta= 1.77817992861 +F-N-Cl theta0= 1.85808598418 Ktheta= 1.61588797257 +F-N-F theta0= 1.72803119273 Ktheta= 2.63007786571 +F-N-H theta0= 1.81999979929 Ktheta= 1.07104239143 +F-N-N theta0= 1.84756878906 Ktheta= 1.96819038798 +F-N-O theta0= 1.69579518552 Ktheta= 2.96412350099 +F-N-P theta0= 1.85298856583 Ktheta= 1.41952048004 +F-N-S theta0= 1.7143985117 Ktheta= 1.81519826761 +F-N-Si theta0= 1.71237444552 Ktheta= 1.10674458789 +F-O-B theta0= 1.4874410575 Ktheta= 1.69743945976 +F-O-C theta0= 1.73960683424 Ktheta= 1.99128968604 +F-O-Cl theta0= 1.85577407613 Ktheta= 1.55411451039 +F-O-F theta0= 1.77702704285 Ktheta= 1.96151393928 +F-O-H theta0= 1.7191294608 Ktheta= 1.05709111483 +F-O-N theta0= 1.88990342736 Ktheta= 2.18946666594 +F-O-O theta0= 1.69471583152 Ktheta= 2.47432734286 +F-O-P theta0= 1.81475107684 Ktheta= 1.51532220841 +F-O-S theta0= 1.66401937795 Ktheta= 2.00432969043 +F-O-Si theta0= 1.59426463669 Ktheta= 2.0126415348 +F-P-B theta0= 1.61781695895 Ktheta= 0.33962465045 +F-P-C theta0= 1.68295725081 Ktheta= 1.59940247769 +F-P-Cl theta0= 1.6758386797 Ktheta= 1.83034493252 +F-P-F theta0= 1.72106132475 Ktheta= 1.4537839264 +F-P-H theta0= 1.73340808162 Ktheta= 0.938558381629 +F-P-N theta0= 1.68854463549 Ktheta= 1.91335043612 +F-P-O theta0= 1.61151823747 Ktheta= 2.68163617804 +F-P-P theta0= 1.7047050124 Ktheta= 1.27800249108 +F-P-S theta0= 1.61683160587 Ktheta= 1.76493446224 +F-P-Si theta0= 1.74647465546 Ktheta= 0.74398394654 +F-S-B theta0= 1.40288379886 Ktheta= 0.517557658 +F-S-C theta0= 1.63591452718 Ktheta= 1.67991523014 +F-S-Cl theta0= 1.68492882227 Ktheta= 1.44791299551 +F-S-F theta0= 1.71211380284 Ktheta= 1.3092714759 +F-S-H theta0= 1.66803230924 Ktheta= 0.983152387154 +F-S-N theta0= 1.66963414117 Ktheta= 1.7622061248 +F-S-O theta0= 1.57157171045 Ktheta= 2.574202077 +F-S-P theta0= 1.67715285172 Ktheta= 1.41090348146 +F-S-S theta0= 1.58295278474 Ktheta= 1.82194013302 +F-S-Si theta0= 1.62344534414 Ktheta= 0.893027988764 +F-Si-B theta0= 1.85713248287 Ktheta= 0.446186518776 +F-Si-C theta0= 1.79194436173 Ktheta= 1.02235723686 +F-Si-Cl theta0= 1.74754541513 Ktheta= 1.30338910326 +F-Si-F theta0= 1.84037693686 Ktheta= 1.04126083737 +F-Si-H theta0= 1.87442289687 Ktheta= 0.726063845574 +F-Si-N theta0= 1.88859848093 Ktheta= 0.979614159925 +F-Si-O theta0= 1.69047365484 Ktheta= 1.77424865063 +F-Si-P theta0= 1.79666935268 Ktheta= 0.87960242292 +F-Si-S theta0= 1.7031817977 Ktheta= 1.16409774635 +F-Si-Si theta0= 1.8882078947 Ktheta= 0.573064438712 +H-B-B theta0= 2.1557073696 Ktheta= 0.302187244607 +H-B-C theta0= 2.08939654926 Ktheta= 0.678758853814 +H-B-Cl theta0= 2.05491004777 Ktheta= 0.745525795349 +H-B-F theta0= 2.05030261203 Ktheta= 0.8757794456 +H-B-H theta0= 2.09294024126 Ktheta= 0.549568598035 +H-B-N theta0= 2.09769529789 Ktheta= 0.88089075532 +H-B-O theta0= 2.03474831694 Ktheta= 0.826817842141 +H-B-P theta0= 2.03612085353 Ktheta= 0.671850475778 +H-B-S theta0= 1.96633865714 Ktheta= 0.624484491686 +H-B-Si theta0= 2.10835859911 Ktheta= 0.444051406561 +H-C-B theta0= 1.81478310714 Ktheta= 0.352011548923 +H-C-C theta0= 1.93281767721 Ktheta= 0.82927431127 +H-C-Cl theta0= 1.89330327859 Ktheta= 0.86036750693 +H-C-F theta0= 1.89527817481 Ktheta= 1.02480799661 +H-C-H theta0= 1.9135431149 Ktheta= 0.696670818848 +H-C-N theta0= 1.9233297653 Ktheta= 1.01481509369 +H-C-O theta0= 1.85056346459 Ktheta= 1.02922291174 +H-C-P theta0= 1.86845137926 Ktheta= 0.765651826742 +H-C-S theta0= 1.79885191929 Ktheta= 0.811264822868 +H-C-Si theta0= 1.9179239454 Ktheta= 0.528081381059 +H-N-B theta0= 2.12135833995 Ktheta= 0.166905396341 +H-N-C theta0= 1.91595824298 Ktheta= 0.799087506844 +H-N-Cl theta0= 1.84973202109 Ktheta= 0.869052676778 +H-N-F theta0= 1.81999979878 Ktheta= 1.07104238733 +H-N-H theta0= 1.89350641642 Ktheta= 0.694395267436 +H-N-N theta0= 1.86870611913 Ktheta= 1.00095418425 +H-N-O theta0= 1.80511397377 Ktheta= 1.06685765699 +H-N-P theta0= 1.85011395823 Ktheta= 0.720896305329 +H-N-S theta0= 1.80477374551 Ktheta= 0.79082978033 +H-N-Si theta0= 1.95800831453 Ktheta= 0.452196300377 +H-O-B theta0= 2.60591200295 Ktheta= 0.197400821642 +H-O-C theta0= 1.8637795109 Ktheta= 0.738203634374 +H-O-Cl theta0= 1.78384612685 Ktheta= 0.839519418413 +H-O-F theta0= 1.71912946004 Ktheta= 1.0570911132 +H-O-H theta0= 1.82688507839 Ktheta= 0.670320588307 +H-O-N theta0= 1.78555470875 Ktheta= 0.947877603518 +H-O-O theta0= 1.71300293036 Ktheta= 1.04507904153 +H-O-P theta0= 1.81103528128 Ktheta= 0.604197332111 +H-O-S theta0= 1.76256444901 Ktheta= 0.751873904956 +H-O-Si theta0= 1.99306786406 Ktheta= 0.280424758473 +H-P-B theta0= 1.8258134544 Ktheta= 0.257815041083 +H-P-C theta0= 1.78620400589 Ktheta= 0.794086222524 +H-P-Cl theta0= 1.7552502717 Ktheta= 0.802542718336 +H-P-F theta0= 1.73340808426 Ktheta= 0.938558385143 +H-P-H theta0= 1.75980016007 Ktheta= 0.692127986651 +H-P-N theta0= 1.80872505249 Ktheta= 0.908514785633 +H-P-O theta0= 1.69901348378 Ktheta= 0.992166111928 +H-P-P theta0= 1.73981354643 Ktheta= 0.748993131054 +H-P-S theta0= 1.63553338248 Ktheta= 0.83372086715 +H-P-Si theta0= 1.7869859248 Ktheta= 0.531743635552 +H-S-B theta0= 1.56752232135 Ktheta= 0.381616892009 +H-S-C theta0= 1.68129729828 Ktheta= 0.903034435816 +H-S-Cl theta0= 1.67888644345 Ktheta= 0.823251507071 +H-S-F theta0= 1.66803231164 Ktheta= 0.98315238952 +H-S-H theta0= 1.62051794905 Ktheta= 0.807967407144 +H-S-N theta0= 1.70295800479 Ktheta= 1.00694968294 +H-S-O theta0= 1.62078854926 Ktheta= 1.03144848972 +H-S-P theta0= 1.63256221643 Ktheta= 0.879569390926 +H-S-S theta0= 1.56797961025 Ktheta= 0.873087576549 +H-S-Si theta0= 1.63269222173 Ktheta= 0.62253730457 +H-Si-B theta0= 1.88662451594 Ktheta= 0.348417236768 +H-Si-C theta0= 1.92345246499 Ktheta= 0.643922231205 +H-Si-Cl theta0= 1.88535332543 Ktheta= 0.668849865921 +H-Si-F theta0= 1.87442289742 Ktheta= 0.726063847857 +H-Si-H theta0= 1.91430151359 Ktheta= 0.576734526814 +H-Si-N theta0= 1.94870595889 Ktheta= 0.757790536625 +H-Si-O theta0= 1.84668532238 Ktheta= 0.742375651195 +H-Si-P theta0= 1.86889006514 Ktheta= 0.624035198523 +H-Si-S theta0= 1.76068966274 Ktheta= 0.649939349847 +H-Si-Si theta0= 1.92679523603 Ktheta= 0.462525220777 +N+C-C theta0= 3.14090420403 Ktheta= 0.336143205175 +N+C-Cl theta0= 3.14159265362 Ktheta= 0.300616620467 +N+C-F theta0= 3.14159265362 Ktheta= 0.336164127365 +N+C-H theta0= 3.14159265361 Ktheta= 0.27536087666 +N+C-N theta0= 3.05925772589 Ktheta= 0.412153767504 +N+C-O theta0= 3.0690171851 Ktheta= 0.341965079947 +N+C-P theta0= 2.96705628504 Ktheta= 0.335105014137 +N+C-S theta0= 3.01534320658 Ktheta= 0.262898168635 +N-B-B theta0= 2.01394807657 Ktheta= 0.241687798785 +N-B-C theta0= 2.07272840341 Ktheta= 1.12008250803 +N-B-Cl theta0= 2.07929389319 Ktheta= 1.26853679228 +N-B-F theta0= 2.00139685504 Ktheta= 1.50990732055 +N-B-H theta0= 2.09769529765 Ktheta= 0.880890757543 +N-B-N theta0= 2.13782402155 Ktheta= 1.45832069674 +N-B-O theta0= 2.00864753737 Ktheta= 1.38910561106 +N-B-P theta0= 2.10315854404 Ktheta= 1.19808022724 +N-B-S theta0= 1.97000001022 Ktheta= 1.05077115768 +N-B-Si theta0= 2.07712584273 Ktheta= 0.659811408609 +N-C-B theta0= 1.39508105391 Ktheta= 1.35258642053 +N-C-C theta0= 1.9053188105 Ktheta= 1.40793250248 +N-C-Cl theta0= 1.9527700831 Ktheta= 1.6057522985 +N-C-F theta0= 1.85868933206 Ktheta= 1.71762584606 +N-C-H theta0= 1.92332976475 Ktheta= 1.01481509117 +N-C-N theta0= 1.96742557696 Ktheta= 1.8043516378 +N-C-O theta0= 1.81888169793 Ktheta= 1.81506562491 +N-C-P theta0= 1.91704788504 Ktheta= 1.28065291028 +N-C-S theta0= 1.76856620033 Ktheta= 1.39966249622 +N-C-Si theta0= 1.70825704076 Ktheta= 1.0217850677 +N-N-B theta0= 1.44069239758 Ktheta= 1.72522586434 +N-N-C theta0= 1.87396172546 Ktheta= 1.5582848565 +N-N-Cl theta0= 1.9607050176 Ktheta= 1.82452152887 +N-N-F theta0= 1.84756876463 Ktheta= 1.96819040738 +N-N-H theta0= 1.86870611829 Ktheta= 1.00095414246 +N-N-N theta0= 1.94138112929 Ktheta= 2.05221484337 +N-N-O theta0= 1.78951972414 Ktheta= 2.16226264549 +N-N-P theta0= 1.90346710006 Ktheta= 1.32406927631 +N-N-S theta0= 1.74365461194 Ktheta= 1.56599526946 +N-N-Si theta0= 1.64979248575 Ktheta= 1.53135460833 +N-O-B theta0= 1.41899406229 Ktheta= 2.58453012622 +N-O-C theta0= 1.83603441954 Ktheta= 1.65076303632 +N-O-Cl theta0= 1.94684197309 Ktheta= 1.70569633037 +N-O-F theta0= 1.88990341909 Ktheta= 2.18946661095 +N-O-H theta0= 1.78555470769 Ktheta= 0.94787759942 +N-O-N theta0= 1.93159424807 Ktheta= 2.37731425957 +N-O-O theta0= 1.81062091822 Ktheta= 2.15111973737 +N-O-P theta0= 1.85054067133 Ktheta= 1.20823008907 +N-O-S theta0= 1.6859433043 Ktheta= 1.80026855794 +N-O-Si theta0= 1.57011782523 Ktheta= 2.69036287126 +N-P-B theta0= 1.02765189417 Ktheta= 0.244553737676 +N-P-C theta0= 1.74152381368 Ktheta= 1.38773772399 +N-P-Cl theta0= 1.75589745323 Ktheta= 1.46427267404 +N-P-F theta0= 1.68854463747 Ktheta= 1.91335040016 +N-P-H theta0= 1.80872505286 Ktheta= 0.908514781319 +N-P-N theta0= 1.79653781039 Ktheta= 1.42342157008 +N-P-O theta0= 1.66536155895 Ktheta= 2.04367908601 +N-P-P theta0= 1.78538971893 Ktheta= 1.13183310532 +N-P-S theta0= 1.64896080985 Ktheta= 1.56567236774 +N-P-Si theta0= 1.74761780556 Ktheta= 0.677606473206 +N-S-B theta0= 0.926969886688 Ktheta= 0.447526487799 +N-S-C theta0= 1.67654210539 Ktheta= 1.62090957572 +N-S-Cl theta0= 1.7967652499 Ktheta= 1.34787105042 +N-S-F theta0= 1.66963413892 Ktheta= 1.76220610081 +N-S-H theta0= 1.70295800414 Ktheta= 1.00694967941 +N-S-N theta0= 1.76485699808 Ktheta= 1.61343904352 +N-S-O theta0= 1.61682076231 Ktheta= 2.10972198383 +N-S-P theta0= 1.72447950002 Ktheta= 1.43777148922 +N-S-S theta0= 1.59735407908 Ktheta= 1.27424918836 +N-S-Si theta0= 1.57606616354 Ktheta= 0.992953140451 +N-Si-B theta0= 1.79671673796 Ktheta= 0.259411435478 +N-Si-C theta0= 1.85875408637 Ktheta= 0.886027865679 +N-Si-Cl theta0= 1.82079551303 Ktheta= 1.05513993587 +N-Si-F theta0= 1.88859848625 Ktheta= 0.979614152071 +N-Si-H theta0= 1.94870595669 Ktheta= 0.75779053214 +N-Si-N theta0= 1.93344683899 Ktheta= 0.910146237333 +N-Si-O theta0= 1.77610548428 Ktheta= 1.21083438163 +N-Si-P theta0= 1.88134418367 Ktheta= 0.841785154171 +N-Si-S theta0= 1.73977633241 Ktheta= 1.01001076996 +N-Si-Si theta0= 1.91767801682 Ktheta= 0.539766227768 +N=C-B theta0= 1.97228601314 Ktheta= 0.311781119467 +N=C-C theta0= 2.08542427392 Ktheta= 1.36832838107 +N=C-Cl theta0= 2.06276188601 Ktheta= 1.47493880945 +N=C-F theta0= 2.00962621919 Ktheta= 1.7036985748 +N=C-H theta0= 2.07065479851 Ktheta= 1.06953958489 +N=C-N theta0= 2.07205111077 Ktheta= 1.61310995201 +N=C-O theta0= 2.0145825816 Ktheta= 1.67888094739 +N=C-P theta0= 2.02912848403 Ktheta= 1.30259247379 +N=C-S theta0= 2.01572597079 Ktheta= 1.28540146912 +N=C-Si theta0= 2.0527818782 Ktheta= 0.765711333185 +N=N-B theta0= 2.92212640401 Ktheta= 0.784171836668 +N=N-C theta0= 1.93883686153 Ktheta= 1.86796722865 +N=N-Cl theta0= 1.95234349612 Ktheta= 2.16614826709 +N=N-F theta0= 1.89834430426 Ktheta= 2.56649067938 +N=N-H theta0= 1.87415463736 Ktheta= 1.18552200062 +N=N-N theta0= 1.93080810701 Ktheta= 2.30224826555 +N=N-O theta0= 1.86556895405 Ktheta= 2.9198100716 +N=N-P theta0= 1.91836121625 Ktheta= 1.53298464904 +N=N-S theta0= 1.9060924561 Ktheta= 1.70679136312 +N=N-Si theta0= 1.94250997318 Ktheta= 0.676820041449 +O-B-B theta0= 2.12886952727 Ktheta= 0.500343216022 +O-B-C theta0= 2.0053021377 Ktheta= 1.16650914266 +O-B-Cl theta0= 1.97392915338 Ktheta= 1.38214532653 +O-B-F theta0= 1.9437104996 Ktheta= 1.69640425882 +O-B-H theta0= 2.03474831664 Ktheta= 0.826817842815 +O-B-N theta0= 2.00864753234 Ktheta= 1.38910562822 +O-B-O theta0= 1.95486938622 Ktheta= 1.54404057254 +O-B-P theta0= 1.97965582773 Ktheta= 1.12739903106 +O-B-S theta0= 1.94281370989 Ktheta= 1.1309301528 +O-B-Si theta0= 2.06083038266 Ktheta= 0.683490391599 +O-C-B theta0= 1.61452830244 Ktheta= 0.797332124406 +O-C-C theta0= 1.79296608942 Ktheta= 1.73123570984 +O-C-Cl theta0= 1.80171309683 Ktheta= 1.78130677905 +O-C-F theta0= 1.72121556856 Ktheta= 2.59538843184 +O-C-H theta0= 1.8505634646 Ktheta= 1.0292229123 +O-C-N theta0= 1.81888166489 Ktheta= 1.81506576439 +O-C-O theta0= 1.71516320088 Ktheta= 2.51421704841 +O-C-P theta0= 1.82026891635 Ktheta= 1.36777826708 +O-C-S theta0= 1.71726619621 Ktheta= 1.74382360304 +O-C-Si theta0= 1.75858843845 Ktheta= 0.950450060707 +O-N-B theta0= 1.62554146088 Ktheta= 0.838098573081 +O-N-C theta0= 1.76409784052 Ktheta= 2.00589375804 +O-N-Cl theta0= 1.81575896101 Ktheta= 1.85368143776 +O-N-F theta0= 1.69579518629 Ktheta= 2.9641234816 +O-N-H theta0= 1.80511397372 Ktheta= 1.06685765545 +O-N-N theta0= 1.78951975866 Ktheta= 2.1622625954 +O-N-O theta0= 1.68832704692 Ktheta= 2.98262203714 +O-N-P theta0= 1.8270042956 Ktheta= 1.45811433017 +O-N-S theta0= 1.69934375662 Ktheta= 1.95500463547 +O-N-Si theta0= 1.71065751551 Ktheta= 1.19035755279 +O-O-B theta0= 1.52281530101 Ktheta= 1.50973963826 +O-O-C theta0= 1.71332225379 Ktheta= 2.28762024403 +O-O-Cl theta0= 1.81351241268 Ktheta= 1.7818467243 +O-O-F theta0= 1.69471583139 Ktheta= 2.47432734164 +O-O-H theta0= 1.71300293102 Ktheta= 1.0450790417 +O-O-N theta0= 1.81062091595 Ktheta= 2.15111974983 +O-O-O theta0= 1.65553442105 Ktheta= 2.89078478211 +O-O-P theta0= 1.83959400385 Ktheta= 1.48946987799 +O-O-S theta0= 1.6498953911 Ktheta= 2.18753938116 +O-O-Si theta0= 1.60551915369 Ktheta= 2.04792168199 +O-P-B theta0= 1.70148815294 Ktheta= 0.32906473267 +O-P-C theta0= 1.65330342691 Ktheta= 1.85061923328 +O-P-Cl theta0= 1.64394017961 Ktheta= 2.15669508345 +O-P-F theta0= 1.61151823828 Ktheta= 2.68163616943 +O-P-H theta0= 1.69901348185 Ktheta= 0.992166112213 +O-P-N theta0= 1.66536155351 Ktheta= 2.04367915539 +O-P-O theta0= 1.60397891968 Ktheta= 2.75138644133 +O-P-P theta0= 1.67068657964 Ktheta= 1.35942057639 +O-P-S theta0= 1.57585893261 Ktheta= 1.62606568671 +O-P-Si theta0= 1.70537386086 Ktheta= 0.815208738979 +O-S-B theta0= 1.41606324731 Ktheta= 0.481357208035 +O-S-C theta0= 1.58811110415 Ktheta= 2.07005070874 +O-S-Cl theta0= 1.62525924536 Ktheta= 1.81606121146 +O-S-F theta0= 1.57157171071 Ktheta= 2.57420206776 +O-S-H theta0= 1.62078854764 Ktheta= 1.03144848944 +O-S-N theta0= 1.6168207547 Ktheta= 2.10972210999 +O-S-O theta0= 1.55706568157 Ktheta= 2.98023551936 +O-S-P theta0= 1.6343226652 Ktheta= 1.51146611008 +O-S-S theta0= 1.55320923558 Ktheta= 2.09903858963 +O-S-Si theta0= 1.58619073195 Ktheta= 1.0334924371 +O-Si-B theta0= 1.83093513669 Ktheta= 0.470539715602 +O-Si-C theta0= 1.75093926589 Ktheta= 1.20544161942 +O-Si-Cl theta0= 1.71936087024 Ktheta= 1.45531101335 +O-Si-F theta0= 1.69047365516 Ktheta= 1.77424865008 +O-Si-H theta0= 1.84668531929 Ktheta= 0.742375651528 +O-Si-N theta0= 1.77610546774 Ktheta= 1.21083446278 +O-Si-O theta0= 1.69063822861 Ktheta= 1.69630498325 +O-Si-P theta0= 1.76034490784 Ktheta= 0.948160798318 +O-Si-S theta0= 1.67715553347 Ktheta= 1.27134809126 +O-Si-Si theta0= 1.84206612162 Ktheta= 0.605162152758 +O=C-B theta0= 1.93380492515 Ktheta= 0.296630318217 +O=C-C theta0= 2.15019327432 Ktheta= 1.44591221945 +O=C-Cl theta0= 2.13091189432 Ktheta= 1.45261347425 +O=C-F theta0= 2.07721052206 Ktheta= 1.6163551095 +O=C-H theta0= 2.12935105261 Ktheta= 1.19380349889 +O=C-N theta0= 2.15830861047 Ktheta= 1.89141620946 +O=C-O theta0= 2.05377580807 Ktheta= 1.61494133577 +O=C-P theta0= 2.07634634593 Ktheta= 1.33027757708 +O=C-S theta0= 2.075082054 Ktheta= 1.28460205782 +O=C-Si theta0= 2.11515705456 Ktheta= 0.797343595301 +O=N-B theta0= 1.74282495405 Ktheta= 0.117382241184 +O=N-C theta0= 1.98162197919 Ktheta= 1.98780260502 +O=N-Cl theta0= 2.03156791962 Ktheta= 2.34489096091 +O=N-F theta0= 1.9383787173 Ktheta= 2.27640333262 +O=N-H theta0= 1.90343328969 Ktheta= 1.41244353244 +O=N-N theta0= 1.97121793233 Ktheta= 3.19441146816 +O=N-O theta0= 1.92153373767 Ktheta= 2.73888061212 +O=N-P theta0= 1.92894348092 Ktheta= 1.07441075668 +O=N-S theta0= 1.93877842405 Ktheta= 1.88389863417 +O=N-Si theta0= 1.94356153332 Ktheta= 0.723271357376 +P-B-B theta0= 1.61756271458 Ktheta= 0.338195306721 +P-B-C theta0= 1.9760753702 Ktheta= 1.12638721389 +P-B-Cl theta0= 2.04315123732 Ktheta= 1.13469801535 +P-B-F theta0= 1.99888196104 Ktheta= 1.14664595618 +P-B-H theta0= 2.03612083919 Ktheta= 0.671850474079 +P-B-N theta0= 2.10315859376 Ktheta= 1.19808033866 +P-B-O theta0= 1.97965584693 Ktheta= 1.12739898528 +P-B-P theta0= 2.13665144983 Ktheta= 1.21010863006 +P-B-S theta0= 1.88180269731 Ktheta= 1.17095563184 +P-B-Si theta0= 1.93501815766 Ktheta= 0.725435510985 +P-C-B theta0= 1.47698455124 Ktheta= 2.02317156729 +P-C-C theta0= 1.82789472966 Ktheta= 1.46262644619 +P-C-Cl theta0= 1.87353817423 Ktheta= 1.3448472396 +P-C-F theta0= 1.86334491928 Ktheta= 1.26071676216 +P-C-H theta0= 1.86845137504 Ktheta= 0.765651823376 +P-C-N theta0= 1.91704794423 Ktheta= 1.28065281966 +P-C-O theta0= 1.82026892758 Ktheta= 1.36777823588 +P-C-P theta0= 1.87801555405 Ktheta= 1.26411194566 +P-C-S theta0= 1.66750540209 Ktheta= 2.34663451932 +P-C-Si theta0= 1.65555226795 Ktheta= 2.39266437567 +P-N-B theta0= 1.54158435494 Ktheta= 2.13522396453 +P-N-C theta0= 1.86514868167 Ktheta= 1.37062160468 +P-N-Cl theta0= 1.90202907685 Ktheta= 1.35193414596 +P-N-F theta0= 1.85298856326 Ktheta= 1.41952046472 +P-N-H theta0= 1.85011395662 Ktheta= 0.720896303479 +P-N-N theta0= 1.90346715766 Ktheta= 1.32406903913 +P-N-O theta0= 1.82700430193 Ktheta= 1.45811429177 +P-N-P theta0= 1.84884757039 Ktheta= 1.35755379543 +P-N-S theta0= 1.67505827819 Ktheta= 2.5527659661 +P-N-Si theta0= 1.65460684135 Ktheta= 2.97157367824 +P-O-B theta0= 1.52568271022 Ktheta= 3.13318705495 +P-O-C theta0= 1.87332329474 Ktheta= 1.16904137354 +P-O-Cl theta0= 1.8832745453 Ktheta= 1.39685268724 +P-O-F theta0= 1.81475107143 Ktheta= 1.51532218576 +P-O-H theta0= 1.81103527946 Ktheta= 0.604197334644 +P-O-N theta0= 1.85054069775 Ktheta= 1.20822994229 +P-O-O theta0= 1.83959401641 Ktheta= 1.4894698576 +P-O-P theta0= 1.74848823814 Ktheta= 2.0826379304 +P-O-S theta0= 1.63325557545 Ktheta= 3.31682800465 +P-O-Si theta0= 1.61680330183 Ktheta= 4.38334366564 +P-P-B theta0= 1.37917548689 Ktheta= 0.678457009126 +P-P-C theta0= 1.68364613089 Ktheta= 1.66417583733 +P-P-Cl theta0= 1.73435461156 Ktheta= 1.40364868164 +P-P-F theta0= 1.70470500961 Ktheta= 1.27800246899 +P-P-H theta0= 1.73981353952 Ktheta= 0.74899310562 +P-P-N theta0= 1.78538973327 Ktheta= 1.1318330887 +P-P-O theta0= 1.67068658604 Ktheta= 1.3594205219 +P-P-P theta0= 1.7629531892 Ktheta= 1.23470518191 +P-P-S theta0= 1.60537069191 Ktheta= 1.81541593472 +P-P-Si theta0= 1.63160145049 Ktheta= 1.29544192295 +P-S-B theta0= 1.32740273478 Ktheta= 1.30794847143 +P-S-C theta0= 1.64224177752 Ktheta= 2.04127761303 +P-S-Cl theta0= 1.75119486542 Ktheta= 1.42082921017 +P-S-F theta0= 1.67715284855 Ktheta= 1.41090344315 +P-S-H theta0= 1.6325622116 Ktheta= 0.879569377393 +P-S-N theta0= 1.72447952432 Ktheta= 1.43777147038 +P-S-O theta0= 1.63432266707 Ktheta= 1.5114660731 +P-S-P theta0= 1.67292662261 Ktheta= 1.89784901089 +P-S-S theta0= 1.57373538366 Ktheta= 2.13053564213 +P-S-Si theta0= 1.55097838191 Ktheta= 2.11652973272 +P-Si-B theta0= 1.43713960687 Ktheta= 0.392275496232 +P-Si-C theta0= 1.73489591808 Ktheta= 1.23784329373 +P-Si-Cl theta0= 1.77611121752 Ktheta= 1.11659198075 +P-Si-F theta0= 1.79666935508 Ktheta= 0.879602381186 +P-Si-H theta0= 1.86889006424 Ktheta= 0.62403518563 +P-Si-N theta0= 1.88134419683 Ktheta= 0.841785084733 +P-Si-O theta0= 1.76034492375 Ktheta= 0.948160708187 +P-Si-P theta0= 1.82747808005 Ktheta= 0.917933081896 +P-Si-S theta0= 1.64950654277 Ktheta= 1.38664760164 +P-Si-Si theta0= 1.71003614403 Ktheta= 0.832455892484 +S-B-B theta0= 2.01893795286 Ktheta= 0.389322641269 +S-B-C theta0= 1.93542607815 Ktheta= 1.20468735375 +S-B-Cl theta0= 1.93971125819 Ktheta= 1.26216056221 +S-B-F theta0= 1.95372457455 Ktheta= 1.12944875346 +S-B-H theta0= 1.96633865339 Ktheta= 0.624484482809 +S-B-N theta0= 1.97000001884 Ktheta= 1.05077115067 +S-B-O theta0= 1.94281371304 Ktheta= 1.13093013587 +S-B-P theta0= 1.88180268003 Ktheta= 1.17095578101 +S-B-S theta0= 1.89274708226 Ktheta= 1.19695172179 +S-B-Si theta0= 1.92717176521 Ktheta= 0.814949509186 +S-C-B theta0= 1.61610434459 Ktheta= 1.55201409399 +S-C-C theta0= 1.72769534858 Ktheta= 2.17197344051 +S-C-Cl theta0= 1.70790189704 Ktheta= 2.33474547362 +S-C-F theta0= 1.74655573473 Ktheta= 1.56742309782 +S-C-H theta0= 1.79885191397 Ktheta= 0.811264820641 +S-C-N theta0= 1.76856625191 Ktheta= 1.39966238352 +S-C-O theta0= 1.71726620191 Ktheta= 1.74382354984 +S-C-P theta0= 1.6675054152 Ktheta= 2.3466344036 +S-C-S theta0= 1.64512954094 Ktheta= 2.87078504261 +S-C-Si theta0= 1.65617962549 Ktheta= 2.69453077825 +S-N-B theta0= 1.66252746423 Ktheta= 1.46551038723 +S-N-C theta0= 1.73074949007 Ktheta= 2.26752482008 +S-N-Cl theta0= 1.70568759599 Ktheta= 2.49490517059 +S-N-F theta0= 1.71439850971 Ktheta= 1.81519825443 +S-N-H theta0= 1.80477374388 Ktheta= 0.790829780794 +S-N-N theta0= 1.74365466172 Ktheta= 1.56599503385 +S-N-O theta0= 1.69934375743 Ktheta= 1.95500460232 +S-N-P theta0= 1.67505827809 Ktheta= 2.55276597701 +S-N-S theta0= 1.64264453615 Ktheta= 3.26499654543 +S-N-Si theta0= 1.66022030658 Ktheta= 3.14124556476 +S-O-B theta0= 1.61657065623 Ktheta= 2.04005756156 +S-O-C theta0= 1.71386772688 Ktheta= 2.36267615964 +S-O-Cl theta0= 1.66693937717 Ktheta= 2.93279218556 +S-O-F theta0= 1.66401937281 Ktheta= 2.00432969273 +S-O-H theta0= 1.76256444789 Ktheta= 0.751873908029 +S-O-N theta0= 1.68594331764 Ktheta= 1.80026846742 +S-O-O theta0= 1.64989538994 Ktheta= 2.18753935803 +S-O-P theta0= 1.63325557565 Ktheta= 3.31682801788 +S-O-S theta0= 1.79603927012 Ktheta= 1.40752360489 +S-O-Si theta0= 1.62088368071 Ktheta= 4.35841089259 +S-P-B theta0= 1.60195279407 Ktheta= 0.749004091766 +S-P-C theta0= 1.61345001445 Ktheta= 2.23099785749 +S-P-Cl theta0= 1.62050942535 Ktheta= 2.21718651419 +S-P-F theta0= 1.61683160469 Ktheta= 1.76493444429 +S-P-H theta0= 1.63553337773 Ktheta= 0.833720860244 +S-P-N theta0= 1.64896081752 Ktheta= 1.56567236464 +S-P-O theta0= 1.57585893554 Ktheta= 1.62606564405 +S-P-P theta0= 1.60537069875 Ktheta= 1.81541601096 +S-P-S theta0= 1.57232234873 Ktheta= 2.41154891685 +S-P-Si theta0= 1.60428206486 Ktheta= 1.73429858627 +S-S-B theta0= 1.49276027144 Ktheta= 1.13305879399 +S-S-C theta0= 1.56211446416 Ktheta= 2.46596659614 +S-S-Cl theta0= 1.56445877282 Ktheta= 1.8104286592 +S-S-F theta0= 1.58295278373 Ktheta= 1.82194011562 +S-S-H theta0= 1.56797960489 Ktheta= 0.873087567623 +S-S-N theta0= 1.59735409871 Ktheta= 1.27424915148 +S-S-O theta0= 1.55320923949 Ktheta= 2.09903855508 +S-S-P theta0= 1.57373539026 Ktheta= 2.13053562092 +S-S-S theta0= 1.53479027179 Ktheta= 2.69028393746 +S-S-Si theta0= 1.5442155764 Ktheta= 2.42771991043 +S-Si-B theta0= 1.66167960343 Ktheta= 0.62235411491 +S-Si-C theta0= 1.66900572536 Ktheta= 1.66007638664 +S-Si-Cl theta0= 1.67220519625 Ktheta= 1.65362601329 +S-Si-F theta0= 1.70318179814 Ktheta= 1.16409772761 +S-Si-H theta0= 1.76068966123 Ktheta= 0.649939343837 +S-Si-N theta0= 1.73977634125 Ktheta= 1.01001075236 +S-Si-O theta0= 1.67715553941 Ktheta= 1.27134805086 +S-Si-P theta0= 1.64950653414 Ktheta= 1.3866477308 +S-Si-S theta0= 1.61888671931 Ktheta= 1.77170508144 +S-Si-Si theta0= 1.6600421226 Ktheta= 1.21598592926 +Si-B-B theta0= 1.95615277596 Ktheta= 0.338914733858 +Si-B-C theta0= 2.02156525031 Ktheta= 0.659359397578 +Si-B-Cl theta0= 2.02449062545 Ktheta= 0.67106739016 +Si-B-F theta0= 2.09235015799 Ktheta= 0.710187073448 +Si-B-H theta0= 2.1083585924 Ktheta= 0.444051397868 +Si-B-N theta0= 2.07712578537 Ktheta= 0.659811447876 +Si-B-O theta0= 2.06083034559 Ktheta= 0.683490360372 +Si-B-P theta0= 1.93501810433 Ktheta= 0.725435641027 +Si-B-S theta0= 1.9271716986 Ktheta= 0.814949509083 +Si-B-Si theta0= 1.88196168681 Ktheta= 1.1103702557 +Si-C-B theta0= 1.6447230037 Ktheta= 1.87653448694 +Si-C-C theta0= 1.7641486115 Ktheta= 1.51964130457 +Si-C-Cl theta0= 1.67711832368 Ktheta= 2.22299711546 +Si-C-F theta0= 1.80604671383 Ktheta= 0.779864367718 +Si-C-H theta0= 1.91792394207 Ktheta= 0.528081379466 +Si-C-N theta0= 1.70825700442 Ktheta= 1.02178526215 +Si-C-O theta0= 1.75858841872 Ktheta= 0.950450123602 +Si-C-P theta0= 1.65555226515 Ktheta= 2.39266456086 +Si-C-S theta0= 1.65617960833 Ktheta= 2.69453106369 +Si-C-Si theta0= 1.6512665485 Ktheta= 4.30046121088 +Si-N-B theta0= 1.70215353732 Ktheta= 1.71149380916 +Si-N-C theta0= 1.75534902987 Ktheta= 1.77571471231 +Si-N-Cl theta0= 1.65932953925 Ktheta= 2.86685979907 +Si-N-F theta0= 1.71237443553 Ktheta= 1.10674462372 +Si-N-H theta0= 1.95800831373 Ktheta= 0.452196297883 +Si-N-N theta0= 1.64979249751 Ktheta= 1.53135454356 +Si-N-O theta0= 1.71065750171 Ktheta= 1.19035760264 +Si-N-P theta0= 1.65460684389 Ktheta= 2.97157389838 +Si-N-S theta0= 1.66022030264 Ktheta= 3.14124568219 +Si-N-Si theta0= 1.67832946832 Ktheta= 4.42055377264 +Si-O-B theta0= 1.68192481956 Ktheta= 2.14028826556 +Si-O-C theta0= 1.70670275816 Ktheta= 2.43631132808 +Si-O-Cl theta0= 1.85540370503 Ktheta= 1.02570720928 +Si-O-F theta0= 1.59426463099 Ktheta= 2.01264158942 +Si-O-H theta0= 1.99306786222 Ktheta= 0.28042476183 +Si-O-N theta0= 1.57011782669 Ktheta= 2.69036286198 +Si-O-O theta0= 1.60551914679 Ktheta= 2.04792177129 +Si-O-P theta0= 1.61680331044 Ktheta= 4.38334364524 +Si-O-S theta0= 1.62088367953 Ktheta= 4.35841096432 +Si-O-Si theta0= 1.64959022227 Ktheta= 6.17589069494 +Si-P-B theta0= 1.60850944805 Ktheta= 0.913977482921 +Si-P-C theta0= 1.68206766135 Ktheta= 1.29935945975 +Si-P-Cl theta0= 1.65711654041 Ktheta= 1.2639983072 +Si-P-F theta0= 1.74647463283 Ktheta= 0.743983934729 +Si-P-H theta0= 1.78698592063 Ktheta= 0.531743630571 +Si-P-N theta0= 1.74761779351 Ktheta= 0.677606488094 +Si-P-O theta0= 1.7053738511 Ktheta= 0.815208730441 +Si-P-P theta0= 1.63160141514 Ktheta= 1.29544205573 +Si-P-S theta0= 1.60428201728 Ktheta= 1.73429881879 +Si-P-Si theta0= 1.59450334856 Ktheta= 2.78491919331 +Si-S-B theta0= 1.53244225195 Ktheta= 1.60167926201 +Si-S-C theta0= 1.59327421803 Ktheta= 1.97622816065 +Si-S-Cl theta0= 1.56869323958 Ktheta= 1.95666884328 +Si-S-F theta0= 1.6246948486 Ktheta= 0.894907557312 +Si-S-H theta0= 1.63269221864 Ktheta= 0.622537301266 +Si-S-N theta0= 1.57606614767 Ktheta= 0.99295319681 +Si-S-O theta0= 1.58619072157 Ktheta= 1.03349244815 +Si-S-P theta0= 1.55097836871 Ktheta= 2.11652992609 +Si-S-S theta0= 1.5442155472 Ktheta= 2.42772021974 +Si-S-Si theta0= 1.53749660895 Ktheta= 4.42856930188 +Si-Si-B theta0= 1.65067846997 Ktheta= 0.65795644041 +Si-Si-C theta0= 1.76811664494 Ktheta= 0.800311154024 +Si-Si-Cl theta0= 1.76659912586 Ktheta= 0.755279079422 +Si-Si-F theta0= 1.88820787527 Ktheta= 0.573064411715 +Si-Si-H theta0= 1.92679523164 Ktheta= 0.462525216728 +Si-Si-N theta0= 1.91767799845 Ktheta= 0.539766207965 +Si-Si-O theta0= 1.8420661092 Ktheta= 0.605162127386 +Si-Si-P theta0= 1.71003606233 Ktheta= 0.832456047468 +Si-Si-S theta0= 1.66004208093 Ktheta= 1.21598605954 +Si-Si-Si theta0= 1.62370413304 Ktheta= 2.03152736152 diff --git a/sim/src/experimental/josh_dev/bondage.py b/sim/src/experimental/josh_dev/bondage.py new file mode 100755 index 000000000..41492fb2f --- /dev/null +++ b/sim/src/experimental/josh_dev/bondage.py @@ -0,0 +1,266 @@ +#! /usr/bin/python + +# Copyright 2005 Nanorex, Inc. See LICENSE file for details. +from Numeric import * +from VQT import * +from string import * +import re +import os +import sys + +keypat = re.compile("(\S+)") +molpat = re.compile("mol \(.*\) (\S\S\S)") +atompat = re.compile("atom (\d+) \((\d+)\) \((-?\d+), (-?\d+), (-?\d+)\)") + + +def readmmp(fname): + global atnum, elt, poshape + pos = [] + elt = [] + atnum = -1 + atnos = {} + bonds = [(0,0,0)] + for card in open(fname).readlines(): + key = keypat.match(card).group(1) + if key == 'atom': + atnum += 1 + m = atompat.match(card) + atnos[int(m.group(1))] = atnum + elt += [int(m.group(2))] + pos += [[float(m.group(n)) for n in [3,4,5]]] + if key[:4] == 'bond': + order = ['1','2','3','a','g'].index(key[4]) + bonds += [(atnum,atnos[int(x)],order) + for x in re.findall("\d+",card[5:])] + pos = transpose(array(pos)/1000.0) # gives angstroms + poshape = shape(pos) + return elt, pos, array(bonds) + + + +parmpat = re.compile("([A-Z][a-z]?)([\+=\-@#])([A-Z][a-z]?) +Ks= *([\d\.]+) +R0= *([\d\.]+) +De= *([\d\.]+)") +commpat = re.compile("#") + +bendpat = re.compile("([A-Z][a-z]?)([\+=\-@#])([A-Z][a-z]?)([\+=\-@#])([A-Z][a-z]?) +theta0= *([\d\.]+) +Ktheta= *([\d\.]+)") + + +# masses in 1e-27kg +elmnts=[("H", 1, 1.6737), + ("He", 2, 6.646), + ("Li", 3, 11.525), + ("Be", 4, 14.964), + ("B", 5, 17.949), + ("C", 6, 19.925), + ("N", 7, 23.257), + ("O", 8, 26.565), + ("F", 9, 31.545), + ("Ne", 10, 33.49), + + ("Na", 11, 38.1726), + ("Mg", 12, 40.356), + ("Al", 13, 44.7997), + ("Si", 14, 46.6245), + ("P", 15, 51.429), + ("S", 16, 53.233), + ("Cl", 17, 58.867), + ("Ar", 18, 66.33), + + ("K", 19, 64.9256), + ("Ca", 20, 66.5495), + ("Sc", 21, 74.646), + ("Ti", 22, 79.534), + ("V", 23, 84.584), + ("Cr", 24, 86.335), + ("Mn", 25, 91.22), + ("Fe", 26, 92.729), + ("Co", 27, 97.854), + ("Ni", 28, 97.483), + ("Cu", 29, 105.513), + ("Zn", 30, 108.541), + ("Ga", 31, 115.764), + ("Ge", 32, 120.53), + ("As", 33, 124.401), + ("Se", 34, 131.106), + ("Br", 35, 132.674), + ("Kr", 36, 134.429)] + +elmass=array([0.0]+[1e-27*x[2] for x in elmnts]) + +enames=['X']+[x[0] for x in elmnts] + +btypes = ['-', '=', '+','@', '#'] + +def bondstr(elts,triple): + return enames[elts[triple[0]]]+btypes[triple[2]]+enames[elts[triple[1]]] + +def bendstr(elts,quint): + return (enames[elts[quint[0]]]+btypes[quint[1]]+enames[elts[quint[2]]] + +btypes[quint[1]]+enames[elts[quint[2]]]) +# ks -- N/m +# R0 -- 1e-10 m +# De -- aJ + +stretchtable={} +f=open("stretch.parms") +for lin in f.readlines(): + if commpat.match(lin): continue + m = parmpat.match(lin) + which = m.group(1)+m.group(2)+m.group(3) + which1 = m.group(3)+m.group(2)+m.group(1) + + ks,r0,de = [float(m.group(p)) for p in [4,5,6]] + + bt=sqrt(ks/(2.0*de))/10.0 + stretchtable[which] = (ks,r0,de, bt) + stretchtable[which1] = (ks,r0,de, bt) + +# Theta - radians +# Ktheta - aJ/radian^2 + +bendtable={} +f=open("bending.parms") +for lin in f.readlines(): + if commpat.match(lin): continue + m = bendpat.match(lin) + which = m.group(1)+m.group(2)+m.group(3)+m.group(4)+m.group(5) + which1 = m.group(5)+m.group(4)+m.group(3)+m.group(2)+m.group(1) + + th0, kth = [float(m.group(p)) for p in [6,7]] + kth *= 100.0 + bendtable[which] = (th0, kth) + bendtable[which1] = (th0, kth) + +# given a set of stretch bonds, return the bend quintuples +def bondsetup(bonds): + global bond0, bond1, KS, R0 + global sort0,mash0,spred0, sort1,mash1,spred1 + global bends, Theta0, Ktheta, bba, bbb, bbc + global bbsorta, bbmasha, bbputa + global bbsortb, bbmashb, bbputb + global bbsortc, bbmashc, bbputc + + n = atnum+1 + + bond0 = bonds[:,0] + bond1 = bonds[:,1] + + sort0 = argsort(bond0) + x0=take(bond0,sort0) + x=x0[1:]!=x0[:-1] + x[0]=1 + x=compress(x,arange(len(x))) + mash0=concatenate((array([0]),x+1)) + spred0=zeros(n) + x=take(x0,mash0[1:]) + put(spred0,x,1+arange(len(x))) + + sort1 = argsort(bond1) + x1=take(bond1,sort1) + x=x1[1:]!=x1[:-1] + x[0]=1 + x=compress(x,arange(len(x))) + mash1=concatenate((array([0]),x+1)) + spred1=zeros(n) + x=take(x1,mash1[1:]) + put(spred1,x,1+arange(len(x))) + + btlis = [bondstr(elt,x) for x in bonds] + KS = array([stretchtable[x][0] for x in btlis]) + KS[0]=0.0 + R0 = array([stretchtable[x][1] for x in btlis]) + R0[0]=0.0 + + bondict = {} + bends = [] + for (a,b,o) in bonds[1:]: + bondict[a] = bondict.get(a,[]) + [(o,b)] + bondict[b] = bondict.get(b,[]) + [(o,a)] + for (a,lis) in bondict.iteritems(): + for i in range(len(lis)-1): + (ob,b) = lis[i] + for (oc,c) in lis[i+1:]: + bends += [(b,ob,a,oc,c)] + bends = array(bends) + bba = bends[:,0] + bbb = bends[:,4] + bbc = bends[:,2] + bnlis = [bendstr(elt,x) for x in bends] + Theta0 = array([bendtable[b][0] for b in bnlis]) + Ktheta = array([bendtable[b][1] for b in bnlis]) + + n=len(elt) + + bbsorta = argsort(bba) + x1=take(bba,bbsorta) + x2=x1[1:]!=x1[:-1] + x=compress(x2,arange(len(x2))) + bbmasha=concatenate((array([0]),x+1)) + bbputa = compress(concatenate((array([1]),x2)),x1) + bbputa = concatenate((bbputa, n+bbputa, 2*n+bbputa)) + + bbsortb = argsort(bbb) + x1=take(bbb,bbsortb) + x2=x1[1:]!=x1[:-1] + x=compress(x2,arange(len(x2))) + bbmashb=concatenate((array([0]),x+1)) + bbputb = compress(concatenate((array([1]),x2)),x1) + bbputb = concatenate((bbputb, n+bbputb, 2*n+bbputb)) + + bbsortc = argsort(bbc) + x1=take(bbc,bbsortc) + x2=x1[1:]!=x1[:-1] + x=compress(x2,arange(len(x2))) + bbmashc=concatenate((array([0]),x+1)) + bbputc = compress(concatenate((array([1]),x2)),x1) + bbputc = concatenate((bbputc, n+bbputc, 2*n+bbputc)) + + return bends + + +# aa means stretch bond (atom-atom) +# bb means bend (bond-bond) +# bba, bbb, bbc are the three atoms in a bend, bbc the center +# +#globals: bond0, bond1: atom #'s; R0s; KSs +def force(pos): + aavx = take(pos,bond0,1) - take(pos,bond1,1) + aax = sqrt(add.reduce(aavx*aavx)) + aax[0]=1.0 + + aavu = aavx/aax + aavf = aavu * KS * (R0 - aax) + + avf0 = add.reduceat(take(aavf,sort0,1),mash0) + avf1 = add.reduceat(take(aavf,sort1,1),mash1) + f = take(avf0,spred0,1) - take(avf1,spred1,1) + + bbva = take(pos,bba,1) - take(pos,bbc,1) + bbvb = take(pos,bbb,1) - take(pos,bbc,1) + bbla = sqrt(add.reduce(bbva*bbva)) + bblb = sqrt(add.reduce(bbvb*bbvb)) + bbau = bbva/bbla + bbbu = bbvb/bblb + bbadb = add.reduce(bbau*bbbu) + angle = arccos(bbadb) + torq = Ktheta*(angle-Theta0) + + bbaf = bbbu-bbadb*bbau + bbaf = bbaf/sqrt(add.reduce(bbaf*bbaf)) + bbaf = bbaf*torq/bbla + bbbf = bbau-bbadb*bbbu + bbbf = bbbf/sqrt(add.reduce(bbbf*bbbf)) + bbbf = bbbf*torq/bblb + + fa = zeros(poshape,Float) + put(fa,bbputa,add.reduceat(take(bbaf,bbsorta,1),bbmasha)) + fc1 = zeros(poshape,Float) + put(fc1,bbputc,add.reduceat(take(bbaf,bbsortc,1),bbmashc)) + + fb = zeros(poshape,Float) + put(fb,bbputb,add.reduceat(take(bbbf,bbsortb,1),bbmashb)) + fc2 = zeros(poshape,Float) + put(fc2,bbputc,add.reduceat(take(bbbf,bbsortc,1),bbmashc)) + + return f+fa+fb-fc1-fc2 + + diff --git a/sim/src/experimental/josh_dev/cube.mmp b/sim/src/experimental/josh_dev/cube.mmp new file mode 100755 index 000000000..05b834fb6 --- /dev/null +++ b/sim/src/experimental/josh_dev/cube.mmp @@ -0,0 +1,304 @@ +kelvin 300 +group (Data) +csys (Csys) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (XZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (cube) +mol (cube) def +atom 1 (1) (-4396, -4396, -879) def +atom 2 (1) (-4396, -4396, 2637) def +atom 3 (8) (-4396, -2637, -2637) def +atom 4 (8) (-4396, -2637, 879) def +atom 5 (1) (-4396, -2637, 4396) def +atom 6 (1) (-4396, -879, -4396) def +atom 7 (8) (-4396, -879, -879) def +atom 8 (8) (-4396, -879, 2637) def +atom 9 (8) (-4396, 879, -2637) def +atom 10 (8) (-4396, 879, 879) def +atom 11 (1) (-4396, 879, 4396) def +atom 12 (1) (-4396, 2637, -4396) def +atom 13 (8) (-4396, 2637, -879) def +atom 14 (8) (-4396, 2637, 2637) def +atom 15 (1) (-4396, 4396, -2637) def +atom 16 (1) (-4396, 4396, 879) def +atom 17 (8) (-2637, -4396, -2637) def +atom 18 (8) (-2637, -4396, 879) def +atom 19 (1) (-2637, -4396, 4396) def +atom 20 (8) (-2637, -2637, -4396) def +atom 21 (6) (-3517, -3517, -1758) def +bond1 1 3 17 +atom 22 (6) (-2637, -2637, -879) def +bond1 21 +atom 23 (6) (-3517, -3517, 1758) def +bond1 2 4 18 +atom 24 (6) (-2637, -2637, 2637) def +bond1 23 +atom 25 (6) (-3517, -1758, -3517) def +bond1 3 6 20 +atom 26 (6) (-2637, -879, -2637) def +bond1 25 +atom 27 (6) (-3517, -1758, 0) def +bond1 4 7 22 +atom 28 (6) (-2637, -879, 879) def +bond1 27 +atom 29 (6) (-3517, -1758, 3517) def +bond1 5 8 24 +atom 30 (8) (-2637, -879, 4396) def +bond1 29 +atom 31 (8) (-2637, 879, -4396) def +atom 32 (6) (-3517, 0, -1758) def +bond1 7 9 26 +atom 33 (6) (-2637, 879, -879) def +bond1 32 +atom 34 (6) (-3517, 0, 1758) def +bond1 8 10 28 +atom 35 (6) (-2637, 879, 2637) def +bond1 34 +atom 36 (6) (-3517, 1758, -3517) def +bond1 9 12 31 +atom 37 (6) (-2637, 2637, -2637) def +bond1 36 +atom 38 (6) (-3517, 1758, 0) def +bond1 10 13 33 +atom 39 (6) (-2637, 2637, 879) def +bond1 38 +atom 40 (6) (-3517, 1758, 3517) def +bond1 11 14 35 +atom 41 (8) (-2637, 2637, 4396) def +bond1 40 +atom 42 (1) (-2637, 4396, -4396) def +atom 43 (6) (-3517, 3517, -1758) def +bond1 13 15 37 +atom 44 (8) (-2637, 4396, -879) def +bond1 43 +atom 45 (6) (-3517, 3517, 1758) def +bond1 14 16 39 +atom 46 (8) (-2637, 4396, 2637) def +bond1 45 +atom 47 (1) (-879, -4396, -4396) def +atom 48 (8) (-879, -4396, -879) def +atom 49 (8) (-879, -4396, 2637) def +atom 50 (6) (-1758, -3517, -3517) def +bond1 17 20 47 +atom 51 (6) (-879, -2637, -2637) def +bond1 50 +atom 52 (6) (-1758, -3517, 0) def +bond1 18 22 48 +atom 53 (6) (-879, -2637, 879) def +bond1 52 +atom 54 (6) (-1758, -3517, 3517) def +bond1 19 24 49 +atom 55 (8) (-879, -2637, 4396) def +bond1 54 +atom 56 (8) (-879, -879, -4396) def +atom 57 (6) (-1758, -1758, -1758) def +bond1 22 26 51 +atom 58 (6) (-879, -879, -879) def +bond1 57 +atom 59 (6) (-1758, -1758, 1758) def +bond1 24 28 53 +atom 60 (6) (-879, -879, 2637) def +bond1 59 +atom 61 (6) (-1758, 0, -3517) def +bond1 26 31 56 +atom 62 (6) (-879, 879, -2637) def +bond1 61 +atom 63 (6) (-1758, 0, 0) def +bond1 28 33 58 +atom 64 (6) (-879, 879, 879) def +bond1 63 +atom 65 (6) (-1758, 0, 3517) def +bond1 30 35 60 +atom 66 (8) (-879, 879, 4396) def +bond1 65 +atom 67 (8) (-879, 2637, -4396) def +atom 68 (6) (-1758, 1758, -1758) def +bond1 33 37 62 +atom 69 (6) (-879, 2637, -879) def +bond1 68 +atom 70 (6) (-1758, 1758, 1758) def +bond1 35 39 64 +atom 71 (6) (-879, 2637, 2637) def +bond1 70 +atom 72 (6) (-1758, 3517, -3517) def +bond1 37 42 67 +atom 73 (8) (-879, 4396, -2637) def +bond1 72 +atom 74 (6) (-1758, 3517, 0) def +bond1 39 44 69 +atom 75 (8) (-879, 4396, 879) def +bond1 74 +atom 76 (6) (-1758, 3517, 3517) def +bond1 41 46 71 +atom 77 (1) (-879, 4396, 4396) def +bond1 76 +atom 78 (8) (879, -4396, -2637) def +atom 79 (8) (879, -4396, 879) def +atom 80 (1) (879, -4396, 4396) def +atom 81 (8) (879, -2637, -4396) def +atom 82 (6) (0, -3517, -1758) def +bond1 48 51 78 +atom 83 (6) (879, -2637, -879) def +bond1 82 +atom 84 (6) (0, -3517, 1758) def +bond1 49 53 79 +atom 85 (6) (879, -2637, 2637) def +bond1 84 +atom 86 (6) (0, -1758, -3517) def +bond1 51 56 81 +atom 87 (6) (879, -879, -2637) def +bond1 86 +atom 88 (6) (0, -1758, 0) def +bond1 53 58 83 +atom 89 (6) (879, -879, 879) def +bond1 88 +atom 90 (6) (0, -1758, 3517) def +bond1 55 60 85 +atom 91 (8) (879, -879, 4396) def +bond1 90 +atom 92 (8) (879, 879, -4396) def +atom 93 (6) (0, 0, -1758) def +bond1 58 62 87 +atom 94 (6) (879, 879, -879) def +bond1 93 +atom 95 (6) (0, 0, 1758) def +bond1 60 64 89 +atom 96 (6) (879, 879, 2637) def +bond1 95 +atom 97 (6) (0, 1758, -3517) def +bond1 62 67 92 +atom 98 (6) (879, 2637, -2637) def +bond1 97 +atom 99 (6) (0, 1758, 0) def +bond1 64 69 94 +atom 100 (6) (879, 2637, 879) def +bond1 99 +atom 101 (6) (0, 1758, 3517) def +bond1 66 71 96 +atom 102 (8) (879, 2637, 4396) def +bond1 101 +atom 103 (1) (879, 4396, -4396) def +atom 104 (6) (0, 3517, -1758) def +bond1 69 73 98 +atom 105 (8) (879, 4396, -879) def +bond1 104 +atom 106 (6) (0, 3517, 1758) def +bond1 71 75 100 +atom 107 (8) (879, 4396, 2637) def +bond1 106 +atom 108 (1) (2637, -4396, -4396) def +atom 109 (8) (2637, -4396, -879) def +atom 110 (8) (2637, -4396, 2637) def +atom 111 (6) (1758, -3517, -3517) def +bond1 78 81 108 +atom 112 (6) (2637, -2637, -2637) def +bond1 111 +atom 113 (6) (1758, -3517, 0) def +bond1 79 83 109 +atom 114 (6) (2637, -2637, 879) def +bond1 113 +atom 115 (6) (1758, -3517, 3517) def +bond1 80 85 110 +atom 116 (8) (2637, -2637, 4396) def +bond1 115 +atom 117 (8) (2637, -879, -4396) def +atom 118 (6) (1758, -1758, -1758) def +bond1 83 87 112 +atom 119 (6) (2637, -879, -879) def +bond1 118 +atom 120 (6) (1758, -1758, 1758) def +bond1 85 89 114 +atom 121 (6) (2637, -879, 2637) def +bond1 120 +atom 122 (6) (1758, 0, -3517) def +bond1 87 92 117 +atom 123 (6) (2637, 879, -2637) def +bond1 122 +atom 124 (6) (1758, 0, 0) def +bond1 89 94 119 +atom 125 (6) (2637, 879, 879) def +bond1 124 +atom 126 (6) (1758, 0, 3517) def +bond1 91 96 121 +atom 127 (8) (2637, 879, 4396) def +bond1 126 +atom 128 (8) (2637, 2637, -4396) def +atom 129 (6) (1758, 1758, -1758) def +bond1 94 98 123 +atom 130 (6) (2637, 2637, -879) def +bond1 129 +atom 131 (6) (1758, 1758, 1758) def +bond1 96 100 125 +atom 132 (6) (2637, 2637, 2637) def +bond1 131 +atom 133 (6) (1758, 3517, -3517) def +bond1 98 103 128 +atom 134 (8) (2637, 4396, -2637) def +bond1 133 +atom 135 (6) (1758, 3517, 0) def +bond1 100 105 130 +atom 136 (8) (2637, 4396, 879) def +bond1 135 +atom 137 (6) (1758, 3517, 3517) def +bond1 102 107 132 +atom 138 (1) (2637, 4396, 4396) def +bond1 137 +atom 139 (1) (4396, -4396, -2637) def +atom 140 (1) (4396, -4396, 879) def +atom 141 (1) (4396, -2637, -4396) def +atom 142 (6) (3517, -3517, -1758) def +bond1 109 112 139 +atom 143 (8) (4396, -2637, -879) def +bond1 142 +atom 144 (6) (3517, -3517, 1758) def +bond1 110 114 140 +atom 145 (8) (4396, -2637, 2637) def +bond1 144 +atom 146 (6) (3517, -1758, -3517) def +bond1 112 117 141 +atom 147 (8) (4396, -879, -2637) def +bond1 146 +atom 148 (6) (3517, -1758, 0) def +bond1 114 119 143 +atom 149 (8) (4396, -879, 879) def +bond1 148 +atom 150 (6) (3517, -1758, 3517) def +bond1 116 121 145 +atom 151 (1) (4396, -879, 4396) def +bond1 150 +atom 152 (1) (4396, 879, -4396) def +atom 153 (6) (3517, 0, -1758) def +bond1 119 123 147 +atom 154 (8) (4396, 879, -879) def +bond1 153 +atom 155 (6) (3517, 0, 1758) def +bond1 121 125 149 +atom 156 (8) (4396, 879, 2637) def +bond1 155 +atom 157 (6) (3517, 1758, -3517) def +bond1 123 128 152 +atom 158 (8) (4396, 2637, -2637) def +bond1 157 +atom 159 (6) (3517, 1758, 0) def +bond1 125 130 154 +atom 160 (8) (4396, 2637, 879) def +bond1 159 +atom 161 (6) (3517, 1758, 3517) def +bond1 127 132 156 +atom 162 (1) (4396, 2637, 4396) def +bond1 161 +atom 163 (6) (3517, 3517, -1758) def +bond1 130 134 158 +atom 164 (1) (4396, 4396, -879) def +bond1 163 +atom 165 (6) (3517, 3517, 1758) def +bond1 132 136 160 +atom 166 (1) (4396, 4396, 2637) def +bond1 165 +egroup (cube) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part cube diff --git a/sim/src/experimental/josh_dev/devsim b/sim/src/experimental/josh_dev/devsim new file mode 100755 index 000000000..9bafa809a --- /dev/null +++ b/sim/src/experimental/josh_dev/devsim @@ -0,0 +1,96 @@ +#! /usr/bin/python + +from OpenGL.GLUT import * +from OpenGL.GLU import * +from OpenGL.GL import * +import sys +from readmmp import readmmp +from bondage import * +from RandomArray import * + +MOUSE_WHEEL_UP = 3 +MOUSE_WHEEL_DOWN = 4 + +name = 'Developmental Simulator' + +def glutsetup(): + glutInit(sys.argv) + glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB) + glutInitWindowSize(800,600) + glutCreateWindow(name) + + glClearColor(0.,0.,0.,1.) + glShadeModel(GL_SMOOTH) + glEnable(GL_CULL_FACE) + glEnable(GL_DEPTH_TEST) + glEnable(GL_LIGHTING) + lightZeroPosition = [10.,4.,10.,1.] + lightZeroColor = [0.8,1.0,0.8,1.0] #green tinged + glLightfv(GL_LIGHT0, GL_POSITION, lightZeroPosition) + glLightfv(GL_LIGHT0, GL_DIFFUSE, lightZeroColor) + glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 0.1) + glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.05) + glEnable(GL_LIGHT0) + glutDisplayFunc(display) + glMatrixMode(GL_PROJECTION) + gluPerspective(40.,1.,1.,40.) + glMatrixMode(GL_MODELVIEW) + gluLookAt(0,0,10, + 0,0,0, + 0,1,0) + +def display(): + glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) + glMaterialfv(GL_FRONT,GL_DIFFUSE,[1.0,1.0,1.0,1.]) + + glBegin(GL_LINES) + for (a,b,o) in bonds: + glVertex(pos[:,a]) + glVertex(pos[:,b]) + glEnd() + + glMaterialfv(GL_FRONT,GL_DIFFUSE,[1.0,0.5,0.5,1.]) + glBegin(GL_LINES) + for (a,o1,b,o2,c) in bends: + glVertex(pos[:,a]) + glVertex(pos[:,c]) + glEnd() + + for i in range(len(elt)): + glPushMatrix() + glTranslate(pos[0,i],pos[1,i],pos[2,i]) + glutSolidSphere(0.7,40,20) + glPopMatrix() + + + glutSwapBuffers() + return + +def step(): + global new, pos, old + + old=pos + pos=new + new=2*pos-old+massacc*force(pos) + display() + + + +def main(): + global elt, pos, new, bonds, bends, massacc + + elt, pos, bonds = readmmp(sys.argv[1]) + bends = bondsetup(bonds) + + dt=1e-16 + massacc=array([dt*dt/elmass[x] for x in elt]) + new=pos+massacc*455.0*standard_normal(shape(pos)) + + glutsetup() + + glutIdleFunc(step) + glutMainLoop() + +if __name__ == '__main__': main() + + diff --git a/sim/src/experimental/josh_dev/ethane.mmp b/sim/src/experimental/josh_dev/ethane.mmp new file mode 100755 index 000000000..768fde287 --- /dev/null +++ b/sim/src/experimental/josh_dev/ethane.mmp @@ -0,0 +1,31 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (Untitled) +info opengroup open = True +mol (Chunk-C1) def +atom 1 (6) (-1409, 113, 0) def +atom 2 (1) (-2026, 731, -617) def +bond1 1 +atom 3 (1) (-2026, -504, 617) def +bond1 1 +atom 4 (1) (-791, -504, -617) def +bond1 1 +atom 5 (6) (-519, 1002, 889) def +bond1 1 +atom 6 (1) (97, 1620, 271) def +bond1 5 +atom 7 (1) (97, 384, 1506) def +bond1 5 +atom 8 (1) (-1137, 1620, 1506) def +bond1 5 +egroup (Untitled) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Untitled diff --git a/sim/src/experimental/josh_dev/readmmp.py b/sim/src/experimental/josh_dev/readmmp.py new file mode 100755 index 000000000..2125f35dc --- /dev/null +++ b/sim/src/experimental/josh_dev/readmmp.py @@ -0,0 +1,31 @@ +# Copyright 2005 Nanorex, Inc. See LICENSE file for details. +from Numeric import * +from VQT import * +from string import * +import re + +keypat = re.compile("(\S+)") +molpat = re.compile("mol \(.*\) (\S\S\S)") +atompat = re.compile("atom (\d+) \((\d+)\) \((-?\d+), (-?\d+), (-?\d+)\)") + + +def readmmp(fname): + pos = [] + elt = [] + atnum = -1 + atnos = {} + bonds = [] + for card in open(fname).readlines(): + key = keypat.match(card).group(1) + if key == 'atom': + atnum += 1 + m = atompat.match(card) + atnos[int(m.group(1))] = atnum + elt += [int(m.group(2))] + pos += [map(float, [m.group(3),m.group(4),m.group(5)])] + if key[:4] == 'bond': + order = ['1','2','3','a','g'].index(key[4]) + bonds += [(atnum,atnos[int(x)],order) + for x in re.findall("\d+",card[5:])] + pos = array(pos)/1000.0 + return elt, pos, array(bonds) diff --git a/sim/src/experimental/josh_dev/ring.mmp b/sim/src/experimental/josh_dev/ring.mmp new file mode 100755 index 000000000..f9aaeed8c --- /dev/null +++ b/sim/src/experimental/josh_dev/ring.mmp @@ -0,0 +1,138 @@ +mmpformat 050130 required; 050217 optional +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (20.591656) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (20.591656) (0.000000, 0.000000, 0.000000) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (InnerSleeveMoiety) +mol (InnerSleeveMoiety) def +atom 1 (8) (49, 1667, -5815) def +atom 2 (6) (-1378, 5476, 3439) def +atom 3 (6) (467, 4205, 4504) def +atom 4 (6) (-217, 2250, 3038) def +atom 5 (6) (504, 4340, -8517) def +atom 6 (6) (-188, 2355, -7096) def +bond1 1 +atom 7 (6) (-1347, 5588, -7437) def +atom 8 (7) (-1053, 4550, 4551) def +bond1 2 3 +atom 9 (6) (706, 3251, 5693) def +bond1 3 +atom 10 (8) (73, 1421, 4210) def +bond1 4 +atom 11 (6) (751, 3410, -9724) def +bond1 5 +atom 12 (7) (-1016, 4685, -8565) def +bond1 5 7 +atom 13 (8) (107, 1549, -8282) def +bond1 6 +atom 14 (6) (-153, 2025, 5540) def +bond1 9 10 +atom 15 (6) (-109, 2181, -9601) def +bond1 11 13 +atom 16 (1) (575, 3741, 6665) def +bond1 9 +atom 17 (1) (625, 3920, -10686) def +bond1 11 +atom 18 (1) (101, 1302, 6333) def +bond1 14 +atom 19 (1) (149, 1475, -10408) def +bond1 15 +atom 20 (0) (1372, 3219, -2015) def +atom 21 (0) (1027, 4905, -738) def +atom 22 (0) (1034, 4930, -3258) def +atom 23 (0) (776, 6516, -1983) def +atom 24 (0) (1333, 3293, 573) def +atom 25 (0) (1348, 3345, -4600) def +atom 26 (0) (995, 4949, 2032) def +atom 27 (0) (1018, 5032, -6027) def +atom 28 (0) (-957, 2517, -2029) def +atom 29 (0) (-1515, 4179, -758) def +atom 30 (0) (724, 6524, 3560) def +atom 31 (0) (1359, 3147, 3091) def +atom 32 (0) (1388, 3250, -7121) def +atom 33 (0) (756, 6639, -7524) def +atom 34 (0) (-1508, 4204, -3270) def +atom 35 (0) (-2096, 5636, -2000) def +atom 36 (0) (-989, 2577, 560) def +atom 37 (0) (1041, 4717, 4534) def +bond1 3 +atom 38 (0) (1078, 4852, -8532) def +bond1 5 +atom 39 (0) (-974, 2631, -4615) def +atom 40 (0) (-1548, 4230, 2031) def +atom 41 (0) (1396, 2915, 5620) def +bond1 9 +atom 42 (0) (1441, 3072, -9654) def +bond1 11 +atom 43 (0) (-1525, 4313, -6055) def +atom 44 (0) (-959, 2444, 3079) def +bond1 4 +atom 45 (0) (-2126, 5628, 3537) def +bond1 2 +atom 46 (0) (-930, 2549, -7136) def +bond1 6 +atom 47 (0) (-2095, 5742, -7536) def +bond1 7 +atom 48 (0) (-1480, 3996, 4522) def +bond1 8 +atom 49 (0) (-1443, 4130, -8550) def +bond1 12 +atom 50 (0) (-891, 2227, 5611) def +bond1 14 +atom 51 (0) (-846, 2384, -9671) def +bond1 15 +atom 52 (6) (674, 3544, -2013) def +bond1 20 +atom 53 (6) (446, 4400, -718) def +bond1 52 21 +atom 54 (6) (452, 4426, -3290) def +bond1 52 22 +atom 55 (6) (-213, 2327, -2029) def +bond1 52 28 +atom 56 (16) (-187, 6906, -1982) def +bond1 23 +atom 57 (7) (-1080, 4727, -776) def +bond1 53 29 +atom 58 (6) (638, 3625, 599) def +bond1 53 24 +atom 59 (6) (653, 3678, -4622) def +bond1 54 25 +atom 60 (7) (-1073, 4752, -3237) def +bond1 54 34 +atom 61 (8) (36, 1658, -3333) def +bond1 55 +atom 62 (8) (29, 1631, -734) def +bond1 55 +atom 63 (6) (-1339, 5499, -1999) def +bond1 56 57 60 35 +atom 64 (6) (419, 4446, 1945) def +bond1 58 26 +atom 65 (6) (-247, 2379, 536) def +bond1 58 62 36 +atom 66 (6) (441, 4527, -5954) def +bond1 59 27 +atom 67 (6) (-232, 2432, -4592) def +bond1 59 61 1 39 +atom 68 (7) (-1118, 4776, 2112) def +bond1 40 64 2 +atom 69 (6) (663, 3475, 3133) def +bond1 64 3 4 31 +atom 70 (8) (28, 1590, 1745) def +bond1 65 4 +atom 71 (16) (-229, 6919, 3694) def +bond1 2 30 +atom 72 (6) (692, 3580, -7160) def +bond1 66 5 6 32 +atom 73 (16) (-196, 7036, -7655) def +bond1 7 33 +atom 74 (7) (-1095, 4861, -6122) def +bond1 43 66 7 +egroup (InnerSleeveMoiety) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part InnerSleeveMoiety diff --git a/sim/src/experimental/josh_dev/stretch.parms b/sim/src/experimental/josh_dev/stretch.parms new file mode 100755 index 000000000..cd5cd459b --- /dev/null +++ b/sim/src/experimental/josh_dev/stretch.parms @@ -0,0 +1,68 @@ +Cl-Cl Ks= 274.70 R0= 2.0454 De= 0.3145 +Cl-H Ks= 502.46 R0= 1.2872 De= 0.7163 +Cl-F Ks= 437.46 R0= 1.6696 De= 0.3873 +Cl-C Ks= 352.51 R0= 1.7961 De= 0.6352 +Cl-N Ks= 344.38 R0= 1.7579 De= 0.3575 +### Cl-O -- no energy zero +Cl-O Ks= 365.06 R0= 1.7226 De= 0.4910 +Cl-B Ks= 376.69 R0= 1.7490 De= 0.8529 +Cl-S Ks= 247.76 R0= 2.0945 De= 0.3779 +Cl-P Ks= 249.95 R0= 2.0709 De= 0.4061 +H-H Ks= 599.55 R0= 0.7432 De= 0.7763 +H-F Ks= 930.16 R0= 0.9282 De= 0.9595 +H-C Ks= 540.39 R0= 1.0875 De= 0.8397 +H-N Ks= 716.72 R0= 1.0163 De= 0.7920 +H-O Ks= 838.19 R0= 0.9653 De= 0.8485 +H-B Ks= 385.25 R0= 1.1938 De= 0.7747 +H-S Ks= 415.75 R0= 1.3493 De= 0.6438 +H-P Ks= 363.28 R0= 1.4033 De= 0.5327 +F-F Ks= 599.55 R0= 1.4111 De= 0.2414 +F-C Ks= 573.94 R0= 1.4183 De= 0.8204 +F-N Ks= 524.14 R0= 1.4138 De= 0.4805 +F-O Ks= 524.82 R0= 1.4284 De= 0.3222 +F-B Ks= 674.89 R0= 1.3298 De= 1.1693 +### F-S -- no energy zero +F-S Ks= 414.90 R0= 1.6726 De= 0.5560 +F-P Ks= 464.48 R0= 1.6298 De= 0.6214 +C+C Ks=1730.61 R0= 1.2085 De= 1.8689 +C-C Ks= 437.82 R0= 1.5488 De= 0.7578 +C-N Ks= 497.22 R0= 1.5036 De= 0.6519 +C-O Ks= 538.53 R0= 1.4570 De= 0.6953 +C-B Ks= 374.86 R0= 1.5709 De= 0.7836 +C-S Ks= 310.12 R0= 1.8444 De= 0.5671 +C-P Ks= 299.57 R0= 1.8514 De= 0.4918 +N-N Ks= 506.79 R0= 1.4608 De= 0.4548 +N-O Ks= 533.13 R0= 1.4246 De= 0.4571 +N-B Ks= 592.16 R0= 1.4282 De= 0.9424 +N-S Ks= 342.60 R0= 1.7715 De= 0.4387 +N-P Ks= 352.72 R0= 1.7607 De= 0.3841 +O-O Ks= 495.90 R0= 1.4427 De= 0.3277 +O-B Ks= 596.39 R0= 1.3882 De= 0.9424 +### O-S -- no energy zero +O-S Ks= 349.25 R0= 1.7332 De= 0.4774 +O-P Ks= 439.50 R0= 1.6698 De= 0.5014 +B-B Ks= 255.71 R0= 1.7579 De= 0.6481 +B-S Ks= 280.54 R0= 1.8715 De= 0.6401 +B-P Ks= 321.32 R0= 1.8405 De= 0.6418 +S-S Ks= 215.90 R0= 2.1596 De= 0.3505 +S-P Ks= 242.40 R0= 2.1221 De= 0.3651 +P-P Ks= 207.05 R0= 2.2003 De= 0.2030 +Cl-Si Ks= 275.90 R0= 2.0824 De= 0.7021 +H-Si Ks= 290.41 R0= 1.4873 De= 0.6601 +F-Si Ks= 507.97 R0= 1.6332 De= 0.9925 +Si-Si Ks= 165.22 R0= 2.3609 De= 0.5095 +Si-C Ks= 272.66 R0= 1.8880 De= 0.6522 +Si-N Ks= 359.22 R0= 1.7806 De= 0.6579 +Si-O Ks= 434.29 R0= 1.6951 De= 0.7898 +Si-B Ks= 204.42 R0= 2.0340 De= 0.5867 +Si-S Ks= 231.15 R0= 2.1730 De= 0.5644 +Si-P Ks= 201.44 R0= 2.2526 De= 0.4227 +C+N Ks=2004.91 R0= 1.1580 De= 1.6892 +### O=O -- no energy zero +O=O Ks=1257.24 R0= 1.2159 De= 0.2724 +O=C Ks=1359.14 R0= 1.2118 De= 1.2578 +C=C Ks= 988.51 R0= 1.3344 De= 1.2708 +N+N Ks=2477.70 R0= 1.1054 De= 1.5347 +N=N Ks=1278.37 R0= 1.2315 De= 0.8346 +N=O Ks=1320.74 R0= 1.2056 De= 0.7920 +N=C Ks=1167.02 R0= 1.2701 De= 1.1232 diff --git a/sim/src/experimental/josh_dev/test.py b/sim/src/experimental/josh_dev/test.py new file mode 100755 index 000000000..9c7c5f5fe --- /dev/null +++ b/sim/src/experimental/josh_dev/test.py @@ -0,0 +1,20 @@ + +# Copyright 2005 Nanorex, Inc. See LICENSE file for details. +from bondage import * +e,p,b = readmmp('ethane.mmp') +bondsetup(b) + +dt=1e-16 + +massacc=array([dt*dt/elmass[x] for x in e]) + +n=p+massacc*force(p) + +x= os.times() +## print 'running...', +## for i in xrange(100000): +## o=p +## p=n +## n=2*p-o+massacc*force(p) + +## print os.times()[0]-x[0] diff --git a/sim/src/experimental/opengl-pyrex/Makefile b/sim/src/experimental/opengl-pyrex/Makefile new file mode 100755 index 000000000..cdf3dcd24 --- /dev/null +++ b/sim/src/experimental/opengl-pyrex/Makefile @@ -0,0 +1,18 @@ + + +# Copyright 2006-2007 Nanorex, Inc. See LICENSE file for details. + +CC=gcc +CFLAGS=-Wall -g -I/usr/X11R6/include -I/usr/include/python2.3 +LDFLAGS=-L/usr/X11R6/lib -L/usr/lib/python2.3/config -lGL -lGLU -lpython2.3 + +all: putz.so + +clean: + rm -f *~ *.o putz.c putz.so + +putz.c: putz.pyx + pyrexc putz.pyx + +putz.so: putz.o + $(CC) -shared $(LDFLAGS) -o putz.so putz.o diff --git a/sim/src/experimental/opengl-pyrex/futz.c b/sim/src/experimental/opengl-pyrex/futz.c new file mode 100755 index 000000000..5c4b2d998 --- /dev/null +++ b/sim/src/experimental/opengl-pyrex/futz.c @@ -0,0 +1,78 @@ +// Copyright 2006 Nanorex, Inc. See LICENSE file for details. +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <math.h> + +#include <GL/glx.h> +#include <GL/gl.h> +#include <GL/glu.h> + +// Position of the eye in spherical coordinates +#define EYE_THETA 0.0 +#define EYE_PHI 0.0 +#define EYE_R 100.0 + +// Position of the eye in cartesian coordinates +#define EYE_X (EYE_R * cos(EYE_THETA) * cos(EYE_PHI)) +#define EYE_Y (EYE_R * sin(EYE_THETA) * cos(EYE_PHI)) +#define EYE_Z (EYE_R * sin(EYE_PHI)) + +static GLUquadric *quad = NULL; + +void +glSetup(int windowWidth, int windowHeight) +{ + float lightPosition[4] = { 1.0, 0.5, -0.1, 0.0 }; + glClearColor(0.2, 0.2, 0.2, 1.0); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glLoadIdentity(); + glLightfv(GL_LIGHT0, GL_POSITION, lightPosition); + + glEnable(GL_DEPTH_TEST); + + gluPerspective(45.0, (double)windowWidth / (double)windowHeight, EYE_R/10.0, EYE_R*20.0); + gluLookAt(EYE_X, EYE_Y, EYE_Z, + 0.0, 0.0, 0.0, + 0.0, 0.0, 1.0); + + quad = gluNewQuadric(); + if (quad == NULL) { + perror("can't allocate quadric"); + exit(1); + } +} + + +void +line(float x1, float y1, float z1, + float x2, float y2, float z2, + float r, float g, float b) +{ + glBegin(GL_LINES); + glColor3f(r, g, b); + glVertex3f(x1, y1, z1); + glVertex3f(x2, y2, z2); + glEnd(); +} + + +void +sphere(double x, double y, double z, double radius, double r, double g, double b) +{ + const GLfloat materialColor[4] = { + r, g, b, 1.0 + }; + + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, materialColor); + + glPushMatrix(); + glTranslated(x, y, z); + gluSphere(quad, radius, 8, 8); + glPopMatrix(); + + glDisable(GL_LIGHTING); + glDisable(GL_LIGHT0); +} diff --git a/sim/src/experimental/opengl-pyrex/putz.pyx b/sim/src/experimental/opengl-pyrex/putz.pyx new file mode 100755 index 000000000..db5cc0cff --- /dev/null +++ b/sim/src/experimental/opengl-pyrex/putz.pyx @@ -0,0 +1,51 @@ +# Copyright 2006 Nanorex, Inc. See LICENSE file for details. +import math +import qt +import qtgl +import sys +import random + +cdef extern from "futz.c": + # Does OpenGL compel the use of floats, or are doubles OK? + void line(float x1, float y1, float z1, + float x2, float y2, float z2, + float r, float g, float b) + void sphere(double x, double y, double z, + double radius, + double r, double g, double b) + void glSetup(int windowWidth, int windowHeight) + + +class GLPane(qtgl.QGLWidget): + def __init__(self, master=None, name=None, win=None): + qtgl.QGLWidget.__init__(self, master, name) + self.win = win + self.redrawGL = True + self.setFocusPolicy(qt.QWidget.StrongFocus) + glSetup(600, 400) + print "GLPane constructor ran" + self.update() + def update(self): + line(100 * random.random(), 100 * random.random(), 100 * random.random(), + 100 * random.random(), 100 * random.random(), 100 * random.random(), + random.random(), random.random(), random.random()) + qtgl.QGLWidget.update(self) + # use self.update to repaint + +class MainWindow(qt.QMainWindow): + def __init__(self): + qt.QMainWindow.__init__(self) + self.setEnabled(1) + self.setOpaqueMoving(0) + self.glpane = GLPane(self, "glpane", self) + def show(self): + self.glpane.show() + qt.QMainWindow.show(self) + + +def main(): + qt.QApplication.setColorSpec(qt.QApplication.CustomColor) + app = qt.QApplication(sys.argv) + app.connect(app, qt.SIGNAL("lastWindowClosed()"), app.quit) + win = MainWindow() + win.show() diff --git a/sim/src/experimental/orphan.c b/sim/src/experimental/orphan.c new file mode 100755 index 000000000..fec70c93a --- /dev/null +++ b/sim/src/experimental/orphan.c @@ -0,0 +1,278 @@ + +// Copyright 2005 Nanorex, Inc. See LICENSE file for details. +/* factor for a unit vector given length squared -- rtned in uf, i is temp */ +/** tables and setup function for same */ +double uft1[UFTLEN], uft2[UFTLEN]; + +double uffunc(double uf) { + return 1.0/sqrt(uf); +} + +from main() before setupPositionsArrays: + maktab(uft1, uft2, uffunc, UFSTART, UFTLEN, UFSCALE); + +/** data for the 5-carbon test molecule */ +struct xyz diam[5]= + {{0.0, 0.0, 0.0}, + {176.7, 176.7, 0.0}, + {176.7, 0.0, 176.7}, + {0.0, 176.7, 176.7}, + {88.33, 88.33, 88.33}}; + +int PartNo=0, DisplayStyle=1; /* 0 nothing, 1 ball/stick, 2 vdW surface */ + +int findbond(int btyp) { + int i; + if (btyp < 0) + btyp = -btyp; + for (i=0; i < BSTABSIZE; i++) + if (bstab[i].typ == btyp) + return i; + // fprintf(stderr, "Bond type %d not found\n",btyp); + return -1; +} + +int findtorq(int btyp1, int btyp2) { + int i; + for (i=0; i < BENDATASIZE; i++) { + + if (iabs(bendata[i].b1typ) == iabs(btyp1) && + iabs(bendata[i].b2typ) == iabs(btyp2)) return i; + if (iabs(bendata[i].b1typ) == iabs(btyp2) && + iabs(bendata[i].b2typ) == iabs(btyp1)) return i; + } + // fprintf(stderr, "Bend type %d-%d not found\n",btyp1,btyp2); + return 0; // the default bend type +} + +// printers.c + +// unused +static void pbontyp(FILE *f, struct bsdata *ab) { + fprintf(f, "Bond between %d / %d of order %d: type %d, length %f, stiffness %f\n table %d, start %f, scale %d\n", + ab->a1,ab->a2,ab->ord,ab->typ,ab->r0,ab->ks, + ab->table,ab->start,ab->scale); + +} + +//unused +static void bondump(FILE *f) { /* gather bond statistics */ + int histo[50][23], totno[50], btyp, i, j, k, n; + double r, perc, means[50]; + struct bondStretch *bt; + + for (i=0; i<50; i++) { + totno[i] = 0; + means[i] = 0.0; + for (j=0; j<23; j++) + histo[i][j]=0; + } + + for (i=0; i<Nexbon; i++) { + bt=bond[i].type; + // XXX btyp = bt-bstab; + totno[btyp]++; + r=vlen(vdif(Positions[bond[i].an1], Positions[bond[i].an2])); + means[btyp] += r; + perc = (r/bt->r0)*20.0 - 8.5; + k=(int)perc; + if (k<0) k=0; + if (k>22) k=22; + histo[btyp][k]++; + } + + for (i=0; i<BSTABSIZE; i++) if (totno[i]) { + fprintf(f, "Bond type %s-%s, %d occurences, mean %.2f pm:\n", + periodicTable[bstab[i].a1].symbol, periodicTable[bstab[i].a2].symbol, totno[i], + means[i]/(double)totno[i]); + for (j=0; j<23; j++) { + if ((j-1)%10) fprintf(f, " |"); + else fprintf(f, "-+"); + n=(80*histo[i][j])/totno[i]; + if (histo[i][j] && n==0) fprintf(f, "."); + for (k=0; k<n; k++) fprintf(f, "M"); + fprintf(f, "\n"); + }} + fprintf(f, "Iteration %d\n",Iteration); +} + +// unused +static void pangben(FILE *f, struct angben *ab) { + fprintf(f, "Bend between %d / %d: kb=%.2f, th0=%.2f\n", + ab->b1typ,ab->b2typ,ab->kb,ab->theta0); + +} + +// unused +static void speedump(FILE *f) { /* gather bond statistics */ + int histo[20], iv, i, j, k, n; + double v, eng, toteng=0.0; + + for (i=0; i<21; i++) { + histo[i]=0; + } + + for (i=0; i<Nexatom; i++) { + v=vlen(vdif(OldPositions[i],Positions[i])); + eng= atom[i].energ*v*v; + toteng += eng; + iv=(int)(eng*1e21); + if (iv>20) iv=20; + histo[iv]++; + } + + fprintf(f, "Kinetic energies:\n"); + for (j=0; j<21; j++) { + if (j%5) fprintf(f, " |"); + else fprintf(f, "-+"); + n=(70*histo[j])/Nexatom; + if (histo[j] && n==0) fprintf(f, "."); + for (k=0; k<n; k++) fprintf(f, "M"); + fprintf(f, "\n"); + } + fprintf(f, "Iteration %d, KE %e --> %e\n",Iteration,TotalKE,FoundKE); +} + +// simulator.h + +/* indexed by element number */ +struct atomtype { + /** in 1e-27 kg */ + double mass; + /** in Angstroms */ + double rvdw; + /** in zJ */ + double evdw; + /** number of bonds */ + int nbonds; + /** covalent radius */ + double rcovalent; + /** element's symbol on periodic table */ + char *symbol; +}; + +/* data for a stretch bond type */ +struct bsdata { + /** bond type, atom types & order */ + int typ, ord, a1, a2; + /** stiffness N/m */ + double ks; + /** base radius pm */ + double r0; + /** Morse/Lippincott PE parameters */ + double de,beta; + /** interpolation table stuff */ + double start; + struct dtab *table; + int scale; +}; +/* bond angle bending data */ + + + +struct angben { + /** bondtypes, negative if bond's a2 is common */ + int b1typ, b2typ; + /** kb in N/m */ + double kb; + /** in radians */ + double theta0; +}; + +/* +#define benrec(a1,o1,ac,o2,a2,kb,th) {bontyp(o1,ac,a1),bontyp(o2,ac,a2),\ + kb*6.36e-2, th, 0.0, NULL, NULL, 0} +*/ +// convert Ktheta from zJ to yJ, see +#define benrec(a1,ac,a2,kb,th) {bontyp(1,ac,a1),bontyp(1,ac,a2),\ + kb*1000.0, th} + +struct dtab { /* two interpolation tables */ + double t1[TABLEN], t2[TABLEN]; +}; + + +/* mol.c */ +extern struct vdWbuf vanderRoot; +extern double uft1[200]; +extern double uft2[200]; +extern double uffunc(double uf); +//extern struct xyz f; +extern struct xyz diam[5]; +// extern char *elname[37]; +#if 0 +extern int findbond(int btyp); +extern int findtorq(int btyp1, int btyp2); +#endif +extern void makbon0(int a, int b, int ord); +extern void makbon1(int n); +extern void makvander0(int a1, int a2); +extern void makvander1(struct vdWbuf *buf, int n); +extern void calcloop(int iters); +extern void minimize(int NumFrames); +extern void keyboard(unsigned char key, int x, int y); +extern int main(int argc, char **argv); + +/* display.c */ +extern void display(void); +extern void init(void); +extern void display_init(int *argc, char *argv[]); +extern void display_mainloop(void); + +// interpolate.c + +void testInterpolateBondStretch(int ord, int a1, int a2) +{ + int i; + double start; + double scale; + double *t1, *t2; + double rSquared; + double lowR, highR; + double lowRSquare; + double highRSquare; + double epsilon; + int steps; + int k; + double fac; + double func; + + i = findbond(bontyp(ord, a1, a2)); + + R0 = bstab[i].r0; + Ks = bstab[i].ks; + De = bstab[i].de; + Beta = bstab[i].beta; + printf("# R0: %e Ks: %e De: %e Beta: %e\n", R0, Ks, De, Beta); + + /* table setup for stretch, to be moved out of loop */ + start=bstab[i].start; + scale=bstab[i].scale; + t1=bstab[i].table->t1; + t2=bstab[i].table->t2; + + printf("# start: %e scale: %e\n", start, scale); + + lowR = R0 * 0.496; + highR = R0 * 1.5; + steps = 10000; + lowRSquare = lowR * lowR; + highRSquare = highR * highR; + //highRSquare = TABLEN * scale * 1.5 + start; + epsilon = (highRSquare - lowRSquare) / steps ; + + for (rSquared=lowRSquare; rSquared<highRSquare; rSquared += epsilon) { + k=(int)(rSquared-start)/scale; + if (k<0) { + fac=t1[0]+rSquared*t2[0]; + } else if (k>=TABLEN) { + fac = t1[TABLEN-1]+((TABLEN-1)*scale+start)*t2[TABLEN-1]; + } else { + fac=t1[k]+rSquared*t2[k]; + } + // table lookup equivalent to: fac=lippmor(rSquared) + func = lippmor(rSquared); + printf("%e %e %e\n", sqrt(rSquared), fac, func); + } + exit(0); +} diff --git a/sim/src/experimental/rotaryMotor.py b/sim/src/experimental/rotaryMotor.py new file mode 100755 index 000000000..0958c5786 --- /dev/null +++ b/sim/src/experimental/rotaryMotor.py @@ -0,0 +1,227 @@ +#!/usr/bin/python + +# Copyright 2005 Nanorex, Inc. See LICENSE file for details. +# Refer to http://tinyurl.com/8zl86, the 22 Dec discussion about +# rotary motors. + +from math import pi, cos, sin +import random +import units +import sys + +DEBUG = False + +DT = 1.e-16 * units.second +SPRING_STIFFNESS = 10 * units.newton / units.meter + +# Sw(x) goes from 0 to 1, use 1-Sw(x) to go from 1 to 0 +def Sw(x, a=.5/pi, b=2*pi): + if x < 0: return 0 + elif x > 1: return 1 + else: return x - a * cos(b * (x - .25)) + +class Atom: + def __init__(self, mass, x, y, z): + self.mass = mass + self.position = units.Vector(x, y, z) + self.velocity = units.ZERO_VELOCITY + self.zeroForce() + def zeroForce(self): + self.force = units.ZERO_FORCE + def __repr__(self): + pos = self.position + return "<%s %s>" % (repr(self.mass), repr(self.position)) + def timeStep(self): + self.position += self.velocity.scale(DT) + self.velocity += self.force.scale(DT / self.mass) + +class Spring: + def __init__(self, stiffness, atom1, atom2): + self.stiffness = stiffness + self.atom1 = atom1 + self.atom2 = atom2 + self.length = (atom1.position - atom2.position).length() + def timeStep(self): + x = self.atom1.position - self.atom2.position + f = x.normalize().scale(self.stiffness * (x.length() - self.length)) + self.atom1.force -= f + self.atom2.force += f + +class RotaryController: + def __init__(self, atomlist): + self.atoms = atomlist + center = units.ZERO_POSITION + for atm in atomlist: + center += atm.position + self.center = center = center.scale(1./len(atomlist)) + # Determine the direction of the axis. If the atoms are all + # lying in a plane, this should be normal to the plane. + axis = units.ZERO_POSITION + extended = atomlist + [ atomlist[0], ] + for i in range(len(atomlist)): + u = extended[i].position - center + v = extended[i+1].position - center + axis += u.cross(v).scale(1./units.meter) + self.axis = axis = axis.normalize() + # at this point, axis is dimensionless and unit-length + self.anchors = anchors = [ ] + amoi = 0. * units.MomentOfInertiaUnit + for atom in atomlist: + x = atom.position - center + u = axis.scale(x.dot(axis)) + v = x - u # component perpendicular to motor axis + w = axis.cross(v) + def getAnchor(theta, u=u, v=v, w=w): + # be able to rotate the anchor around the axis + theta /= units.radian + return u + v.scale(cos(theta)) + w.scale(sin(theta)) + anchors.append(getAnchor) + amoi = atom.mass * v.length() ** 2 + self.atomsMomentOfInertia = amoi + self.omega = 0. * units.radian / units.second + self.theta = 0. * units.radian + + def nudgeAtomsTowardTheta(self): + # this is called during the controller's time step function + # assume that any interatomic forces have already been computed + # and are represented in the "force" attribute of each atom + # calculate positions of each anchor, and spring force to atom + atoms, anchors, center = self.atoms, self.anchors, self.center + atomDragTorque = 0. * units.TorqueUnit + for i in range(len(atoms)): + atom = atoms[i] + anchor = anchors[i](self.theta) + # compute force between atom and anchor + springForce = (atom.position - anchor).scale(SPRING_STIFFNESS) + atom.force -= springForce + r = atom.position - center + T = r.cross(springForce).scale(units.radian) + atomDragTorque += self.axis.dot(T) + return atomDragTorque + + +class BoschMotor(RotaryController): + + def __init__(self, atomlist, torque, gigahertz): + RotaryController.__init__(self, atomlist) + speed = (2 * pi * 1.e9 * units.AngularVelocityUnit) * gigahertz + if DEBUG: print "target speed", speed + assert units.TorqueUnit.unitsMatch(torque) + assert units.AngularVelocityUnit.unitsMatch(speed) + self.stallTorque = torque + self.speed = speed + + amoi = self.atomsMomentOfInertia + flywheelMomentOfInertia = 10 * amoi + self.momentOfInertia = amoi + flywheelMomentOfInertia + + # + # There REALLY IS a criterion for numerical stability! + # + ratio = (DT * torque) / (self.momentOfInertia * speed) + #if False: + if abs(ratio) > 0.3: + # The C code must also throw an exception or do whatever is + # the equivalent thing at this point. + raise Exception, "torque-to-speed ratio is too high" + + def timeStep(self): + # assume that any interatomic forces have already been computed + # and are represented in the "force" attribute of each atom + # calculate positions of each anchor, and spring force to atom + atomDragTorque = self.nudgeAtomsTowardTheta() + controlTorque = self.torqueFunction() + self.torque = torque = controlTorque + atomDragTorque + + # iterate equations of motion + self.theta += DT * self.omega + self.omega += DT * torque / self.momentOfInertia + + def torqueFunction(self): + # The Bosch model + return (1.0 - self.omega / self.speed) * self.stallTorque + +class ThermostatMotor(BoschMotor): + def torqueFunction(self): + # bang-bang control + if self.omega < self.speed: + return self.stallTorque + else: + return -self.stallTorque + +class RotarySpeedController(RotaryController): + def __init__(self, atomlist, rampupTime, gigahertz): + RotaryController.__init__(self, atomlist) + speed = (2 * pi * 1.e9 * units.AngularVelocityUnit) * gigahertz + if DEBUG: print "target speed", speed + assert units.second.unitsMatch(rampupTime) + assert units.AngularVelocityUnit.unitsMatch(speed) + self.time = 0. * units.second + self.rampupTime = rampupTime + self.speed = speed + + def timeStep(self): + self.nudgeAtomsTowardTheta() + # iterate equations of motion + self.theta += DT * self.omega + self.omega = self.speed * Sw(self.time / self.rampupTime) + self.time += DT + +################################################ + +N = 6 +alst = [ ] +for i in range(N): + def rand(): + #return 0.1 * (1. - 2. * random.random()) + return 0. + a = 3 * units.angstrom + x = a * (rand() + cos(2 * pi * i / N)) + y = a * (rand() + sin(2 * pi * i / N)) + z = a * rand() + atm = Atom(12 * units.protonMass, x, y, z) + alst.append(atm) + +springs = [ ] +extended = alst + [ alst[0], ] +for i in range(N): + atom1 = extended[i] + atom2 = extended[i+1] + stiffness = 400 * units.newton / units.meter + springs.append(Spring(stiffness, atom1, atom2)) + +type = "S" +ghz = 2000 + +if type == "B": + Motor = BoschMotor + m = Motor(alst, 1.0e-16 * units.TorqueUnit, ghz) +elif type == "T": + Motor = ThermostatMotor + m = Motor(alst, 1.0e-16 * units.TorqueUnit, ghz) +elif type == "S": + Motor = RotarySpeedController + m = Motor(alst, 10000 * DT, ghz) + +yyy = open("yyy", "w") +zzz = open("zzz", "w") + +for i in range(10000): + for a in alst: + a.zeroForce() + for s in springs: + s.timeStep() + m.timeStep() + for a in alst: + a.timeStep() + if (i % 100) == 0: + #print m.theta, m.omega, alst[0] + p = alst[0].position + yyy.write("%g %g\n" % (p.x.coefficient(), p.y.coefficient())) + p = alst[N/2].position + zzz.write("%g %g\n" % (p.x.coefficient(), p.y.coefficient())) + +yyy.close() +zzz.close() + +print "Gnuplot command: plot \"yyy\" with lines, \"zzz\" with lines" diff --git a/sim/src/experimental/testsqrt.c b/sim/src/experimental/testsqrt.c new file mode 100755 index 000000000..ff2725c98 --- /dev/null +++ b/sim/src/experimental/testsqrt.c @@ -0,0 +1,106 @@ +// Copyright 2005 Nanorex, Inc. See LICENSE file for details. +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <time.h> +#include <sys/vtimes.h> + +#include "interp_sqrt.c" + +static inline double +extendSqrt(double x) +{ + // this adds 4 nanoseconds + // extend range to [0.01,10000] + if (x < 1.0) { + return 0.1 * interpolator_sqrt(100.0 * x); + } else if (x > 100.0) { + return 10.0 * interpolator_sqrt(0.01 * x); + } else { + return interpolator_sqrt(x); + } +} + +#define TIMEDIFF(late,early) ((late).tv_sec - (early).tv_sec + \ + 1.0e-9 * ((late).tv_nsec - (early).tv_nsec)) +#define ELAPSED_NANOSECONDS() (1.e9 * TIMEDIFF(ts2, ts1) / N) + +struct timespec ts1, ts2, before, after; +volatile double x, xsq, y; +#define THOUSAND 1000 +#define MILLION (THOUSAND * THOUSAND) +#define N (100 * MILLION) +//#define N (100 * THOUSAND) + +/* + * 0.6 to 0.7 nanoseconds for a floating-point comparison, 14 + * nanoseconds for library sqrt + * + * 4 nanoseconds for just the polynomial + * + * It takes four comparisons to get down to the polynomial, so I'd + * assume it would take 4*0.7 + 4 nsecs = ~7 nsec for the lookup sqrt, + * but instead it takes 11 or 12 nsecs. Why? + * + * The library sqrt takes 14 nsecs. + */ + +int main(int argc, char **argv) +{ + int i; + double tbaseline; + + x = 25.0; + xsq = x * x; + + + /* Reference: a loop that just does an assignment */ + clock_gettime(CLOCK_REALTIME, &before); + clock_gettime(CLOCK_REALTIME, &ts1); + for (i = 0; i < N; i++) { + y = x; + } + clock_gettime(CLOCK_REALTIME, &ts2); + tbaseline = ELAPSED_NANOSECONDS(); + + + /* Floating-point comparisons take 1.8 nsecs */ + clock_gettime(CLOCK_REALTIME, &ts1); + for (i = 0; i < N; i++) { + if (x > M_PI) + y = 0.0; + else + y = 1.0; + } + clock_gettime(CLOCK_REALTIME, &ts2); + printf("%f nanoseconds for float comparison\n", + ELAPSED_NANOSECONDS() - tbaseline); + + + /* The library sqrt() function takes 14 nsecs */ + clock_gettime(CLOCK_REALTIME, &ts1); + for (i = 0; i < N; i++) { + y = sqrt(x); + } + clock_gettime(CLOCK_REALTIME, &ts2); + printf("%f nanoseconds for library sqrt\n", + ELAPSED_NANOSECONDS() - tbaseline); + printf("sqrt(%f) = %f\n", x, y); + + + /* Tinker with the lookup-table sqrt until it's fast */ + clock_gettime(CLOCK_REALTIME, &ts1); + for (i = 0; i < N; i++) { + //y = extendSqrt(xsq); + y = interpolator_sqrt(xsq); + } + clock_gettime(CLOCK_REALTIME, &ts2); + printf("%f nanoseconds for lookup-table sqrt\n", + ELAPSED_NANOSECONDS() - tbaseline); + clock_gettime(CLOCK_REALTIME, &after); + printf("sqrtlut(%f) = %f\n", x, y); + + printf("%f seconds for the whole thing\n", TIMEDIFF(after, before)); + + return 0; +} diff --git a/sim/src/experimental/units.py b/sim/src/experimental/units.py new file mode 100755 index 000000000..0a475e727 --- /dev/null +++ b/sim/src/experimental/units.py @@ -0,0 +1,246 @@ +# Copyright 2005 Nanorex, Inc. See LICENSE file for details. +"""Physical units for calculations + +Physical quantities are represented here as dictionaries. One key is +'coefficient', the other keys are metric units like 'm', 'sec', 'kg'. +The value for each dimension key is the power to which that unit is +raised. For instance, the representation for a newton is {'sec': -2, +'kg': 1, 'm': 1, 'coefficient': 1.0}. + +When quantities are multiplied or divided, the powers of units are +correctly maintained. If one unit ends up being raised to a zeroth +power, that unit is discarded in the product or ratio. If a result is +dimensionless, just return a float. + +There are also some handy units and conversions at the bottom of the +file. +""" + +import types + +coeff = 'coefficient' +class UnitsMismatch(Exception): + pass + +class Quantity: + def __init__(self,stuff,units=None): + if units == None: + stuff = stuff.copy() + c = stuff[coeff] + del stuff[coeff] + self.stuff = stuff + else: + c = 1. * stuff + self.stuff = units.copy() + for k in self.stuff.keys(): + if self.stuff[k] == 0: + del self.stuff[k] + self.stuff[coeff] = c + def __repr__(self): + str = '<%g' % self.stuff[coeff] + for k in self.stuff.keys(): + if k != coeff: + str = str + ' ' + k + if self.stuff[k] != 1: + str = str + '^' + `self.stuff[k]` + return str + '>' + def __add__(self, other): + self.testUnitsMatch(other) + stuff = self.stuff.copy() + stuff[coeff] += other.stuff[coeff] + return Quantity(stuff) + def __neg__(self): + stuff = self.stuff.copy() + stuff[coeff] = -stuff[coeff] + return Quantity(stuff) + def __sub__(self, other): + return self + (-other) + def __cmp__(self, other): + self.testUnitsMatch(other) + return cmp(self.stuff[coeff], other.stuff[coeff]) + def __mul__(self, other): + if type(other) in (types.IntType, types.FloatType, types.ComplexType): + stuff = self.stuff.copy() + stuff[coeff] = other * stuff[coeff] + return Quantity(stuff) + if not isinstance(other, Quantity): + raise UnitsMismatch, repr(self) + " * " + repr(other) + stuff = self.stuff.copy() + for k in other.stuff.keys(): + if k != coeff: + if stuff.has_key(k): + stuff[k] += other.stuff[k] + if abs(stuff[k]) < 1.0e-8: + del stuff[k] + else: + stuff[k] = other.stuff[k] + stuff[coeff] *= other.stuff[coeff] + if len(stuff.keys()) == 1: + return stuff[coeff] + else: + return Quantity(stuff) + def __rmul__(self, other): + return self * other + def __div__(self, other): + return self * (other ** -1) + def __rdiv__(self, other): + return (self ** -1) * other + def __pow__(self, z): + stuff = self.stuff.copy() + for k in stuff.keys(): + if k != coeff: + stuff[k] = z * stuff[k] + stuff[coeff] = stuff[coeff] ** z + return Quantity(stuff) + def coefficient(self): + return self.stuff[coeff] + def unitsMatch(self, other): + if not isinstance(other, Quantity): + return False + otherkeys = other.stuff.keys() + for k in self.stuff.keys(): + if k not in otherkeys: + return False + if k != coeff and self.stuff[k] != other.stuff[k]: + return False + return True + def testUnitsMatch(self, other): + if not self.unitsMatch(other): + raise UnitsMismatch, repr(self) + " mismatch " + repr(other) + +# Lotsa good stuff on units and measures at: +# http://aurora.rg.iupui.edu/UCUM/UCUM-tab.html + +### Fundamental units +meter = Quantity(1,{'m':1}) +kilogram = Quantity(1,{'kg':1}) +second = Quantity(1,{'sec':1}) +coulomb = Quantity(1,{'C':1}) +radian = Quantity(1,{'rad':1}) + +Kilo = 1.e3 +Mega = 1.e6 +Giga = 1.e9 +Tera = 1.e12 +Centi = 1.e-2 +Milli = 1.e-3 +Micro = 1.e-6 +Nano = 1.e-9 +Pico = 1.e-12 +Femto = 1.e-15 +Atto = 1.e-18 + +### Conveniences and metric prefixes +meter2 = meter * meter +meter3 = meter2 * meter + +# don't know the official metric names for these, if such exist +speed = meter / second +acceleration = speed / second +density = kilogram / meter3 + +liter = Milli * meter3 +newton = kilogram * acceleration +joule = newton * meter +watt = joule / second +ampere = coulomb / second +volt = joule / coulomb +ohm = volt / ampere +farad = coulomb / volt +weber = volt * second +tesla = weber / meter2 +pascal = newton / meter2 +henry = weber / ampere + +km = Kilo * meter +cm = Centi * meter +mm = Milli * meter +um = Micro * meter +nm = Nano * meter + +gram = Milli * kilogram +mgram = Micro * kilogram +ugram = Nano * kilogram + +msec = Milli * second +usec = Micro * second +nsec = Nano * second +psec = Pico * second +fsec = Femto * second + +uF = Micro * farad +nF = Nano * farad +pF = Pico * farad + +mH = Milli * henry +uH = Micro * henry +nH = Nano * henry + +Kohm = Kilo * ohm +Mohm = Mega * ohm + +### Some English measures +inch = .0254 * meter +foot = 12 * inch +yard = 3 * foot +furlong = 660 * foot +mile = 5280 * foot + +gallon = 3.79 * liter +quart = .25 * gallon +pint = .5 * quart +cup = .5 * pint +fluid_ounce = .125 * cup +tablespoon = .5 * fluid_ounce +teaspoon = tablespoon / 3. + +minute = 60 * second +hour = 60 * minute +day = 24 * hour +year = 365.25 * day +# There is some disagreement on years. There are Julian years (this is +# that), Gregorian years (365.2425), and tropical years (365.24219). + +angstrom = 1.e-10 * meter + +protonMass = 1.672621e-27 * kilogram +MomentOfInertiaUnit = kilogram * meter2 +TorqueUnit = radian * newton * meter +AngularVelocityUnit = radian / second + +class Vector: + def __init__(self, x, y, z): + self.x, self.y, self.z = x, y, z + def __repr__(self): + return "[%s %s %s]" % (repr(self.x), repr(self.y), repr(self.z)) + def __add__(self, other): + return Vector(self.x + other.x, self.y + other.y, self.z + other.z) + def __sub__(self, other): + return Vector(self.x - other.x, self.y - other.y, self.z - other.z) + def __neg__(self, other): + return Vector(-self.x, -self.y, -self.z) + def scale(self, m): + return Vector(self.x * m, self.y * m, self.z * m) + def dot(self, other): + return self.x * other.x + self.y * other.y + self.z * other.z + def cross(self, other): + return Vector(self.y * other.z - self.z * other.y, + self.z * other.x - self.x * other.z, + self.x * other.y - self.y * other.x) + def length(self): + return self.dot(self) ** .5 + def normalize(self): + return self.scale(1. / self.length()) + +ZERO_POSITION = Vector(0. * meter, + 0. * meter, + 0. * meter) +ZERO_VELOCITY = Vector(0. * meter / second, + 0. * meter / second, + 0. * meter / second) +ZERO_FORCE = Vector(0. * newton, + 0. * newton, + 0. * newton) +ZERO_TORQUE = Vector(0. * TorqueUnit, + 0. * TorqueUnit, + 0. * TorqueUnit) diff --git a/sim/src/experimental/xyzreader.c b/sim/src/experimental/xyzreader.c new file mode 100755 index 000000000..eb86d15d6 --- /dev/null +++ b/sim/src/experimental/xyzreader.c @@ -0,0 +1,173 @@ +// Copyright 2004-2005 Nanorex, Inc. See LICENSE file for details. +#include <stdio.h> +#include <stdlib.h> +#include <math.h> + +#include "mol.h" + + +/** indicate next avail/total number of stretch bonds, bend bonds, and atoms */ +int Nexbon=0, Nextorq=0, Nexatom=0; + +/** Input xyz file */ +FILE *inf; + +/** positions and forces on the atoms w/pointers into pos */ +struct xyz avg[NATOMS]; + +struct xyz Center, Bbox[2]; + +/** data for the 5-carbon test molecule */ +struct xyz diam[5]= + {{0.0, 0.0, 0.0}, + {176.7, 176.7, 0.0}, + {176.7, 0.0, 176.7}, + {0.0, 176.7, 176.7}, + {88.33, 88.33, 88.33}}; + +int PartNo=0; + +/** 0 nothing, 1 ball/stick, 2 vdW surface */ +int DisplayStyle=2; + +struct A atom[NATOMS]; + + +struct B bond[4*NATOMS]; + + +/* creating atoms, bonds, etc */ + +/** uses global Nexatom, atom, element, cur, old, Dt, Dx, Boltz, and + Temperature */ +void makatom(int elem, struct xyz posn) { + struct xyz foo, v, p; + double mass, therm; + + /* create the data structures */ + atom[Nexatom].elt=elem; + atom[Nexatom].nbonds=0; + atom[Nexatom].part = PartNo; + atom[Nexatom].disp = DisplayStyle; + atom[Nexatom].next = NULL; + atom[Nexatom].bucket = NULL; + avg[Nexatom]=posn; + Nexatom++; + +} + + +/** file reading */ + +int done = 0; + +void xyz_frame_read(void) { + + char buf[128]; + int i, j, n, ord; + struct xyz vec1, vec2; + + Nexatom = 0; // overwrite any old atoms + j = fread(&n, sizeof(int), 1, inf); // get the number of atoms + if (j < 1) { + done = 1; // end of file! + return; + } + + Center.x = Center.y = Center.z = 0.0; + for (i = 0; i < n; i++) { + int elt; + struct xyz posn; + j = fread(&elt, sizeof(int), 1, inf); + if (j < 1) { + done = 1; // end of file! + return; + } + j = fread(&posn, sizeof(struct xyz), 1, inf); + if (j < 1) { + done = 1; // end of file! + return; + } + Center.x += posn.x; + Center.y += posn.y; + Center.z += posn.z; + makatom(elt, posn); + } + + Center.x /= Nexatom; + Center.y /= Nexatom; + Center.z /= Nexatom; + + double xmin, xmax, ymin, ymax, zmin, zmax; + xmin = xmax = 0.0; + ymin = ymax = 0.0; + zmin = zmax = 0.0; + + for (i = 0; i < Nexatom; i++) { + avg[i].x -= Center.x; + avg[i].y -= Center.y; + avg[i].z -= Center.z; + if (avg[i].x < xmin) xmin = avg[i].x; + if (avg[i].x > xmax) xmax = avg[i].x; + if (avg[i].y < ymin) ymin = avg[i].y; + if (avg[i].y > ymax) ymax = avg[i].y; + if (avg[i].z < zmin) zmin = avg[i].z; + if (avg[i].z > zmax) zmax = avg[i].z; + } + + /* now everybody is centered around zero */ + Center.x = Center.y = Center.z = 0.0; + + /* set up bounding box */ + Bbox[0].x = xmin - 100.0; + Bbox[0].y = ymin - 100.0; + Bbox[0].z = zmin - 100.0; + Bbox[1].x = xmax + 100.0; + Bbox[1].y = ymax + 100.0; + Bbox[1].z = zmax + 100.0; +} + + + + + +static int ShotNo=0; + +void keyboard(unsigned char key, int x, int y) { + + if (key == '?') DBGPRINTF("\n\ +q -- quit\n\ +s -- snapshot\n"); + + if (key == 'q') exit(0); + if (key == 's') snapshot(ShotNo++); + + // calcloop(((key == 'z') ? 1 : 5)); + xyz_frame_read(); + if (done) + exit(0); + display(); +} + +/** + * The main loop for the whole kittenkaboodle + */ + +main(int argc,char **argv) +{ + inf = fopen("dumpstruct.xyz", "r"); + xyz_frame_read(); + display_init(&argc, argv); + display_mainloop(); + display_fini(); + fclose(inf); + + return 0; +} + +/* + * Local Variables: + * c-basic-offset: 8 + * tab-width: 8 + * End: + */ diff --git a/sim/src/findpyrex.py b/sim/src/findpyrex.py new file mode 100755 index 000000000..31249a952 --- /dev/null +++ b/sim/src/findpyrex.py @@ -0,0 +1,19 @@ +# Copyright 2006 Nanorex, Inc. See LICENSE file for details. + +__author__ = "Will" + +import sys, os, Pyrex + +def find_pyrexc(): + if sys.platform == 'darwin': + x = os.path.dirname(Pyrex.__file__).split('/') + return '/'.join(x[:-4] + ['bin', 'pyrexc']) + elif sys.platform == 'linux2': + if os.path.exists('/usr/bin/pyrexc'): + return '/usr/bin/pyrexc' + if os.path.exists('/usr/local/bin/pyrexc'): + return '/usr/local/bin/pyrexc' + raise Exception('cannot find pyrexc') + else: + # windows + return 'python c:/Python' + sys.version[:3] + '/Scripts/pyrexc.py' diff --git a/sim/src/globals.c b/sim/src/globals.c new file mode 100755 index 000000000..af61cfbd1 --- /dev/null +++ b/sim/src/globals.c @@ -0,0 +1,227 @@ +// Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. +#include "simulator.h" + +// Everything in here has to be updated in 6 places: +// +// The top of this file, where the actual symbol is defined. +// The bottom of this file, where the initial value is set. +// In globals.h, where others pick up the definitions. +// The top of sim.pyx, where these symbols are linked to python code. +// In __getattr__ in sim.pyx, to let python get them. +// In __setattr__ in sim.pyx, to let python set them. +// +// Sure would be nice to do it all just once... +// +// That could be done if sim.pyx can have cpp macros in it... + +static char const rcsid[] = "$Id$"; + +int debug_flags; + +int Interrupted; /* set to 1 when a SIGTERM is received */ + +struct xyz Center, Bbox[2]; + +int Iteration; + +char *CommandLine; + +// definitions for command line args + +int ToMinimize; +int IterPerFrame; +int NumFrames; +int DumpAsText; +int DumpIntermediateText; +int PrintFrameNums; +int OutputFormat; +int KeyRecordInterval; +int DirectEvaluate; +int QuadraticStretchPotential; +int PrintPotentialEnergy; +float ExcessiveEnergyLevel; +char *IDKey; +char *InputFileName; +char *OutputFileName; +char *TraceFileName; +char *BaseFileName; +int QualityWarningLevel; +float SimpleMovieForceScale; +double MinimizeThresholdCutoverRMS; +double MinimizeThresholdCutoverMax; +double MinimizeThresholdEndRMS; +double MinimizeThresholdEndMax; +int TimeReversal; +double ThermostatGamma; +double ThermostatG1; + +// multiple of rvdW where interpolation table ends, and van der Waals +// force is considered exactly zero beyond this point. +double VanDerWaalsCutoffFactor; + +int EnableElectrostatic; + +FILE *OutputFile; +FILE *TraceFile; + +int Count; + +int ExcessiveEnergyWarning; +int ExcessiveEnergyWarningThisFrame; +int ComputedParameterWarning; +int InterruptionWarning; + +// set to one in dynamics when processing the last iteration within a +// frame. For debugging, hence the leading _. Doesn't need +// initialization here. +int _last_iteration; + +/** constants: timestep (.1 femtosecond), scale of distance (picometers) */ +double Dt; // seconds +double Dx; // meters +double Dmass; // units of mass vs. kg + +double Temperature; // Kelvins + +const double Boltz = 1.3806503e-23; /* k, in J/K */ +const double Pi = 3.14159265358979323846; + +// permittivity constant, epsilon_naught = 8.854187818 * 10^-12 F/m (Halliday&Resnick, third edition, 1978, p. A23) +// F/m is C/(V m) is A^2 s^4 kg^-1 m^-3 +// elementary charge, e = 1.6021892 * 10^-19 C (H&R) +// C is A s + +// mksCoulomb = 1/(4 pi epsilon_naught) in kg m^3 A^-2 s^-4 +// mksCoulomb e^2 in kg m^3 e^-2 s^-2 +// mksCoulomb e^2 10^12 in kg pm m^2 e^-2 s^-2 or J pm e^-2 +// mksCoulomb e^2 10^12 10^18 in aJ pm e^-2 +// COULOMB = 1e12 * 1e18 * 1.6021892e-19 * 1.6021892e-19 / (4 * Pi * 8.854187818e-12); + +// Constant for electrostatic Coulomb force. Multiply by the charge +// in elementary units, and divide by the separation in pm to get the +// potential in aJ + +// aJ pm e^-2 +const double COULOMB = 230.711374295; + +const double MinElectrostaticSensitivity = 0.0015; // aJ + +const double DielectricConstant = 160; + +double totClipped; // internal thermostat for numerical stability + + +void +reinit_globals(void) +{ + debug_flags = 0; + Interrupted = 0; + Iteration = 0; + CommandLine = NULL; + ToMinimize = 0; + IterPerFrame = 10; + NumFrames = 100; + DumpAsText = 0; + DumpIntermediateText = 0; + PrintFrameNums = 1; + OutputFormat = 1; + KeyRecordInterval = 32; + DirectEvaluate = 0; + QuadraticStretchPotential = 0; + PrintPotentialEnergy = 0; + ExcessiveEnergyLevel = 0.1; // attoJoules + IDKey = ""; + InputFileName = NULL; + OutputFileName = NULL; + TraceFileName = NULL; + BaseFileName = NULL; + QualityWarningLevel = 5; + SimpleMovieForceScale = 1.0; + TimeReversal = 0; + ThermostatGamma = 0.01; + + MinimizeThresholdCutoverRMS = 50.0; // pN + MinimizeThresholdCutoverMax = 0.0; // set by constrainGlobals, below + MinimizeThresholdEndRMS = 1.0; + MinimizeThresholdEndMax = 0.0; // set by constrainGlobals, below + + VanDerWaalsCutoffFactor = 1.7; + + EnableElectrostatic = 1; + + OutputFile = NULL; + TraceFile = NULL; + + Count = 0; + + ExcessiveEnergyWarning = 0; + ExcessiveEnergyWarningThisFrame = 0; + ComputedParameterWarning = 0; + InterruptionWarning = 0; + + Dt = 1e-16; // seconds + Dx = 1e-12; // meters + Dmass = 1e-27; // mass units in kg + Temperature = 300.0; // Kelvins + totClipped = 0.0; + + reInitializeBondTable(); +} + +void +constrainGlobals() +{ + if (MinimizeThresholdEndRMS > MinimizeThresholdCutoverRMS) { + MinimizeThresholdCutoverRMS = MinimizeThresholdEndRMS; + MinimizeThresholdCutoverMax = MinimizeThresholdEndMax; + } + if (MinimizeThresholdCutoverMax < MinimizeThresholdCutoverRMS) { + MinimizeThresholdCutoverMax = 5.0 * MinimizeThresholdCutoverRMS; + } + if (MinimizeThresholdEndMax < MinimizeThresholdEndRMS) { + MinimizeThresholdEndMax = 5.0 * MinimizeThresholdEndRMS; + } + if (VanDerWaalsCutoffFactor < 1.2) { + VanDerWaalsCutoffFactor = 1.2; + } + if (VanDerWaalsCutoffFactor > 10.0) { + VanDerWaalsCutoffFactor = 10.0; + } + + ThermostatG1 = (1.01 - 0.27 * ThermostatGamma) * 1.4 * sqrt(ThermostatGamma); +} + +void +printGlobals() +{ + write_traceline("#\n"); + write_traceline("# debug_flags: 0x%x\n", debug_flags); + write_traceline("# IterPerFrame: %d\n", IterPerFrame); + write_traceline("# NumFrames: %d\n", NumFrames); + write_traceline("# DumpAsText: %d\n", DumpAsText); + write_traceline("# DumpIntermediateText: %d\n", DumpIntermediateText); + write_traceline("# PrintFrameNums: %d\n", PrintFrameNums); + write_traceline("# OutputFormat: %d\n", OutputFormat); + write_traceline("# KeyRecordInterval: %d\n", KeyRecordInterval); + write_traceline("# DirectEvaluate: %d\n", DirectEvaluate); + write_traceline("# ExcessiveEnergyLevel: %f aJ\n", ExcessiveEnergyLevel); + write_traceline("# QualityWarningLevel: %d\n", QualityWarningLevel); + if (ToMinimize) { + write_traceline("# MinimizeThresholdCutoverRMS: %f\n", MinimizeThresholdCutoverRMS); + write_traceline("# MinimizeThresholdCutoverMax: %f\n", MinimizeThresholdCutoverMax); + write_traceline("# MinimizeThresholdEndRMS: %f\n", MinimizeThresholdEndRMS); + write_traceline("# MinimizeThresholdEndMax: %f\n", MinimizeThresholdEndMax); + } + write_traceline("# VanDerWaalsCutoffFactor: %f\n", VanDerWaalsCutoffFactor); + write_traceline("# EnableElectrostatic: %d\n", EnableElectrostatic); + write_traceline("# ThermostatGamma: %f\n", ThermostatGamma); + write_traceline("#\n"); +} + + +/* + * Local Variables: + * c-basic-offset: 4 + * tab-width: 8 + * End: + */ diff --git a/sim/src/globals.h b/sim/src/globals.h new file mode 100755 index 000000000..94b3cbcff --- /dev/null +++ b/sim/src/globals.h @@ -0,0 +1,88 @@ +// Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. +#ifndef GLOBALS_H_INCLUDED +#define GLOBALS_H_INCLUDED + +#define RCSID_GLOBALS_H "$Id$" + +extern int debug_flags; + +extern int Interrupted; + +extern struct xyz Center; +extern struct xyz Bbox[2]; + +extern int Iteration; + +extern char *CommandLine; + +// definitions for command line args + +extern int ToMinimize; +extern int IterPerFrame; +extern int NumFrames; +extern int DumpAsText; +extern int DumpIntermediateText; +extern int PrintFrameNums; +extern int OutputFormat; +extern int KeyRecordInterval; +extern int DirectEvaluate; +extern int QuadraticStretchPotential; +extern int PrintPotentialEnergy; +extern float ExcessiveEnergyLevel; +extern char *IDKey; +extern char *InputFileName; +extern char *OutputFileName; +extern char *TraceFileName; +extern char *BaseFileName; +extern int QualityWarningLevel; +extern float SimpleMovieForceScale; +extern double MinimizeThresholdCutoverRMS; +extern double MinimizeThresholdCutoverMax; +extern double MinimizeThresholdEndRMS; +extern double MinimizeThresholdEndMax; +extern double VanDerWaalsCutoffFactor; +extern int EnableElectrostatic; +extern int TimeReversal; +extern double ThermostatGamma; +extern double ThermostatG1; + +extern FILE *OutputFile; +extern FILE *TraceFile; + +extern int Count; + +// have we warned the user about too much energy in a dynamics run? +// Each warning location warns only if ExcessiveEnergyWarning is zero. +// If it warns, it increments ExcessiveEnergyWarningThisFrame. After +// each dynamics frame, ExcessiveEnergyWarning is set if +// ExcessiveEnergyWarningThisFrame is non-zero. +extern int ExcessiveEnergyWarning; +extern int ExcessiveEnergyWarningThisFrame; + +// have we warned the user about using a generic/guessed force field parameter? +extern int ComputedParameterWarning; + +extern int InterruptionWarning; + +extern int _last_iteration; + +/** constants: timestep (.1 femtosecond), scale of distance (picometers) */ +extern double Dt; +extern double Dx; +extern double Dmass; // units of mass vs. kg +extern double Temperature; /* Kelvins */ +extern const double Boltz; /* k, in J/K */ +extern const double Pi; +extern const double COULOMB; // aJ pm e^-2 +extern const double MinElectrostaticSensitivity; // aJ +extern const double DielectricConstant; // unitless + +extern double totClipped; // internal thermostat for numerical stability + +extern void reinit_globals(void); + +extern void constrainGlobals(void); + +extern void printGlobals(void); + +#endif /* GLOBALS_H_INCLUDED */ diff --git a/sim/src/glviewer.c b/sim/src/glviewer.c new file mode 100755 index 000000000..ac8d44b61 --- /dev/null +++ b/sim/src/glviewer.c @@ -0,0 +1,560 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +// usage: glviewer < inputfile +// +// tracks additional input as it is appended to inputfile +// +// keybindings: +// +// , -> back one frame +// . -> forward one frame +// < -> first frame (disable eof tracking) +// > -> last frame (resume eof tracking) +// left/right -> change azimuth +// up/down -> change altitude (stops at either vertical) +// shift up -> move towards origin +// shift down -> move away from origin +// r -> reset view to default +// esc/q -> exit + +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <math.h> +#include <string.h> +#include <sys/select.h> + +#include <GL/glx.h> +#include <GL/gl.h> +#include <GL/glu.h> + +#define XK_MISCELLANY +#define XK_LATIN1 +#include <X11/keysymdef.h> + +#include "allocate.h" + +static char const rcsid[] = "$Id$"; + +struct ObjectLine +{ + float x1, y1, z1; // endpoint1 + float x2, y2, z2; // endpoint2 + float r, g, b; // color +}; + +struct ObjectSphere +{ + float x, y, z; // center + float radius; + float r, g, b; // color +}; + +struct ObjectFrame +{ + char *s; +}; + +struct Object +{ + +#define OBJ_LINE 0 +#define OBJ_SPHERE 1 +#define OBJ_FRAME 2 + int type; + + union { + struct ObjectLine line; + struct ObjectSphere sphere; + struct ObjectFrame frame; + } u; +}; + +// A movie is a sequence of frames. Each frame is a sequence of +// Objects, the last of which is of type OBJ_FRAME. The movie array +// contains all of the Objects in all of the frames. The frame array +// contains indexes of the first object in each frame. +struct Object *movie = NULL; +int *frames = NULL; +int numFrames = 0; +int numObjects = 0; // total in all frames +int startOfLastFrame = 0; +int currentFrame = 0; + +int followLastFrame = 1; // if true, render a new frame whenever we get one. +int atEOF = 0; + +static int attributeList[] = { GLX_RGBA, None }; + +static Bool WaitForNotify(Display *d, XEvent *e, char *arg) +{ + return (e->type == MapNotify) && (e->xmap.window == (Window)arg); +} + +static double eyeR; +static double eyeTheta; +static double eyePhi; + +static int windowWidth; +static int windowHeight; + +static int needRepaint = 1; + +static GLUquadricObj *quad; +static Display *xDisplay; + +static void +resetEye(void) +{ + eyeR = 1000.0; + eyeTheta = 0.0; + eyePhi = 0.0; +} + +static void +sphere(double x, double y, double z, double radius, double r, double g, double b) +{ + float materialColor[4]; + + materialColor[0] = r; + materialColor[1] = g; + materialColor[2] = b; + materialColor[3] = 1.0; // alpha + + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, materialColor); + + glPushMatrix(); + glTranslated(x, y, z); + gluSphere(quad, radius, 8, 8); + glPopMatrix(); + + glDisable(GL_LIGHTING); + glDisable(GL_LIGHT0); +} + +static void +line(float x1, float y1, float z1, + float x2, float y2, float z2, + float r, float g, float b) +{ + glBegin(GL_LINES); + glColor3f(r, g, b); + glVertex3f(x1, y1, z1); + glVertex3f(x2, y2, z2); + glEnd(); +} + +static void +renderObject(struct Object *o) +{ + if (o==NULL) { + return; + } + switch (o->type) { + case OBJ_LINE: + line(o->u.line.x1, o->u.line.y1, o->u.line.z1, + o->u.line.x2, o->u.line.y2, o->u.line.z2, + o->u.line.r, o->u.line.g, o->u.line.b); + break; + case OBJ_SPHERE: + sphere(o->u.sphere.x, o->u.sphere.y, o->u.sphere.z, + o->u.sphere.radius, + o->u.sphere.r, o->u.sphere.g, o->u.sphere.b); + break; + case OBJ_FRAME: + break; + default: + fprintf(stderr, "unknown object type: %d\n", o->type); + } +} + +static int previousFrame = -1; + +static void +renderFrame(void) +{ + struct Object *o; + + if (currentFrame < 0) currentFrame = 0; + if (currentFrame >= numFrames) currentFrame = numFrames - 1; + if (currentFrame >= 0) { + o = &movie[frames[currentFrame]]; + while (o->type != OBJ_FRAME) { + renderObject(o); + o++; + } + if (currentFrame != previousFrame) { + printf("%d: %s\n", currentFrame, o->u.frame.s); + previousFrame = currentFrame; + } + } +} + +static void +doPaint(void) +{ + float lightPosition[4] = { 1.0, 0.5, -0.1, 0.0 }; + + double eyeX; + double eyeY; + double eyeZ; + + if (eyeR < 10.0) eyeR = 10.0; + // we don't allow Phi to get all the way to Pi/2 so that our + // vertical vector will always be valid. + if (eyePhi < -1.55) eyePhi = -1.55; + if (eyePhi > 1.55) eyePhi = 1.55; + eyeX = eyeR * cos(eyeTheta) * cos(eyePhi); + eyeY = eyeR * sin(eyeTheta) * cos(eyePhi); + eyeZ = eyeR * sin(eyePhi); + + glClearColor(0.2, 0.2, 0.2, 1.0); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glLoadIdentity(); + glLightfv(GL_LIGHT0, GL_POSITION, lightPosition); + + glEnable(GL_DEPTH_TEST); + + gluPerspective(45.0, (float)windowWidth / (float)windowHeight, eyeR/10.0, eyeR*20.0); + gluLookAt(eyeX, eyeY, eyeZ, + 0.0, 0.0, 0.0, + 0.0, 0.0, 1.0); + +#define AXISLEN 100.0 + line(0.0, 0.0, 0.0, AXISLEN, 0.0, 0.0, 1.0, 0.0, 0.0); // x axis in red + line(0.0, 0.0, 0.0, 0.0, AXISLEN, 0.0, 0.0, 1.0, 0.0); // y axis in green + line(0.0, 0.0, 0.0, 0.0, 0.0, AXISLEN, 0.0, 0.0, 1.0); // z axis in blue + + renderFrame(); + + //sphere(0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0); + //sphere(10.0, 0.0, -10.0, 1.0, 1.0, 0.0, 1.0); + //sphere(0.0, 10.0, 10.0, 1.0, 0.0, 1.0, 1.0); + + glFlush(); + needRepaint = 0; +} + +static void +repaint(void) +{ + needRepaint = 1; +} + +// radians +#define dAngle 0.08 + +static void +keypress(XEvent *event) +{ + char buffer[20]; + int bufsize = 20; + KeySym key; + XComposeStatus compose; + int charcount; + int modifiers = event->xkey.state; + + charcount = XLookupString((XKeyEvent *)event, buffer, bufsize, &key, &compose); + + switch (key) { + case XK_Left: + eyeTheta += dAngle; + break; + case XK_Right: + eyeTheta -= dAngle; + break; + case XK_Up: + if (modifiers & 0x01) { + eyeR *= 0.8; + } else { + eyePhi -= dAngle; + } + break; + case XK_Down: + if (modifiers & 0x01) { + eyeR *= 1.2; + } else { + eyePhi += dAngle; + } + break; + + case XK_q: + case XK_Escape: + exit(0); + + case XK_r: + resetEye(); + break; + + case XK_comma: + currentFrame--; + followLastFrame = 0; + break; + + case XK_period: + currentFrame++; + followLastFrame = 0; + break; + + case XK_less: + currentFrame = 0; + followLastFrame = 0; + break; + + case XK_greater: + currentFrame = numFrames - 1; + followLastFrame = 1; + break; + + default: + //fprintf(stderr, "keypress: 0x%x, 0x%x\n", (unsigned int)key, modifiers); + break; + } + repaint(); +} + +static char stdinBuffer[1024]; +static int stdinPosition = 0; + +static void +processLine(char *s) +{ + struct Object *o; + + movie = (struct Object *)accumulator(movie, sizeof(struct Object) * (numObjects + 1), 0); + o = &movie[numObjects]; + if (*s == 's') { // s x y z radius r g b + if (7 == sscanf(s+1, + "%f%f%f%f%f%f%f", + &o->u.sphere.x, + &o->u.sphere.y, + &o->u.sphere.z, + &o->u.sphere.radius, + &o->u.sphere.r, + &o->u.sphere.g, + &o->u.sphere.b)) + { + o->type = OBJ_SPHERE; + numObjects++; + } else { + fprintf(stderr, "couldn't parse sphere line: <<%s>>\n", s); + } + } else if (*s == 'l') { + if (9 == sscanf(s+1, + "%f%f%f%f%f%f%f%f%f", + &o->u.line.x1, + &o->u.line.y1, + &o->u.line.z1, + &o->u.line.x2, + &o->u.line.y2, + &o->u.line.z2, + &o->u.line.r, + &o->u.line.g, + &o->u.line.b)) + { + o->type = OBJ_LINE; + numObjects++; + } else { + fprintf(stderr, "couldn't parse line line: <<%s>>\n", s); + } + } else if (*s == 'f') { + o->type = OBJ_FRAME; + o->u.frame.s = copy_string(s+1); + numObjects++; + numFrames++; + frames = (int *)accumulator(frames, sizeof(int) * numFrames, 0); + frames[numFrames-1] = startOfLastFrame; + startOfLastFrame = numObjects; + if (followLastFrame) { + currentFrame = numFrames - 1; + repaint(); + } + } +} + + +static void +processStdin(void) +{ + int nread; + int startOfLine; + int endOfLine; + + nread = read(0, stdinBuffer+stdinPosition, 1024-stdinPosition); + if (nread < 0) { + perror("read stdin"); + return; + } + if (nread > 0) { + atEOF = 0; + stdinPosition += nread; + startOfLine = 0; + endOfLine = 0; + while (endOfLine < stdinPosition) { + if (stdinBuffer[endOfLine] == '\n') { + stdinBuffer[endOfLine] = '\0'; + processLine(stdinBuffer+startOfLine); + startOfLine = endOfLine + 1; + } + endOfLine++; + } + if (startOfLine < stdinPosition) { + if (startOfLine > 0) { + memmove(stdinBuffer, stdinBuffer+startOfLine, stdinPosition - startOfLine); + stdinPosition -= startOfLine; + } + } else { + stdinPosition = 0; + } + } else { + atEOF = 1; + } +} + +static int +processX(void) +{ + XEvent event; + + if (XEventsQueued(xDisplay, QueuedAfterFlush) == 0) { + return 0; + } + XNextEvent(xDisplay, &event); + switch (event.type) { + + // the following event type is selected by KeyPressMask + case KeyPress: + keypress(&event); + break; + + // the following event type is selected by ExposureMask + case Expose: + repaint(); + break; + + // the following event types are selected by StructureNotifyMask + case ConfigureNotify: + windowWidth = event.xconfigure.width; + windowHeight = event.xconfigure.height; + glViewport(0, 0, windowWidth, windowHeight); + break; + + case ReparentNotify: + break; + + case DestroyNotify: + exit(0); + + case CirculateNotify: + case GravityNotify: + case MapNotify: + case UnmapNotify: + + // the following event types are always selected + case MappingNotify: + case ClientMessage: + case SelectionClear: + case SelectionNotify: + case SelectionRequest: + default: + fprintf(stderr, "got event type %d\n", event.type); + break; + } + return 1; +} + +int main(int argc, char **argv) +{ + XVisualInfo *vi; + Colormap cmap; + XSetWindowAttributes swa; + Window win; + GLXContext cx; + XEvent event; + fd_set readfds; + struct timeval timeout; + int xServerFD; + int nselected; + + /* get a connection */ + xDisplay = XOpenDisplay(0); + if (xDisplay == NULL) { + fprintf(stderr, "can't open display\n"); + exit(1); + } + + /* get an appropriate visual */ + vi = glXChooseVisual(xDisplay, DefaultScreen(xDisplay), attributeList); + if (vi == NULL) { + fprintf(stderr, "can't get visual\n"); + exit(1); + } + + /* create a GLX context */ + cx = glXCreateContext(xDisplay, vi, 0, GL_FALSE); + if (cx == NULL) { + fprintf(stderr, "can't create GL context\n"); + exit(1); + } + + /* create a color map */ + cmap = XCreateColormap(xDisplay, RootWindow(xDisplay, vi->screen), vi->visual, AllocNone); + + /* create a window */ + swa.colormap = cmap; + swa.border_pixel = 0; + swa.event_mask = StructureNotifyMask; + + windowWidth = 500; + windowHeight = 500; + + win = XCreateWindow(xDisplay, RootWindow(xDisplay, vi->screen), 0, 0, windowWidth, windowHeight, + 0, vi->depth, InputOutput, vi->visual, + CWBorderPixel|CWColormap|CWEventMask, &swa); + + XSelectInput(xDisplay, win, KeyPressMask | ExposureMask | StructureNotifyMask); + + XMapWindow(xDisplay, win); + // wait for the window to be mapped + XIfEvent(xDisplay, &event, WaitForNotify, (char*)win); + /* connect the context to the window */ + glXMakeCurrent(xDisplay, win, cx); + + quad = gluNewQuadric(); + if (quad == NULL) { + fprintf(stderr, "can't allocate quadric\n"); + exit(1); + } + + resetEye(); + + xServerFD = ConnectionNumber(xDisplay); + XFlush(xDisplay); + + while (1) { + while (processX()) { + } + if (needRepaint) { + doPaint(); + } + FD_ZERO(&readfds); + if (!atEOF) { + FD_SET(0, &readfds); + } + FD_SET(xServerFD, &readfds); + timeout.tv_sec = 5; + timeout.tv_usec = 0; + nselected = select(xServerFD+1, &readfds, NULL, NULL, atEOF ? &timeout : NULL); + if (nselected < 0) { + perror("select"); + continue; + } + if (nselected == 0) { + continue; + } + if (FD_ISSET(0, &readfds)) { + processStdin(); + } + } +} diff --git a/sim/src/hashtable.c b/sim/src/hashtable.c new file mode 100755 index 000000000..471f6bc5a --- /dev/null +++ b/sim/src/hashtable.c @@ -0,0 +1,294 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. + +/* + +A very simple hashtable implementation. A hashtable is an array of +hashtable_bucket's. To find the correct hashtable_bucket, hash the key, +and start at (hash % size) in the array. If the key field is NULL, +this bucket is empty, and the key doesn't exist in the table. If the +hash field matches, string compare the key field. On a miss, add one +(wrapping to the beginning of the array) and check again. + +This method is called "Linear Probing" in Knuth Vol 3 p. 518. + +*/ + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include "allocate.h" +#include "hashtable.h" + +/* maximum fraction of full buckets in table */ +#define RESIDENCY 0.8 + +static char const rcsid[] = "$Id$"; + +static int +hash_string(char *s) +{ + int hash = 0; + int shift = 0; + int c; + + while ((c=*s++) != '\0') { + c <<= shift; + hash ^= c; + shift += 8; + if (shift > 31) { + shift = 0; + } + } + return hash; +} + +/* Hashing works best with a prime number of buckets... */ +static int some_primes[] = { + 251, 503, 1009, 2003, 4001, 8009, 16001, 32003, 64007, 128021, 256021, + 512021, 1024021, 2048021, 4096021, 8192003, 16384003, 32768011 +}; + +/* Returns a nice prime table size that can hold at least min_size elements */ +static int +hash_next_size(int min_size) +{ + int i; + int last = sizeof(some_primes) / sizeof(int); + for (i=0; i<last; i++) { + if (some_primes[i] > min_size) { + return some_primes[i]; + } + } + /* XXX error processing */ + return 0; /* hash table too big */ +} + +/* Find the bucket for this key. Always returns a pointer to a + bucket. If the bucket is full (key is non NULL) it matches the + given key, otherwise this is the bucket you should place the key + in. */ +static struct hashtable_bucket * +hashtable_find_bucket(struct hashtable_bucket *buckets, int size, int hash, char *key) +{ + int index = hash % size; + struct hashtable_bucket *search_start = &buckets[index]; + struct hashtable_bucket *search_wrap = &buckets[size]; + struct hashtable_bucket *b = search_start; + + do { + if (b->key == NULL) { + return b; + } + if (b->hash == hash && !strcmp(b->key, key)) { + return b; + } + b++; + if (b >= search_wrap) { + b = buckets; + } + } while (b != search_start); + /* XXX error processing */ + return NULL; /* this should never happen, since count should be less than size */ +} + + +static void +hashtable_resize(struct hashtable *table, int newsize) +{ + int i; + int len; + int old_size = table->size; + struct hashtable_bucket *old_buckets = table->buckets; + struct hashtable_bucket *old_bucket; + struct hashtable_bucket *new_bucket; + table->size = hash_next_size(newsize); + if (table->size < 1) { + /* XXX error processing */ + return; + } + len = table->size * sizeof(struct hashtable_bucket); + table->buckets = (struct hashtable_bucket *)allocate(len); + memset(table->buckets, 0, len); + if (old_buckets != NULL) { + /* rehash existing buckets into new table */ + for (i=0; i<old_size; i++) { + old_bucket = &old_buckets[i]; + if (old_bucket->key != NULL && old_bucket->value != NULL) { + /* full bucket, put it in the new table */ + new_bucket = hashtable_find_bucket(table->buckets, table->size, old_bucket->hash, old_bucket->key); + if (new_bucket->key != NULL) { + fprintf(stderr, "Duplicate key in hashtable_resize."); + } else { + new_bucket->hash = old_bucket->hash; + new_bucket->key = old_bucket->key; + new_bucket->value = old_bucket->value; + } + } + } + free(old_buckets); + } +} + +/* Create a new hashtable which is initially configured to hold up to + initial_size buckets. The table will be dynamically resized if + more buckets are needed. */ +struct hashtable * +hashtable_new(int initial_size) +{ + struct hashtable *table; + + table = (struct hashtable *)allocate(sizeof(struct hashtable)); + table->size = 0; + table->count = 0; + table->buckets = NULL; + hashtable_resize(table, initial_size); + if (table->buckets == NULL) { + /* XXX error processing */ + free(table); + return NULL; + } + return table; +} + +/* Store a value in a hashtable, associated with a given key. A copy + of the key is made. The previous association with this key is + returned, or NULL if this is a new key for this hashtable. + + Note that you can specify NULL values to be stored, but you cannot + remove a key association. This would require searching for + following buckets that might have to be moved to this one to + restore table consistancy. Since I don't see the need to delete at + this time, I'm not worrying about it. + */ +void * +hashtable_put(struct hashtable *table, char *key, void *value) +{ + void *old; + int hash = hash_string(key); + struct hashtable_bucket *bucket = hashtable_find_bucket(table->buckets, table->size, hash, key); + if (bucket->key == NULL) { + bucket->hash = hash; + bucket->key = copy_string(key); + bucket->value = value; + table->count++; + if (((float)table->count) / (float)(table->size) > RESIDENCY) { + hashtable_resize(table, table->size+1); + } + return NULL; + } else { + old = bucket->value; + bucket->value = value; + return old; + } + +} + +/* Return the value associated with the given key in the hashtable. + Returns NULL if there is no association for that key. + */ +void * +hashtable_get(struct hashtable *table, char *key) +{ + int hash = hash_string(key); + struct hashtable_bucket *bucket = hashtable_find_bucket(table->buckets, table->size, hash, key); + if (bucket->key == NULL) { + return NULL; + } + return bucket->value; +} + +void +hashtable_print(FILE *f, struct hashtable *table) +{ + int i; + struct hashtable_bucket *b; + + fprintf(f, "begin hashtable--------------------\n"); + fprintf(f, "size: %d count: %d\n", table->size, table->count); + for (i=0; i<table->size; i++) { + b = &table->buckets[i]; + if (b->key == NULL) { + if (b->hash != 0 || b->value != NULL) { + fprintf(f, "!%5d %5d %20s 0x%08x 0x%08x\n", + i, b->hash % table->size, "NULL", b->hash, (unsigned int)b->value); + } + } else { + fprintf(f, " %5d %5d %20s 0x%08x 0x%08x\n", + i, b->hash % table->size, b->key, b->hash, (unsigned int)b->value); + } + } + fprintf(f, " end hashtable--------------------\n"); +} + +/* Calls func(key, value) for each key/value pair in the hashtable. + Keys are presented in an undefined order (dependant on hash values + and current hashtable size). Do not change the hashtable during + the iteration. + */ +void +hashtable_iterate(struct hashtable *table, void func(char *key, void *value)) +{ + int i; + struct hashtable_bucket *b; + + for (i=0; i<table->size; i++) { + b = &table->buckets[i]; + if (b->key != NULL) { + func(b->key, b->value); + } + } +} + +void +hashtable_destroy(struct hashtable *table, void func(void *value)) +{ + int i; + struct hashtable_bucket *b; + + if (table == NULL) { + return; + } + for (i=0; i<table->size; i++) { + b = &table->buckets[i]; + if (b->key != NULL) { + if (b->value != NULL) { + func(b->value); + b->value = NULL; + } + free(b->key); + b->key = NULL; + } + } + free(table->buckets); + table->buckets = NULL; + free(table); +} + + +#if 0 +main() +{ + struct hashtable *ht; + + ht = hashtable_new(0); + hashtable_print(stdout, ht); + hashtable_put(ht, "one", (void *)0x1); + hashtable_print(stdout, ht); + hashtable_put(ht, "two", (void *)0x2); + hashtable_print(stdout, ht); + hashtable_put(ht, "three", (void *)0x3); + hashtable_print(stdout, ht); + hashtable_put(ht, "four", (void *)0x4); + hashtable_print(stdout, ht); + hashtable_put(ht, "five", (void *)0x5); + hashtable_print(stdout, ht); + hashtable_put(ht, "six", (void *)0x6); + hashtable_print(stdout, ht); + hashtable_put(ht, "seven", (void *)0x7); + hashtable_print(stdout, ht); + hashtable_put(ht, "eight", (void *)0x8); + hashtable_print(stdout, ht); + hashtable_put(ht, "nine", (void *)0x9); + hashtable_print(stdout, ht); +} +#endif diff --git a/sim/src/hashtable.h b/sim/src/hashtable.h new file mode 100755 index 000000000..0bab3745f --- /dev/null +++ b/sim/src/hashtable.h @@ -0,0 +1,34 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#ifndef HASHTABLE_H_INCLUDED +#define HASHTABLE_H_INCLUDED + +#define RCSID_HASHTABLE_H "$Id$" + +struct hashtable_bucket +{ + int hash; + char *key; + void *value; +}; + + +struct hashtable +{ + int size; /* length of buckets array */ + int count; /* number of items (full buckets) in the hashtable */ + struct hashtable_bucket *buckets; +}; + +extern struct hashtable *hashtable_new(int initial_size); + +extern void *hashtable_put(struct hashtable *table, char *key, void *value); + +extern void *hashtable_get(struct hashtable *table, char *key); + +extern void hashtable_print(FILE *f, struct hashtable *table); + +extern void hashtable_iterate(struct hashtable *table, void func(char *key, void *value)); + +extern void hashtable_destroy(struct hashtable *table, void func(void *value)); + +#endif diff --git a/sim/src/interpolate.c b/sim/src/interpolate.c new file mode 100755 index 000000000..b91c998d9 --- /dev/null +++ b/sim/src/interpolate.c @@ -0,0 +1,1089 @@ +// Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. + +#include "simulator.h" + +static char const rcsid[] = "$Id$"; + +/* + +We're doing cubic polynomial interpolation for the potential function. +We want the gradient to be exactly the derivative of the cubic +interpolation function, not an interpolation of the actual gradient +function. So, the gradient is a quadratic interpolation. + +We slice the function into a number of equally spaced regions, each of +which is represented by one entry in the interpolation table. We want +both the potential and gradient to be continuous where we cross from +one table entry to another. At each endpoint of each interval, we +have values for the potential and the gradient, giving us four degrees +of freedom that we have to match. This is why we have chosen cubic +interpolation, so we have four unknowns to match the four degrees of +freedom. + +The potential and gradient functions at each endpoint (x1, and x2) are +represented by the following four equations: + +y1 == A x1^3 + B x1^2 + C x1 + D +y2 == A x2^3 + B x2^2 + C x2 + D +y1p == 3 A x1^2 + 2 B x1 + C +y2p == 3 A x2^2 + 2 B x2 + C + +We solve these for the unknowns A, B, C, and D, yeilding: + +A = (2 y1 - + x1 y1p + + x2 y1p - + 2 y2 - + x1 y2p + + x2 y2p) + / (x2 - x1)^3 + +B = (-3 x1 y1 - + 3 x2 y1 + + x1^2 y1p + + x1 x2 y1p - + 2 x2^2 y1p + + 3 x1 y2 + + 3 x2 y2 + + 2 x1^2 y2p - + x1 x2 y2p - + x2^2 y2p) + / (x2 - x1)^3 + +C = (6 x1 x2 y1 - + 2 x1^2 x2 y1p + + x1 x2^2 y1p + + x2^3 y1p - + 6 x1 x2 y2 - + x1^3 y2p - + x1^2 x2 y2p + + 2 x1 x2^2 y2p) + / (x2 - x1)^3 + +D = (-3 x1 x2^2 y1 + + x2^3 y1 + + x1^2 x2^2 y1p - + x1 x2^3 y1p - + x1^3 y2 + + 3 x1^2 x2 y2 + + x1^3 x2 y2p - + x1^2 x2^2 y2p) + / (x2 - x1)^3 +*/ + +// Make a table for interpolating func(x) by doing +// +// k = (int)((x-start)/scale); +// y = ((a[k] * x + b[k]) * x + c[k]) * x + d[k]; +// y' = (3 * a[k] * x + 2 * b[k]) * x + c[k]; +// +static void +fillInterpolationTable(struct interpolationTable *t, + double func(double, void *), + double dfunc(double, void *), + double start, + double scale, + void *parameters) +{ + // code to shift points to minimize distance to actual function is + // in version 1.26 and earlier. + int k; + double x1; // x position of left edge of interpolation interval + double y1; // func(x1) + double y1p; // dfunc(x1) derivitive of func at x1 + double x2; // x position of right edge of interpolation interval + double y2; // func(x2) + double y2p; // dfunc(x2) derivitive of func at x2 + double dx; + double denom; + + t->start = start; + t->scale = scale; + + x2 = start; + y2 = func(x2, parameters); + y2p = dfunc(x2, parameters); + + for (k=0; k<TABLEN; k++) { + x1 = x2; + y1 = y2; + y1p = y2p; + + x2 = start + (double)((k + 1) * scale); + y2 = func(x2, parameters); + y2p = dfunc(x2, parameters); + + // Seems like these two lines should be invariant in the loop, + // but there may be slight differences, so leave them in the + // loop. + dx = x2 - x1; + denom = dx * dx * dx; + + t->a[k] = (2 * y1 - + x1 * y1p + + x2 * y1p - + 2 * y2 - + x1 * y2p + + x2 * y2p) + / denom; + + t->b[k] = (-3 * x1 * y1 - + 3 * x2 * y1 + + x1 * x1 * y1p + + x1 * x2 * y1p - + 2 * x2 * x2 * y1p + + 3 * x1 * y2 + + 3 * x2 * y2 + + 2 * x1 * x1 * y2p - + x1 * x2 * y2p - + x2 * x2 * y2p) + / denom; + + t->c[k] = (6 * x1 * x2 * y1 - + 2 * x1 * x1 * x2 * y1p + + x1 * x2 * x2 * y1p + + x2 * x2 * x2 * y1p - + 6 * x1 * x2 * y2 - + x1 * x1 * x1 * y2p - + x1 * x1 * x2 * y2p + + 2 * x1 * x2 * x2 * y2p) + / denom; + + + t->d[k] = (-3 * x1 * x2 * x2 * y1 + + x2 * x2 * x2 * y1 + + x1 * x1 * x2 * x2 * y1p - + x1 * x2 * x2 * x2 * y1p - + x1 * x1 * x1 * y2 + + 3 * x1 * x1 * x2 * y2 + + x1 * x1 * x1 * x2 * y2p - + x1 * x1 * x2 * x2 * y2p) + / denom; + } +} + +/** stiffnesses are in N/m, so forces come out in pN (i.e. Dx N) */ + +static double +lippincott(double r, struct bondStretch *s) +{ + return s->de * (1 - exp(-1e-6 * s->ks * s->r0 * (r - s->r0) * (r - s->r0) / (2 * s->de * r))); +} + +static double +morse(double r, struct bondStretch *s) +{ + // the exponent is unitless + // returns potential in aJ, given r in pm + return s->de * (1 - exp(-s->beta * (r - s->r0))) * (1 - exp(-s->beta * (r - s->r0))); +} + + +// use the Morse potential inside R0, Lippincott outside +// result in aJ +double +potentialLippincottMorse(double r, void *p) +{ + struct bondStretch *stretch = (struct bondStretch *)p; + return (r >= stretch->r0) ? lippincott(r, stretch) : morse(r, stretch); +} + +// numerically differentiate the potential for force +// +// the result is in attoJoules per picometer = microNewtons +// aJ / pm = 1e-18 J / 1e-12 m = 1e-6 J / m = uN +#define DELTA_R 0.01 +double +gradientLippincottMorse(double r, void *p) +{ + struct bondStretch *stretch = (struct bondStretch *)p; + double r1 = r - DELTA_R / 2.0; + double r2 = r + DELTA_R / 2.0; + double y1 = (r1 >= stretch->r0) ? lippincott(r1, stretch) : morse(r1, stretch); + double y2 = (r2 >= stretch->r0) ? lippincott(r2, stretch) : morse(r2, stretch); + // y1, y2 are in attoJoules (1e-18 J) + // DELTA_R is in pm (1e-12 m), so: + // (y2-y1)/DELTA_R is attoJoules / pm (1e-6 J / m), or uN + + return (y2 - y1) / DELTA_R; +} + +static void +findPotentialExtension(struct bondStretch *s, double r0, double pr0, double gr0, double r1, double pr1, double gr1) +{ + double r02 = r0 * r0; + double r03 = r02 * r0; + double r12 = r1 * r1; + double r13 = r12 * r1; + double r14 = r12 * r12; + double d2r1 = 0.01; + double denom; + + gr1 /= 1e6; + + // we are solving the following simultaneous equations: + // + // A + B r0 + C r0^2 + D r0^3 == pr0 + // A + B r1 + C r1^2 + D r1^3 == pr1 + // B + 2 C r1 + 3 D r1^2 == gr1 + // 2 C + 6 D r1 == d2r1 + // + // The first two lines give the cubic extension for the potential + // function. We want it to match the actual potential function at + // r0 (the minimum, should be zero), and r1 (the point where we cut + // over from the interpolation table to the polynomial functions). + // + // The third line gives the derivative, which we want to match the + // actual gradient function at r1. + // + // The last line gives the second derivative, which we want to be + // positive so the curve keeps going up. We just pick an arbitrary + // constant here. + // + // The expressions below are generated by Mathematica, handing the + // above equations to "Solve[.....] // InputForm", then removing the + // ^ characters, so r1^3 becomes r13, which we have pre-computed. + // + // XXX might want to try specifying the third derivative instead of + // the curve match at r0. + + denom = 2*(r0 - r1)*(r0 - r1)*(r0 - r1); + + s->potentialExtensionA = + -(-2*pr1*r03 + 6*pr1*r02*r1 + + 2*gr1*r03*r1 - 6*pr1*r0*r12 - + 6*gr1*r02*r12 - d2r1*r03*r12 + + 2*pr0*r13 + 4*gr1*r0*r13 + + 2*d2r1*r02*r13 - d2r1*r0*r14) + /denom; + + s->potentialExtensionB = + -(-2*gr1*r03 + 6*gr1*r02*r1 + + 2*d2r1*r03*r1 - 6*pr0*r12 + + 6*pr1*r12 - 3*d2r1*r02*r12 - + 4*gr1*r13 + d2r1*r14) + /denom; + s->potentialExtensionC = + -(-(d2r1*r03) + 6*pr0*r1 - + 6*pr1*r1 - 6*gr1*r0*r1 + 6*gr1*r12 + + 3*d2r1*r0*r12 - 2*d2r1*r13) + /denom; + + s->potentialExtensionD = + -(-2*pr0 + 2*pr1 + 2*gr1*r0 + + d2r1*r02 - 2*gr1*r1 - 2*d2r1*r0*r1 + + d2r1*r12) + /denom; +} + +// Examine a potential interpolation table to find where it exceeds a +// global maximum physical energy. Those index values are recorded, +// so we can test for them during a dynamics run and issue a warning. +// The idea is that too much energy in a single bond might indicate +// that the simulation is suspect (would require a quantum +// calculation). +static int +findExcessiveEnergyLevel(struct interpolationTable *t, + double r0, + int searchIncrement, + int searchLimit, + double minPotential, + double sign, + char *name) +{ + double start = t->start; + double scale = t->scale; + double *a = t->a; + double *b = t->b; + double *c = t->c; + double *d = t->d; + int k; + double r; + double potential = 0.0; + + k = (int)((r0 - start) / scale); + while ((searchLimit-k)*searchIncrement > 0) { + r = k * scale + start; + potential = sign * (((a[k] * r + b[k]) * r + c[k]) * r + d[k] - minPotential); + if (potential > ExcessiveEnergyLevel) { + return k; + } + k += searchIncrement; + } + + // Warning disabled to keep it from triggering on DNA pseudo atoms. + // Should be reinstated in some way when cad provides a method to + // set ExcessiveEnergyLevel. + // + //WARNING3("ExcessiveEnergyLevel %e exceeds interpolation table limits at %e for %s", + //ExcessiveEnergyLevel, potential, name); + + return searchLimit; +} + +#if 0 +static double +potentialQuadratic(double r, void *p) +{ + struct bondStretch *stretch = (struct bondStretch *)p; + double dr = r - stretch->r0; + return stretch->ks * dr * dr; +} + +static double +gradientQuadratic(double r, void *p) +{ + double r1 = r - DELTA_R / 2.0; + double r2 = r + DELTA_R / 2.0; + double y1 = potentialQuadratic(r1, p); + double y2 = potentialQuadratic(r2, p); + + return (y2 - y1) / DELTA_R; +} +#endif + +// Initialize the function interpolation tables for each stretch +void +initializeBondStretchInterpolater(struct bondStretch *stretch) +{ + double scale; + double rmin; + double rmax; + + rmin = stretch->r0 * 0.5; + rmax = ToMinimize ? stretch->inflectionR : stretch->r0 * 3.0; + + scale = (rmax - rmin) / TABLEN; + + findPotentialExtension(stretch, + stretch->r0, + potentialLippincottMorse(stretch->r0, stretch), + gradientLippincottMorse(stretch->r0, stretch), + rmax, + potentialLippincottMorse(rmax, stretch), + gradientLippincottMorse(rmax, stretch) + ); + fillInterpolationTable(&stretch->LippincottMorse, + potentialLippincottMorse, + gradientLippincottMorse, + rmin, scale, stretch); + stretch->maxPhysicalTableIndex = findExcessiveEnergyLevel(&stretch->LippincottMorse, + stretch->r0, 1, TABLEN, 0.0, 1.0, stretch->bondName); + stretch->minPhysicalTableIndex = findExcessiveEnergyLevel(&stretch->LippincottMorse, + stretch->r0, -1, 0, 0.0, 1.0, stretch->bondName); + +} + + +// the Buckingham potential for van der Waals / London force +// result in aJ +double +potentialBuckingham(double r, void *p) +{ + struct vanDerWaalsParameters *vdw = (struct vanDerWaalsParameters *)p; + + // rvdW in pm (1e-12 m) + // evdW in zJ (1e-21 J) + return 1e-3 * vdw->evdW * (2.48e5 * exp(-12.5*(r/vdw->rvdW)) -1.924*pow(r/vdw->rvdW, -6.0)) + - vdw->vInfinity; +} + +// the result is in attoJoules per picometer = microNewtons +// aJ / pm = 1e-18 J / 1e-12 m = 1e-6 J / m = uN +double +gradientBuckingham(double r, void *p) +{ + struct vanDerWaalsParameters *vdw = (struct vanDerWaalsParameters *)p; + double y; + + // rvdW in pm (1e-12 m) + // evdW in zJ (1e-21 J) + y= 1e-3 * vdw->evdW * (2.48e5 * exp(-12.5 * (r / vdw->rvdW)) * (-12.5 /vdw->rvdW) + - 1.924 * pow (1.0 /vdw->rvdW, -6.0) * (-6.0) * pow(r, -7.0)); + return y; +} + +// Switching function to smoothly reduce a function to zero. +// Transition begins when r == start, below which the value is 1. The +// value smoothly changes to 0 by the time r == end, after which it +// remains 0. +// +// Potential functions are mulitplied by the switching function S: +// +// (r/start - 1)^4 +// S = (1 - ----------------- ) ^4 +// (end/start - 1)^4 +// +// in the range start < r < end. +// +static double +smoothCutoff(double r, double start, double end) +{ + double rDiff; + double rCutoffDiff; + double S1; + double S; + + if (r <= start) { + return 1.0; + } + if (r >= end) { + return 0.0; + } + rDiff = (r / start) - 1.0; + rCutoffDiff = (end / start) - 1.0; + S1 = 1 - (rDiff * rDiff * rDiff * rDiff) / (rCutoffDiff * rCutoffDiff * rCutoffDiff *rCutoffDiff); + S = S1 * S1 * S1 * S1; + return S; +} + +// derivitive of smoothCutoff with respect to r +static double +dSmoothCutoff(double r, double start, double end) +{ + double rDiff; + double rCutoffDiff; + double S1; + double dS; + + if (r <= start) { + return 0.0; + } + if (r >= end) { + return 0.0; + } + rDiff = (r / start) - 1.0; + rCutoffDiff = (end / start) - 1.0; + S1 = 1 - (rDiff * rDiff * rDiff * rDiff) / (rCutoffDiff * rCutoffDiff * rCutoffDiff *rCutoffDiff); + dS = (-16.0 * rDiff * rDiff * rDiff * S1 * S1 * S1) / + (rCutoffDiff * rCutoffDiff * rCutoffDiff * rCutoffDiff * start); + return dS; +} + + +// The Buckingham potential for van der Waals / London force. +// Modified by a switching function to allow the potential to smoothly +// approach zero by the time it reaches the cutoff radius. +// +// result in aJ +double +potentialModifiedBuckingham(double r, void *p) +{ + struct vanDerWaalsParameters *vdw = (struct vanDerWaalsParameters *)p; + + return smoothCutoff(r, vdw->cutoffRadiusStart, vdw->cutoffRadiusEnd) + * potentialBuckingham(r, p); +} + +// the result is in attoJoules per picometer = microNewtons +// aJ / pm = 1e-18 J / 1e-12 m = 1e-6 J / m = uN +double +gradientModifiedBuckingham(double r, void *p) +{ + struct vanDerWaalsParameters *vdw = (struct vanDerWaalsParameters *)p; + double S = smoothCutoff(r, vdw->cutoffRadiusStart, vdw->cutoffRadiusEnd); + double dS = dSmoothCutoff(r, vdw->cutoffRadiusStart, vdw->cutoffRadiusEnd); + + return S * gradientBuckingham(r, p) + dS * potentialBuckingham(r, p); +} + +void +initializeVanDerWaalsInterpolator(struct vanDerWaalsParameters *vdw) +{ + double start; + double scale; + double end; + + start = vdw->rvdW * 0.4; + end = vdw->cutoffRadiusEnd; + scale = (end - start) / TABLEN; + + vdw->vInfinity = 0.0; + if (vdw->cutoffRadiusEnd <= vdw->cutoffRadiusStart || DEBUG(D_VDW_NO_SWITCHOVER)) { + vdw->vInfinity = potentialBuckingham(end, vdw); + + fillInterpolationTable(&vdw->Buckingham, + potentialBuckingham, + gradientBuckingham, + start, scale, vdw); + vdw->minPhysicalTableIndex = findExcessiveEnergyLevel(&vdw->Buckingham, + vdw->rvdW, -1, 0, + potentialBuckingham(vdw->rvdW, vdw), + 1.0, vdw->vdwName); + } else { + fillInterpolationTable(&vdw->Buckingham, + potentialModifiedBuckingham, + gradientModifiedBuckingham, + start, scale, vdw); + vdw->minPhysicalTableIndex = findExcessiveEnergyLevel(&vdw->Buckingham, + vdw->rvdW, -1, 0, + potentialModifiedBuckingham(vdw->rvdW, vdw), + 1.0, vdw->vdwName); + } +} + +double potentialCoulomb(double r, void *p) +{ + struct electrostaticParameters *es = (struct electrostaticParameters *)p; + return (es->k / r) - es->vInfinity; +} + +double gradientCoulomb(double r, void *p) +{ + struct electrostaticParameters *es = (struct electrostaticParameters *)p; + return -es->k / (r * r); +} + +// The Coulomb potential for electrostatic force. +// Modified by a switching function to allow the potential to smoothly +// approach zero by the time it reaches the cutoff radius. +// +// result in aJ +double +potentialModifiedCoulomb(double r, void *p) +{ + struct electrostaticParameters *es = (struct electrostaticParameters *)p; + + return smoothCutoff(r, es->cutoffRadiusStart, es->cutoffRadiusEnd) + * potentialCoulomb(r, p); +} + +// the result is in attoJoules per picometer = microNewtons +// aJ / pm = 1e-18 J / 1e-12 m = 1e-6 J / m = uN +double +gradientModifiedCoulomb(double r, void *p) +{ + struct electrostaticParameters *es = (struct electrostaticParameters *)p; + double S = smoothCutoff(r, es->cutoffRadiusStart, es->cutoffRadiusEnd); + double dS = dSmoothCutoff(r, es->cutoffRadiusStart, es->cutoffRadiusEnd); + + return S * gradientCoulomb(r, p) + dS * potentialCoulomb(r, p); +} + +void +initializeElectrostaticInterpolator(struct electrostaticParameters *es) +{ + double start; + double scale; + double end; + double sign; + + sign = (es->k > 0.0) ? 1.0 : -1.0; + start = es->k / (1.1 * ExcessiveEnergyLevel); + end = es->cutoffRadiusEnd; + scale = (end - start) / TABLEN; + + es->vInfinity = 0.0; + if (es->cutoffRadiusEnd <= es->cutoffRadiusStart || DEBUG(D_VDW_NO_SWITCHOVER)) { + es->vInfinity = potentialCoulomb(end, es); + + fillInterpolationTable(&es->Coulomb, + potentialCoulomb, + gradientCoulomb, + start, scale, es); + es->minPhysicalTableIndex = findExcessiveEnergyLevel(&es->Coulomb, + end, -1, 0, + 0.0, + sign, es->electrostaticName); + } else { + fillInterpolationTable(&es->Coulomb, + potentialModifiedCoulomb, + gradientModifiedCoulomb, + start, scale, es); + es->minPhysicalTableIndex = findExcessiveEnergyLevel(&es->Coulomb, + end, -1, 0, + 0.0, + sign, es->electrostaticName); + } +} + +static void +convertDashToSpace(char *s) +{ + while (*s) { + if (*s == '-') { + *s = ' '; + } + s++; + } +} + +static void +printBondPAndG(char *bondName, double initial, double increment, double limit) +{ + char elt1[4]; + char elt2[4]; + char order; + struct atomType *e1; + struct atomType *e2; + struct bondStretch *stretch; + struct interpolationTable *iTable; + double start; + double scale; + int k; + double r; + double interpolated_potential; + double interpolated_gradient; + double direct_potential; + double direct_gradient; + double extension_potential; + double extension_gradient; + double lip; // last interpolated_potential + double dip; // derivitive of interpolated_potential + + convertDashToSpace(bondName); + if (3 != sscanf(bondName, "%2s %c %2s", elt1, &order, elt2)) { + fprintf(stderr, "bond format must be: bond:C-1-H\n"); + exit(1); + } + e1 = getAtomTypeByName(elt1); + if (e1 == NULL) { + fprintf(stderr, "Element %s not defined\n", elt1); + exit(1); + } + e2 = getAtomTypeByName(elt2); + if (e2 == NULL) { + fprintf(stderr, "Element %s not defined\n", elt2); + exit(1); + } + + // XXX this may return completly bizarre result for unknown bond orders. + stretch = getBondStretch(e1->protons, e2->protons, order); + + printf("# ks=%e r0=%e de=%e beta=%e inflectionR=%e\n", + stretch->ks, + stretch->r0, + stretch->de, + stretch->beta, + stretch->inflectionR); + + iTable = &stretch->LippincottMorse; + start = iTable->start; + scale = iTable->scale; + + printf("# table start = %e table end = %e\n", + start, + TABLEN * scale + start); + + printf("# r in pm, potentials in aJ, gradients in pN\n"); + printf("# r interp potential interp gradient direct potential direct gradient extension potential extention gradient d(interp potential) k\n"); + + if (initial < 0) { + initial = start; + } + if (limit < initial) { + limit = TABLEN * scale + start; + } + if (increment < 0) { + increment = (limit - initial) / 1000.0; + } + + interpolated_potential = stretchPotential(NULL, NULL, stretch, initial); + for (r=initial; r<limit; r+=increment) { + k = (int)((r - start) / scale); + lip = interpolated_potential; + interpolated_potential = stretchPotential(NULL, NULL, stretch, r); + dip = interpolated_potential - lip; + interpolated_gradient = stretchGradient(NULL, NULL, stretch, r); + direct_potential = potentialLippincottMorse(r, stretch); + direct_gradient = gradientLippincottMorse(r, stretch) * 1e6; + extension_potential = + ((stretch->potentialExtensionD * r + + stretch->potentialExtensionC) * r + + stretch->potentialExtensionB) * r + + stretch->potentialExtensionA; + extension_gradient = + (stretch->potentialExtensionD * r * 3.0 + + stretch->potentialExtensionC * 2.0) * r + + stretch->potentialExtensionB; + extension_gradient *= 1e6; + printf("%19.12e %19.12e %19.12e %19.12e %19.12e %19.12e %19.12e %19.12e %d\n", + r, // 1 + interpolated_potential, // 2 + interpolated_gradient, // 3 + direct_potential, // 4 + direct_gradient, // 5 + extension_potential, // 6 + extension_gradient, // 7 + dip, // 8 + k // 9 + ); + } +} + +static void +printBendPAndG(char *bendName, double initial, double increment, double limit) +{ + fprintf(stderr, "printBendPAndG not implemented yet\n"); + exit(1); +} + +static void +printVdWPAndG(char *vdwName, double initial, double increment, double limit) +{ + char elt1[4]; + char elt2[4]; + struct atomType *e1; + struct atomType *e2; + struct vanDerWaalsParameters *vdw; + double r; + double interpolated_potential; + double interpolated_gradient; + double direct_potential; + double direct_gradient; + double modified_potential; + double modified_gradient; + double lip; // last interpolated_potential + double dip; // derivitive of interpolated_potential + + convertDashToSpace(vdwName); + if (2 != sscanf(vdwName, "%2s v %2s", elt1, elt2)) { + fprintf(stderr, "vdw format must be: vdw:C-v-H\n"); + exit(1); + } + e1 = getAtomTypeByName(elt1); + if (e1 == NULL) { + fprintf(stderr, "Element %s not defined\n", elt1); + exit(1); + } + e2 = getAtomTypeByName(elt2); + if (e2 == NULL) { + fprintf(stderr, "Element %s not defined\n", elt2); + exit(1); + } + + vdw = getVanDerWaalsTable(e1->protons, e2->protons); + + printf("# rvdW=%e evdW=%e\n", + vdw->rvdW, + vdw->evdW); + + printf("# table start = %e table end = %e\n", + vdw->rvdW * 0.4, + vdw->rvdW * VanDerWaalsCutoffFactor); + + if (initial < 0) { + initial = vdw->rvdW * 0.4; + } + if (limit < initial) { + limit = vdw->rvdW * VanDerWaalsCutoffFactor; + } + if (increment < 0) { + increment = (limit - initial) / 1000.0; + } + interpolated_potential = vanDerWaalsPotential(NULL, NULL, vdw, initial); + for (r=initial; r<limit; r+=increment) { + lip = interpolated_potential; + interpolated_potential = vanDerWaalsPotential(NULL, NULL, vdw, r); + dip = interpolated_potential - lip; + interpolated_gradient = vanDerWaalsGradient(NULL, NULL, vdw, r); + direct_potential = potentialBuckingham(r, vdw); + direct_gradient = gradientBuckingham(r, vdw) * 1e6; + modified_potential = potentialModifiedBuckingham(r, vdw); + modified_gradient = gradientModifiedBuckingham(r, vdw) * 1e6; + printf("%19.12e %19.12e %19.12e %19.12e %19.12e %19.12e %19.12e %19.12e\n", + r, // 1 + interpolated_potential, // 2 + interpolated_gradient, // 3 + direct_potential, // 4 + direct_gradient, // 5 + dip, // 6 + modified_potential, // 7 + modified_gradient //8 + ); + } +} + +static void +printElectrostaticPAndG(char *electrostaticName, double initial, double increment, double limit) +{ + char elt1[4]; + char elt2[4]; + struct atomType *e1; + struct atomType *e2; + struct electrostaticParameters *es; + double r; + double interpolated_potential; + double interpolated_gradient; + double direct_potential; + double direct_gradient; + double modified_potential; + double modified_gradient; + double lip; // last interpolated_potential + double dip; // derivitive of interpolated_potential + + convertDashToSpace(electrostaticName); + if (2 != sscanf(electrostaticName, "%2s e %2s", elt1, elt2)) { + fprintf(stderr, "es format must be: es:Pl-e-Pl\n"); + exit(1); + } + e1 = getAtomTypeByName(elt1); + if (e1 == NULL) { + fprintf(stderr, "Element %s not defined\n", elt1); + exit(1); + } + e2 = getAtomTypeByName(elt2); + if (e2 == NULL) { + fprintf(stderr, "Element %s not defined\n", elt2); + exit(1); + } + + es = getElectrostaticParameters(e1->protons, e2->protons); + + printf("# k=%e cutoffStart=%e\n", es->k, es->cutoffRadiusStart); + + printf("# table start = %e table end = %e\n", + es->Coulomb.start, + es->cutoffRadiusEnd); + + if (initial < 0) { + initial = es->Coulomb.start; + } + if (limit < initial) { + limit = es->cutoffRadiusEnd; + } + if (increment < 0) { + increment = (limit - initial) / 1000.0; + } + interpolated_potential = electrostaticPotential(NULL, NULL, es, initial); + for (r=initial; r<limit; r+=increment) { + lip = interpolated_potential; + interpolated_potential = electrostaticPotential(NULL, NULL, es, r); + dip = interpolated_potential - lip; + interpolated_gradient = electrostaticGradient(NULL, NULL, es, r); + direct_potential = potentialCoulomb(r, es); + direct_gradient = gradientCoulomb(r, es) * 1e6; + modified_potential = potentialModifiedCoulomb(r, es); + modified_gradient = gradientModifiedCoulomb(r, es) * 1e6; + printf("%19.12e %19.12e %19.12e %19.12e %19.12e %19.12e %19.12e %19.12e\n", + r, // 1 + interpolated_potential, // 2 + interpolated_gradient, // 3 + direct_potential, // 4 + direct_gradient, // 5 + dip, // 6 + modified_potential, // 7 + modified_gradient //8 + ); + } +} + +void +printPotentialAndGradientFunctions(char *name, double initial, double increment, double limit) +{ + + if (!strncmp(name, "bond:", 5)) { + printBondPAndG(name+5, initial, increment, limit); + } else if (!strncmp(name, "bend:", 5)) { + printBendPAndG(name+5, initial, increment, limit); + } else if (!strncmp(name, "vdw:", 4)) { + printVdWPAndG(name+4, initial, increment, limit); + } else if (!strncmp(name, "es:", 3)) { + printElectrostaticPAndG(name+3, initial, increment, limit); + } else { + fprintf(stderr, "You must specify the type of entry you want printed.\n"); + fprintf(stderr, "For example:\n"); + fprintf(stderr, " bond:C-1-H\n"); + fprintf(stderr, " bend:C-1-C-1-H\n"); + fprintf(stderr, " vdw:C-v-H\n"); + fprintf(stderr, " es:Pl-e-Pl\n"); + exit(1); + } +} + +// ks in N/m +// r0 in pm, or 1e-12 m +// de in aJ, or 1e-18 J +// beta in 1e10 m^-1 +// ks r0 de beta inflectionR +// addInitialBondStretch( 6, 6, '1', 437.8, 154.9, 0.7578, 1.6996, 196.3800); // C-C + +// kb in aJ / rad^2 +// theta0 in radians +// kb theta0 +// addInitialBendData("C-1-C-1-C", 1.09340661193, 1.93035002646); + +#define POLAR +#ifdef POLAR +// a->r +// b->theta +#define A_MIN 140 +#define A_MAX 220 +#define A_INCR 5 +#define B_MIN (0) +#define B_MAX (2*Pi) +#define B_INCR 0.2 +#define X(a, b) ((a) * sin(b)) +#define Y(a, b) ((a) * cos(b)) +#else +// a->x +// b->y +#define A_MIN -500 +#define A_MAX 500 +#define A_INCR 25 +#define B_MIN -500 +#define B_MAX 500 +#define B_INCR 25 +#define X(a, b) (a) +#define Y(a, b) (b) +#endif +#define ZOFFSET -50.0 +#define ZTICK -2.0 +#define POTENTIAL_SCALE 500 +#define FORCE_SCALE 0.002 + +#define POTENTIAL_CUTOFF (0.5 * POTENTIAL_SCALE) +#define FORCE_CUTOFF (100 / FORCE_SCALE) + +// run with -D 8 +void +printBendStretch() +{ + struct part *p; + struct xyz pos[3]; + struct xyz force[3]; + FILE *out; + double a; + double b; + double x; + double y; + double x1; + double y1; + double x2; + double y2; + double potential; + double prevA_potential; + double prevB_potential = 0.0; + double flen; + float red, grn, blu; + int red1, red2; + + out = fopen("forceresult", "w"); + p = makePart("internal", NULL, NULL); + pos[0].x = 0; + pos[0].y = 0; + pos[0].z = 0; + makeAtom(p, 0, 6, pos[0]); + pos[1].x = -154.9; + pos[1].y = 0; + pos[1].z = 0; + makeAtom(p, 1, 6, pos[1]); + pos[2].x = 154.9; + pos[2].y = 0; + pos[2].z = 0; + makeAtom(p, 2, 6, pos[2]); + makeBond(p, 0, 1, '1'); + makeBond(p, 0, 2, '1'); + makeVanDerWaals(p, 1, 2); + endPart(p); + generateStretches(p); + generateBends(p); + //printPart(stdout, p); + fprintf(out, "s %f %f %f %f %f %f %f\n", + pos[0].x, + pos[0].y, + pos[0].z, + 10.0, + 1.0, 0.0, 0.0); + fprintf(out, "s %f %f %f %f %f %f %f\n", + pos[1].x, + pos[1].y, + pos[1].z, + 10.0, + 0.5, 0.0, 0.0); + fprintf(out, "s %f %f %f %f %f %f %f\n", + pos[0].x, + pos[0].y, + ZOFFSET, + 10.0, + 1.0, 0.0, 0.0); + fprintf(out, "s %f %f %f %f %f %f %f\n", + pos[1].x, + pos[1].y, + ZOFFSET, + 10.0, + 0.5, 0.0, 0.0); + for (a=A_MIN; a<A_MAX; a+=A_INCR) { + for (b=B_MIN; b<B_MAX; b+=B_INCR) { + x = X(a, b); + y = Y(a, b); + pos[2].x = x; + pos[2].y = y; + + x1 = X(a, b-B_INCR); + y1 = Y(a, b-B_INCR); + if (b == B_MIN) { + pos[2].x = x1; + pos[2].y = y1; + prevB_potential = calculatePotential(p, pos) * POTENTIAL_SCALE; + } + pos[2].x = x; + pos[2].y = y; + potential = calculatePotential(p, pos) * POTENTIAL_SCALE; + x2 = X(a-A_INCR, b); + y2 = Y(a-A_INCR, b); + pos[2].x = x2; + pos[2].y = y2; + prevA_potential = calculatePotential(p, pos) * POTENTIAL_SCALE; + + if (potential < POTENTIAL_CUTOFF) { + red1 = 0; + } else { + red1 = 1; + potential = POTENTIAL_CUTOFF; + } + + if (prevA_potential > POTENTIAL_CUTOFF) { + red2 = 1; + prevA_potential = POTENTIAL_CUTOFF; + } else { + red2 = red1; + } + fprintf(out, "l %f %f %f %f %f %f %s\n", + x2, y2, prevA_potential, + x, y, potential, + red2 ? "1 0 0" : "0 0 1"); + + if (prevB_potential > POTENTIAL_CUTOFF) { + red2 = 1; + prevB_potential = POTENTIAL_CUTOFF; + } else { + red2 = red1; + } + fprintf(out, "l %f %f %f %f %f %f %s\n", + x1, y1, prevB_potential, + x, y, potential, + red2 ? "1 0 0" : "0 0 1"); + + prevB_potential = potential; + + calculateGradient(p, pos, force); + + flen = vlen(force[2]); + if (flen > FORCE_CUTOFF) { + vmulc(force[2], FORCE_CUTOFF / flen); + red = 1; + grn = 0; + blu = 0; + } else { + red = 1; + grn = 1; + blu = 1; + } + + fprintf(out, "l %f %f %f %f %f %f %f %f %f\n", + x, y, ZOFFSET, + x + (force[2].x * FORCE_SCALE), + y + (force[2].y * FORCE_SCALE), + ZOFFSET, + red, grn, blu); + fprintf(out, "l %f %f %f %f %f %f %f %f %f\n", + x, y, ZOFFSET+ZTICK, + x, y, ZOFFSET, + 1.0, 1.0, blu); + + } + } + fprintf(out, "f force\n"); + fclose(out); +} diff --git a/sim/src/interpolate.h b/sim/src/interpolate.h new file mode 100755 index 000000000..0c05ff2ff --- /dev/null +++ b/sim/src/interpolate.h @@ -0,0 +1,37 @@ +// Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. +#ifndef INTERPOLATE_H_INCLUDED +#define INTERPOLATE_H_INCLUDED + +#define RCSID_INTERPOLATE_H "$Id$" + +extern double potentialLippincottMorse(double r, void *p); + +extern double gradientLippincottMorse(double r, void *p); + +extern void initializeBondStretchInterpolater(struct bondStretch *stretch); + +extern double gradientBuckingham(double r, void *p); + +extern double potentialBuckingham(double r, void *p); + +extern double potentialModifiedBuckingham(double r, void *p); + +extern double gradientModifiedBuckingham(double r, void *p); + +extern void initializeVanDerWaalsInterpolator(struct vanDerWaalsParameters *vdw); + +extern double potentialCoulomb(double r, void *p); + +extern double gradientCoulomb(double r, void *p); + +extern double potentialModifiedCoulomb(double r, void *p); + +extern double gradientModifiedCoulomb(double r, void *p); + +extern void initializeElectrostaticInterpolator(struct electrostaticParameters *es); + +extern void printPotentialAndGradientFunctions(char *name, double initial, double increment, double limit); + +extern void printBendStretch(void); + +#endif diff --git a/sim/src/jigs.c b/sim/src/jigs.c new file mode 100755 index 000000000..88a309df2 --- /dev/null +++ b/sim/src/jigs.c @@ -0,0 +1,593 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +//#define WWDEBUG +#include "simulator.h" + +static char const rcsid[] = "$Id$"; + +/** kT @ 300K is 4.14 zJ -- RMS V of carbon is 1117 m/s + or 645 m/s each dimension, or 0.645 pm/fs */ + +static double gavss(double v) { + double v0,v1, rSquared; + do { + v0=(float)rand()/(float)(RAND_MAX/2) - 1.0; + v1=(float)rand()/(float)(RAND_MAX/2) - 1.0; + rSquared = v0*v0 + v1*v1; + } while (rSquared>=1.0 || rSquared==0.0); + return v*v0*sqrt(-2.0*log(rSquared)/rSquared); +} + +struct xyz gxyz(double v) { + struct xyz g; + g.x=gavss(v); + g.y=gavss(v); + g.z=gavss(v); + return g; +} + +void +jigGround(struct jig *jig, double deltaTframe, struct xyz *position, struct xyz *new_position, struct xyz *force) +{ + struct xyz foo, bar; + struct xyz q1; + int k; + struct xyz rx; + + vsetc(foo,0.0); + vsetc(q1,0.0); + for (k=0; k<jig->num_atoms; k++) { // find center + vadd(foo,position[jig->atoms[k]->index]); + } + vmulc(foo,1.0 / jig->num_atoms); + + for (k=0; k<jig->num_atoms; k++) { + vsub2(rx,position[jig->atoms[k]->index], foo); + v2x(bar,rx,force[jig->atoms[k]->index]); // bar = rx cross force[] + vadd(q1,bar); + } + vmulc(q1,deltaTframe); + vadd(jig->xdata, q1); + jig->data++; + + for (k=0; k<jig->num_atoms; k++) { + new_position[jig->atoms[k]->index] = position[jig->atoms[k]->index]; + } +} + +/* + * Springs connect atoms to a flywheel. We drive the flywheel and it + * pulls the atoms along. The units of spring stiffness are piconewtons + * per picometer, or equivalently newtons per meter. + * + * 10 newtons/meter is too stiff, we get oscillations that grow out of + * control. 1 N/m and 0.1 N/m give oscillations but they don't go crazy. + */ +#define SPRING_STIFFNESS 10.0 + +/* + * We want a damping coefficient that is dimensionless and ranges from + * zero to one, where zero is no damping at all, and one is complete + * damping, no sinusoidal component at all. + * + * The magic equation here is Mx'' = -Kx - Dx', where M is atom mass, + * x is atom displacement in the direction of the spring, K is spring + * stiffness. D is a constant which multiplies by a velocity to give a + * force, and it acts like friction. Plug in Laplace operator "s" as a + * derivative, and we have s**2 + (D/M)s + (K/M) = 0. The solutions to + * this equation describe the two mechanical resonances of the system, + * and the negative-ness of the real parts tell us how quickly the + * oscillations in omega die away. + * + * Let z be our dimensionless number between zero and one, and let D = + * 2z * sqrt(KM). Then the resonances occur at + * + * s = sqrt(K/M) * (-z +/- j * sqrt(1-z**2)) + * + * where "j" is sqrt(-1), giving the imaginary part of s. The real + * part is negative, indicating that it's stable. A positive real part + * would mean the oscillations were going to grow with time, a bad + * thing. + */ + +void +jigMotor(struct jig *jig, double deltaTframe, struct xyz *position, struct xyz *new_position, struct xyz *force) +{ + int k; + int a1; + struct xyz tmp; + struct xyz f; + struct xyz r; + double omega, domega_dt; + double motorq, dragTorque = 0.0; + double theta, cos_theta, sin_theta; + double m; + const double minspeed = 1.0; // radians per second, very slow + const double maxm = 1.0e-4; // max value for multiplier, make it stable + struct xyz anchor; + +#ifdef WWDEBUG + /* + * Bug 1529, where two rotary motors fight. Even though one has + * zero torque, the torque isn't really zero because it's got that + * big flywheel to get up to speed. The weak links are the chemical + * bonds, which go nuts. + */ + int explain_stuff = 0; + { + static long count = 0; + // odd modulo, so we switch motors + if ((count % 101) == 0) { + MARK(); + explain_stuff = 1; + } + count++; + } +#endif + + // omega is current motor speed in radians per second. + // jig->j.rmotor.speed is top (zero torque) speed in radians per second. + // jig->j.rmotor.stall is zero speed torque in pN-pm or yNm (yocto Nm, 1e-24 Kg m^2 sec^-2) + omega = jig->j.rmotor.omega; + // Bosch model + if (fabs(jig->j.rmotor.speed) < minspeed) { + if (jig->j.rmotor.speed >= 0) { + m = jig->j.rmotor.stall / minspeed; + } else { + m = -jig->j.rmotor.stall / minspeed; + } + } else { + m = jig->j.rmotor.stall / jig->j.rmotor.speed; + } + // clip m to maintain stability + if (m > maxm) m = maxm; + else if (m < -maxm) m = -maxm; + // m is yocto Kg m^2 sec^-1 radian^-1: it converts radians/second to pN-pm + // motorq is yNm + motorq = m * (jig->j.rmotor.speed - omega); + // don't let the torque get too big + if (motorq > 2.0 * jig->j.rmotor.stall) { + motorq = 2.0 * jig->j.rmotor.stall; + } else if (motorq < -2.0 * jig->j.rmotor.stall) { + motorq = -2.0 * jig->j.rmotor.stall; + } + + cos_theta = cos(jig->j.rmotor.theta); + sin_theta = sin(jig->j.rmotor.theta); + + /* nudge atoms toward their new places */ + for (k = 0; k < jig->num_atoms; k++) { + struct xyz rprev; + a1 = jig->atoms[k]->index; + // get the position of this atom's anchor + anchor = jig->j.rmotor.center; + vadd(anchor, jig->j.rmotor.u[k]); + vmul2c(tmp, jig->j.rmotor.v[k], cos_theta); + vadd(anchor, tmp); + vmul2c(tmp, jig->j.rmotor.w[k], sin_theta); + vadd(anchor, tmp); + if (_last_iteration && DEBUG(D_DYNAMICS_SIMPLE_MOVIE)) { // -D15 + writeSimplePositionMarker(&anchor, 5.0, 1.0, 1.0, 1.0); + writeSimplePositionMarker(&jig->j.rmotor.center, 5.0, 1.0, 1.0, 1.0); + } + // compute a force pushing on the atom, spring term plus damper term + r = position[a1]; + vsub(r, anchor); + rprev = r; + // r in pm, SPRING_STIFFNESS in N/m, f in pN + vmul2c(f, r, -SPRING_STIFFNESS); + if (jig->j.rmotor.damping_enabled) { + + // this could be optimized a bit more but the intent would be less clear + // frictionOverDt = 2 * jig->j.rmotor.dampingCoefficient * + // sqrt(SPRING_STIFFNESS / jig->atoms[k]->inverseMass); + // vmul2c(tmp, r, -frictionOverDt); + + // friction is force divided by velocity + double friction = 2 * jig->j.rmotor.dampingCoefficient * + sqrt(SPRING_STIFFNESS * 1.e-27 * jig->atoms[k]->mass); + vsub(r, jig->j.rmotor.rPrevious[k]); + // we need a factor of Dt because of Verlet integration + vmul2c(tmp, r, -friction / Dt); + vadd(f, tmp); + jig->j.rmotor.rPrevious[k] = rprev; + } + + // nudge the new positions accordingly + vadd2scale(new_position[a1], f, jig->atoms[k]->inverseMass); + + // compute the drag torque pulling back on the motor + r = vdif(position[a1], jig->j.rmotor.center); + tmp = vx(r, f); + dragTorque += vdot(tmp, jig->j.rmotor.axis); + } + + domega_dt = (motorq - dragTorque) / jig->j.rmotor.momentOfInertia; + theta = jig->j.rmotor.theta + omega * Dt; + jig->j.rmotor.omega = omega = jig->j.rmotor.omega + domega_dt * Dt; + + /* update the motor's position */ + theta = fmod(theta, 2.0 * Pi); + jig->j.rmotor.theta = theta; + // convert rad/sec to GHz + jig->data = jig->j.rmotor.omega / (2.0e9 * Pi); + // convert from pN-pm to nN-nm + jig->data2 = motorq / ((1e-9/Dx) * (1e-9/Dx)); +} + +double +jigMinimizePotentialRotaryMotor(struct part *p, struct jig *jig, + struct xyz *positions, + double *pTheta) +{ + int k; + int a1; + // potential is in aJ (1e-18 J, 1e-18 N m) + // here, aJ radians + // torque is aN m (nN-nm) + double potential = -jig->j.rmotor.minimizeTorque * *pTheta; + double cos_theta = cos(*pTheta); + double sin_theta = sin(*pTheta); + struct xyz tmp; + struct xyz r; + struct xyz anchor; + + for (k = 0; k < jig->num_atoms; k++) { + a1 = jig->atoms[k]->index; + // get the position of this atom's anchor + anchor = jig->j.rmotor.center; + vadd(anchor, jig->j.rmotor.u[k]); + vmul2c(tmp, jig->j.rmotor.v[k], cos_theta); + vadd(anchor, tmp); + vmul2c(tmp, jig->j.rmotor.w[k], sin_theta); + vadd(anchor, tmp); + if (DEBUG(D_MINIMIZE_POTENTIAL_MOVIE)) { // -D4 + writeSimplePositionMarker(&anchor, 5.0, 1.0, 1.0, 1.0); + writeSimplePositionMarker(&jig->j.rmotor.center, 5.0, 1.0, 1.0, 1.0); + } + // compute potential of the spring term + r = positions[a1]; + vsub(r, anchor); + // r in pm + // SPRING_STIFFNESS is in N/m + // potential in N/m * pm * pm * 1e-6 am/ym or aJ + potential += 0.5 * SPRING_STIFFNESS * vdot(r, r) * 1e-6; + } + + return potential; +} + +// force is in pN (1e-12 J/m) +// gradient is in pJ/radian +void +jigMinimizeGradientRotaryMotor(struct part *p, struct jig *jig, + struct xyz *positions, + struct xyz *force, + double *pTheta, + double *pGradient) +{ + int k; + int a1; + double gradient = jig->j.rmotor.minimizeTorque; // aN m + double cos_theta = cos(*pTheta); + double sin_theta = sin(*pTheta); + struct xyz tmp; + struct xyz r; + struct xyz f; + struct xyz anchor; + + for (k = 0; k < jig->num_atoms; k++) { + a1 = jig->atoms[k]->index; + // get the position of this atom's anchor + anchor = jig->j.rmotor.center; + vadd(anchor, jig->j.rmotor.u[k]); + vmul2c(tmp, jig->j.rmotor.v[k], cos_theta); + vadd(anchor, tmp); + vmul2c(tmp, jig->j.rmotor.w[k], sin_theta); + vadd(anchor, tmp); + if (DEBUG(D_MINIMIZE_GRADIENT_MOVIE)) { // -D4 + writeSimplePositionMarker(&anchor, 5.0, 1.0, 1.0, 1.0); + writeSimplePositionMarker(&jig->j.rmotor.center, 5.0, 1.0, 1.0, 1.0); + } + + // compute a force pushing on the atom due to a spring to the anchor position + r = positions[a1]; + vsub(r, anchor); + // r in pm, SPRING_STIFFNESS in N/m, f in pN + vmul2c(f, r, -SPRING_STIFFNESS); + vadd(force[a1], f); + + // compute the drag torque pulling back on the motor + r = vdif(positions[a1], jig->j.rmotor.center); + // r in pm, f in pN, tmp in yJ, multiply by 1e-6 to get aJ + tmp = vx(r, f); + gradient -= vdot(tmp, jig->j.rmotor.axis) * 1e-6; // axis is unit vector + } + + *pGradient = gradient; +} + +void +jigLinearMotor(struct jig *jig, struct xyz *position, struct xyz *new_position, struct xyz *force, double deltaTframe) +{ + int i; + int a1; + struct xyz r; + struct xyz f; + double ff, x; + + // calculate the average position of all atoms in the motor (r) + r = vcon(0.0); + for (i=0;i<jig->num_atoms;i++) { + /* for each atom connected to the "shaft" */ + r=vsum(r,position[jig->atoms[i]->index]); + } + r=vprodc(r, 1.0/jig->num_atoms); + + // x is length of projection of r onto axis (axis is unit vector) + x=vdot(r,jig->j.lmotor.axis); + jig->data = x - jig->j.lmotor.motorPosition; + + // f is the amount of force to apply to each atom. Always a + // vector along the motor axis. + if (jig->j.lmotor.stiffness == 0.0) { + vset(f, jig->j.lmotor.constantForce); + } else { + // zeroPosition is projection distance of r onto axis for 0 force + ff = jig->j.lmotor.stiffness * (jig->j.lmotor.zeroPosition - x) / jig->num_atoms; + f = vprodc(jig->j.lmotor.axis, ff); + } + // Calculate the resulting force on each atom, and project it onto + // the motor axis. This dissapates lateral force from the system + // without translating it anywhere else, or reporting it out. + // XXX report resulting force on linear bearing out to higher level + for (i=0;i<jig->num_atoms;i++) { + a1 = jig->atoms[i]->index; + // constrain new_position to be along motor axis from position + ff = vdot(vdif(new_position[a1], position[a1]), jig->j.lmotor.axis); + vadd2(new_position[a1], position[a1], vprodc(jig->j.lmotor.axis, ff)); + + // add f to force, and remove everything except the axial component + ff = vdot(vsum(force[a1], f), jig->j.lmotor.axis) ; + vmul2c(force[a1], jig->j.lmotor.axis, ff); + } +} + +// note linear motor has zero degrees of freedom, so pDistance is not valid. +double +jigMinimizePotentialLinearMotor(struct part *p, struct jig *jig, + struct xyz *position, + double *pDistance) +{ + int i; + struct xyz r; + double x; + double potential; + + // calculate the average position of all atoms in the motor (r) + r = vcon(0.0); + for (i=0;i<jig->num_atoms;i++) { + /* for each atom connected to the "shaft" */ + r=vsum(r,position[jig->atoms[i]->index]); + } + r=vprodc(r, 1.0/jig->num_atoms); + + // x is length of projection of r onto axis (axis is unit vector) + x=vdot(r,jig->j.lmotor.axis); + + if (jig->j.lmotor.stiffness == 0.0) { + // motorPosition is projection distance of r onto axis for 0 displacement + x -= jig->j.lmotor.motorPosition; + // x in pm, jig->j.lmotor.force in pN + // x * force in yJ + potential = x * jig->j.lmotor.force * -1e-6; // in aJ + } else { + // zeroPosition is projection distance of r onto axis for 0 force + x -= jig->j.lmotor.zeroPosition; + // x in pm, stiffness in N/m + // stiffness * x * x / 2 in yJ + potential = jig->j.lmotor.stiffness * x * x * 0.5 * 1e-6; // in aJ + } + return potential; +} + +void +jigMinimizeGradientLinearMotor(struct part *p, struct jig *jig, + struct xyz *position, + struct xyz *force, + double *pDistance, + double *pGradient) +{ + int i; + int a1; + struct xyz r; + struct xyz f; + double ff, x; + + // calculate the average position of all atoms in the motor (r) + r = vcon(0.0); + for (i=0;i<jig->num_atoms;i++) { + /* for each atom connected to the "shaft" */ + r=vsum(r,position[jig->atoms[i]->index]); + } + r=vprodc(r, 1.0/jig->num_atoms); + + // x is length of projection of r onto axis (axis is unit vector) + x=vdot(r,jig->j.lmotor.axis); + + // f is the amount of force to apply to each atom. Always a + // vector along the motor axis. + if (jig->j.lmotor.stiffness == 0.0) { + vset(f, jig->j.lmotor.constantForce); + } else { + // zeroPosition is projection distance of r onto axis for 0 force + ff = jig->j.lmotor.stiffness * (jig->j.lmotor.zeroPosition - x) / jig->num_atoms; + f = vprodc(jig->j.lmotor.axis, ff); + } + // Calculate the resulting force on each atom, and project it onto + // the motor axis. + for (i=0;i<jig->num_atoms;i++) { + a1 = jig->atoms[i]->index; + // position constraints have already been applied, and + // besides, with no non-axial forces we should never get off + // axis anyway... + + // add f to force, and remove everything except the axial component + ff = vdot(vsum(force[a1], f), jig->j.lmotor.axis) ; + vmul2c(force[a1], jig->j.lmotor.axis, ff); + } +} + +void +jigThermometer(struct jig *jig, double deltaTframe, struct xyz *position, struct xyz *new_position) +{ + double z; + double ff; + int a1; + int k; + int dof; // degrees of freedom + struct xyz f; + + dof = 3 * jig->num_atoms; + + // average(m * v * v / 2) == 3 * k * T / 2 + + // This divides out both the number of iterations (to average one + // frame), and the number of degrees of freedom. DOF = 3N-3 if + // translation has been cancelled, and 3N-6 if rotation has been + // cancelled as well. + z = deltaTframe / ((double)dof); + ff=0.0; + for (k=0; k<jig->num_atoms; k++) { + a1 = jig->atoms[k]->index; + // f is pm/fs (actually Dt/Dx) + f = vdif(position[a1],new_position[a1]); + // mass in yg (1e-24 g) + // ff in yg Dt*Dt/Dx*Dx + ff += vdot(f, f) * jig->atoms[k]->mass; + } + // Boltz is in J/K + // ff in 1e3 g m m K / s s J or K + ff *= Dmass * Dx * Dx / (Dt * Dt * Boltz); + jig->data += ff*z; +} + +// Langevin thermostat +void +jigThermostat(struct jig *jig, double deltaTframe, struct xyz *position, struct xyz *new_position) +{ + double z; + double ke; + int a1; + int k; + double therm; + struct xyz v1; + struct xyz v2; + double ff; + double mass; + + z = deltaTframe / (3 * jig->num_atoms); + ke=0.0; + + for (k=0; k<jig->num_atoms; k++) { + a1 = jig->atoms[k]->index; + mass = jig->atoms[k]->mass; + therm = sqrt((Boltz*jig->j.thermostat.temperature)/ + (mass * 1e-27))*Dt/Dx; + v1 = vdif(new_position[a1],position[a1]); + ff = vdot(v1, v1) * mass; + + vmulc(v1, 1.0 - ThermostatGamma); + v2= gxyz(ThermostatG1 * therm); + vadd(v1, v2); + vadd2(new_position[a1],position[a1],v1); + + // add up the energy + ke += vdot(v1, v1) * mass - ff; + + } + ke *= 0.5 * Dx*Dx/(Dt*Dt) * 1e-27 * 1e18; + jig->data += ke; +} + +double +angleBetween(struct xyz xyz1, struct xyz xyz2) +{ + double Lsq1, Lsq2, dprod; + Lsq1 = vdot(xyz1, xyz1); + if (Lsq1 < 1.0e-10) + return 0.0; + Lsq2 = vdot(xyz2, xyz2); + if (Lsq2 < 1.0e-10) + return 0.0; + dprod = vdot(xyz1, xyz2) / sqrt(Lsq1 * Lsq2); + if (dprod >= 1.0) + return 0.0; + if (dprod <= -1.0) + return 180.0; + return (180.0 / Pi) * acos(dprod); +} + + +void +jigDihedral(struct jig *jig, struct xyz *new_position) +{ + struct xyz wx; + struct xyz xy; + struct xyz yx; + struct xyz zy; + struct xyz u, v; + + // better have 4 atoms exactly + vsub2(wx,new_position[jig->atoms[0]->index], + new_position[jig->atoms[1]->index]); + vsub2(yx,new_position[jig->atoms[2]->index], + new_position[jig->atoms[1]->index]); + vsub2(xy,new_position[jig->atoms[1]->index], + new_position[jig->atoms[2]->index]); + vsub2(zy,new_position[jig->atoms[3]->index], + new_position[jig->atoms[2]->index]); + // vx = cross product + u = vx(wx, yx); + v = vx(xy, zy); + if (vdot(zy, u) < 0) { + jig->data = -angleBetween(u, v); + } else { + jig->data = angleBetween(u, v); + } +} + + +void +jigAngle(struct jig *jig, struct xyz *new_position) +{ + struct xyz v1; + struct xyz v2; + + // better have 3 atoms exactly + vsub2(v1,new_position[jig->atoms[0]->index], + new_position[jig->atoms[1]->index]); + vsub2(v2,new_position[jig->atoms[2]->index], + new_position[jig->atoms[1]->index]); + // jig->data = acos(vdot(v1,v2)/(vlen(v1)*vlen(v2))); + jig->data = angleBetween(v1, v2); +} + + +void +jigRadius(struct jig *jig, struct xyz *new_position) +{ + struct xyz v1; + + // better have 2 atoms exactly + vsub2(v1,new_position[jig->atoms[0]->index], + new_position[jig->atoms[1]->index]); + + jig->data = vlen(v1); +} + +/* + * Local Variables: + * c-basic-offset: 4 + * tab-width: 8 + * End: + */ diff --git a/sim/src/jigs.h b/sim/src/jigs.h new file mode 100755 index 000000000..aae138eeb --- /dev/null +++ b/sim/src/jigs.h @@ -0,0 +1,72 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#ifndef JIGS_H_INCLUDED +#define JIGS_H_INCLUDED + +#define RCSID_JIGS_H "$Id$" + +extern struct xyz gxyz(double v); + +extern void jigMotorPreforce(struct jig *jig, + struct xyz *position, + struct xyz *force, + double deltaTframe); + +extern void jigGround(struct jig *jig, + double deltaTframe, + struct xyz *position, + struct xyz *new_position, + struct xyz *force); + +extern void jigMotor(struct jig *jig, + double deltaTframe, + struct xyz *position, + struct xyz *new_position, + struct xyz *force); + +extern double jigMinimizePotentialRotaryMotor(struct part *p, struct jig *jig, + struct xyz *positions, + double *pTheta); + + +extern void jigMinimizeGradientRotaryMotor(struct part *p, struct jig *jig, + struct xyz *positions, + struct xyz *force, + double *pTheta, + double *pGradient); + + +extern void jigLinearMotor(struct jig *jig, + struct xyz *position, + struct xyz *new_position, + struct xyz *force, + double deltaTframe); + +extern double jigMinimizePotentialLinearMotor(struct part *p, struct jig *jig, + struct xyz *positions, + double *pDistance); + +extern void jigMinimizeGradientLinearMotor(struct part *p, struct jig *jig, + struct xyz *positions, + struct xyz *force, + double *pDistance, + double *pGradient); + +extern void jigThermometer(struct jig *jig, + double deltaTframe, + struct xyz *position, + struct xyz *new_position); + +extern void jigThermostat(struct jig *jig, + double deltaTframe, + struct xyz *position, + struct xyz *new_position); + +extern double angleBetween(struct xyz xyz1, struct xyz xyz2); + +extern void jigDihedral(struct jig *jig, struct xyz *new_position); + +extern void jigAngle(struct jig *jig, struct xyz *new_position); + +extern void jigRadius(struct jig *jig, struct xyz *new_position); + +#endif diff --git a/sim/src/libpython23.a.gz b/sim/src/libpython23.a.gz Binary files differnew file mode 100755 index 000000000..b6120024e --- /dev/null +++ b/sim/src/libpython23.a.gz diff --git a/sim/src/libpython24.a.gz b/sim/src/libpython24.a.gz Binary files differnew file mode 100755 index 000000000..8387b3b33 --- /dev/null +++ b/sim/src/libpython24.a.gz diff --git a/sim/src/lin-alg.c b/sim/src/lin-alg.c new file mode 100755 index 000000000..5ce36af0c --- /dev/null +++ b/sim/src/lin-alg.c @@ -0,0 +1,267 @@ +// Copyright 2004-2006 Nanorex, Inc. See LICENSE file for details. +/** + * Linear algebra stuff + */ + +// XXX This stuff could possibly benefit from inlining. Need to profile. +// NB the intent is for the macros to be used where speed is important, +// namely inside the calc loop, and these to he used everywhere else, +// for perspicuity. + +#include "simulator.h" + +static char const rcsid[] = "$Id$"; + +struct xyz vcon(double x) { + struct xyz u; + vsetc(u,x); + return u; +} + +struct xyz vsum(struct xyz v, struct xyz w) { + struct xyz u; + vadd2(u,v,w); + return u; +} + +struct xyz vprod(struct xyz v, struct xyz w) { + struct xyz u; + vmul2(u,v,w); + return u; +} + +struct xyz vprodc(struct xyz v, double w) { + struct xyz u; + vmul2c(u,v,w); + return u; +} + +struct xyz vdif(struct xyz v, struct xyz w) { + struct xyz u; + vsub2(u,v,w); + return u; +} + +double vlen(struct xyz v) { /* length of a vector */ + return sqrt(vdot(v,v)); +} + +struct xyz uvec(struct xyz v) { /* unit vector in given direction */ + struct xyz w; + double rlen; + rlen=1.0/vlen(v); + CHECKNANR(rlen, v); + vmul2c(w,v,rlen); + return w; +} + +// angle between vectors +double vang(struct xyz v, struct xyz w) { + struct xyz u1, u2; + u1=uvec(v); + u2=uvec(w); + return acos(vdot(u1,u2)); +} + +// cross product +struct xyz vx(struct xyz v, struct xyz w) { + struct xyz u; + u.x = v.y * w.z - v.z * w.y; + u.y = v.z * w.x - v.x * w.z; + u.z = v.x * w.y - v.y * w.x; + return u; +} + +void +printMatrix3(FILE *f, double *m) +{ + fprintf(f, "(%13.6f %13.6f %13.6f)\n", m[0], m[1], m[2]); + fprintf(f, "(%13.6f %13.6f %13.6f)\n", m[3], m[4], m[5]); + fprintf(f, "(%13.6f %13.6f %13.6f)\n", m[6], m[7], m[8]); +} + +// a rotation matrix is organized like this: +// +// 0 1 2 +// 3 4 5 +// 6 7 8 +// +// they are assumed to be pre-allocated before these routines are +// called. + +// fill in a pre-allocated rotation matrix to rotate theta radians +// around the x axis +void +matrixRotateX(double *m, double theta) +{ + double sinTheta = sin(theta); + double cosTheta = cos(theta); + + m[0] = 1.0; + m[1] = 0.0; + m[2] = 0.0; + + m[3] = 0.0; + m[4] = cosTheta; + m[5] = -sinTheta; + + m[6] = 0.0; + m[7] = sinTheta; + m[8] = cosTheta; +} + +// fill in a pre-allocated rotation matrix to rotate theta radians +// around the y axis +void +matrixRotateY(double *m, double theta) +{ + double sinTheta = sin(theta); + double cosTheta = cos(theta); + + m[0] = cosTheta; + m[1] = 0.0; + m[2] = -sinTheta; + + m[3] = 0.0; + m[4] = 1.0; + m[5] = 0.0; + + m[6] = sinTheta; + m[7] = 0.0; + m[8] = cosTheta; +} + +// fill in a pre-allocated rotation matrix to rotate theta radians +// around the z axis +void +matrixRotateZ(double *m, double theta) +{ + double sinTheta = sin(theta); + double cosTheta = cos(theta); + + m[0] = cosTheta; + m[1] = -sinTheta; + m[2] = 0.0; + + m[3] = sinTheta; + m[4] = cosTheta; + m[5] = 0.0; + + m[6] = 0.0; + m[7] = 0.0; + m[8] = 1.0; +} + +void +matrixRotateXYZ(double *rotation, double thetaX, double thetaY, double thetaZ) +{ + double oneAxis[9]; + double tmp[9]; + + // rotate first around X, then Y, then Z + matrixRotateX(rotation, thetaX); + matrixRotateY(oneAxis, thetaY); + matrixMultiply(tmp, rotation, oneAxis); + matrixRotateZ(oneAxis, thetaZ); + matrixMultiply(rotation, tmp, oneAxis); +} + +// prod = a * b +// all three are pre-allocated rotation matrices +void +matrixMultiply(double *prod, double *a, double *b) +{ + int i; + int j; + + for (i=0; i<3; i++) { + for (j=0; j<3; j++) { + prod[i+3*j] = a[i] * b[3*j] + a[i+3] * b[1+3*j] + a[i+6] * b[2+3*j]; + } + } +} + +// transform in by matrix m to produce out. +// everything is pre-allocated. +void +matrixTransform(struct xyz *out, double *m, struct xyz *in) +{ + out->x = in->x * m[0] + in->y * m[1] + in->z * m[2]; + out->y = in->x * m[3] + in->y * m[4] + in->z * m[5]; + out->z = in->x * m[6] + in->y * m[7] + in->z * m[8]; +} + +// transform in by matrix Transpose(m) to produce out. +// everything is pre-allocated. +// since rotation matricies are orthogonal, Transpose(m) == m^-1 +void +matrixInverseTransform(struct xyz *out, double *m, struct xyz *in) +{ + out->x = in->x * m[0] + in->y * m[3] + in->z * m[6]; + out->y = in->x * m[1] + in->y * m[4] + in->z * m[7]; + out->z = in->x * m[2] + in->y * m[5] + in->z * m[8]; +} + +// minor(i, j) is the determinant of the matrix with row i and column +// j deleted +static double +matrixMinor3(double *m, int i, int j) +{ + double submatrix[4]; + int ii; + int jj; + int k = 0; + + // create submatrix by deleting row i and column j: + for (ii=0; ii<3; ii++) { + if (ii != i) { + for (jj=0; jj<3; jj++) { + if (jj != j) { + submatrix[k++] = m[ii*3 + jj]; + } + } + } + } + // 2x2 determinant of submatrix: + return submatrix[0] * submatrix[3] - submatrix[1] * submatrix[2]; +} + +// determinant of a 3x3 matrix +static double +matrixDeterminant3(double *m) +{ + return + m[0] * matrixMinor3(m, 0, 0) + - m[1] * matrixMinor3(m, 0, 1) + + m[2] * matrixMinor3(m, 0, 2); +} + +// invert a 3x3 matrix +// returns zero if the matrix has no inverse +int +matrixInvert3(double *inverse, double *m) +{ + double det = matrixDeterminant3(m); + + if (fabs(det) < 1e-15) { + return 0; + } + // cofactorMatrix = minor with alternating signs + // inverse = transpose(cofactorMatrix) / det + inverse[0] = +matrixMinor3(m, 0, 0) / det; + inverse[1] = -matrixMinor3(m, 1, 0) / det; + inverse[2] = +matrixMinor3(m, 2, 0) / det; + + inverse[3] = -matrixMinor3(m, 0, 1) / det; + inverse[4] = +matrixMinor3(m, 1, 1) / det; + inverse[5] = -matrixMinor3(m, 2, 1) / det; + + inverse[6] = +matrixMinor3(m, 0, 2) / det; + inverse[7] = -matrixMinor3(m, 1, 2) / det; + inverse[8] = +matrixMinor3(m, 2, 2) / det; + return 1; +} + + + + diff --git a/sim/src/lin-alg.h b/sim/src/lin-alg.h new file mode 100755 index 000000000..4c8742d3c --- /dev/null +++ b/sim/src/lin-alg.h @@ -0,0 +1,114 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#ifndef LIN_ALG_H_INCLUDED +#define LIN_ALG_H_INCLUDED + +#define RCSID_LIN_ALG_H "$Id$" + +/* a 3-vector */ +struct xyz { + double x; + double y; + double z; +}; + +// cast a struct xyz into a struct xyza, and you can access the +// dimensions by an index: +struct xyza { + double a[3]; +}; + +struct quaternion { + double x; + double y; + double z; + double a; +}; + +extern struct xyz vcon(double x); + +extern struct xyz vsum(struct xyz v, struct xyz w); + +extern struct xyz vprod(struct xyz v, struct xyz w); + +extern struct xyz vprodc(struct xyz v, double w); + +extern struct xyz vdif(struct xyz v, struct xyz w); + +extern double vlen(struct xyz v); + +extern struct xyz uvec(struct xyz v); + +extern double vang(struct xyz v, struct xyz w); + +extern struct xyz vx(struct xyz v, struct xyz w); + +extern void printMatrix3(FILE *f, double *m); + +extern void matrixRotateX(double *m, double theta); + +extern void matrixRotateY(double *m, double theta); + +extern void matrixRotateZ(double *m, double theta); + +extern void matrixRotateXYZ(double *rotation, double thetaX, double thetaY, double thetaZ); + +extern void matrixMultiply(double *prod, double *a, double *b); + +extern void matrixTransform(struct xyz *out, double *m, struct xyz *in); + +extern void matrixInverseTransform(struct xyz *out, double *m, struct xyz *in); + +extern int matrixInvert3(double *inverse, double *m); + + +/** vector addition (incremental: add src to dest) */ +#define vadd(dest,src) (dest).x+=(src).x; (dest).y+=(src).y; (dest).z+=(src).z +/** vector addition (non-incremental) */ +#define vadd2(dest,src1,src2) (dest).x=(src1).x+(src2).x; \ + (dest).y=(src1).y+(src2).y; (dest).z=(src1).z+(src2).z +/** vector addition (incremental, with scaling) */ +#define vadd2scale(dest,src1,k) (dest).x+=(src1).x*(k); \ + (dest).y+=(src1).y*(k); (dest).z+=(src1).z*(k) +/** vector subtraction (incremental: subtract src from dest) */ +#define vsub(dest,src) (dest).x-=(src).x; (dest).y-=(src).y; (dest).z-=(src).z +/** vector subtraction (non-incremental) */ +#define vsub2(dest,src1,src2) (dest).x=(src1).x-(src2).x; \ + (dest).y=(src1).y-(src2).y; (dest).z=(src1).z-(src2).z +/** */ +#define vmul(dest,src) (dest).x*=(src).x; (dest).y*=(src).y; (dest).z*=(src).z +/** */ +#define vmul2(dest,src1,src2) (dest).x=(src1).x*(src2).x; \ + (dest).y=(src1).y*(src2).y; (dest).z=(src1).z*(src2).z +/** */ +#define vmul2c(dest,src1,src2) (dest).x=(src1).x*(src2); \ + (dest).y=(src1).y*(src2); (dest).z=(src1).z*(src2) +/** */ +#define vmulc(dest,src) (dest).x*=(src); (dest).y*=(src); (dest).z*=(src) + +#define vdiv(dest,src) (dest).x/=(src).x; (dest).y/=(src).y; (dest).z/=(src).z +#define vdiv2(dest,src1,src2) (dest).x=(src1).x/(src2).x; \ + (dest).y=(src1).y/(src2).y; (dest).z=(src1).z/(src2).z +#define vdivc(dest,src) (dest).x/=(src); (dest).y/=(src); (dest).z/=(src) + +/** */ +#define vset(dest,src) (dest).x=(src).x; (dest).y=(src).y; (dest).z=(src).z +/** */ +#define vsetc(dest,src) (dest).x=(src); (dest).y=(src); (dest).z=(src) +/** */ +#define vsetn(dest,src) (dest).x= -(src).x; (dest).y= -(src).y; (dest).z= -(src).z + +/** */ +#define vmin(dest,src) (dest).x = min((dest).x,(src).x); \ + (dest).y = min((dest).y,(src).y); (dest).z = min((dest).z,(src).z); +/** */ +#define vmax(dest,src) (dest).x = max((dest).x,(src).x); \ + (dest).y = max((dest).y,(src).y); (dest).z = max((dest).z,(src).z); + +/** */ +#define vdot(src1,src2) ((src1).x*(src2).x+(src1).y*(src2).y+(src1).z*(src2).z) +// cross product +#define v2x(dest,src1,src2) (dest).x = (src1).y * (src2).z - (src1).z * (src2).y;\ + (dest).y = (src1).z * (src2).x - (src1).x * (src2).z;\ + (dest).z = (src1).x * (src2).y - (src1).y * (src2).x; + +#endif diff --git a/sim/src/makehelp.py b/sim/src/makehelp.py new file mode 100755 index 000000000..61ec4f1cf --- /dev/null +++ b/sim/src/makehelp.py @@ -0,0 +1,80 @@ +# Copyright 2006 Nanorex, Inc. See LICENSE file for details. +import sys +import time +import os.path + +if sys.platform == "darwin": + extra_compile_args = [ "-O" ] +else: + extra_compile_args = [ ] + +DISTUTILS_FLAGS = None + +if sys.platform != "win32": + from distutils.core import setup + from distutils.extension import Extension + import Pyrex.Distutils + + class local_build_ext(Pyrex.Distutils.build_ext): + def __init__(self, dist): + Pyrex.Distutils.build_ext.__init__(self, dist) + self.distn = dist + def run(self): + # Pieces of the distutils.command.build_ext.run() method + global DISTUTILS_FLAGS + from distutils.ccompiler import new_compiler + from distutils.sysconfig import customize_compiler + compiler = new_compiler(compiler=None, + verbose=self.verbose, + dry_run=self.dry_run, + force=self.force) + customize_compiler(compiler) + DISTUTILS_FLAGS = (compiler.compiler_so + + self.distn.ext_modules[0].extra_compile_args) + + sys_argv = sys.argv + sys.argv = ["setup.py", "build_ext"] + setup(name = 'Simulator', + ext_modules=[Extension("sim", [ ], + extra_compile_args = extra_compile_args)], + cmdclass = {'build_ext': local_build_ext}) + sys.argv = sys_argv + +def hString(name, s, prefix=""): + import string + retval = "#define " + name + " \\\n\"" + prefix + # replace double-quote with escaped-double-quote + s = string.replace(s, "\"", "\\\"") + # replace line terminations with end-of-last-line plus start-of-next-line + s = string.replace(s, "\n", ("\\n\"\\\n\"") + prefix) + return retval + s + "\\n\"\n" + +#def cString(name, s, prefix=""): +# import string +# retval = "char " + name + "[] = \"\\\n" + prefix +# # replace double-quote with escaped-double-quote +# s = string.replace(s, "\"", "\\\"") +# # replace line terminations with end-of-last-line plus start-of-next-line +# s = string.replace(s, "\n", ("\\n\\\n") + prefix) +# return retval + s + "\\n\";\n" + +###################################### + +print hString("TRACE_PREFIX", + "uname -a: " + sys.argv[3] + "\n", + "# ") + +print hString("TRACE_PREFIX_NON_DISTUTILS", + "CFLAGS: " + sys.argv[1] + "\n" + + "LDFLAGS: " + sys.argv[2] + "\n", + "# ") + +if DISTUTILS_FLAGS != None: + distutils = " ".join(DISTUTILS_FLAGS) +else: + distutils = "None" + +print hString("TRACE_PREFIX_DISTUTILS", + "Python " + sys.version.replace("\n", " ") + "\n" + + distutils + "\n", + "# ") diff --git a/sim/src/merge.parameters.py b/sim/src/merge.parameters.py new file mode 100755 index 000000000..4897cb355 --- /dev/null +++ b/sim/src/merge.parameters.py @@ -0,0 +1,69 @@ +#!/usr/bin/python +# Copyright 2006-2007 Nanorex, Inc. See LICENSE file for details. + +# usage: +# +# merge.parameters.py existingParameterFile newParameterFiles... +# +# creates existingParameterFile.new +# + +import sys +import re + +leadingWhitespacePattern = re.compile(r"^\s*") +trailingWhitespacePattern = re.compile(r"\s*$") +idPattern = re.compile(r"(\$Id\:.*\$)") +commentPattern = re.compile("#") +firstField = re.compile(r"^(\S+)\s+(.*)") +parameterPattern = re.compile(r"^([^=]+)\s*\=\s*(\S+)\s*(.*)") + +existing = sys.argv[1] +allfiles = sys.argv[1:] + +print "existing parameter file: " + existing +newfile = open(existing + ".new", 'w') + +# accumulates canonicalized lines for each unique "bond hybridization" pair +results = {} + +for f in allfiles: + print "processing " + f + lines = open(f).readlines(); + for l in lines: + # remove leading and trailing whitespace + l = leadingWhitespacePattern.sub('', l) + l = trailingWhitespacePattern.sub('', l) + + # find RCSID + if f == existing and idPattern.search(l): + newfile.write("#\n" + l + "\n#\n\n") + continue + + # ignore comments and blank lines + if commentPattern.match(l): continue + if len(l) == 0: continue + + m = firstField.match(l) + if m: + bond = m.group(1) + rest = m.group(2) + canonical = bond + " " + hybrid = "sp3" + m = parameterPattern.match(rest) + while m: + key = m.group(1) + value = m.group(2) + rest = m.group(3) + if key == "CenterHybridization": + hybrid = value + canonical += key + "=" + value + " " + m = parameterPattern.match(rest) + sortfield = bond + " " + hybrid + results[sortfield] = canonical + +bondkeys = results.keys() +bondkeys.sort() +for key in bondkeys: + newfile.write(results[key] + "\n") + diff --git a/sim/src/mergemmpxyz.py b/sim/src/mergemmpxyz.py new file mode 100755 index 000000000..de7552358 --- /dev/null +++ b/sim/src/mergemmpxyz.py @@ -0,0 +1,50 @@ +#!/usr/bin/python +# Copyright 2006 Nanorex, Inc. See LICENSE file for details. + +# usage: +# +# mergemmpxyz.py file.mmp file.xyz > merged.mmp +# + +import sys +import re + +if len(sys.argv) != 3: + print >>sys.stderr, "usage: mergemmpxyz.py file.mmp file.xyz > merged.mmp" + sys.exit(1) + +atomLinePattern = re.compile(r"^(atom.*\(.*\).*\().*(\).*)$") +xyzLinePattern = re.compile(r"^\S+\s+([-.0-9]+)\s+([-.0-9]+)\s+([-.0-9]+)\s*$") + +mmpInputFileName = sys.argv[1] +xyzInputFileName = sys.argv[2] + +mmpInputFile = file(mmpInputFileName, "r") +xyzInputFile = file(xyzInputFileName, "r") +# skip the first two lines of xyz file +xyzInput = xyzInputFile.readline() # number of atoms +xyzInput = xyzInputFile.readline() # RMS=0.12345 + +mmpInput = mmpInputFile.readline() +while mmpInput: + mmpInput = mmpInput[:-1] # strip trailing newline + m = atomLinePattern.match(mmpInput) + if m: + xyzInput = xyzInputFile.readline() + if xyzInput: + m2 = xyzLinePattern.match(xyzInput) + if m2: + x = int(float(m2.group(1)) * 1000.0) + y = int(float(m2.group(2)) * 1000.0) + z = int(float(m2.group(3)) * 1000.0) + mmpInput = "%s%d, %d, %d%s" % (m.group(1), x, y, z, m.group(2)) + else: + print >>stderr, "xyz format error: " + xyzInput, + sys.exit(1) + else: + print >>stderr, "not enough lines in xyz file" + sys.exit(1) + print mmpInput + mmpInput = mmpInputFile.readline() +mmpInputFile.close() +xyzInputFile.close() diff --git a/sim/src/minimize.c b/sim/src/minimize.c new file mode 100755 index 000000000..f355a154d --- /dev/null +++ b/sim/src/minimize.c @@ -0,0 +1,934 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#include <stdio.h> +#include <math.h> +#include <stdlib.h> +#include <stdarg.h> +#include <string.h> + +#include "simulator.h" + +static char const rcsid[] = "$Id$"; + +// Some of the routines in this file are based on routines found in +// "Numerical Recipes in C, Second Edition", by William H. Press, Saul +// A. Teukolsky, William T. Vetterling, and Brian P. Flannery, +// Cambridge University Press, ISBN 0 521 43108 5. The routines +// mnbrak(), brent(), linmin(), and frprmn() from Chapter 10 were +// heavily adapted for use here. Adaptations included: the +// combination of coordinate, parametric, and gradient information +// into a single structure, addition of a reference count garbage +// collector for those structures, folding of linear parameterization +// from gradients into linear minimization and bracketing, and program +// commentary. Many of the algorithms and variable names are similar +// or identical, so the text can be used as a reference for +// understanding these routines. + +// Notes on the reference count garbage collector: +// +// Structures returned from routines are generally considered to have +// a reference to them already, so the return value from a function +// should be assigned directly instead of using SetConfiguration(). +// The variable being assigned to in this situation should be NULL +// before the function call. Set it to NULL using SetConfiguration() +// if necessary. +// +// Variables should be created with NULL values in them. Be sure to +// set them back to NULL before returning. Other than as above, +// assignments should be done with SetConfiguration() to track the +// reference counts properly. +// +// Enter() and Leave() allow you to declare the number of items that +// should be allocated by the routine. A message will be printed to +// stderr if the actual count doesn't match. These checks are minimal +// enough compared to a full function or gradient evaluation that they +// can be left in. +// +// Total allocation counts can also be used to insure that all memory +// is being freed properly. See the test routine at the bottom. +// +// To track a single item and watch it's reference count changing, set +// PROBE to the object when it is first allocated. + +#define GOLDEN_RATIO 1.61803399 +#define DONT_DIVIDE_BY_ZERO 1e-10 +#define PARABOLIC_BRACKET_LIMIT 10.0 +#define TOLERANCE_AT_ZERO 1e-10 +#define LINEAR_ITERATION_LIMIT 100 +#define EPSILON 1e-10 + +static struct configuration *PROBE = NULL; + +void +initializeFunctionDefinition(struct functionDefinition *fd, + void (*func)(struct configuration *p), + int dimension, + int messageBufferLength) +{ + NULLPTR(func); + fd->func = func; + fd->dfunc = NULL; + fd->freeExtra = NULL; + fd->termination = NULL; + fd->constraints = NULL; + fd->tolerance = 1e-8; + fd->algorithm = PolakRibiereConjugateGradient; + fd->linear_algorithm = LinearMinimize; + fd->gradient_delta = 1e-8; + fd->dimension = dimension; + fd->initial_parameter_guess = 1.0; + fd->parameter_limit = MAXDOUBLE; + fd->functionEvaluationCount = 0; + fd->gradientEvaluationCount = 0; + if (messageBufferLength > 0) { + fd->message = (char *)allocate(messageBufferLength); + fd->message[0] = '\0'; + fd->messageBufferLength = messageBufferLength; + } else { + fd->message = ""; + fd->messageBufferLength = 0; + } + fd->allocationCount = 0; + fd->freeCount = 0; + fd->maxAllocation = 0; +} + +// Append a message to then end of the message buffer. The buffer is +// fixed length, and we just stop appending when it's full. +static void +message(struct functionDefinition *fd, const char *format, ...) +{ + va_list args; + char subbuf[200]; + char *message = fd->message; + int messageBufferLength = fd->messageBufferLength; + int len; + + if (message == NULL || messageBufferLength == 0) { + return; + } + len = strlen(message); + message += len; + messageBufferLength -= len; + if (messageBufferLength <= 1) { + return; + } + *message++ = ' '; + *message = '\0'; + + va_start(args, format); + len = vsprintf(subbuf, format, args); + va_end(args); + + if (messageBufferLength < len) + len = messageBufferLength; + strncpy(message, subbuf, len); + message[len] = '\0'; +} + +struct configuration * +makeConfiguration(struct functionDefinition *fd) +{ + struct configuration *ret; + + ret = (struct configuration *)allocate(sizeof(struct configuration)); + ret->functionValue = 0.0; + ret->coordinate = (double *)allocate(sizeof(double) * fd->dimension); + ret->gradient = NULL; + ret->parameter = 0.0; + ret->functionDefinition = fd; + ret->extra = NULL; + ret->functionValueValid = 0; + ret->referenceCount = 1; + fd->allocationCount++; + if (fd->allocationCount - fd->freeCount > fd->maxAllocation) { + fd->maxAllocation = fd->allocationCount - fd->freeCount; + } + return ret; +} + +void +freeConfiguration(struct configuration *conf) +{ + conf->functionDefinition->freeCount++; + if (conf == PROBE) { + fprintf(stderr, "freeing PROBE\n"); + return; + } + if (conf->extra != NULL && conf->functionDefinition->freeExtra != NULL) { + (*conf->functionDefinition->freeExtra)(conf); + } + if (conf->coordinate != NULL) { + free(conf->coordinate); + } + if (conf->gradient != NULL) { + free(conf->gradient); + } + free(conf); +} + +void +SetConfiguration(struct configuration **dst, struct configuration *src) +{ + if (*dst == src) { + return; + } + if (*dst != NULL) { + if (*dst == PROBE) { + fprintf(stderr, "decrementing PROBE from %d\n", (*dst)->referenceCount); + } + if (--((*dst)->referenceCount) < 1) { + freeConfiguration(*dst); + } + } + *dst = src; + if (*dst != NULL) { + if (*dst == PROBE) { + fprintf(stderr, "incrementing PROBE from %d\n", (*dst)->referenceCount); + } + (*dst)->referenceCount++; + } +} + +#if 0 +#define CheckRef(p, rc) CheckReferenceCount(p, rc, __LINE__, # p) +static void +CheckReferenceCount(struct configuration *p, int rc, int line, char *name) +{ + if (p->referenceCount != rc) { + fprintf(stderr, "refcount of %s (%d) != %d at line %d\n", name, p->referenceCount, rc, line); + } +} +#endif + +#define Enter(config) int _used = config->functionDefinition->allocationCount - config->functionDefinition->freeCount +#define Leave(name, config, count) LeaveRoutine(# name, config, count, _used) +static void +LeaveRoutine(char *name, struct configuration *config, int count, int used) +{ + struct functionDefinition *fd = config->functionDefinition; + int usedNow = fd->allocationCount - fd->freeCount; + + if (usedNow - used != count) { + fprintf(stderr, "%s allocated %d instead of %d\n", name, usedNow - used, count); + } +} + + + +double +evaluate(struct configuration *p) +{ + struct functionDefinition *fd; + + NULLPTRR(p, 0.0); + fd = p->functionDefinition; + if (p->functionValueValid == 0) { + NULLPTRR(fd->func, 0.0); + (*fd->func)(p); + CHECKNANR(p->functionValue, 0.0); + p->functionValueValid = 1; + fd->functionEvaluationCount++; + } + return p->functionValue; +} + +void +evaluateGradientFromPotential(struct configuration *p) +{ + struct functionDefinition *fd; + struct configuration *pPlusDelta = NULL; + struct configuration *pMinusDelta = NULL; + int i; + int j; + + NULLPTR(p); + fd = p->functionDefinition; + NULLPTR(fd); + if (fd->gradient_delta == 0.0) { + fd->gradient_delta = 1e-8; + } + for (i=0; i<fd->dimension; i++) { + pPlusDelta = makeConfiguration(fd); + for (j=0; j<fd->dimension; j++) { + pPlusDelta->coordinate[j] = p->coordinate[j]; + } + pPlusDelta->coordinate[i] += fd->gradient_delta / 2.0; + + pMinusDelta = makeConfiguration(fd); + for (j=0; j<fd->dimension; j++) { + pMinusDelta->coordinate[j] = p->coordinate[j]; + } + pMinusDelta->coordinate[i] -= fd->gradient_delta / 2.0; + + p->gradient[i] = (evaluate(pMinusDelta) - evaluate(pPlusDelta)) / fd->gradient_delta; + BAIL(); + SetConfiguration(&pPlusDelta, NULL); + SetConfiguration(&pMinusDelta, NULL); + } +} + +void +evaluateGradient(struct configuration *p) +{ + struct functionDefinition *fd; + int i; + double gradientCoordinate; + + NULLPTR(p); + fd = p->functionDefinition; + NULLPTR(fd); + if (p->gradient == NULL) { + p->gradient = (double *)allocate(sizeof(double) * fd->dimension); + if (fd->dfunc == NULL) { + evaluateGradientFromPotential(p); BAIL(); + } else { + (*fd->dfunc)(p); BAIL(); + } + fd->gradientEvaluationCount++; + p->parameter = 0.0; + p->maximumCoordinateInGradient = 0.0; + for (i=fd->dimension-1; i>=0; i--) { + CHECKNAN(p->gradient[i]); + gradientCoordinate = fabs(p->gradient[i]); + if (p->maximumCoordinateInGradient < gradientCoordinate) { + p->maximumCoordinateInGradient = gradientCoordinate; + } + } + } +} + +// Return a new configuration which is p+q*gradient(p) +struct configuration * +gradientOffset(struct configuration *p, double q) +{ + struct functionDefinition *fd = p->functionDefinition; + struct configuration *r; + int i; + + r = makeConfiguration(fd); + evaluateGradient(p); BAILR(p); + for (i=fd->dimension-1; i>=0; i--) { + r->coordinate[i] = p->coordinate[i] + q * p->gradient[i]; + } + r->parameter = q; + if (fd->constraints != NULL) { + (*fd->constraints)(r); + } + return r; +} + +// return value, unless it is outside the range [-max..max], in which +// case return +/- max +static double +signClamp(double value, double max) +{ + return (value > max) ? max : ((value < -max) ? -max : value); +} + +// Given a configuration p, find three configurations (a, b, c) such +// that f(b) < f(a) and f(b) < f(c), where a, b, and c are colinear in +// configuration space, with b between a and c. This assures that a +// local minimum exists between a and c. +// +// If the function is monotonic to parameterLimit, we could exit with +// b and c having the same parameter value (but being distinct +// configuration objects). It looks like this won't confuse brent(), +// but it would be nice to be sure... +static void +bracketMinimum(struct configuration **ap, + struct configuration **bp, + struct configuration **cp, + struct configuration *p) +{ + struct configuration *a = NULL; + struct configuration *b = NULL; + struct configuration *c = NULL; + struct configuration *u = NULL; + double nx; + double r; + double q; + double denom; + double ulimit; + double parameterLimit; + + Enter(p); + SetConfiguration(&a, p); + a->parameter = 0.0; + evaluateGradient(p); // this lets (*dfunc)() set initial_parameter_guess + BAIL(); + parameterLimit = fabs(p->functionDefinition->parameter_limit); + // when we step GOLDEN_RATIO beyond b, we don't want to exceed parameterLimit. + b = gradientOffset(p, + signClamp(p->functionDefinition->initial_parameter_guess, + parameterLimit / (GOLDEN_RATIO + 1.0))); + BAIL(); + if (evaluate(b) > evaluate(a)) { + // swap a and b, so b is downhill of a + u = a; + a = b; + b = u; + u = NULL; + } + nx = b->parameter + GOLDEN_RATIO * (b->parameter - a->parameter); + c = gradientOffset(p, nx); BAIL(); + while (evaluate(b) > evaluate(c) && !Interrupted && !EXCEPTION) { + + // u is the extreme point for a parabola passing through a, b, and c: + r = (b->parameter - a->parameter) * (evaluate(b) - evaluate(c)); + q = (b->parameter - c->parameter) * (evaluate(b) - evaluate(a)); + denom = q - r; + if (denom < 0.0) { + if (denom > -DONT_DIVIDE_BY_ZERO) { + denom = -DONT_DIVIDE_BY_ZERO; + } + } else { + if (denom < DONT_DIVIDE_BY_ZERO) { + denom = DONT_DIVIDE_BY_ZERO; + } + } + nx = b->parameter - + ((b->parameter - c->parameter) * q - (b->parameter - a->parameter) * r) / + (2.0 * denom); + nx = signClamp(nx, parameterLimit); + SetConfiguration(&u, NULL); + u = gradientOffset(p, nx); BAIL(); + + // a, b, and c are in order, ulimit is far past c + ulimit = b->parameter + PARABOLIC_BRACKET_LIMIT * (c->parameter - b->parameter); + ulimit = signClamp(ulimit, parameterLimit); + + if ((b->parameter-u->parameter) * (u->parameter-c->parameter) > 0.0) { + // u is between b and c, also f(c) < f(b) and f(b) < f(a) + if (evaluate(u) < evaluate(c)) { // success: (b, u, c) brackets + *ap = b; + *bp = u; + *cp = c; + SetConfiguration(&a, NULL); + Leave(bracketMinimum, p, (p == *ap || p == *bp || p == *cp) ? 2 : 3); + return; + } + if (evaluate(u) > evaluate(b)) { // success: (a, b, u) brackets + *ap = a; + *bp = b; + *cp = u; + SetConfiguration(&c, NULL); + Leave(bracketMinimum, p, (p == *ap || p == *bp || p == *cp) ? 2 : 3); + return; + } + // b, u, c monotonically decrease, u is useless. + // try default golden ration extension for u: + nx = c->parameter + GOLDEN_RATIO * (c->parameter - b->parameter); + nx = signClamp(nx, parameterLimit); + SetConfiguration(&u, NULL); + u = gradientOffset(p, nx); + } else if ((c->parameter-u->parameter) * (u->parameter-ulimit) > 0.0) { + // u is between c and ulimit + if (evaluate(u) < evaluate(c)) { + // we're still going down, keep going + SetConfiguration(&b, c); + SetConfiguration(&c, u); + SetConfiguration(&u, NULL); + nx = c->parameter + GOLDEN_RATIO * (c->parameter - b->parameter); + nx = signClamp(nx, parameterLimit); + u = gradientOffset(p, nx); + } + } else if ((u->parameter-ulimit) * (ulimit-c->parameter) >= 0.0) { + // u is past ulimit, reign it in + nx = ulimit; + SetConfiguration(&u, NULL); + u = gradientOffset(p, nx); + // XXX we did an extra gradientOffset of the old ux that we're + // discarding. would be nice to avoid that. + } else { + // u must be before b + // since (a b c) are monotonic decreasing, u should be a + // maximum, so we reject it. + nx = c->parameter + GOLDEN_RATIO * (c->parameter - b->parameter); + nx = signClamp(nx, parameterLimit); + SetConfiguration(&u, NULL); + u = gradientOffset(p, nx); + } + SetConfiguration(&a, b); + SetConfiguration(&b, c); + SetConfiguration(&c, u); + SetConfiguration(&u, NULL); + } + if (Interrupted) { + SetConfiguration(&a, NULL); + evaluateGradient(p); + BAIL(); + parameterLimit = fabs(p->functionDefinition->parameter_limit); + *bp = gradientOffset(p, + signClamp(p->functionDefinition->initial_parameter_guess, + parameterLimit / (GOLDEN_RATIO + 1.0))); + SetConfiguration(&c, NULL); + SetConfiguration(&u, NULL); + Leave(bracketMinimum, p, 0); + return; + } + if (EXCEPTION) { + // We haven't succeeded in bracketing, so we leave the results + // as all NULL's. Caller needs to check for this. + SetConfiguration(&a, NULL); + SetConfiguration(&b, NULL); + SetConfiguration(&c, NULL); + SetConfiguration(&u, NULL); + Leave(bracketMinimum, p, 0); + return; + } + + // success: (a, b, c) brackets + *ap = a; + *bp = b; + *cp = c; + SetConfiguration(&u, NULL); + Leave(bracketMinimum, p, (p == *ap || p == *bp || p == *cp) ? 2 : 3); +} + +// Brent's method of inverse parabolic interpolation. +// parent is only used to make new configurations along it's gradient line. +// (a, b, c) bracket a minimum. Returns a new configuration within +// tolerance of the actual minimum within the bracketing interval. +static struct configuration * +brent(struct configuration *parent, + struct configuration *initial_a, + struct configuration *initial_b, + struct configuration *initial_c, + double tolerance) +{ + struct configuration *a = NULL; // left side of bracketing interval + struct configuration *b = NULL; // right side of bracketing interval + struct configuration *u = NULL; // most recent function evaluation + struct configuration *v = NULL; // previous value of w + struct configuration *w = NULL; // second least function value + struct configuration *x = NULL; // least function value found so far + double d; // how far to move x + double e; // previous value of d + double r; + double q; + double p; + double ux; // parameter value used to construct new point u + double etemp; + double xm; // midpoint between a and b + double tol; // tolerance scaled by x position + double maxp; // maximum coordinate in gradient, multiply parameters by this for tolerance testing + int iteration; + + Enter(parent); + SetConfiguration(&x, initial_b); + SetConfiguration(&w, initial_b); + SetConfiguration(&v, initial_b); + // a and b may be swapped, put them in the right order + if (initial_a->parameter > initial_c->parameter) { + SetConfiguration(&a, initial_c); + SetConfiguration(&b, initial_a); + } else { + SetConfiguration(&a, initial_a); + SetConfiguration(&b, initial_c); + } + + maxp = parent->maximumCoordinateInGradient; + + // At this point, a is the left side of the interval, b is the right + // side. v, w, and x are all our middle point between the ends. + + d = 0.0; + e = 0.0; + Leave(brent_beforeLoop, parent, 0); + for (iteration=1; iteration<=LINEAR_ITERATION_LIMIT && !Interrupted && !EXCEPTION; iteration++) { + xm = 0.5 * (a->parameter + b->parameter); // midpoint of bracketing interval + tol = tolerance * fabs(x->parameter) + TOLERANCE_AT_ZERO ; + DPRINT3(D_MINIMIZE, "brent: x: %e xm: %e |x-xm|: %e\n", + x->parameter, xm, fabs(x->parameter - xm)); + DPRINT3(D_MINIMIZE, "brent: tol: %e (b-a)/2: %e 2*tol-(b-a)/2: %e\n", + tol, 0.5 * (b->parameter - a->parameter), + 2.0 * tol - 0.5 * (b->parameter - a->parameter)); + // if (b - a > 4 * tol) then right hand side of following is < 0 + if (fabs(x->parameter - xm) <= (tol * 2.0 - 0.5 * (b->parameter - a->parameter))) { + // width of interval (a, b) is less than 4 * tol + // x is close to the center of the interval + // we're done! + SetConfiguration(&a, NULL); + SetConfiguration(&b, NULL); + SetConfiguration(&u, NULL); + SetConfiguration(&v, NULL); + SetConfiguration(&w, NULL); + Leave(brent, parent, (x == initial_b) ? 0 : 1); + DPRINT3(D_MINIMIZE, "leaving brent, parameter %e * %e == %e\n", + x->parameter, maxp, x->parameter * maxp); + return x; + } + if (fabs(e) > tol) { + // v, w, and x are our best points so far, compute the minimum + // of a parabola passing through them. + r = (x->parameter - w->parameter) * (evaluate(x) - evaluate(v)) ; + q = (x->parameter - v->parameter) * (evaluate(x) - evaluate(w)) ; + p = (x->parameter - v->parameter) * q - (x->parameter - w->parameter) * r ; + q = 2.0 * (q - r) ; + if (q > 0.0) { + p = -p ; + } else { + q = -q; + } + // parabolic minimum is at: x->parameter + p / q + // q >= 0 + + etemp = e; + e = d; + if (fabs(p) >= fabs(0.5 * q * etemp) || // step >= prev_step / 2 + p <= q * (a->parameter - x->parameter) || // step goes to the left of a + p >= q * (b->parameter - x->parameter)) // step goes to the right of b + { + // we don't like the parabolic step, try golden mean instead + e = (x->parameter >= xm) ? + (a->parameter - x->parameter) : + (b->parameter - x->parameter) ; + d = (2.0 - GOLDEN_RATIO) * e ; + } else { + d = p / q ; + ux = x->parameter + d ; // this is the pure parabolic minimum + if (ux - a->parameter < tol * 2.0 || b->parameter - ux < tol * 2.0) { + // too close to left or right bound + // step in just a bit towards the middle instead + d = (xm - x->parameter < 0) ? -tol : tol ; + } + } + } else { + // not enough points for parabolic interpolation + // use golden mean instead + e = (x->parameter >= xm) ? + (a->parameter - x->parameter) : + (b->parameter - x->parameter) ; + d = (2.0 - GOLDEN_RATIO) * e ; + } + // u = x + d, but is at least tol different from x + ux = (fabs(d) >= tol) ? + (x->parameter + d) : + (x->parameter + ((d<0) ? -tol : tol)) ; + SetConfiguration(&u, NULL); + u = gradientOffset(parent, ux); + if (evaluate(u) <= evaluate(x)) { + // u is better than x (the best up until now) + // pull the opposite side bound in to x + if (u->parameter >= x->parameter) { + SetConfiguration(&a, x); + } else { + SetConfiguration(&b, x); + } + // ratchet all vars down one step so x is new best + SetConfiguration(&v, w); + SetConfiguration(&w, x); + SetConfiguration(&x, u); + SetConfiguration(&u, NULL); + } else { + // u doesn't beat the current x + // since u is closer to x than the bound + // pull the appropriate bound in to u + if (u->parameter < x->parameter) { + SetConfiguration(&a, u); + } else { + SetConfiguration(&b, u); + } + if (evaluate(u) <= evaluate(w) || u->parameter == w->parameter) { + // u is better than w (the second best until now) + // ratchet v and w down, but leave x alone (still the best) + SetConfiguration(&v, w); + SetConfiguration(&w, u); + } else if (evaluate(u) <= evaluate(v) || + v->parameter == x->parameter || + v->parameter == w->parameter) + { + // u is third best, so set v to record that + SetConfiguration(&v, u); + } + } + } + // For either an interrupt or an exception, x should always be the + // best value found so far, so we can safely return it. + if (!Interrupted && !EXCEPTION) { + message(parent->functionDefinition, "reached iteration limit in linearMinimize\n"); + } + // too many iterations without getting close enough + SetConfiguration(&a, NULL); + SetConfiguration(&b, NULL); + SetConfiguration(&u, NULL); + SetConfiguration(&v, NULL); + SetConfiguration(&w, NULL); + if (x == initial_b) { + Leave(brent, parent, 0); + } else { + Leave(brent, parent, 1); + } + return x; +} + + +// Perform a one dimensional minimization starting at configuration p. +// The gradient of the function at p is calculated, and the +// minimization is along the line of that gradient. The resulting +// minimum configuration point is returned. +static struct configuration * +linearMinimize(struct configuration *p, + double tolerance, + enum linearAlgorithm algorithm) +{ + struct configuration *a = NULL; + struct configuration *b = NULL; + struct configuration *c = NULL; + struct configuration *min = NULL; + + Enter(p); + bracketMinimum(&a, &b, &c, p); + BAILR(NULL); + if (Interrupted) return b; + NULLPTRR(a, p); + NULLPTRR(b, p); + NULLPTRR(c, p); + if (DEBUG(D_MINIMIZE)) { + message(p->functionDefinition, "bmin: a %e[%e] b %e[%e] c %e[%e]", + evaluate(a), a->parameter, + evaluate(b), b->parameter, + evaluate(c), c->parameter); + } + if (algorithm == LinearBracket && b != p) { + SetConfiguration(&min, b); + } else { + min = brent(p, a, b, c, tolerance); + } + //printf("minimum at parameter value: %e, function value: %e\n", min->parameter, evaluate(min)); + SetConfiguration(&a, NULL); + SetConfiguration(&b, NULL); + SetConfiguration(&c, NULL); + if (DEBUG(D_MINIMIZE) && min == p) { + message(p->functionDefinition, "linearMinimize returning argument"); + } + Leave(linearMinimize, p, (min == p) ? 0 : 1); + return min; +} + +int +defaultTermination(struct functionDefinition *fd, + struct configuration *previous, + struct configuration *current) +{ + double fp = evaluate(previous); + double fq = evaluate(current); + double tolerance = fd->tolerance; + + DPRINT2(D_MINIMIZE, "delta %e, tol*avgVal %e\n", + fabs(fq-fp), tolerance * (fabs(fq)+fabs(fp)+EPSILON)/2.0); + if (2.0 * fabs(fq-fp) <= tolerance * (fabs(fq)+fabs(fp)+EPSILON)) { + if (DEBUG(D_MINIMIZE)) { + message(fd, + "fp: %e fq: %e || delta %e <= tolerance %e * averageValue %e", + fp, fq, + fabs(fq-fp), tolerance, (fabs(fq)+fabs(fp)+EPSILON)/2.0); + } + return 1; + } + return 0; +} + + +// Starting with an initial configuration p, find the configuration +// which minimizes the value of the function (as defined by fd). The +// number of iterations used is returned in iteration. +static struct configuration * +minimize_one_tolerance(struct configuration *initial_p, + int *iteration, + int iterationLimit) +{ + struct functionDefinition *fd; + double fp; + double dgg; + double gg; + double gamma; + struct configuration *p = NULL; + struct configuration *q = NULL; + int i; + + Enter(initial_p); + NULLPTRR(initial_p, NULL); + NULLPTRR(iteration, initial_p); + fd = initial_p->functionDefinition; + NULLPTRR(fd, initial_p); + if (fd->termination == NULL) { + fd->termination = defaultTermination; + } + SetConfiguration(&p, initial_p); + fp = evaluate(p); + BAILR(initial_p); + for ((*iteration)=0; (*iteration) < iterationLimit && !Interrupted; (*iteration)++) { + SetConfiguration(&q, NULL); + q = linearMinimize(p, fd->tolerance, fd->linear_algorithm); + // If linearMinimize made some progress, but threw an + // exception, then we want the best result, which is q. If it + // threw an exception and returned NULL, the best we can do + // at this point is p. Beyond this point, we can bail with q. + BAILR(q == NULL ? p : q); + if ((fd->termination)(fd, p, q)) { + SetConfiguration(&p, NULL); + Leave(minimize_one_tolerance, initial_p, (q == initial_p) ? 0 :1); + return q; + } + evaluateGradient(p); // should have been evaluated by linearMinimize already + BAILR(q); + evaluateGradient(q); + BAILR(q); + if (fd->algorithm != SteepestDescent) { + dgg = gg = 0.0; + if (fd->algorithm == PolakRibiereConjugateGradient) { + for (i=fd->dimension-1; i>=0; i--) { + gg += p->gradient[i] * p->gradient[i]; + // following line implements Polak-Ribiere + dgg += (q->gradient[i] + p->gradient[i]) * q->gradient[i] ; + } + } else { // fd->algorithm == FletcherReevesConjugateGradient + // NOTE: Polak-Ribiere may handle non-quadratic minima better + // than Fletcher-Reeves + for (i=fd->dimension-1; i>=0; i--) { + gg += p->gradient[i] * p->gradient[i]; + // following line implements Fletcher-Reeves + dgg += q->gradient[i] * q->gradient[i] ; + } + } + if (gg == 0.0) { + // rather than divide by zero below, note that the gradient + // is zero, so we must be done. + DPRINT(D_MINIMIZE, "gg==0 in minimize_one_tolerance\n"); + SetConfiguration(&p, NULL); + Leave(minimize_one_tolerance, initial_p, 1); + return q; + } + gamma = dgg / gg; + DPRINT3(D_MINIMIZE, "gamma[%e] = %e / %e\n", gamma, dgg, gg); + for (i=fd->dimension-1; i>=0; i--) { + q->gradient[i] += gamma * p->gradient[i]; + } + } + fp = evaluate(q); // previous value of function + BAILR(q); + SetConfiguration(&p, q); + } + if (Interrupted) { + message(fd, "minimization interrupted"); + } else { + message(fd, "reached iteration limit"); + } + SetConfiguration(&p, NULL); + Leave(minimize_one_tolerance, initial_p, 1); + return q; +} + +// Starting with an initial configuration p, find the configuration +// which minimizes the value of the function (as defined by fd). The +// number of iterations used is returned in iteration. +struct configuration * +minimize(struct configuration *initial_p, + int *iteration, + int iterationLimit) +{ + struct functionDefinition *fd; + struct configuration *final = NULL; + + Enter(initial_p); + NULLPTRR(initial_p, NULL); + fd = initial_p->functionDefinition; + NULLPTRR(fd, initial_p); + NULLPTRR(iteration, initial_p); + final = minimize_one_tolerance(initial_p, + iteration, + iterationLimit); + Leave(minimize, initial_p, (final == initial_p) ? 0 :1); + // final probably shouldn't ever be NULL, but it's conceivable in + // some exception processing cases. If that happens, then we + // haven't made any progress, so return initial_p. + return final == NULL ? initial_p : final; +} + +#ifdef TEST + +static double +test(double x, double y) +{ + double rsquared = x*x + y*y; + //return cos(sqrt(rsquared) + atan2(x, y) + 3.1415926) * exp(-rsquared/700); + double r = sqrt(rsquared); + double theta = atan2(x, y); + double phi = r + theta + 3.1415926; + double expterm = exp(-rsquared/700); + double costerm = cos(phi); + double result = costerm * expterm; + return result; +} + +static void +testFunction(struct configuration *p) +{ + p->functionValue = test(p->coordinate[0], p->coordinate[1]); + //printf("%f %f\n", p->coordinate[0], p->coordinate[1]); +} + +#define DELTA 1e-5 +static void +testGradient(struct configuration *p) +{ + double x = p->coordinate[0]; + double y = p->coordinate[1]; + + printf("%f %f\n", p->coordinate[0], p->coordinate[1]); + p->gradient[0] = (test(x, y) - test(x+DELTA, y)) / DELTA; + p->gradient[1] = (test(x, y) - test(x, y+DELTA)) / DELTA; +} + +static void +testMinimize() +{ + struct functionDefinition fd; + struct configuration *initial = NULL; + struct configuration *final = NULL; + int iteration; + + initializeFunctionDefinition(&fd, testFunction, 2, 0); + fd.func = testFunction; + + fd.coarse_tolerance = 1e-5; + fd.fine_tolerance = 1e-8; + + initial = makeConfiguration(&fd); + initial->coordinate[0] = 6.0; + initial->coordinate[1] = -5.0; + + final = minimize(initial, &iteration, 400); + fprintf(stderr, "final minimum at (%f %f): %f\n", + final->coordinate[0], + final->coordinate[1], + evaluate(final)); + SetConfiguration(&initial, NULL); + SetConfiguration(&final, NULL); + fprintf(stderr, "after %d iterations, %d function evals, %d gradient evals\n", + iteration, + fd.functionEvaluationCount, + fd.gradientEvaluationCount); + fprintf(stderr, "allocation: %d, free: %d, remaining: %d, maximum: %d\n", + fd->allocationCount, + fd->freeCount, + fd->allocationCount - fd->freeCount, + fd->maxAllocation); +} + +int +main(int argc, char **argv) +{ + testMinimize(); + exit(0); +} + +#endif + +/* + * Local Variables: + * c-basic-offset: 4 + * tab-width: 8 + * End: + */ diff --git a/sim/src/minimize.h b/sim/src/minimize.h new file mode 100755 index 000000000..50bbedc4b --- /dev/null +++ b/sim/src/minimize.h @@ -0,0 +1,180 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#ifndef MINIMIZE_H_INCLUDED +#define MINIMIZE_H_INCLUDED + +#define RCSID_MINIMIZE_H "$Id$" + +enum minimizationAlgorithm { + SteepestDescent, + PolakRibiereConjugateGradient, + FletcherReevesConjugateGradient +}; + +enum linearAlgorithm { + LinearBracket, + LinearMinimize +}; + +struct configuration +{ + // Value of the function at this configuration, the "potential + // energy". Only valid if functionValueValid is non-zero. Call + // evaluate() to generate and return this value. + double functionValue; + + // The position of this configuration in N-dimensional space. These + // are the values that we're changing as we search for the minimum + // functionValue. Always valid. + double *coordinate; + + // N-dimensional vector pointing downhill from this configuration. + // May be NULL if the gradient hasn't been evaluated here. + double *gradient; + + // Largest absolute value across all of the coordinates in the above + // gradient. Used to scale parameter values in tolerance + // calculations, so our tolerances are based on the largest + // coordinate motion along the gradient, not on the parameter + // variation. + double maximumCoordinateInGradient; + + // If this configuration was generated by a linear extrapolation + // along the gradient of another configuration, then parameter is + // the constant that the gradient vector was multiplied by to get to + // this configuration. Zero for the starting configuration in a + // line (set to zero when the gradient is calculated). + double parameter; + + // What functions/dimensions should be used for this configuration? + struct functionDefinition *functionDefinition; + + // If caller wants to maintain any configuration dependant state + // information, it can be saved here. If this is non-null, the + // freeExtra() function will be called when this configuration is + // freed. Otherwise, this field is not used by the minimizer. + void *extra; + + // Used to avoid evaluating the function more than once for the same + // configuration. + int functionValueValid; + + // A simple reference count garbage collector. + int referenceCount; +}; + +struct functionDefinition +{ + // This is the user function that is called to evaluate the + // potential energy of a configuration. It should take + // p->coordinate as it's arguments, and set p->functionValue to the + // result. + void (*func)(struct configuration *p); + + // This is the user function that is called to evaluate the gradient + // of the potential energy function. It should take p->coordinate + // as it's arguments, and set p->grandient to the result. Note that + // p->gradient is allocated before dfunc is called. If dfunc is + // NULL, the gradient will be calculated from the potential + // function, make sure gradient_delta is set. Don't do this for + // high values of dimension! + void (*dfunc)(struct configuration *p); + + // Called whenever a configuration is freed, if the extra field is + // non-null. Set freeExtra to NULL if extra is never used. + void (*freeExtra)(struct configuration *p); + + // Called from minimize_one_tolerance with the previous and current + // configurations. Return non-zero to terminate this tolerance, + // zero to continue. If set to NULL, continues until the delta * + // tolerance is about the average value of the function. + int (*termination)(struct functionDefinition *fd, + struct configuration *previous, + struct configuration *current); + + // Called from gradientOffset after coordinates are updated to the + // new values. Used by callers to constrain coordinates in caller + // specific ways. + void (*constraints)(struct configuration *p); + + // How close do we need to get to the minimum? Should be no smaller + // than the square root of the machine precision. Can be changed + // during minimization, by the termination function, for example. + double tolerance; + + // Which algorithm do we use for the minimization? Can be changed + // during minimization, by the termination function, for example. + enum minimizationAlgorithm algorithm; + + // Which algorithm do we use for linear minimization? Can be + // changed during minimization, by the termination function, for + // example. + enum linearAlgorithm linear_algorithm; + + // Step size for default calculation of gradient (only used if dfunc + // is NULL). + double gradient_delta; + + // How big are the coordinate and gradient arrays? This is the "N" + // in N-dimensional above. + int dimension; + + // When searching for a minimum while bracketing, what should the + // gradient be initially multiplied by. Try 1.0 as a wild guess. + double initial_parameter_guess; + + // When bracketing the minimum, the parameter value will not be + // allowed outside the range [-parameter_limit..parameter_limit]. + double parameter_limit; + + // How many times have we called (*func)()? + int functionEvaluationCount; + + // How many times have we called (*dfunc)()? + int gradientEvaluationCount; + + // Progress messages from the minimizer are reported here. Allocate + // a buffer and record it's lengh here, or set messageBufferLength + // to zero to disable. + char *message; + int messageBufferLength; + + // The total number of configurations allocated during the + // minimization so far. Increases monotonically. The current + // number of configurations in use is allocationCount - freeCount. + int allocationCount; + + // The total number of calls to free for configurations. + int freeCount; + + // The current high water mark for the number of configurations in + // use. + int maxAllocation; +}; + + +extern void initializeFunctionDefinition(struct functionDefinition *fd, + void (*func)(struct configuration *p), + int dimension, + int messageBufferLength); + +extern struct configuration *makeConfiguration(struct functionDefinition *fd); + +extern void freeConfiguration(struct configuration *conf); + +extern void SetConfiguration(struct configuration **dst, struct configuration *src); + +extern double evaluate(struct configuration *p); + +extern void evaluateGradientFromPotential(struct configuration *p); + +extern void evaluateGradient(struct configuration *p); + +extern struct configuration *gradientOffset(struct configuration *p, double q); + +extern int defaultTermination(struct functionDefinition *fd, + struct configuration *previous, + struct configuration *current); + +extern struct configuration *minimize(struct configuration *p, int *iteration, int iterationLimit); + +#endif diff --git a/sim/src/minstructure.c b/sim/src/minstructure.c new file mode 100755 index 000000000..032afeea0 --- /dev/null +++ b/sim/src/minstructure.c @@ -0,0 +1,465 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. + +#include "simulator.h" + +static char const rcsid[] = "$Id$"; + +#define COARSE_TOLERANCE 1e-8 +#define FINE_TOLERANCE 1e-10 + +static struct part *Part; + +static void +findRMSandMaxForce(struct configuration *p, double *pRMS, double *pMaxForce) +{ + struct xyz f; + int i; + double forceSquared; + double sum_forceSquared = 0.0; + double max_forceSquared = -1.0; + + // wware 060109 python exception handling + NULLPTR(p); + NULLPTR(pRMS); + NULLPTR(pMaxForce); + for (i=0; i<Part->num_atoms; i++) { + if (Part->atoms[i]->isGrounded) { + continue; + } + f = ((struct xyz *)p->gradient)[i]; + forceSquared = vdot(f,f); + sum_forceSquared += forceSquared; + if (forceSquared > max_forceSquared) { + max_forceSquared = forceSquared; + } + } + *pRMS = sqrt(sum_forceSquared / Part->num_atoms); + *pMaxForce = sqrt(max_forceSquared); +} + +static FILE *minimizeCountFile; + +static void +countMinimizeEvaulations(char which) +{ + if (minimizeCountFile == NULL) { + minimizeCountFile = fopen("/tmp/minimizecounts", "a"); + if (minimizeCountFile == NULL) { + perror("/tmp/minimizecounts"); + exit(1); + } + } + fputc(which, minimizeCountFile); + fflush(minimizeCountFile); +} + +// This is the potential function which is being minimized. +static void +minimizeStructurePotential(struct configuration *p) +{ + int i; + struct jig *jig; + + updateVanDerWaals(Part, p, (struct xyz *)p->coordinate); + p->functionValue = calculatePotential(Part, (struct xyz *)p->coordinate); + for (i=0; i<Part->num_jigs; i++) { + jig = Part->jigs[i]; + switch (jig->type) { + case RotaryMotor: + p->functionValue += + jigMinimizePotentialRotaryMotor(Part, jig, + (struct xyz *)p->coordinate, + p->coordinate + jig->coordinateIndex); + break; + case LinearMotor: + p->functionValue += + jigMinimizePotentialLinearMotor(Part, jig, + (struct xyz *)p->coordinate, + p->coordinate + jig->coordinateIndex); + break; + default: + break; + } + } + //writeMinimizeMovieFrame(OutputFile, Part, 0, (struct xyz *)p->coordinate, p->functionValue, p->parameter, + // Iteration++, "potential", p->functionDefinition->message); + if (DEBUG(D_MINIMIZE_POTENTIAL_MOVIE)) { // -D3 + writeSimpleMovieFrame(Part, (struct xyz *)p->coordinate, NULL, "potential %e %e", p->functionValue, p->parameter); + } + if (DEBUG(D_MINIMIZE_PARAMETER_GUESS)) { + countMinimizeEvaulations('p'); + } +} + +static double +clamp(double min, double max, double value) +{ + if (value > max) return max; + if (value < min) return min; + return value; +} + +static double last_rms_force = 0.0; +static double last_max_force = 0.0; +static FILE *parameterGuessFile = NULL; + +// A rotary motor should turn no farther than this during a single +// linear minimization. +#define MAX_RADIANS_PER_STEP 0.4 + +//#define PLOT_LINEAR_MINIMIZATION + +// This is the gradient of the potential function which is being minimized. +static void +minimizeStructureGradient(struct configuration *p) +{ + int i; + double rms_force; + double max_force; + double parameterLimit; + double motorGradient; + double plimit; + struct xyz *forces; + struct jig *jig; + struct functionDefinition *fd = p->functionDefinition; + +#ifdef PLOT_LINEAR_MINIMIZATION + double parameter; + double potential; + struct xyz *position; + struct configuration *newLocation; + int j; + struct stretch *stretch; + struct bond *bond; + double r; + struct xyz rv; + double rSquared; +#endif + + updateVanDerWaals(Part, p, (struct xyz *)p->coordinate); BAIL(); + if (DEBUG(D_GRADIENT_FROM_POTENTIAL) || DEBUG(D_GRADIENT_COMPARISON)) { // -D10 || -D18 + fd->gradient_delta = 1e-12; // pm + evaluateGradientFromPotential(p); BAIL(); + for (i=fd->dimension-1; i>=0; i--) { + p->gradient[i] *= 1e6; // convert uN to pN + } + if (DEBUG(D_MINIMIZE_GRADIENT_MOVIE) && DEBUG(D_GRADIENT_COMPARISON)) { // -D4 + struct xyz offset = { 0.0, 10.0, 0.0 }; + + forces = (struct xyz *)p->gradient; + for (i=0; i<Part->num_atoms; i++) { + writeSimpleForceVectorOffset((struct xyz *)p->coordinate, i, &forces[i], 6, 1.0, offset); // yellow + } + } + } + if (!DEBUG(D_GRADIENT_FROM_POTENTIAL)) { // ! -D10 + calculateGradient(Part, (struct xyz *)p->coordinate, (struct xyz *)p->gradient); + BAIL(); + } + + parameterLimit = MAXDOUBLE; + for (i=0; i<Part->num_jigs; i++) { + jig = Part->jigs[i]; + switch (jig->type) { + case RotaryMotor: + jigMinimizeGradientRotaryMotor(Part, jig, + (struct xyz *)p->coordinate, + (struct xyz *)p->gradient, + p->coordinate + jig->coordinateIndex, + p->gradient + jig->coordinateIndex); + motorGradient = fabs(*(p->gradient + jig->coordinateIndex)); + CHECKNAN(motorGradient); + if (motorGradient < 1e-8) { + motorGradient = 1e-8; + } + plimit = MAX_RADIANS_PER_STEP / motorGradient; + if (plimit < parameterLimit) { + parameterLimit = plimit; + } + break; + case LinearMotor: + jigMinimizeGradientLinearMotor(Part, jig, + (struct xyz *)p->coordinate, + (struct xyz *)p->gradient, + p->coordinate + jig->coordinateIndex, + p->gradient + jig->coordinateIndex); + break; + default: + break; + } + } + fd->parameter_limit = parameterLimit; + + // dynamics wants gradient pointing downhill, we want it uphill + //for (i=0; i<3*Part->num_atoms; i++) { + // p->gradient[i] = -p->gradient[i]; + //} + findRMSandMaxForce(p, &rms_force, &max_force); BAIL(); + + // The initial parameter guess function is empirically determined. + // The regression tests were run with D_MINIMIZE_PARAMETER_GUESS + // enabled (compiled on in simulator.c). Plots of the max_force + // vs minimum parameter value columns were examined with gnuplot. + // A functional form was determined which stayed within the main + // body of the data points. Final determination was based on the + // evaluation counts also output with that debugging flag on. + // Given that max_force is non-negative, the current form doesn't + // need the upper range limit in the clamp. + fd->initial_parameter_guess = clamp(1e-20, 1e3, + 0.7 / (max_force + 1000.0) + + 0.1 / (max_force + 20.0)); + +#ifdef PLOT_LINEAR_MINIMIZATION + for (parameter = -fd->initial_parameter_guess; + parameter < fd->initial_parameter_guess; + parameter += fd->initial_parameter_guess / 500) { + newLocation = gradientOffset(p, parameter); + potential = evaluate(newLocation); + position = (struct xyz *)newLocation->coordinate; + printf("%e %e ", parameter, potential); + for (j=0; j<Part->num_stretches; j++) { + stretch = &Part->stretches[j]; + bond = stretch->b; + vsub2(rv, position[bond->a2->index], position[bond->a1->index]); + rSquared = vdot(rv, rv); + r = sqrt(rSquared); + potential = stretchPotential(Part, stretch, stretch->stretchType, r); + printf("%f %f ", r, potential); + } + printf("\n"); + SetConfiguration(&newLocation, NULL); + } + printf("\n\n"); +#endif + + writeMinimizeMovieFrame(OutputFile, Part, 0, (struct xyz *)p->coordinate, rms_force, max_force, Iteration++, 0, + fd->tolerance == COARSE_TOLERANCE ? "gradient" : "gradient fine", fd->message, evaluate(p)); + if (DEBUG(D_MINIMIZE_GRADIENT_MOVIE)) { // -D4 + writeSimpleMovieFrame(Part, (struct xyz *)p->coordinate, (struct xyz *)p->gradient, "gradient %e %e", rms_force, max_force); + } + if (DEBUG(D_MINIMIZE_PARAMETER_GUESS)) { + countMinimizeEvaulations('g'); + if (parameterGuessFile == NULL) { + parameterGuessFile = fopen("/tmp/parameterguesses", "a"); + if (parameterGuessFile == NULL) { + perror("/tmp/parameterguesses"); + exit(1); + } + } else { + fprintf(parameterGuessFile, "%e %e %e\n", last_rms_force, last_max_force, p->parameter); + fflush(parameterGuessFile); + } + last_rms_force = rms_force; + last_max_force = max_force; + } +} + +static int +minimizeStructureTermination(struct functionDefinition *fd, + struct configuration *previous, + struct configuration *current) +{ + double fp; + double fq; + double rms_force; + double max_force; + double tolerance = fd->tolerance; + + fp = evaluate(previous); BAILR(0); + fq = evaluate(current); BAILR(0); + + evaluateGradient(current); BAILR(0); + findRMSandMaxForce(current, &rms_force, &max_force); BAILR(0); + if (tolerance == COARSE_TOLERANCE && + rms_force < MinimizeThresholdCutoverRMS && + max_force < MinimizeThresholdCutoverMax) { + fd->tolerance = FINE_TOLERANCE; + fd->algorithm = PolakRibiereConjugateGradient; + fd->linear_algorithm = LinearMinimize; + } + if (tolerance == FINE_TOLERANCE && + (rms_force > MinimizeThresholdCutoverRMS * 1.5 || + max_force > MinimizeThresholdCutoverMax * 1.5)) { + fd->tolerance = COARSE_TOLERANCE; + fd->algorithm = SteepestDescent; + fd->linear_algorithm = LinearBracket; + } + if (rms_force < MinimizeThresholdEndRMS && + max_force < MinimizeThresholdEndMax) { + return 1; + } + + return defaultTermination(fd, previous, current); +} + +static void +minimizeStructureConstraints(struct configuration *p) +{ + int i; + int j; + double dist; + struct jig *jig; + struct xyz *positions = (struct xyz *)p->coordinate; + struct xyz delta; + struct atom *a; + int index; + + for (i=0; i<Part->num_jigs; i++) { + jig = Part->jigs[i]; + switch (jig->type) { + case Ground: + for (j=0; j<jig->num_atoms; j++) { + a = jig->atoms[j]; + index = a->index; + positions[index] = Part->positions[index]; + } + break; + case LinearMotor: + for (j=0; j<jig->num_atoms; j++) { + a = jig->atoms[j]; + index = a->index; + // restrict motion of atom to lay along axis from initial position + // dist = (positions[index] - Part->positions[index]) dot jig->j.lmotor.axis + // positions[index] = Part->positions[index] + jig->j.lmotor.axis * dist + vsub2(delta, positions[index], Part->positions[index]); + dist = vdot(delta, jig->j.lmotor.axis); + vmul2c(delta, jig->j.lmotor.axis, dist); + vadd2(positions[index], Part->positions[index], delta); + } + break; + default: + break; + } + } +} + +static struct functionDefinition minimizeStructureFunctions; + +void +minimizeStructure(struct part *part) +{ + int iter; + struct configuration *initial; + struct configuration *final; + int i; + int j; + int jigDegreesOfFreedom; + int coordinateCount; + double rms_force; + double max_force; + double model_energy; + struct jig *jig; + + NULLPTR(part); + Part = part; + + jigDegreesOfFreedom = 0; + coordinateCount = part->num_atoms * 3; + for (i=0; i<Part->num_jigs; i++) { + jig = Part->jigs[i]; + jig->coordinateIndex = coordinateCount + jigDegreesOfFreedom; + jigDegreesOfFreedom += jig->degreesOfFreedom; + } + + initializeFunctionDefinition(&minimizeStructureFunctions, + minimizeStructurePotential, + coordinateCount + jigDegreesOfFreedom, + 1024); + BAIL(); + + minimizeStructureFunctions.dfunc = minimizeStructureGradient; + minimizeStructureFunctions.termination = minimizeStructureTermination; + minimizeStructureFunctions.constraints = minimizeStructureConstraints; + minimizeStructureFunctions.tolerance = COARSE_TOLERANCE; + minimizeStructureFunctions.algorithm = SteepestDescent; + minimizeStructureFunctions.linear_algorithm = LinearBracket; + + initial = makeConfiguration(&minimizeStructureFunctions); + for (i=0, j=0; i<part->num_atoms; i++) { + initial->coordinate[j++] = part->positions[i].x; + initial->coordinate[j++] = part->positions[i].y; + initial->coordinate[j++] = part->positions[i].z; + } + + // To compare the torsion gradient code to the results of a + // numerical differentiation, put the following lines in an .mmp + // file, uncomment the define TORSION_DEBUG line, and run: + // simulator -m -x TorsionDebug.mmp + // Then, run: + // glviewer < TorsionDebug.xyz +#if 0 +atom 1 (6) (400, 0, 0) def +atom 2 (6) (250, 0, 0) def +info atom atomtype = sp2 +bond1 1 +atom 3 (6) (-250, 0, 0) def +info atom atomtype = sp2 +bond2 2 +atom 4 (6) (-400, 500, 0) def +bond1 3 +#endif + + //#define TORSION_DEBUG +#ifdef TORSION_DEBUG + debug_flags |= D_MINIMIZE_GRADIENT_MOVIE + | D_GRADIENT_COMPARISON + | D_SKIP_VDW + | D_SKIP_BEND + | D_SKIP_STRETCH; + double theta; + for (theta=0.0; theta<Pi; theta+=Pi/180.0) { + initial->coordinate[1] = 50.0 * cos(theta); + initial->coordinate[2] = 50.0 * sin(theta); + evaluateGradient(initial); + free(initial->gradient); + initial->gradient = NULL; + } + exit(0); +#endif + + final = minimize(initial, &iter, NumFrames * 100); + + if (final != NULL) { + // wware 060109 python exception handling + evaluateGradient(final); BAIL(); + findRMSandMaxForce(final, &rms_force, &max_force); BAIL(); + + writeMinimizeMovieFrame(OutputFile, part, 1, (struct xyz *)final->coordinate, rms_force, max_force, + Iteration, 1, "final structure", minimizeStructureFunctions.message, evaluate(final)); + + if (DEBUG(D_MINIMIZE_FINAL_PRINT)) { // -D 11 + for (i=0, j=0; i<part->num_atoms; i++) { + part->positions[i].x = final->coordinate[j++]; + part->positions[i].y = final->coordinate[j++]; + part->positions[i].z = final->coordinate[j++]; + } + printPart(stdout, part); + } + } + + model_energy = evaluate(final); + SetConfiguration(&initial, NULL); + SetConfiguration(&final, NULL); + if (model_energy > 0.25) { + done("Final forces: rms %f pN, high %f pN, model energy: %.3f aJ evals: %d,%d", + rms_force, + max_force, + model_energy, + minimizeStructureFunctions.functionEvaluationCount, + minimizeStructureFunctions.gradientEvaluationCount); + } else { + done("Final forces: rms %f pN, high %f pN, model energy: %.3e aJ evals: %d,%d", + rms_force, + max_force, + model_energy, + minimizeStructureFunctions.functionEvaluationCount, + minimizeStructureFunctions.gradientEvaluationCount); + } +} + +/* + * Local Variables: + * c-basic-offset: 4 + * tab-width: 8 + * End: + */ diff --git a/sim/src/minstructure.h b/sim/src/minstructure.h new file mode 100755 index 000000000..e5b719b70 --- /dev/null +++ b/sim/src/minstructure.h @@ -0,0 +1,9 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#ifndef MINSTRUCTURE_H_INCLUDED +#define MINSTRUCTURE_H_INCLUDED + +#define RCSID_MINSTRUCTURE_H "$Id$" + +extern void minimizeStructure(struct part *part); + +#endif diff --git a/sim/src/newtables.c b/sim/src/newtables.c new file mode 100755 index 000000000..2985a1279 --- /dev/null +++ b/sim/src/newtables.c @@ -0,0 +1,1269 @@ +// Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. + +#include "simulator.h" + +static char const rcsid[] = "$Id$"; + +static struct bondStretch * +getBondStretchEntry(int element1, int element2, char bondOrder); + +static struct hashtable *periodicHashtable = NULL; + +struct atomType * +getAtomTypeByIndex(int atomTypeIndex) +{ + char buf[256]; + struct atomType *entry; + + if (periodicHashtable == NULL) { + ERROR("getAtomTypeByIndex called before periodic table initialization"); + return NULL; + } + sprintf(buf, "%d", atomTypeIndex); + entry = (struct atomType *)hashtable_get(periodicHashtable, buf); + if (entry == NULL) { + entry = (struct atomType *)hashtable_get(periodicHashtable, "0"); + WARNING1("using undefined atomType %d", atomTypeIndex); + hashtable_put(periodicHashtable, buf, entry); // this should suppress further warnings + } + return entry; +} + +int +isAtomTypeValid(int atomTypeIndex) +{ + char buf[256]; + struct atomType *entry; + + if (periodicHashtable == NULL) { + ERROR("isAtomTypeValid called before periodic table initialization"); + return 0; + } + sprintf(buf, "%d", atomTypeIndex); + entry = (struct atomType *)hashtable_get(periodicHashtable, buf); + if (entry == NULL) { + return 0; + } + return 1; +} + +struct atomType * +getAtomTypeByName(char *symbol) +{ + if (periodicHashtable == NULL) { + ERROR("getAtomTypeByName called before periodic table initialization"); + return NULL; + } + return (struct atomType *)hashtable_get(periodicHashtable, symbol); +} + +// ks in N/m +// r0 in pm, or 1e-12 m +// de in aJ, or 1e-18 J +// beta in 1e12 m^-1 +static struct bondStretch * +newBondStretch(char *bondName, double ks, double r0, double de, double beta, double inflectionR, int quality, int quadratic) +{ + struct bondStretch *stretch; + + stretch = allocate(sizeof(struct bondStretch)); + stretch->bondName = copy_string(bondName); + stretch->ks = ks; + stretch->r0 = r0; + stretch->de = de; + stretch->beta = beta; + stretch->inflectionR = inflectionR; + stretch->parameterQuality = quality; + stretch->quadratic = quadratic; + stretch->warned = 0; + stretch->maxPhysicalTableIndex = -1; // flag to indicate interpolator not initialized + return stretch; +} + +// kb in yJ / rad^2 (yoctoJoules per radian squared, or 1e-24 J/rad^2) +// theta0 in radians +static struct bendData * +newBendData(char *bendName, double kb, double theta0, int quality) +{ + struct bendData *bend; + + // typical kb values around 1e6 yJ/rad^2 + bend = allocate(sizeof(struct bendData)); + bend->bendName = copy_string(bendName); + bend->kb = kb; + bend->theta0 = theta0; + bend->cosTheta0 = cos(theta0); + bend->parameterQuality = quality; + bend->warned = 0; + return bend; +} + +static void +generateBondName(char *bondName, int element1, int element2, char bondOrder) +{ + int elt; + if (element2 < element1) { + elt = element1; + element1 = element2; + element2 = elt; + } + sprintf(bondName, "%s-%c-%s", getAtomTypeByIndex(element1)->symbol, + bondOrder, getAtomTypeByIndex(element2)->symbol); +} + +static void +generateBendName(char *bendName, + int element_center, + enum hybridization centerHybridization, + int element1, + char bondOrder1, + int element2, + char bondOrder2) +{ + int elt; + char bnd; + if (element1 > element2 || (element1 == element2 && bondOrder1 > bondOrder2)) { + elt = element1; + element1 = element2; + element2 = elt; + bnd = bondOrder1; + bondOrder1 = bondOrder2; + bondOrder2 = bnd; + } + sprintf(bendName, "%s-%c-%s.%s-%c-%s", getAtomTypeByIndex(element1)->symbol, + bondOrder1, getAtomTypeByIndex(element_center)->symbol, + hybridizationString(centerHybridization), + bondOrder2, getAtomTypeByIndex(element2)->symbol); +} + +static struct hashtable *bondStretchHashtable = NULL; +static struct hashtable *bendDataHashtable = NULL; +static struct hashtable *deHashtable = NULL; +static struct hashtable *vanDerWaalsHashtable = NULL; +static struct hashtable *electrostaticHashtable = NULL; + +// ks in N/m +// r0 in pm, or 1e-12 m +// de in aJ, or 1e-18 J +// beta in 1e12 m^-1 +static struct bondStretch * +addBondStretch(char *bondName, double ks, double r0, double de, double beta, double inflectionR, int quality, int quadratic) +{ + struct bondStretch *stretch; + struct bondStretch *old; + + stretch = newBondStretch(bondName, ks, r0, de, beta, inflectionR, quality, quadratic); + old = hashtable_put(bondStretchHashtable, bondName, stretch); + if (old != NULL) { + fprintf(stderr, "duplicate bondStretch: %s\n", bondName); + free(old->bondName); + free(old); + } + return stretch; +} + +// kb in yoctoJoules / radian^2 (1e-24 J/rad^2) +static struct bendData * +addBendData(char *bendName, double kb, double theta0, int quality) +{ + struct bendData *bend; + struct bendData *old; + + bend = newBendData(bendName, kb, theta0, quality); + old = hashtable_put(bendDataHashtable, bendName, bend); + if (old != NULL) { + fprintf(stderr, "duplicate bend data: %s\n", bendName); + free(old->bendName); + free(old); + } + return bend; +} + +// ks in N/m +// r0 in pm, or 1e-12 m +// de in aJ, or 1e-18 J +// beta in 1e10 m^-1 +static void +addInitialBondStretch(double ks, + double r0, + double de, + double beta, + double inflectionR, + int quality, + int quadratic, + char *bondName) +{ + struct bondStretch *stretch; + struct bondStretch *old; + + if (beta < 0) { + beta = sqrt(ks / (2.0 * de)) / 10.0 ; + } + if (inflectionR < 0) { + inflectionR = r0 * 1.5; + } + stretch = newBondStretch(bondName, ks, r0, de, beta*1e-2, inflectionR, quality, quadratic); + old = hashtable_put(bondStretchHashtable, bondName, stretch); + if (old != NULL) { + free(old->bondName); + free(old); + } +} + +// kb in aJ / rad^2 (1e-18 J/rad^2) +// theta0 in radians +static void +addInitialBendData(double kb, double theta0, int quality, char *bendName) +{ + struct bendData *bend; + struct bendData *old; + + // typical kb values around 1 aJ/rad^2 + bend = newBendData(bendName, kb*1e6, theta0, quality); + old = hashtable_put(bendDataHashtable, bendName, bend); + if (old != NULL) { + fprintf(stderr, "duplicate bend entry: %s\n", bendName); + free(old->bendName); + free(old); + } +} + +static void +addDeTableEntry(char *bondName, double de) +{ + struct deTableEntry *entry; + struct deTableEntry *old; + + entry = (struct deTableEntry *)allocate(sizeof(struct deTableEntry)); + entry->de = de; + old = hashtable_put(deHashtable, bondName, entry); + if (old != NULL) { + fprintf(stderr, "duplicate de entry: %s\n", bondName); + free(old); + } +} + +static struct vanDerWaalsParameters * +addVanDerWaalsInteraction(char *bondName, double rvdW, double evdW, + double cutoffRadiusStart, double cutoffRadiusEnd) +{ + struct vanDerWaalsParameters *vdw; + struct vanDerWaalsParameters *old; + + vdw = (struct vanDerWaalsParameters *)allocate(sizeof(struct vanDerWaalsParameters)); + vdw->vdwName = copy_string(bondName); + vdw->rvdW = rvdW; + vdw->evdW = evdW; + + if (cutoffRadiusStart < 0.0) { + vdw->cutoffRadiusStart = rvdW; + } else { + vdw->cutoffRadiusStart = cutoffRadiusStart; + } + + if (cutoffRadiusEnd < 0.0) { + vdw->cutoffRadiusEnd = VanDerWaalsCutoffFactor * rvdW; + } else { + vdw->cutoffRadiusEnd = cutoffRadiusEnd; + } + + initializeVanDerWaalsInterpolator(vdw); + old = hashtable_put(vanDerWaalsHashtable, bondName, vdw); + if (old != NULL) { + fprintf(stderr, "duplicate vdw: %s\n", bondName); + free(old->vdwName); + free(old); + } + return vdw; +} + +static struct vanDerWaalsParameters * +generateVanDerWaals(char *bondName, int element1, int element2) +{ + double rvdW; + double evdW; + + // getAtomTypeByIndex().vanDerWaalsRadius is in 1e-10 m + // maximum rvdw is 2.25e-10 m for Si, so highest cutoff radius is 675 pm + // minimum rvdw is 0.97e-10 m for Li, so lowest cutoff radius is 291 pm + // Carbon is 1.94e-10 m, cutoff at 582 pm + // Hydrogen is 1.5e-10 m, cutoff for H~C interaction at 516 pm + // so rvdW is in 1e-12 m or pm + rvdW = 100.0 * (getAtomTypeByIndex(element1)->vanDerWaalsRadius + + getAtomTypeByIndex(element2)->vanDerWaalsRadius); + // evdW in 1e-21 J or zJ + evdW = (getAtomTypeByIndex(element1)->e_vanDerWaals + + getAtomTypeByIndex(element2)->e_vanDerWaals) / 2.0; + + + return addVanDerWaalsInteraction(bondName, rvdW, evdW, -1.0, -1.0); +} + +static struct electrostaticParameters * +addElectrostaticInteraction(char *electrostaticName, double q1, double q2, + double cutoffRadiusStart, double cutoffRadiusEnd) +{ + struct electrostaticParameters *es; + struct electrostaticParameters *old; + + es = (struct electrostaticParameters *)allocate(sizeof(struct electrostaticParameters)); + es->electrostaticName = copy_string(electrostaticName); + es->k = COULOMB * q1 * q2 / DielectricConstant; + + if (cutoffRadiusEnd < 0.0) { + es->cutoffRadiusEnd = es->k / MinElectrostaticSensitivity; + } else { + es->cutoffRadiusEnd = cutoffRadiusEnd; + } + + if (cutoffRadiusStart < 0.0) { + es->cutoffRadiusStart = 0.9 * es->cutoffRadiusEnd; + } else { + es->cutoffRadiusStart = cutoffRadiusStart; + } + + initializeElectrostaticInterpolator(es); + old = hashtable_put(electrostaticHashtable, electrostaticName, es); + if (old != NULL) { + fprintf(stderr, "duplicate electrostatic: %s\n", electrostaticName); + free(old->electrostaticName); + free(old); + } + return es; +} + +static struct electrostaticParameters * +generateElectrostatic(char *electrostaticName, int element1, int element2) +{ + double q1; + double q2; + + q1 = getAtomTypeByIndex(element1)->charge; + q2 = getAtomTypeByIndex(element2)->charge; + + return addElectrostaticInteraction(electrostaticName, q1, q2, -1.0, -1.0); +} + +static void +setElement(int protons, + int group, + int period, + char *symbol, + char *name, + double mass, + double vanDerWaalsRadius, + double e_vanDerWaals, + int n_bonds, + double covalentRadius, + double charge) +{ + struct atomType *entry; + struct atomType *oldEntry; + char buf[256]; + + if (e_vanDerWaals < 0.0) { + e_vanDerWaals = 0.3 + protons * protons / 190.0; + } + entry = (struct atomType *)allocate(sizeof(struct atomType)); + + entry->protons = protons; + entry->group = group; + entry->period = period; + entry->name = copy_string(name); + entry->symbol[0] = symbol[0]; + entry->symbol[1] = symbol[1]; + entry->symbol[2] = symbol[2]; // we inadvertantly copy past end of string on many elements. + entry->symbol[3] = '\0'; + entry->mass = mass; + entry->vanDerWaalsRadius = vanDerWaalsRadius; + entry->e_vanDerWaals = e_vanDerWaals; + entry->n_bonds = n_bonds; + entry->covalentRadius = covalentRadius; + entry->charge = charge; + entry->refCount = 2; + + oldEntry = hashtable_put(periodicHashtable, symbol, entry); + if (oldEntry != NULL) { + oldEntry->refCount--; + if (oldEntry->refCount < 1) { + free(oldEntry->name); + free(oldEntry); + } + } + sprintf(buf, "%d", protons); + oldEntry = hashtable_put(periodicHashtable, buf, entry); + if (oldEntry != NULL) { + oldEntry->refCount--; + if (oldEntry->refCount < 1) { + free(oldEntry->name); + free(oldEntry); + } + } +} + +static int +tokenizeInt(int *errp) +{ + char *token = strtok(NULL, " \n"); + if (token != NULL) { + return atoi(token); + } + *errp = 1; + return 0; +} + +static double +tokenizeDouble(int *errp) +{ + char *token = strtok(NULL, " \n"); + double value; + if (token != NULL) { + return atof(token); + } + *errp = 1; + return 0.0; +} + +static void +destroyBondStretch(void *s) +{ + struct bondStretch *stretch = (struct bondStretch *)s; + if (stretch != NULL) { + if (stretch->bondName != NULL) { + free(stretch->bondName); + stretch->bondName = NULL; + } + } + free(stretch); +} + +static void +destroyBendData(void *b) +{ + struct bendData *bend = (struct bendData *)b; + if (bend != NULL) { + if (bend->bendName != NULL) { + free(bend->bendName); + bend->bendName = NULL; + } + } + free(bend); +} + +static void +destroyDeEntry(void *de) +{ + if (de != NULL) { + free(de); + } +} + +static void +destroyVanDerWaals(void *v) +{ + struct vanDerWaalsParameters *vdw = (struct vanDerWaalsParameters *)v; + if (vdw != NULL) { + if (vdw->vdwName != NULL) { + free(vdw->vdwName); + vdw->vdwName = NULL; + } + } + free(vdw); +} + +static void +destroyElectrostatic(void *e) +{ + struct electrostaticParameters *es = (struct electrostaticParameters *)e; + if (es != NULL) { + if (es->electrostaticName != NULL) { + free(es->electrostaticName); + es->electrostaticName = NULL; + } + } + free(es); +} + +static void +destroyStaticBondTable(void) +{ + hashtable_destroy(bondStretchHashtable, destroyBondStretch); + bondStretchHashtable = NULL; + hashtable_destroy(bendDataHashtable, destroyBendData); + bendDataHashtable = NULL; + hashtable_destroy(deHashtable, destroyDeEntry); + deHashtable = NULL; + hashtable_destroy(vanDerWaalsHashtable, destroyVanDerWaals); + vanDerWaalsHashtable = NULL; + hashtable_destroy(electrostaticHashtable, destroyElectrostatic); + electrostaticHashtable = NULL; +} + +static void +readBondTableOverlay(char *filename) +{ + char buf[4096]; + char *token; + int lineNumber = 0; + int err; + int protons; + int group; + int period; + char *symbol; + char *name; + double mass; + double rvdW; + double evdW; + int nBonds; + double rCovalent; + double charge; + double ks; + double r0; + double de; + double beta; + double inflectionR; + int quality; + int quadratic; + double ktheta; + double theta0; + double cutoffRadiusStart; + double cutoffRadiusEnd; + FILE *f = fopen(filename, "r"); + + if (f == NULL) { + // silent about not finding file + return; + } + while (fgets(buf, 4096, f)) { + lineNumber++; + token = strtok(buf, " \n"); + if (token) { + if (!strncmp(token, "#", 1) ) { + continue; + } else if (!strcmp(token, "element")) { + err = 0; + protons = tokenizeInt(&err); + group = tokenizeInt(&err); + period = tokenizeInt(&err); + symbol = strtok(NULL, " \n"); + name = strtok(NULL, " \n"); + mass = tokenizeDouble(&err); + rvdW = tokenizeDouble(&err); + evdW = tokenizeDouble(&err); + nBonds = tokenizeInt(&err); + rCovalent = tokenizeDouble(&err); + charge = tokenizeDouble(&err); + if (err || symbol == NULL || name == NULL) { + fprintf(stderr, "format error at file %s line %d\n", filename, lineNumber); + } else { + setElement(protons, group, period, symbol, name, mass, rvdW, evdW, nBonds, rCovalent, charge); + DPRINT11(D_READER, "setElement: %d %d %d %s %s %f %f %f %d %f %f\n", protons, group, period, symbol, name, mass, rvdW, evdW, nBonds, rCovalent, charge); + } + } else if (!strcmp(token, "stretch")) { + err = 0; + ks = tokenizeDouble(&err); + r0 = tokenizeDouble(&err); + de = tokenizeDouble(&err); + beta = tokenizeDouble(&err); + inflectionR = tokenizeDouble(&err); + quality = tokenizeInt(&err); + quadratic = tokenizeInt(&err); + name = strtok(NULL, " \n"); + if (err || name == NULL) { + fprintf(stderr, "format error at file %s line %d\n", filename, lineNumber); + } else { + addInitialBondStretch(ks, r0, de, beta, inflectionR, quality, quadratic, name); + DPRINT8(D_READER, "addBondStretch: %f %f %f %f %f %d %d %s\n", ks, r0, de, beta, inflectionR, quality, quadratic, name); + + } + } else if (!strcmp(token, "bend")) { + err = 0; + ktheta = tokenizeDouble(&err); + theta0 = tokenizeDouble(&err); + quality = tokenizeInt(&err); + name = strtok(NULL, " \n"); + if (err || name == NULL) { + fprintf(stderr, "format error at file %s line %d\n", filename, lineNumber); + } else { + addInitialBendData(ktheta, theta0, quality, name); + DPRINT4(D_READER, "addBendData: %f %f %d %s\n", ktheta, theta0, quality, name); + } + } else if (!strcmp(token, "vdw")) { + err = 0; + rvdW = tokenizeDouble(&err); + evdW = tokenizeDouble(&err); + cutoffRadiusStart = tokenizeDouble(&err); + cutoffRadiusEnd = tokenizeDouble(&err); + name = strtok(NULL, " \n"); + if (err || name == NULL) { + fprintf(stderr, "format error at file %s line %d\n", filename, lineNumber); + } else { + addVanDerWaalsInteraction(name, rvdW, evdW, cutoffRadiusStart, cutoffRadiusEnd); + DPRINT5(D_READER, "addVanDerWaalsInteraction: %f %f %f %f %s\n", rvdW, evdW, cutoffRadiusStart, cutoffRadiusEnd, name); + } + } else { + fprintf(stderr, "unrecognized line type at file %s line %d: %s\n", filename, lineNumber, token); + } + } + } + fclose(f); +} + +static void +initializeStaticBondTable(void) +{ + destroyStaticBondTable(); + + periodicHashtable = hashtable_new(64); + bondStretchHashtable = hashtable_new(40); + deHashtable = hashtable_new(10); + bendDataHashtable = hashtable_new(40); + vanDerWaalsHashtable = hashtable_new(40); + electrostaticHashtable = hashtable_new(40); + + // groups 9-22 are lanthanides + // groups 8-31 are transition metals + // + // mass in yg (yoctograms, or 1e-24 g) + // rvdW is in 1e-10 m or angstroms or 0.1 nm + // evdW in zJ (zepto Joules, or milli atto Joules, or 1e-21 J) + // an e_vanDerWaals value < 0 will be calculated in setElement() + // rCovalent in pm (picoMeters, or 1e-12 m) + // chrg in multiples of proton charge + // NOTE: change MAX_VDW_RADIUS in part.[ch] if adding an atom larger than Si + // + // protons, group, period, symbol, name, mass, vanDerWaalsRadius, + // e_vanDerWaals, n_bonds, covalentRadius, charge + // + // Z grp per sym name mass rvdW evdW bnds rcov chrg + // + + setElement( 0, 1, 1, "X", "Singlet", 17.000, 1.1, -1.00, 1, 0, 0); + setElement( 1, 1, 1, "H", "Hydrogen", 1.6737, 1.5 , 0.382, 1, 30, 0); + setElement( 2, 0, 1, "He", "Helium", 6.646, 1.4, -1.00, 0, 0, 0); + + setElement( 3, 1, 2, "Li", "Lithium", 11.525, 0.97, -1.00, 1, 152, 0); + setElement( 4, 2, 2, "Be", "Beryllium", 14.964, 1.10, -1.00, 2, 114, 0); + setElement( 5, 3, 2, "B", "Boron", 17.949, 1.99, -1.00, 3, 83, 0); + setElement( 6, 4, 2, "C", "Carbon", 19.925, 1.94, 0.357, 4, 77, 0); + setElement( 7, 5, 2, "N", "Nitrogen", 23.257, 1.82, 0.447, 3, 70, 0); + setElement( 8, 6, 2, "O", "Oxygen", 26.565, 1.74, 0.406, 2, 66, 0); + setElement( 9, 7, 2, "F", "Fluorine", 31.545, 1.65, 0.634, 1, 64, 0); + setElement(10, 0, 2, "Ne", "Neon", 33.49, 1.82, -1.00, 0, 0, 0); + + setElement(11, 1, 3, "Na", "Sodium", 38.1726, 1.29, -1.00, 1, 186, 0); + setElement(12, 2, 3, "Mg", "Magnesium", 40.356, 1.15, -1.00, 2, 160, 0); + setElement(13, 3, 3, "Al", "Aluminum", 44.7997, 2.0, -1.00, 3, 125, 0); + setElement(14, 4, 3, "Si", "Silicon", 46.6245, 2.25, 1.137, 4, 116, 0); + setElement(15, 5, 3, "P", "Phosphorus", 51.429, 2.18, 1.365, 3, 110, 0); + setElement(16, 6, 3, "S", "Sulfur", 53.233, 2.10, 1.641, 2, 104, 0); + setElement(17, 7, 3, "Cl", "Chlorine", 58.867, 2.03, 1.950, 1, 99, 0); + setElement(18, 0, 3, "Ar", "Argon", 62.33, 1.88, -1.00, 0, 0, 0); + + setElement(19, 1, 4, "K", "Potassium", 64.9256, 1.59, -1.00, 1, 231, 0); + setElement(20, 2, 4, "Ca", "Calcium", 66.5495, 1.27, -1.00, 2, 197, 0); + setElement(21, 8, 4, "Sc", "Scandium", 74.646, 2.0, -1.00, 0, 60, 0); + setElement(22, 23, 4, "Ti", "Titanium", 79.534, 2.0, -1.00, 0, 147, 0); + setElement(23, 24, 4, "V", "Vanadium", 84.584, 2.0, -1.00, 0, 132, 0); + setElement(24, 25, 4, "Cr", "Chromium", 86.335, 2.0, -1.00, 0, 125, 0); + setElement(25, 26, 4, "Mn", "Manganese", 91.22, 2.0, -1.00, 0, 112, 0); + setElement(26, 27, 4, "Fe", "Iron", 92.729, 2.0, -1.00, 0, 124, 0); + setElement(27, 28, 4, "Co", "Cobalt", 97.854, 2.0, -1.00, 0, 125, 0); + setElement(28, 29, 4, "Ni", "Nickel", 97.483, 2.3, -1.00, 0, 125, 0); + setElement(29, 30, 4, "Cu", "Copper", 105.513, 2.3, -1.00, 0, 128, 0); + setElement(30, 31, 4, "Zn", "Zinc", 108.541, 2.3, -1.00, 0, 133, 0); + setElement(31, 3, 4, "Ga", "Gallium", 115.764, 2.3, -1.00, 0, 135, 0); + setElement(32, 4, 4, "Ge", "Germanium", 120.53, 2.0, -1.00, 4, 122, 0); + setElement(33, 5, 4, "As", "Arsenic", 124.401, 2.0, -1.00, 3, 120, 0); + setElement(34, 6, 4, "Se", "Selenium", 131.106, 1.88, -1.00, 2, 119, 0); + setElement(35, 7, 4, "Br", "Bromine", 132.674, 1.83, -1.00, 1, 119, 0); + setElement(36, 0, 4, "Kr", "Krypton", 134.429, 1.9, -1.00, 0, 0, 0); + + setElement(51, 5, 5, "Sb", "Antimony", 124.401, 2.2, -1.00, 3, 144, 0); + setElement(52, 6, 5, "Te", "Tellurium", 131.106, 2.1, -1.00, 2, 142, 0); + setElement(53, 7, 5, "I", "Iodine", 132.674, 2.0, -1.00, 1, 141, 0); + setElement(54, 0, 5, "Xe", "Xenon", 134.429, 1.9, -1.00, 0, 0, 0); + + + setElement(200, 0, 0, "Ax", "DNA-Pseudo-Axis", 167.0, 0.0, 0.0, 4, 100, 0); // 700 + setElement(201, 0, 0, "Ss", "DNA-Pseudo-Sugar", 167.0, 0.0, 0.0, 3, 170, 0); // 800 + setElement(202, 0, 0, "Pl", "DNA-Pseudo-Phosphate", 167.0, 3.6, 0.3, 2, 170, -1); // 900 + setElement(203, 0, 0, "Sj", "DNA-Pseudo-Sugar-Junction", 167.0, 0.0, 0.0, 3, 170, 0); // 810 + setElement(204, 0, 0, "Ae", "DNA-Pseudo-Axis-End", 167.0, 0.0, 0.0, 1, 100, 0); // 701 + setElement(205, 0, 0, "Pe", "DNA-Pseudo-Phosphate-End", 167.0, 3.6, 0.3, 1, 170, -2); // 901 + setElement(206, 0, 0, "Sh", "DNA-Pseudo-Sugar-End", 167.0, 0.0, 0.0, 1, 170, 0); // 902 + setElement(207, 0, 0, "Hp", "DNA-Pseudo-Hairpin", 167.0, 0.0, 0.0, 2, 100, 0); // 820 + +#include "bonds.gen" + + // ks r0 de beta inflectionR qual quad bondName + + addInitialBondStretch( 4.00, 318.00, 1.0000, -1, -1, 9, 1, "Ax-1-Ax"); // 700-700 + addInitialBondStretch(50.00, 676.00, 1.0000, -1, -1, 9, 1, "Ax-1-Ss"); // 700-800 + addInitialBondStretch(50.00, 676.00, 1.0000, -1, -1, 9, 1, "Ax-1-Sj"); // 700-810 + addInitialBondStretch( 4.00, 364.00, 1.0000, -1, -1, 9, 1, "Ss-1-Pl"); // 800-900 + addInitialBondStretch( 4.00, 400.00, 1.0000, -1, -1, 9, 1, "Pl-1-Sj"); // 900-810 + addInitialBondStretch( 4.00, 180.00, 1.0000, -1, -1, 9, 1, "H-1-Ax"); // 701-700 + addInitialBondStretch( 4.00, 364.00, 1.0000, -1, -1, 9, 1, "H-1-Ss"); // 901-800 + addInitialBondStretch( 4.00, 200.00, 1.0000, -1, -1, 9, 1, "H-1-Pl"); // 902-900 + addInitialBondStretch( 4.00, 180.00, 1.0000, -1, -1, 9, 1, "Ax-1-Ae"); // 700-701 + addInitialBondStretch( 4.00, 200.00, 1.0000, -1, -1, 9, 1, "Ss-1-Sh"); // 800-902 + addInitialBondStretch( 4.00, 364.00, 1.0000, -1, -1, 9, 1, "Ss-1-Pe"); // 800-901 + addInitialBondStretch( 4.00, 357.00, 1.0000, -1, -1, 9, 1, "Pl-1-Hp"); // 900-820 + addInitialBondStretch( 4.00, 357.00, 1.0000, -1, -1, 9, 1, "Pe-1-Hp"); // 901-820 + addInitialBondStretch( 4.00, 200.00, 1.0000, -1, -1, 9, 1, "Sh-1-Hp"); // 902-820 + addInitialBondStretch( 4.00, 200.00, 1.0000, -1, -1, 9, 1, "H-1-Hp"); // 902-820 + + + addDeTableEntry("H-1-N", 0.75); + addDeTableEntry("N-1-O", 0.383); + addDeTableEntry("N-1-F", 0.422); + addDeTableEntry("F-1-S", 0.166); + addDeTableEntry("O-1-F", 0.302); + addDeTableEntry("C-1-I", 0.373); + addDeTableEntry("O-1-Cl", 0.397); + addDeTableEntry("O-1-I", 0.354); + addDeTableEntry("S-1-Cl", 0.489); + +#include "bends.gen" + + // ktheta theta0 qual bondName + + // 180 degree along Axis + addInitialBendData(0.18, 3.14159265359, 9, "Ax-1-Ax.sp3-1-Ax"); // 700-700-700 + addInitialBendData(0.18, 3.14159265359, 9, "Ax-1-Ax.sp3-1-Ae"); // 700-700-701 + addInitialBendData(0.18, 3.14159265359, 9, "Ae-1-Ax.sp3-1-Ae"); // 701-700-701 + + // 90 degree Axis to Sugar + addInitialBendData(1.0, 1.57079632679, 9, "Ax-1-Ax.sp3-1-Ss"); // 700-700-800 + addInitialBendData(1.0, 1.57079632679, 9, "Ax-1-Ax.sp3-1-Sj"); // 700-700-810 + addInitialBendData(1.0, 1.57079632679, 9, "Ss-1-Ax.sp3-1-Ae"); // 800-700-701 + addInitialBendData(1.0, 1.57079632679, 9, "H-1-Ax.sp3-1-Ax"); // 800-700-700 + addInitialBendData(1.0, 1.57079632679, 9, "H-1-Ax.sp3-1-Ae"); // 800-700-701 + addInitialBendData(1.0, 1.57079632679, 9, "H-1-Ax.sp3-1-H"); // ? + + // 133 degree minor groove + addInitialBendData(1.0, 2.3212879025, 9, "Ss-1-Ax.sp3-1-Ss"); // 800-700-800 + addInitialBendData(1.0, 2.3212879025, 9, "Ss-1-Ax.sp3-1-Sj"); // 800-700-810 + addInitialBendData(1.0, 2.3212879025, 9, "Sj-1-Ax.sp3-1-Sj"); // 810-700-810 + addInitialBendData(1.0, 2.3212879025, 9, "H-1-Ax.sp3-1-Ss"); // 800-700-800 + addInitialBendData(1.0, 2.3212879025, 9, "H-1-Ax.sp3-1-Sj"); // 800-700-800 + + // 121 degree Axis Sugar Phosphate + addInitialBendData(0.04, 2.1118483925, 9, "Ax-1-Ss.sp3-1-Pl"); // 700-800-900 + addInitialBendData(0.04, 2.1118483925, 9, "Ax-1-Ss.sp3-1-Pe"); // 700-800-901 + addInitialBendData(0.04, 2.1118483925, 9, "Ax-1-Ss.sp3-1-Sh"); // 700-800-902 + addInitialBendData(0.04, 2.1118483925, 9, "H-1-Ss.sp3-1-Ax"); // 900-800-700 + + // 127 degree Phosphate Sugar Phosphate + addInitialBendData(0.04, 2.2165681475, 9, "Pl-1-Ss.sp3-1-Pl"); // 900-800-900 + addInitialBendData(0.04, 2.2165681475, 9, "Pl-1-Ss.sp3-1-Pe"); // 900-800-901 + addInitialBendData(0.04, 2.2165681475, 9, "Pl-1-Ss.sp3-1-Sh"); // 900-800-902 + addInitialBendData(0.04, 2.2165681475, 9, "Pe-1-Ss.sp3-1-Pe"); // 901-800-901 + addInitialBendData(0.04, 2.2165681475, 9, "Pe-1-Ss.sp3-1-Sh"); // 901-800-902 + addInitialBendData(0.04, 2.2165681475, 9, "Sh-1-Ss.sp3-1-Sh"); // 902-800-902 + addInitialBendData(0.04, 2.2165681475, 9, "H-1-Ss.sp3-1-Pl"); // 900-800-900 + addInitialBendData(0.04, 2.2165681475, 9, "H-1-Ss.sp3-1-Pe"); // 900-800-901 + addInitialBendData(0.04, 2.2165681475, 9, "H-1-Ss.sp3-1-Sh"); // 900-800-902 + addInitialBendData(0.04, 2.2165681475, 9, "H-1-Ss.sp3-1-H"); // 900-800-900 + + // 127 degree Phosphate Hairpin Phosphate + addInitialBendData(0.04, 2.2165681475, 9, "Pl-1-Hp.sp3-1-Pl"); // 900-820-900 + addInitialBendData(0.04, 2.2165681475, 9, "Pl-1-Hp.sp3-1-Pe"); // 900-820-901 + addInitialBendData(0.04, 2.2165681475, 9, "Pl-1-Hp.sp3-1-Sh"); // 900-820-902 + addInitialBendData(0.04, 2.2165681475, 9, "Pe-1-Hp.sp3-1-Pe"); // 901-820-901 + addInitialBendData(0.04, 2.2165681475, 9, "Pe-1-Hp.sp3-1-Sh"); // 901-820-902 + addInitialBendData(0.04, 2.2165681475, 9, "Sh-1-Hp.sp3-1-Sh"); // 902-820-902 + addInitialBendData(0.04, 2.2165681475, 9, "H-1-Hp.sp3-1-Pl"); // 900-820-900 + addInitialBendData(0.04, 2.2165681475, 9, "H-1-Hp.sp3-1-Pe"); // 900-820-901 + addInitialBendData(0.04, 2.2165681475, 9, "H-1-Hp.sp3-1-Sh"); // 900-820-902 + addInitialBendData(0.04, 2.2165681475, 9, "H-1-Hp.sp3-1-H"); // 900-820-900 + + // 115 degree Axis JunctionSugar Phosphate + addInitialBendData(0.04, 2.0071286375, 9, "Ax-1-Sj.sp3-1-Pl"); // 700-810-900 + addInitialBendData(0.04, 2.0071286375, 9, "Ax-1-Sj.sp3-1-Pe"); // 700-810-901 + addInitialBendData(0.04, 2.0071286375, 9, "Ax-1-Sj.sp3-1-Sh"); // 700-810-902 + addInitialBendData(0.04, 2.0071286375, 9, "H-1-Sj.sp3-1-Ax"); // 900-810-700 + + // 110 degree Phosphate JunctionSugar Phosphate + addInitialBendData(0.04, 1.919862175, 9, "Pl-1-Sj.sp3-1-Pl"); // 900-810-900 + addInitialBendData(0.04, 1.919862175, 9, "Pl-1-Sj.sp3-1-Pe"); // 900-810-901 + addInitialBendData(0.04, 1.919862175, 9, "H-1-Sj.sp3-1-Pl"); // 900-810-900 + addInitialBendData(0.04, 1.919862175, 9, "H-1-Sj.sp3-1-H"); // 900-810-900 + addInitialBendData(0.04, 1.919862175, 9, "H-1-Sj.sp3-1-Pe"); // 900-810-901 + addInitialBendData(0.04, 1.919862175, 9, "Pe-1-Sj.sp3-1-Pe"); // 901-810-901 + + // 127 degree Phosphate JunctionSugar end + addInitialBendData(0.04, 2.2165681475, 9, "Pl-1-Sj.sp3-1-Sh"); + addInitialBendData(0.04, 2.2165681475, 9, "Pe-1-Sj.sp3-1-Sh"); + addInitialBendData(0.04, 2.2165681475, 9, "Sh-1-Sj.sp3-1-Sh"); + addInitialBendData(0.04, 2.2165681475, 9, "H-1-Sj.sp3-1-Sh"); + + // 92.5 degree Sugar Phosphate Sugar + addInitialBendData(0.04, 1.61442955625, 9, "Ss-1-Pl.sp3-1-Ss"); + addInitialBendData(0.04, 1.61442955625, 9, "Ss-1-Pl.sp3-1-Sh"); + addInitialBendData(0.04, 1.61442955625, 9, "Ss-1-Pl.sp3-1-Hp"); + addInitialBendData(0.04, 1.61442955625, 9, "Sh-1-Pl.sp3-1-Sh"); + addInitialBendData(0.04, 1.61442955625, 9, "Sh-1-Pl.sp3-1-Hp"); + addInitialBendData(0.04, 1.61442955625, 9, "Hp-1-Pl.sp3-1-Hp"); + addInitialBendData(0.04, 1.61442955625, 9, "H-1-Pl.sp3-1-Ss"); + addInitialBendData(0.04, 1.61442955625, 9, "H-1-Pl.sp3-1-Sh"); + addInitialBendData(0.04, 1.61442955625, 9, "H-1-Pl.sp3-1-Hp"); + addInitialBendData(0.04, 1.61442955625, 9, "H-1-Pl.sp3-1-H"); + + // 92.5 degree Sugar Phosphate JunctionSugar + addInitialBendData(0.04, 1.61442955625, 9, "Ss-1-Pl.sp3-1-Sj"); + addInitialBendData(0.04, 1.61442955625, 9, "Sj-1-Pl.sp3-1-Sh"); + addInitialBendData(0.04, 1.61442955625, 9, "Sj-1-Pl.sp3-1-Hp"); + addInitialBendData(0.04, 1.61442955625, 9, "H-1-Pl.sp3-1-Sj"); + + // 115.8 degree JunctionSugar Phosphate JunctionSugar + addInitialBendData(0.04, 2.0210912715, 9, "Sj-1-Pl.sp3-1-Sj"); + + // name rvdW evdW start end + + addVanDerWaalsInteraction("Pl-v-Pl", 7.2, 0.3, 100.0, 7.2); + addVanDerWaalsInteraction("Pl-v-Pe", 7.2, 0.3, 100.0, 7.2); + addVanDerWaalsInteraction("Pe-v-Pe", 7.2, 0.3, 100.0, 7.2); +} + +static const char bends_rcsid[] = RCSID_BENDS_H; +static const char bonds_rcsid[] = RCSID_BONDS_H; + +static char *bondTableOverlayFileName = NULL; +static time_t bondTableOverlayModificationTime = 0; + +void +initializeBondTable(void) +{ + struct stat statBuf; + char *home; + char *rest; + int len; + int reloadOverlay = 0; + + if (bondStretchHashtable == NULL) { + reloadOverlay = 1; + } + if (bondTableOverlayFileName == NULL) { + home = getenv("HOME"); + if (home == NULL) { + home = getenv("USERPROFILE"); // windows + } + if (home == NULL) { + home = ""; + } + rest = "/Nanorex/sim-params.txt"; + len = strlen(home) + strlen(rest) + 1; + bondTableOverlayFileName = (char *)allocate(len); + strcpy(bondTableOverlayFileName, home); + strcat(bondTableOverlayFileName, rest); + } + if (!stat(bondTableOverlayFileName, &statBuf)) { + if (bondTableOverlayModificationTime < statBuf.st_mtime) { + reloadOverlay = 1; + bondTableOverlayModificationTime = statBuf.st_mtime; + } + } + if (reloadOverlay) { + initializeStaticBondTable(); + readBondTableOverlay(bondTableOverlayFileName); + } +} + +void +destroyBondTable(void) +{ + destroyStaticBondTable(); + if (bondTableOverlayFileName != NULL) { + free(bondTableOverlayFileName); + bondTableOverlayFileName = NULL; + } +} + +static void +clearBondWarnings(char *bondName, void *entry) +{ + ((struct bondStretch *)entry)->warned = 0; +} + +static void +clearBendWarnings(char *bendName, void *entry) +{ + ((struct bendData *)entry)->warned = 0; +} + +void +reInitializeBondTable() +{ + if (bondStretchHashtable != NULL) { + hashtable_iterate(bondStretchHashtable, clearBondWarnings); + } + if (bendDataHashtable != NULL) { + hashtable_iterate(bendDataHashtable, clearBendWarnings); + } +} + +static double +getDe(char *bondName) +{ + struct deTableEntry *entry = (struct deTableEntry *)hashtable_get(deHashtable, bondName); + if (entry != NULL) { + return entry->de; + } + return 0.58; +} + +// This finds the r value of the inflection point in the Lippincott +// potential function. We're looking for the spot outside of r0 where +// the second derivitive of Lippincott(r) is zero. The second +// derivitive has two identical exponential terms in it, which will be +// positive throughout the region of interest, and never zero. Since +// we're just looking for the zero, and the exponentials multiply +// other terms, we just set them to 1. The resulting function must +// also have a zero at the same point. That function can then be +// simplified to: +// +// (r^2 - r0^2)^2 4000000 de r0 +// -------------- - ------------- = 0 +// r ks +// +// which can be solved analytically for r, but is really messy. It +// starts out negative at r = r0, and we just wait until it's +// positive, at which point there has to be a zero. We could be a LOT +// more elegant about the search, if it matters! +static double findInflectionR(double r0, double ks, double de) +{ + double r = r0; + double a; + double b; + + // We stop the interpolation table at the inflection point if we're + // minimizing, otherwise continue to 1.5 * r0. See Lippincott in + // interpolate.c. + if (1 || !ToMinimize) { // disabled by: (1 || + // this value is actually ignored + return 1.5 * r0; + } + + b = -1; + while (b < 0) { + a = (r * r - r0 * r0); + b = a * a / r - 4000000 * de * r0 / ks; + r = r + 0.1; + } + return r; +} + +static struct bondStretch * +interpolateGenericBondStretch(char *bondName, int element1, int element2, float order) +{ + struct bondStretch *singleStretch; + struct bondStretch *doubleStretch; + double r0; + double ks; + double de; + double beta; + + singleStretch = getBondStretchEntry(element1, element2, '1'); + doubleStretch = getBondStretchEntry(element1, element2, '2'); + + // XXX check that singleStretch->r0 and doubleStretch->r0 are > 0!!! + + // interpolate r0 reciprocally: + r0 = 1.0 / ((order - 1.0) / singleStretch->r0 + (2.0 - order) / doubleStretch->r0); + + // interpolate ks and de linearly: + ks = (order - 1.0) * singleStretch->ks + (2.0 - order) * doubleStretch->ks ; + de = (order - 1.0) * singleStretch->de + (2.0 - order) * doubleStretch->de ; + + beta = sqrt(ks / (2.0 * de)); + return addBondStretch(bondName, ks, r0, de, beta*1e-2, findInflectionR(r0, ks, de), QUALITY_INTERPOLATED, 0); +} + +/* generate a (hopefully not too bogus) set of bond stretch parameters + for a bond type that we haven't entered real data for */ +static struct bondStretch * +generateGenericBondStretch(char *bondName, int element1, int element2, char bondOrder) +{ + double ks, r0, de, beta; + int quality = QUALITY_GUESSED; + + switch (bondOrder) { + default: // XXX Falls through to single bond case. WRONG!!!! + quality = QUALITY_INACCURATE; + case '1': + ks = 0.0; + de = getDe(bondName); + beta = 0.0; + r0 = getAtomTypeByIndex(element1)->covalentRadius + getAtomTypeByIndex(element2)->covalentRadius ; + if (r0 <= 0.0) { + // XXX warn about this + // maybe better to just fill out the periodic table... + r0 = 1.0; + } + beta = 0.4 + 125.0 / (r0 * de); + ks = 200.0 * de * beta * beta ; + if (ks > 1000.0) { + ks = 1000.0; + } + break; + case 'a': + return interpolateGenericBondStretch(bondName, element1, element2, 1.5); + case 'g': + return interpolateGenericBondStretch(bondName, element1, element2, 1.3333333333333); + case '2': + quality = QUALITY_INACCURATE; + ks = 0.0; + de = getDe(bondName); + beta = 0.0; + r0 = getAtomTypeByIndex(element1)->covalentRadius + getAtomTypeByIndex(element2)->covalentRadius ; + if (r0 <= 0.0) { + // XXX warn about this + // maybe better to just fill out the periodic table... + r0 = 1.0; + } + r0 *= 0.8; // XXX this is just completly wrong, assuming double bonds are 80% shorter than single + beta = 0.4 + 125.0 / (r0 * de); + ks = 200.0 * de * beta * beta ; + if (ks > 1000.0) { + ks = 1000.0; + } + break; + case '3': + quality = QUALITY_INACCURATE; + ks = 0.0; + de = getDe(bondName); + beta = 0.0; + r0 = getAtomTypeByIndex(element1)->covalentRadius + getAtomTypeByIndex(element2)->covalentRadius ; + if (r0 <= 0.0) { + // XXX warn about this + // maybe better to just fill out the periodic table... + r0 = 1.0; + } + r0 *= 0.7; // XXX this is just completly wrong, assuming triple bonds are 70% shorter than single + beta = 0.4 + 125.0 / (r0 * de); + ks = 200.0 * de * beta * beta ; + if (ks > 1000.0) { + ks = 1000.0; + } + } + + return addBondStretch(bondName, ks, r0, de, beta*1e-2, findInflectionR(r0, ks, de), quality, 0); +} + +/* generate a (hopefully not too bogus) set of bond stretch parameters + for a bond type that we haven't entered real data for */ +static struct bendData * +generateGenericBendData(char *bendName, + int element_center, + enum hybridization centerHybridization, + int element1, + char bondOrder1, + int element2, + char bondOrder2) +{ + double len; + double kb, theta0; + + // XXX only correct for bond order 1 on both bonds FIX!!! + + len = getAtomTypeByIndex(element_center)->covalentRadius + + getAtomTypeByIndex(element1)->covalentRadius + + getAtomTypeByIndex(element2)->covalentRadius; + + kb = 45e6 / (len * len) + len * 1.3 - 475.0; + if (kb > 2000.0) { + kb = 2000.0; + } + + switch (centerHybridization) { + case sp: + theta0 = Pi; + break; + case sp2: + case sp2_g: + theta0 = 2.0 * Pi / 3.0; + break; + case sp3: + theta0 = 1.9106; + break; + case sp3d: + // XXX also need axial/equatorial info + theta0 = Pi / 2.0; + break; + default: + theta0 = 1.9106; + break; + } + + // kb in zeptoJoules / radian^2 (1e-21 J/rad^2) + + return addBendData(bendName, kb*1000.0, theta0, 1); +} + +static struct bondStretch * +getBondStretchEntry(int element1, int element2, char bondOrder) +{ + struct bondStretch *entry; + char bondName[10]; // expand if atom types become longer than 2 chars + + generateBondName(bondName, element1, element2, bondOrder); + entry = (struct bondStretch *)hashtable_get(bondStretchHashtable, bondName); + if (entry == NULL) { + entry = generateGenericBondStretch(bondName, element1, element2, bondOrder); + } + return entry; +} + +// returns distance in pm +double +getBondEquilibriumDistance(int element1, int element2, char bondOrder) +{ + struct bondStretch *stretch; + + stretch = getBondStretchEntry(element1, element2, bondOrder); + return stretch->r0; +} + +struct bondStretch * +getBondStretch(int element1, int element2, char bondOrder) +{ + struct bondStretch *entry; + char bondName[10]; // expand if atom types become longer than 2 chars + + entry = getBondStretchEntry(element1, element2, bondOrder); + if (entry->parameterQuality < QualityWarningLevel && !entry->warned) { + if (!ComputedParameterWarning) { + WARNING("Using a reduced quality parameter, see the trace output for details"); + ComputedParameterWarning = 1; + } + generateBondName(bondName, element1, element2, bondOrder); + INFO2("Using quality %d parameters for %s stretch", entry->parameterQuality, bondName); + INFO4("Computed ks: %e, r0: %e, de: %e, beta: %e", + entry->ks, + entry->r0, + entry->de, + entry->beta); + entry->warned = 1; + } + if (entry->maxPhysicalTableIndex == -1) { + // Only call initializeBondStretchInterpolater when we're actually + // going to use it. That way, we don't warn about too large of an + // ExcessiveEnergyLevel + initializeBondStretchInterpolater(entry); + } + return entry; +} + +struct bendData * +getBendData(int element_center, + enum hybridization centerHybridization, + int element1, + char bondOrder1, + int element2, + char bondOrder2) +{ + struct bendData *bend; + char bendName[25]; // expand if atom types become longer than 2 chars + + generateBendName(bendName, element_center, centerHybridization, element1, bondOrder1, element2, bondOrder2); + bend = (struct bendData *)hashtable_get(bendDataHashtable, bendName); + if (bend == NULL) { + bend = generateGenericBendData(bendName, element_center, centerHybridization, element1, bondOrder1, element2, bondOrder2); + } + if (bend->parameterQuality < QualityWarningLevel && !bend->warned) { + if (!ComputedParameterWarning) { + WARNING("Using a reduced quality parameter, see the trace output for details"); + ComputedParameterWarning = 1; + } + INFO2("Using quality %d parameters for %s bend", bend->parameterQuality, bendName); + INFO2("Computed kb: %e, theta0: %e", bend->kb, bend->theta0); + bend->warned = 1; + } + return bend; +} + +struct vanDerWaalsParameters * +getVanDerWaalsTable(int element1, int element2) +{ + struct vanDerWaalsParameters *vdw; + char bondName[10]; // expand if atom types become longer than 2 chars + + generateBondName(bondName, element1, element2, 'v'); + vdw = (struct vanDerWaalsParameters *)hashtable_get(vanDerWaalsHashtable, bondName); + if (vdw == NULL) { + vdw = generateVanDerWaals(bondName, element1, element2); + } + return vdw; +} + +struct electrostaticParameters * +getElectrostaticParameters(int element1, int element2) +{ + struct electrostaticParameters *es; + char electrostaticName[10]; + + generateBondName(electrostaticName, element1, element2, 'e'); + es = (struct electrostaticParameters *)hashtable_get(electrostaticHashtable, electrostaticName); + if (es == NULL) { + es = generateElectrostatic(electrostaticName, element1, element2); + } + return es; +} + + +#if 0 +static void +compare(char *bondName, char *parameter, double old, double new) +{ + if (fabs(old - new) > 0.005) { + printf("%s %s old %f new %f dif: %f\n", bondName, parameter, old, new, old-new); + } +} + +void +testNewBondStretchTable() +{ + int i; + int e1, e2; + double ks, r0, de, beta; + struct bondStretch *stretch; + int b1typ, b2typ, b1, b2, ec1, ec2; + double kb, theta0; + struct bendData *bend; + + initializeBondTable(); + for (i=0; i<BSTABSIZE; i++) { + e1 = bstab[i].a1; + e2 = bstab[i].a2; + ks = bstab[i].ks; + r0 = bstab[i].r0; + de = bstab[i].de; + beta = bstab[i].beta; + stretch = getBondStretch(e1, e2, '1'); + compare(stretch->bondName, "ks", ks, stretch->ks); + compare(stretch->bondName, "r0", r0, stretch->r0); + compare(stretch->bondName, "de", de, stretch->de); + compare(stretch->bondName, "beta", beta, stretch->beta); + } + for (i=0; i<BENDATASIZE; i++) { + b1typ = bendata[i].b1typ; + b2typ = bendata[i].b2typ; + b1 = findbond(b1typ); + b2 = findbond(b2typ); + e1 = b1typ < 0 ? bstab[b1].a1 : bstab[b1].a2 ; + e2 = b2typ < 0 ? bstab[b2].a1 : bstab[b2].a2 ; + ec1 = b1typ < 0 ? bstab[b1].a2 : bstab[b1].a1 ; + ec2 = b2typ < 0 ? bstab[b2].a2 : bstab[b2].a1 ; + + kb = bendata[i].kb; + theta0 = bendata[i].theta0; + bend = getBendData(ec1, e1, '1', e2, '1'); + //printf("%s %f %f\n", bend->bendName, kb, theta0); + compare(bend->bendName, "kb", kb/1000000.0, bend->kb/1000000.0); + compare(bend->bendName, "theta0", theta0, bend->theta0); + } + exit(0); +} +#endif diff --git a/sim/src/newtables.h b/sim/src/newtables.h new file mode 100755 index 000000000..2fb75f9f9 --- /dev/null +++ b/sim/src/newtables.h @@ -0,0 +1,179 @@ +// Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. +#ifndef NEWTABLES_H_INCLUDED +#define NEWTABLES_H_INCLUDED + +#define RCSID_NEWTABLES_H "$Id$" + +/** table length for bond stretch/bending functions */ +#define TABLEN 150 + +#define QUALITY_INTERPOLATED 4 +#define QUALITY_GUESSED 3 +#define QUALITY_INACCURATE 0 + + +struct interpolationTable { + double start; + double scale; + // y = ax^3 + bx^2 + cx + d or... + // y = ((ax + b)x + c)x + d + // y' = 3ax^2 + 2bx + c or... + // y' = (3ax + 2b)x + c + double a[TABLEN]; + double b[TABLEN]; + double c[TABLEN]; + double d[TABLEN]; +}; + +struct bondStretch +{ + char *bondName; + + /** bond type, atom types & order */ + //int typ, ord, a1, a2; + + double ks; // stiffness in N/m + double r0; // base radius in pm, or 1e-12 m + double de; // aJ, or 1e-18 J + double beta; // sqrt(ks/2 de), 1e12 m^-1, for Morse + + double inflectionR; // r value in pm where d^2(Lippincott(r)) / dr^2 == 0 + + // These are the indices into the interpolation tables where the + // potential exceeds ExcessiveEnergyLevel. If a dynamics run + // references table entries outside these bounds, a warning will be + // emitted. + int maxPhysicalTableIndex; + int minPhysicalTableIndex; + + // For minimize, the potential function extends as a cubic + // polynomial beyond the end of the interpolation table: + // potential = potentialExtensionA + // + potentialExtensionB * r + // + potentialExtensionC * r^2 + // + potentialExtensionD * r^3 + double potentialExtensionA; + double potentialExtensionB; + double potentialExtensionC; + double potentialExtensionD; + + int parameterQuality; // how sure are we of these parameters + int quadratic; // non-zero if this stretch should be pure quadratic, instead of Lippincott-Morse + int warned; // set to non-zero if a warning about using this entry has been printed + + struct interpolationTable LippincottMorse; +}; + +struct vanDerWaalsParameters +{ + char *vdwName; + + double rvdW; // in pm (1e-12 m) + double evdW; // in zJ (1e-21 J) + + // Transition interval for smooth cutoff. Normal function is used + // for 0<r<cutoffRadiusStart. For + // cutoffRadiusStart<r<cutoffRadiusEnd the function is multiplied by + // a smooth transition function. For cutoffRadiusEnd<r, the value + // is identically zero. See smoothCutoff() in interpolate.c. If + // cutoffRadiusEnd<=cutoffRadiusStart, no transition function is + // used, instead, the potential is translated by vInfinity, so it + // reaches zero at cutoffRadiusEnd. + double cutoffRadiusStart; // in pm (1e-12 m) + double cutoffRadiusEnd; // in pm (1e-12 m) + + // If no transition function is used, we subtract vInfinity from the + // potential, so it reaches zero at the end of the interpolation + // table, rather than have a step there. + // XXX This changes the depth of the potential well, which may be a problem. + double vInfinity; // potential at "infinity", the end of the interpolation table + + // Index into the interpolation tables where the potential exceeds + // ExcessiveEnergyLevel. If a dynamics run references a table entry + // at less than this index, a warning will be emitted. + int minPhysicalTableIndex; + + struct interpolationTable Buckingham; +}; + +struct electrostaticParameters +{ + char *electrostaticName; + + double k; // in aJ pm (1e-30 J m), potential is k/r, gradient is -k/r^2 + + double vInfinity; // potential at "infinity", the end of the interpolation table + + double cutoffRadiusStart; // in pm (1e-12 m) + double cutoffRadiusEnd; // in pm (1e-12 m) + + // Index into the interpolation tables where the potential exceeds + // ExcessiveEnergyLevel. If a dynamics run references a table entry + // at less than this index, a warning will be emitted. + int minPhysicalTableIndex; + + struct interpolationTable Coulomb; +}; + +struct deTableEntry +{ + double de; +}; + +struct bendData +{ + char *bendName; + double kb; // stiffness in yJ / rad^2 (1e-24 J/rad^2) + double theta0; + double cosTheta0; + + int parameterQuality; // how sure are we of these parameters + int warned; // set to non-zero if a warning about using this entry has been printed +}; + +#define MAX_ELEMENT 109 + +struct atomType +{ + int protons; + int group; + int period; + char symbol[4]; + char *name; + double mass; // yg, or yoctograms, or 1e-24 g + double vanDerWaalsRadius; // Angstroms, or 1e-10 m + double e_vanDerWaals; // zJ, or zeptoJoules, or 1e-21 J + int n_bonds; + double covalentRadius; // pm, or 1e-12 m + double charge; // multiple of proton charge + int refCount; +}; + +extern struct atomType *getAtomTypeByIndex(int atomTypeIndex); + +extern int isAtomTypeValid(int atomTypeIndex); + +extern struct atomType *getAtomTypeByName(char *symbol); + +extern void initializeBondTable(void); + +extern void destroyBondTable(void); + +extern void reInitializeBondTable(void); + +extern double getBondEquilibriumDistance(int element1, int element2, char bondOrder); + +extern struct bondStretch *getBondStretch(int element1, int element2, char bondOrder); + +extern struct bendData *getBendData(int element_center, + enum hybridization centerHybridization, + int element1, + char bondOrder1, + int element2, + char bondOrder2); + +extern struct vanDerWaalsParameters *getVanDerWaalsTable(int element1, int element2); + +extern struct electrostaticParameters *getElectrostaticParameters(int element1, int element2); + +#endif diff --git a/sim/src/onetest.py b/sim/src/onetest.py new file mode 100755 index 000000000..1f1124be8 --- /dev/null +++ b/sim/src/onetest.py @@ -0,0 +1,26 @@ +#!/usr/bin/python +# Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. + +# usage: +# +# onetest.py <test_name> [args for tests.py] +# +# runs a single regression test by name +# + +import sys +import tests + +class Main(tests.Main): + def main(self, args): + self.theTest = args[0] + tests.Main.main(self, args[1:]) + + def getCasenames(self): + return [ + self.theTest + ] + + +if __name__ == "__main__": + Main().main(sys.argv[1:]) diff --git a/sim/src/parameters/VQT.py b/sim/src/parameters/VQT.py new file mode 100755 index 000000000..5ae50ff4a --- /dev/null +++ b/sim/src/parameters/VQT.py @@ -0,0 +1,375 @@ +# Copyright (c) 2004 Nanorex, Inc. All rights reserved. +""" +VQT.py + +Vectors, Quaternions, and Trackballs + +Vectors are a simplified interface to the Numeric arrays. +A relatively full implementation of Quaternions. +Trackball produces incremental quaternions using a mapping of the screen +onto a sphere, tracking the cursor on the sphere. + +$Id$ +""" + +import math, types +from math import * +from Numeric import * +from LinearAlgebra import * + +intType = type(2) +floType = type(2.0) +numTypes = [intType, floType] + +def V(*v): return array(v, Float) +def A(a): return array(a, Float) + +def cross(v1, v2): + return V(v1[1]*v2[2] - v1[2]*v2[1], + v1[2]*v2[0] - v1[0]*v2[2], + v1[0]*v2[1] - v1[1]*v2[0]) + +def vlen(v1): return sqrt(dot(v1, v1)) + +def norm(v1): + lng = vlen(v1) + if lng: + return v1 / lng + # bruce 041012 optimized this by using lng instead of + # recomputing vlen(v1) -- code was v1 / vlen(v1) + else: return v1+0 + + +# p1 and p2 are points, v1 is a direction vector from p1. +# return (dist, wid) where dist is the distance from p1 to p2 +# measured in the direction of v1, and wid is the orthogonal +# distance from p2 to the p1-v1 line. +# v1 should be a unit vector. +def orthodist(p1, v1, p2): + dist = dot(v1, p2-p1) + wid = vlen(p1+dist*v1-p2) + return (dist, wid) + +class Q: + """Q(W, x, y, z) is the quaternion with axis vector x,y,z + and sin(theta/2) = W + (e.g. Q(1,0,0,0) is no rotation) + Q(x, y, z) where x, y, and z are three orthonormal vectors + is the quaternion that rotates the standard axes into that + reference frame. (the frame has to be right handed, or there's + no quaternion that can do it!) + Q(V(x,y,z), theta) is what you probably want. + Q(vector, vector) gives the quat that rotates between them + """ + def __init__(self, x, y=None, z=None, w=None): + # 4 numbers + if w != None: self.vec=V(x,y,z,w) + elif z: # three axis vectors + # Just use first two + a100 = V(1,0,0) + c1 = cross(a100,x) + if vlen(c1)<0.000001: + self.vec = Q(y,z).vec + return + ax1 = norm((a100+x)/2.0) + x2 = cross(ax1,c1) + a010 = V(0,1,0) + c2 = cross(a010,y) + if vlen(c2)<0.000001: + self.vec = Q(x,z).vec + return + ay1 = norm((a010+y)/2.0) + y2 = cross(ay1,c2) + axis = cross(x2, y2) + nw = sqrt(1.0 + x[0] + y[1] + z[2])/2.0 + axis = norm(axis)*sqrt(1.0-nw**2) + self.vec = V(nw, axis[0], axis[1], axis[2]) + + elif type(y) in numTypes: + # axis vector and angle + v = (x / vlen(x)) * sin(y*0.5) + self.vec = V(cos(y*0.5), v[0], v[1], v[2]) + elif y: + # rotation between 2 vectors + x = norm(x) + y = norm(y) + v = cross(x, y) + theta = acos(min(1.0,max(-1.0,dot(x, y)))) + if dot(y, cross(x, v)) > 0.0: + theta = 2.0 * pi - theta + w=cos(theta*0.5) + vl = vlen(v) + # null rotation + if w==1.0: self.vec=V(1, 0, 0, 0) + # opposite pole + elif vl<0.000001: + ax1 = cross(x,V(1,0,0)) + ax2 = cross(x,V(0,1,0)) + if vlen(ax1)>vlen(ax2): + self.vec = norm(V(0, ax1[0],ax1[1],ax1[2])) + else: + self.vec = norm(V(0, ax2[0],ax2[1],ax2[2])) + else: + s=sqrt(1-w**2)/vl + self.vec=V(w, v[0]*s, v[1]*s, v[2]*s) + elif type(x) in numTypes: + # just one number + self.vec=V(1, 0, 0, 0) + else: + self.vec=V(x[0], x[1], x[2], x[3]) + self.counter = 50 + + def __getattr__(self, name): + if name == 'w': + return self.vec[0] + elif name in ('x', 'i'): + return self.vec[1] + elif name in ('y', 'j'): + return self.vec[2] + elif name in ('z', 'k'): + return self.vec[3] + elif name == 'angle': + if -1.0<self.vec[0]<1.0: return 2.0*acos(self.vec[0]) + else: return 0.0 + elif name == 'axis': + return V(self.vec[1], self.vec[2], self.vec[3]) + elif name == 'matrix': + # this the transpose of the normal form + # so we can use it on matrices of row vectors + self.__dict__['matrix'] = array([\ + [1.0 - 2.0*(self.y**2 + self.z**2), + 2.0*(self.x*self.y + self.z*self.w), + 2.0*(self.z*self.x - self.y*self.w)], + [2.0*(self.x*self.y - self.z*self.w), + 1.0 - 2.0*(self.z**2 + self.x**2), + 2.0*(self.y*self.z + self.x*self.w)], + [2.0*(self.z*self.x + self.y*self.w), + 2.0*(self.y*self.z - self.x*self.w), + 1.0 - 2.0 * (self.y**2 + self.x**2)]]) + return self.__dict__['matrix'] + else: + raise AttributeError, 'No "%s" in Quaternion' % name + + def __getitem__(self, num): + return self.vec[num] + + def setangle(self, theta): + """Set the quaternion's rotation to theta (destructive modification). + (In the same direction as before.) + """ + theta = remainder(theta/2.0, pi) + self.vec[1:] = norm(self.vec[1:]) * sin(theta) + self.vec[0] = cos(theta) + self.__reset() + return self + + + def __reset(self): + if self.__dict__.has_key('matrix'): + del self.__dict__['matrix'] + + + def __setattr__(self, name, value): + if name=="w": self.vec[0] = value + elif name=="x": self.vec[1] = value + elif name=="y": self.vec[2] = value + elif name=="z": self.vec[3] = value + else: self.__dict__[name] = value + + + def __len__(self): + return 4 + + + def __add__(self, q1): + """Q + Q1 is the quaternion representing the rotation achieved + by doing Q and then Q1. + """ + return Q(q1.w*self.w - q1.x*self.x - q1.y*self.y - q1.z*self.z, + q1.w*self.x + q1.x*self.w + q1.y*self.z - q1.z*self.y, + q1.w*self.y - q1.x*self.z + q1.y*self.w + q1.z*self.x, + q1.w*self.z + q1.x*self.y - q1.y*self.x + q1.z*self.w) + + def __iadd__(self, q1): + """this is self += q1 + """ + temp=V(q1.w*self.w - q1.x*self.x - q1.y*self.y - q1.z*self.z, + q1.w*self.x + q1.x*self.w + q1.y*self.z - q1.z*self.y, + q1.w*self.y - q1.x*self.z + q1.y*self.w + q1.z*self.x, + q1.w*self.z + q1.x*self.y - q1.y*self.x + q1.z*self.w) + self.vec=temp + + self.counter -= 1 + if self.counter <= 0: + self.counter = 50 + self.normalize() + self.__reset() + + return self + + def __sub__(self, q1): + return self + (-q1) + + def __isub__(self, q1): + return __iadd__(self, -q1) + + + def __mul__(self, n): + """multiplication by a scalar, i.e. Q1 * 1.3, defined so that + e.g. Q1 * 2 == Q1 + Q1, or Q1 = Q1*0.5 + Q1*0.5 + Python syntax makes it hard to do n * Q, unfortunately. + """ + if type(n) in numTypes: + nq = +self + nq.setangle(n*self.angle) + return nq + else: + raise MulQuat + + def __imul__(self, q2): + if type(n) in numTypes: + self.setangle(n*self.angle) + self.__reset() + return self + else: + raise MulQuat + + + + def __div__(self, q2): + return self*q2.conj()*(1.0/(q2*q2.conj()).w) + + + def __repr__(self): + return 'Q(%g, %g, %g, %g)' % (self.w, self.x, self.y, self.z) + + def __str__(self): + a= "<q:%6.2f @ " % (2.0*acos(self.w)*180/pi) + l = sqrt(self.x**2 + self.y**2 + self.z**2) + if l: + z=V(self.x, self.y, self.z)/l + a += "[%4.3f, %4.3f, %4.3f] " % (z[0], z[1], z[2]) + else: a += "[%4.3f, %4.3f, %4.3f] " % (self.x, self.y, self.z) + a += "|%8.6f|>" % vlen(self.vec) + return a + + def __pos__(self): + return Q(self.w, self.x, self.y, self.z) + + def __neg__(self): + return Q(self.w, -self.x, -self.y, -self.z) + + def conj(self): + return Q(self.w, -self.x, -self.y, -self.z) + + def normalize(self): + w=self.vec[0] + v=V(self.vec[1],self.vec[2],self.vec[3]) + length = vlen(v) + if length: + s=sqrt(1.0-w**2)/length + self.vec = V(w, v[0]*s, v[1]*s, v[2]*s) + else: self.vec = V(1,0,0,0) + return self + + def unrot(self,v): + return matrixmultiply(self.matrix,v) + + def vunrot(self,v): + # for use with row vectors + return matrixmultiply(v,transpose(self.matrix)) + + def rot(self,v): + return matrixmultiply(v,self.matrix) + +def twistor(axis, pt1, pt2): + """return the quaternion that, rotating around axis, will bring + pt1 closest to pt2. + """ + q = Q(axis, V(0,0,1)) + pt1 = q.rot(pt1) + pt2 = q.rot(pt2) + a1 = atan2(pt1[1],pt1[0]) + a2 = atan2(pt2[1],pt2[0]) + theta = a2-a1 + return Q(axis, theta) + + +# project a point from a tangent plane onto a unit sphere +def proj2sphere(x, y): + d = sqrt(x*x + y*y) + theta = pi * 0.5 * d + s=sin(theta) + if d>0.0001: return V(s*x/d, s*y/d, cos(theta)) + else: return V(0.0, 0.0, 1.0) + +class Trackball: + '''A trackball object. The current transformation matrix + can be retrieved using the "matrix" attribute.''' + + def __init__(self, wide, high): + '''Create a Trackball object. + "size" is the radius of the inner trackball + sphere. ''' + self.w2=wide/2.0 + self.h2=high/2.0 + self.scale = 1.1 / min(wide/2.0, high/2.0) + self.quat = Q(1,0,0,0) + self.oldmouse = None + + def rescale(self, wide, high): + self.w2=wide/2.0 + self.h2=high/2.0 + self.scale = 1.1 / min(wide/2.0, high/2.0) + + def start(self, px, py): + self.oldmouse=proj2sphere((px-self.w2)*self.scale, + (self.h2-py)*self.scale) + + def update(self, px, py, uq=None): + newmouse = proj2sphere((px-self.w2)*self.scale, + (self.h2-py)*self.scale) + if self.oldmouse and not uq: + quat = Q(self.oldmouse, newmouse) + elif self.oldmouse and uq: + quat = uq + Q(self.oldmouse, newmouse) - uq + else: + quat = Q(1,0,0,0) + self.oldmouse = newmouse + return quat + +def ptonline(xpt, lpt, ldr): + """return the point on a line (point lpt, direction ldr) + nearest to point xpt + """ + ldr = norm(ldr) + return dot(xpt-lpt,ldr)*ldr + lpt + +def planeXline(ppt, pv, lpt, lv): + """find the intersection of a line (point lpt, vector lv) + with a plane (point ppt, normal pv) + return None if (almost) parallel + (warning to callers: retvals other than None might still be false, + e.g. V(0,0,0) -- untested, but likely; so don't use retval as boolean) + """ + d=dot(lv,pv) + if abs(d)<0.000001: return None + return lpt+lv*(dot(ppt-lpt,pv)/d) + +def cat(a,b): + """concatenate two arrays (the NumPy version is a mess) + """ + if not a: return b + if not b: return a + r1 = shape(a) + r2 = shape(b) + if len(r1) == len(r2): return concatenate((a,b)) + if len(r1)<len(r2): + return concatenate((reshape(a,(1,)+r1), b)) + else: return concatenate((a,reshape(b,(1,)+r2))) + +def Veq(v1, v2): + "tells if v1 is all equal to v2" + return logical_and.reduce(v1==v2) + +__author__ = "Josh" diff --git a/sim/src/parameters/VQT.pyc b/sim/src/parameters/VQT.pyc Binary files differnew file mode 100755 index 000000000..cfad186b6 --- /dev/null +++ b/sim/src/parameters/VQT.pyc diff --git a/sim/src/parameters/am1 b/sim/src/parameters/am1 new file mode 100755 index 000000000..816055b35 --- /dev/null +++ b/sim/src/parameters/am1 @@ -0,0 +1,9 @@ +#! /usr/bin/python + +import os +import sys + +for name in sys.argv[1:]: + if name[-4:] == '.inp': name = name[:-4] + os.system("rungms %s 1 > %s.log" % (name,name)) + diff --git a/sim/src/parameters/angles/moieties/+C-.moi b/sim/src/parameters/angles/moieties/+C-.moi new file mode 100755 index 000000000..9c37655c3 --- /dev/null +++ b/sim/src/parameters/angles/moieties/+C-.moi @@ -0,0 +1,4 @@ + theta = 90 + C1 + X1 C1 1 + X2 C1 1 X1 90 diff --git a/sim/src/parameters/angles/moieties/-B-.moi b/sim/src/parameters/angles/moieties/-B-.moi new file mode 100755 index 000000000..75ce8d3b6 --- /dev/null +++ b/sim/src/parameters/angles/moieties/-B-.moi @@ -0,0 +1,5 @@ + theta = 120 + B1 + X1 B1 1 + X2 B1 1 X1 90 + H1 B1 1.1938 X1 0 X2 0 diff --git a/sim/src/parameters/angles/moieties/-B.moi b/sim/src/parameters/angles/moieties/-B.moi new file mode 100755 index 000000000..8629fb65a --- /dev/null +++ b/sim/src/parameters/angles/moieties/-B.moi @@ -0,0 +1,4 @@ + B20 1 dxr X2 90 X1 -theta + X20 B20 1.1938 1 109.47 X2 0 + H21 B20 1.1938 1 109.47 X20 90 + H22 B20 1.1938 1 109.47 X20 -90 diff --git a/sim/src/parameters/angles/moieties/-C-.moi b/sim/src/parameters/angles/moieties/-C-.moi new file mode 100755 index 000000000..671319f5a --- /dev/null +++ b/sim/src/parameters/angles/moieties/-C-.moi @@ -0,0 +1,6 @@ + theta = 125.5 + C1 + X1 C1 1 + X2 C1 1 X1 90 + H1 C1 1.121 X1 54.735 X2 0 + H2 C1 1.121 X1 54.735 X2 180 diff --git a/sim/src/parameters/angles/moieties/-C.moi b/sim/src/parameters/angles/moieties/-C.moi new file mode 100755 index 000000000..89ed02144 --- /dev/null +++ b/sim/src/parameters/angles/moieties/-C.moi @@ -0,0 +1,4 @@ + C20 1 dxr X2 90 X1 -theta + H20 C20 1.121 1 109.47 X1 0 + H21 C20 1.121 1 109.47 H20 120 + H22 C20 1.121 1 109.47 H20 -120 diff --git a/sim/src/parameters/angles/moieties/-Cl.moi b/sim/src/parameters/angles/moieties/-Cl.moi new file mode 100755 index 000000000..ffa07a9f5 --- /dev/null +++ b/sim/src/parameters/angles/moieties/-Cl.moi @@ -0,0 +1 @@ + Cl20 1 dxr X2 90 X1 -theta diff --git a/sim/src/parameters/angles/moieties/-F.moi b/sim/src/parameters/angles/moieties/-F.moi new file mode 100755 index 000000000..f78bd7251 --- /dev/null +++ b/sim/src/parameters/angles/moieties/-F.moi @@ -0,0 +1 @@ + F20 1 dxr X2 90 X1 -theta diff --git a/sim/src/parameters/angles/moieties/-H.moi b/sim/src/parameters/angles/moieties/-H.moi new file mode 100755 index 000000000..a09efa9fe --- /dev/null +++ b/sim/src/parameters/angles/moieties/-H.moi @@ -0,0 +1 @@ + H20 1 dxr X2 90 X1 -theta diff --git a/sim/src/parameters/angles/moieties/-N-.moi b/sim/src/parameters/angles/moieties/-N-.moi new file mode 100755 index 000000000..fd7aa5cc4 --- /dev/null +++ b/sim/src/parameters/angles/moieties/-N-.moi @@ -0,0 +1,5 @@ + theta = 125.5 + N1 + X1 N1 1 + X2 N1 1 X1 90 + H1 N1 1.0163 X1 54.735 X2 0 diff --git a/sim/src/parameters/angles/moieties/-N.moi b/sim/src/parameters/angles/moieties/-N.moi new file mode 100755 index 000000000..ed4d816c7 --- /dev/null +++ b/sim/src/parameters/angles/moieties/-N.moi @@ -0,0 +1,4 @@ + N20 1 dxr X2 90 X1 -theta + X20 N20 1.0163 1 109.47 X1 0 + H21 N20 1.0163 1 109.47 X20 60 + H22 N20 1.0163 1 109.47 X20 -60 diff --git a/sim/src/parameters/angles/moieties/-O-.moi b/sim/src/parameters/angles/moieties/-O-.moi new file mode 100755 index 000000000..973c1b270 --- /dev/null +++ b/sim/src/parameters/angles/moieties/-O-.moi @@ -0,0 +1,4 @@ + theta = 126.6 + O1 + X1 O1 1 + X2 O1 1 X1 90 diff --git a/sim/src/parameters/angles/moieties/-O.moi b/sim/src/parameters/angles/moieties/-O.moi new file mode 100755 index 000000000..5ab730056 --- /dev/null +++ b/sim/src/parameters/angles/moieties/-O.moi @@ -0,0 +1,2 @@ + O20 1 dxr X2 90 X1 -theta + H20 O20 0.9653 1 106.8 X1 0 diff --git a/sim/src/parameters/angles/moieties/-P-.moi b/sim/src/parameters/angles/moieties/-P-.moi new file mode 100755 index 000000000..9f1d02291 --- /dev/null +++ b/sim/src/parameters/angles/moieties/-P-.moi @@ -0,0 +1,5 @@ + theta = 125.5 + P1 + X1 P1 1 + X2 P1 1 X1 90 + H1 P1 1.4033 X1 54.735 X2 0 diff --git a/sim/src/parameters/angles/moieties/-P.moi b/sim/src/parameters/angles/moieties/-P.moi new file mode 100755 index 000000000..038649ae2 --- /dev/null +++ b/sim/src/parameters/angles/moieties/-P.moi @@ -0,0 +1,4 @@ + P20 1 dxr X2 90 X1 -theta + X20 P20 1.4033 1 109.47 X1 0 + H21 P20 1.4033 1 109.47 X20 60 + H22 P20 1.4033 1 109.47 X20 -60 diff --git a/sim/src/parameters/angles/moieties/-S-.moi b/sim/src/parameters/angles/moieties/-S-.moi new file mode 100755 index 000000000..1fbc8f0a2 --- /dev/null +++ b/sim/src/parameters/angles/moieties/-S-.moi @@ -0,0 +1,4 @@ + theta = 126.6 + S1 + X1 S1 1 + X2 S1 1 X1 90 diff --git a/sim/src/parameters/angles/moieties/-S.moi b/sim/src/parameters/angles/moieties/-S.moi new file mode 100755 index 000000000..9a7ab95fc --- /dev/null +++ b/sim/src/parameters/angles/moieties/-S.moi @@ -0,0 +1,2 @@ + S20 1 dxr X2 90 X1 -theta + H20 S20 1.3493 1 106.8 X1 0 diff --git a/sim/src/parameters/angles/moieties/-Si-.moi b/sim/src/parameters/angles/moieties/-Si-.moi new file mode 100755 index 000000000..0832d5e66 --- /dev/null +++ b/sim/src/parameters/angles/moieties/-Si-.moi @@ -0,0 +1,6 @@ + theta = 125.5 + Si1 + X1 Si1 1 + X2 Si1 1 X1 90 + H1 Si1 1.4873 X1 54.735 X2 0 + H2 Si1 1.4873 X1 54.735 X2 180 diff --git a/sim/src/parameters/angles/moieties/-Si.moi b/sim/src/parameters/angles/moieties/-Si.moi new file mode 100755 index 000000000..45d0dba0e --- /dev/null +++ b/sim/src/parameters/angles/moieties/-Si.moi @@ -0,0 +1,4 @@ + Si20 1 dxr X2 90 X1 -theta + H20 Si20 1.4873 1 109.47 X1 0 + H21 Si20 1.4873 1 109.47 H20 120 + H22 Si20 1.4873 1 109.47 H20 -120 diff --git a/sim/src/parameters/angles/moieties/0placeholder b/sim/src/parameters/angles/moieties/0placeholder new file mode 100755 index 000000000..3d7edde50 --- /dev/null +++ b/sim/src/parameters/angles/moieties/0placeholder @@ -0,0 +1,3 @@ +This is just a placeholder so that files with names like "-B" and "-B-" +won't be the first thing on the CVS command line, and therefore won't +be interpreted as command line switches. diff --git a/sim/src/parameters/angles/moieties/=C-.moi b/sim/src/parameters/angles/moieties/=C-.moi new file mode 100755 index 000000000..5b93cbab6 --- /dev/null +++ b/sim/src/parameters/angles/moieties/=C-.moi @@ -0,0 +1,5 @@ + theta = 120 + C1 + X1 C1 1 + X2 C1 1 X1 90 + H1 C1 1.121 X1 0 X2 0 diff --git a/sim/src/parameters/angles/moieties/=N-.moi b/sim/src/parameters/angles/moieties/=N-.moi new file mode 100755 index 000000000..63c589dcb --- /dev/null +++ b/sim/src/parameters/angles/moieties/=N-.moi @@ -0,0 +1,4 @@ + theta = 120 + N1 + X1 N1 1 + X2 N1 1 X1 90 diff --git a/sim/src/parameters/angles/moieties/B-.moi b/sim/src/parameters/angles/moieties/B-.moi new file mode 100755 index 000000000..13a54117b --- /dev/null +++ b/sim/src/parameters/angles/moieties/B-.moi @@ -0,0 +1,4 @@ + B10 1 dxl X2 90 X1 theta + X10 B10 1.1938 1 109.47 X2 0 + H11 B10 1.1938 1 109.47 X10 90 + H12 B10 1.1938 1 109.47 X10 -90 diff --git a/sim/src/parameters/angles/moieties/C+.moi b/sim/src/parameters/angles/moieties/C+.moi new file mode 100755 index 000000000..193cd01e2 --- /dev/null +++ b/sim/src/parameters/angles/moieties/C+.moi @@ -0,0 +1,2 @@ + C10 1 dxl X2 90 X1 theta + H10 C10 1.121 1 180 X1 0 diff --git a/sim/src/parameters/angles/moieties/C-.moi b/sim/src/parameters/angles/moieties/C-.moi new file mode 100755 index 000000000..9a24389ea --- /dev/null +++ b/sim/src/parameters/angles/moieties/C-.moi @@ -0,0 +1,4 @@ + C10 1 dxl X2 90 X1 theta + H10 C10 1.121 1 109.47 X1 0 + H11 C10 1.121 1 109.47 H10 120 + H12 C10 1.121 1 109.47 H10 -120 diff --git a/sim/src/parameters/angles/moieties/C=.moi b/sim/src/parameters/angles/moieties/C=.moi new file mode 100755 index 000000000..c55eb7c60 --- /dev/null +++ b/sim/src/parameters/angles/moieties/C=.moi @@ -0,0 +1,4 @@ + C10 1 dxl X2 90 X1 theta + X10 C10 1.121 1 120 X2 0 + H11 C10 1.121 1 120 X10 90 + H12 C10 1.121 1 120 X10 -90 diff --git a/sim/src/parameters/angles/moieties/Cl-.moi b/sim/src/parameters/angles/moieties/Cl-.moi new file mode 100755 index 000000000..8d9f7311e --- /dev/null +++ b/sim/src/parameters/angles/moieties/Cl-.moi @@ -0,0 +1 @@ + Cl10 1 dxl X2 90 X1 theta diff --git a/sim/src/parameters/angles/moieties/F-.moi b/sim/src/parameters/angles/moieties/F-.moi new file mode 100755 index 000000000..9d5e98e78 --- /dev/null +++ b/sim/src/parameters/angles/moieties/F-.moi @@ -0,0 +1 @@ + F10 1 dxl X2 90 X1 theta diff --git a/sim/src/parameters/angles/moieties/H-.moi b/sim/src/parameters/angles/moieties/H-.moi new file mode 100755 index 000000000..15eb9b7ed --- /dev/null +++ b/sim/src/parameters/angles/moieties/H-.moi @@ -0,0 +1 @@ + H10 1 dxl X2 90 X1 theta diff --git a/sim/src/parameters/angles/moieties/N+.moi b/sim/src/parameters/angles/moieties/N+.moi new file mode 100755 index 000000000..bdd933513 --- /dev/null +++ b/sim/src/parameters/angles/moieties/N+.moi @@ -0,0 +1 @@ + N10 1 dxl X2 90 X1 theta diff --git a/sim/src/parameters/angles/moieties/N-.moi b/sim/src/parameters/angles/moieties/N-.moi new file mode 100755 index 000000000..8b525f9df --- /dev/null +++ b/sim/src/parameters/angles/moieties/N-.moi @@ -0,0 +1,4 @@ + N10 1 dxl X2 90 X1 theta + X10 N10 1.0163 1 109.47 X1 0 + H11 N10 1.0163 1 109.47 X10 60 + H12 N10 1.0163 1 109.47 X10 -60 diff --git a/sim/src/parameters/angles/moieties/N=.moi b/sim/src/parameters/angles/moieties/N=.moi new file mode 100755 index 000000000..08b9f9e9d --- /dev/null +++ b/sim/src/parameters/angles/moieties/N=.moi @@ -0,0 +1,2 @@ + N10 1 dxl X2 90 X1 theta + H10 N10 1.0163 1 109.47 X1 0 diff --git a/sim/src/parameters/angles/moieties/O-.moi b/sim/src/parameters/angles/moieties/O-.moi new file mode 100755 index 000000000..9602dbb7b --- /dev/null +++ b/sim/src/parameters/angles/moieties/O-.moi @@ -0,0 +1,2 @@ + O10 1 dxl X2 90 X1 theta + H10 O10 0.9653 1 106.8 X1 0 diff --git a/sim/src/parameters/angles/moieties/O=.moi b/sim/src/parameters/angles/moieties/O=.moi new file mode 100755 index 000000000..e51f4f002 --- /dev/null +++ b/sim/src/parameters/angles/moieties/O=.moi @@ -0,0 +1 @@ + O10 1 dxl X2 90 X1 theta diff --git a/sim/src/parameters/angles/moieties/P-.moi b/sim/src/parameters/angles/moieties/P-.moi new file mode 100755 index 000000000..f152b9b5b --- /dev/null +++ b/sim/src/parameters/angles/moieties/P-.moi @@ -0,0 +1,4 @@ + P10 1 dxl X2 90 X1 theta + X10 P10 1.4033 1 109.47 X1 0 + H11 P10 1.4033 1 109.47 X10 60 + H12 P10 1.4033 1 109.47 X10 -60 diff --git a/sim/src/parameters/angles/moieties/S-.moi b/sim/src/parameters/angles/moieties/S-.moi new file mode 100755 index 000000000..2a175cd42 --- /dev/null +++ b/sim/src/parameters/angles/moieties/S-.moi @@ -0,0 +1,2 @@ + S10 1 dxl X2 90 X1 theta + H10 S10 1.3493 1 106.8 X1 0 diff --git a/sim/src/parameters/angles/moieties/Si-.moi b/sim/src/parameters/angles/moieties/Si-.moi new file mode 100755 index 000000000..183ab2c1e --- /dev/null +++ b/sim/src/parameters/angles/moieties/Si-.moi @@ -0,0 +1,4 @@ + Si10 1 dxl X2 90 X1 theta + H10 Si10 1.4873 1 109.47 X1 0 + H11 Si10 1.4873 1 109.47 H10 120 + H12 Si10 1.4873 1 109.47 H10 -120 diff --git a/sim/src/parameters/angles/stretch.parms b/sim/src/parameters/angles/stretch.parms new file mode 100755 index 000000000..cd5cd459b --- /dev/null +++ b/sim/src/parameters/angles/stretch.parms @@ -0,0 +1,68 @@ +Cl-Cl Ks= 274.70 R0= 2.0454 De= 0.3145 +Cl-H Ks= 502.46 R0= 1.2872 De= 0.7163 +Cl-F Ks= 437.46 R0= 1.6696 De= 0.3873 +Cl-C Ks= 352.51 R0= 1.7961 De= 0.6352 +Cl-N Ks= 344.38 R0= 1.7579 De= 0.3575 +### Cl-O -- no energy zero +Cl-O Ks= 365.06 R0= 1.7226 De= 0.4910 +Cl-B Ks= 376.69 R0= 1.7490 De= 0.8529 +Cl-S Ks= 247.76 R0= 2.0945 De= 0.3779 +Cl-P Ks= 249.95 R0= 2.0709 De= 0.4061 +H-H Ks= 599.55 R0= 0.7432 De= 0.7763 +H-F Ks= 930.16 R0= 0.9282 De= 0.9595 +H-C Ks= 540.39 R0= 1.0875 De= 0.8397 +H-N Ks= 716.72 R0= 1.0163 De= 0.7920 +H-O Ks= 838.19 R0= 0.9653 De= 0.8485 +H-B Ks= 385.25 R0= 1.1938 De= 0.7747 +H-S Ks= 415.75 R0= 1.3493 De= 0.6438 +H-P Ks= 363.28 R0= 1.4033 De= 0.5327 +F-F Ks= 599.55 R0= 1.4111 De= 0.2414 +F-C Ks= 573.94 R0= 1.4183 De= 0.8204 +F-N Ks= 524.14 R0= 1.4138 De= 0.4805 +F-O Ks= 524.82 R0= 1.4284 De= 0.3222 +F-B Ks= 674.89 R0= 1.3298 De= 1.1693 +### F-S -- no energy zero +F-S Ks= 414.90 R0= 1.6726 De= 0.5560 +F-P Ks= 464.48 R0= 1.6298 De= 0.6214 +C+C Ks=1730.61 R0= 1.2085 De= 1.8689 +C-C Ks= 437.82 R0= 1.5488 De= 0.7578 +C-N Ks= 497.22 R0= 1.5036 De= 0.6519 +C-O Ks= 538.53 R0= 1.4570 De= 0.6953 +C-B Ks= 374.86 R0= 1.5709 De= 0.7836 +C-S Ks= 310.12 R0= 1.8444 De= 0.5671 +C-P Ks= 299.57 R0= 1.8514 De= 0.4918 +N-N Ks= 506.79 R0= 1.4608 De= 0.4548 +N-O Ks= 533.13 R0= 1.4246 De= 0.4571 +N-B Ks= 592.16 R0= 1.4282 De= 0.9424 +N-S Ks= 342.60 R0= 1.7715 De= 0.4387 +N-P Ks= 352.72 R0= 1.7607 De= 0.3841 +O-O Ks= 495.90 R0= 1.4427 De= 0.3277 +O-B Ks= 596.39 R0= 1.3882 De= 0.9424 +### O-S -- no energy zero +O-S Ks= 349.25 R0= 1.7332 De= 0.4774 +O-P Ks= 439.50 R0= 1.6698 De= 0.5014 +B-B Ks= 255.71 R0= 1.7579 De= 0.6481 +B-S Ks= 280.54 R0= 1.8715 De= 0.6401 +B-P Ks= 321.32 R0= 1.8405 De= 0.6418 +S-S Ks= 215.90 R0= 2.1596 De= 0.3505 +S-P Ks= 242.40 R0= 2.1221 De= 0.3651 +P-P Ks= 207.05 R0= 2.2003 De= 0.2030 +Cl-Si Ks= 275.90 R0= 2.0824 De= 0.7021 +H-Si Ks= 290.41 R0= 1.4873 De= 0.6601 +F-Si Ks= 507.97 R0= 1.6332 De= 0.9925 +Si-Si Ks= 165.22 R0= 2.3609 De= 0.5095 +Si-C Ks= 272.66 R0= 1.8880 De= 0.6522 +Si-N Ks= 359.22 R0= 1.7806 De= 0.6579 +Si-O Ks= 434.29 R0= 1.6951 De= 0.7898 +Si-B Ks= 204.42 R0= 2.0340 De= 0.5867 +Si-S Ks= 231.15 R0= 2.1730 De= 0.5644 +Si-P Ks= 201.44 R0= 2.2526 De= 0.4227 +C+N Ks=2004.91 R0= 1.1580 De= 1.6892 +### O=O -- no energy zero +O=O Ks=1257.24 R0= 1.2159 De= 0.2724 +O=C Ks=1359.14 R0= 1.2118 De= 1.2578 +C=C Ks= 988.51 R0= 1.3344 De= 1.2708 +N+N Ks=2477.70 R0= 1.1054 De= 1.5347 +N=N Ks=1278.37 R0= 1.2315 De= 0.8346 +N=O Ks=1320.74 R0= 1.2056 De= 0.7920 +N=C Ks=1167.02 R0= 1.2701 De= 1.1232 diff --git a/sim/src/parameters/bending.parms b/sim/src/parameters/bending.parms new file mode 100755 index 000000000..3853aa571 --- /dev/null +++ b/sim/src/parameters/bending.parms @@ -0,0 +1,769 @@ +B-B-B theta0= 2.05289932288 Ktheta= 0.197581523174 +B-B-C theta0= 2.08624096827 Ktheta= 0.315333105014 +B-B-Cl theta0= 2.02538090734 Ktheta= 0.321247268994 +B-B-F theta0= 2.14814922413 Ktheta= 0.496539367358 +B-B-H theta0= 2.15570735751 Ktheta= 0.302187224917 +B-B-N theta0= 2.01394799603 Ktheta= 0.241687811975 +B-B-O theta0= 2.12886951191 Ktheta= 0.500343247001 +B-B-P theta0= 1.61756247378 Ktheta= 0.338196181835 +B-B-S theta0= 2.0189376229 Ktheta= 0.389322713295 +B-B-Si theta0= 1.95615291319 Ktheta= 0.338914499363 +B-C-B theta0= 1.68651632476 Ktheta= 1.18277763618 +B-C-C theta0= 1.63617010526 Ktheta= 1.45480863161 +B-C-Cl theta0= 1.5425559044 Ktheta= 1.89235954027 +B-C-F theta0= 1.62404100285 Ktheta= 0.758293867045 +B-C-H theta0= 1.81478310766 Ktheta= 0.352011548448 +B-C-N theta0= 1.39508106627 Ktheta= 1.35258630192 +B-C-O theta0= 1.61452829559 Ktheta= 0.797332164447 +B-C-P theta0= 1.47698457406 Ktheta= 2.0231715236 +B-C-S theta0= 1.61610433307 Ktheta= 1.55201424954 +B-C-Si theta0= 1.64472301455 Ktheta= 1.87653446525 +B-N-B theta0= 1.74906534293 Ktheta= 1.06103268115 +B-N-C theta0= 1.67586351524 Ktheta= 1.37069553624 +B-N-Cl theta0= 1.56012320381 Ktheta= 2.10265292875 +B-N-F theta0= 1.57581027233 Ktheta= 0.988976920937 +B-N-H theta0= 2.12135833553 Ktheta= 0.166905397492 +B-N-N theta0= 1.44069242177 Ktheta= 1.72522569206 +B-N-O theta0= 1.6255414512 Ktheta= 0.838098626752 +B-N-P theta0= 1.54158437066 Ktheta= 2.13522392859 +B-N-S theta0= 1.66252746168 Ktheta= 1.46551044973 +B-N-Si theta0= 1.70215355447 Ktheta= 1.71149370531 +B-O-B theta0= 1.77038113211 Ktheta= 0.768420349435 +B-O-C theta0= 1.63039269115 Ktheta= 1.89315341487 +B-O-Cl theta0= 1.52815951064 Ktheta= 2.94596503653 +B-O-F theta0= 1.48744105739 Ktheta= 1.69743948634 +B-O-H theta0= 2.60591200233 Ktheta= 0.197400822031 +B-O-N theta0= 1.4189940676 Ktheta= 2.58453004573 +B-O-O theta0= 1.52281529792 Ktheta= 1.50973968952 +B-O-P theta0= 1.52568272422 Ktheta= 3.13318689876 +B-O-S theta0= 1.61657065788 Ktheta= 2.04005758108 +B-O-Si theta0= 1.6819248297 Ktheta= 2.14028817397 +B-P-B theta0= 1.62140481716 Ktheta= 0.689215840912 +B-P-C theta0= 1.65818360297 Ktheta= 0.609280340499 +B-P-Cl theta0= 1.47461842621 Ktheta= 0.868363683964 +B-P-F theta0= 1.61781683906 Ktheta= 0.339624680232 +B-P-H theta0= 1.82581344328 Ktheta= 0.257815012025 +B-P-N theta0= 1.02765172454 Ktheta= 0.244553473201 +B-P-O theta0= 1.70148807706 Ktheta= 0.329064745912 +B-P-P theta0= 1.37917549652 Ktheta= 0.678457216625 +B-P-S theta0= 1.60195269912 Ktheta= 0.749004300625 +B-P-Si theta0= 1.60850949695 Ktheta= 0.913977451802 +B-S-B theta0= 1.57907039668 Ktheta= 0.848341761766 +B-S-C theta0= 1.51774858191 Ktheta= 1.11040764164 +B-S-Cl theta0= 1.40132569952 Ktheta= 1.26070702131 +B-S-F theta0= 1.40288377364 Ktheta= 0.517557687851 +B-S-H theta0= 1.56752231477 Ktheta= 0.381616887017 +B-S-N theta0= 0.926969878617 Ktheta= 0.447526447894 +B-S-O theta0= 1.41606323445 Ktheta= 0.481357242412 +B-S-P theta0= 1.32740275087 Ktheta= 1.30794853028 +B-S-S theta0= 1.49276024723 Ktheta= 1.13305888985 +B-S-Si theta0= 1.53244227076 Ktheta= 1.60167920238 +B-Si-B theta0= 1.68181537348 Ktheta= 0.482222575532 +B-Si-C theta0= 1.75771281942 Ktheta= 0.45362530209 +B-Si-Cl theta0= 1.65828141686 Ktheta= 0.464109609491 +B-Si-F theta0= 1.85713244197 Ktheta= 0.446186469682 +B-Si-H theta0= 1.88662451204 Ktheta= 0.348417229957 +B-Si-N theta0= 1.79671672451 Ktheta= 0.259411497911 +B-Si-O theta0= 1.83093511008 Ktheta= 0.47053969591 +B-Si-P theta0= 1.4371395129 Ktheta= 0.392275701737 +B-Si-S theta0= 1.66167954895 Ktheta= 0.622354122512 +B-Si-Si theta0= 1.6506784837 Ktheta= 0.657956459209 +C+C-C theta0= 3.14158851478 Ktheta= 0.33235977825 +C+C-Cl theta0= 3.14159264993 Ktheta= 0.269840000064 +C+C-F theta0= 3.14159265362 Ktheta= 0.299324093628 +C+C-H theta0= 3.14159265463 Ktheta= 0.25393543434 +C+C-N theta0= 3.06584438408 Ktheta= 0.405737482515 +C+C-O theta0= 3.06830603215 Ktheta= 0.310734564505 +C+C-P theta0= 2.98022685252 Ktheta= 0.32783714089 +C+C-S theta0= 3.01382700305 Ktheta= 0.23687827562 +C-B-B theta0= 2.08624091414 Ktheta= 0.315333188586 +C-B-C theta0= 1.95551804063 Ktheta= 1.41525574282 +C-B-Cl theta0= 1.98288650921 Ktheta= 1.30899523791 +C-B-F theta0= 2.02759495436 Ktheta= 1.15851565059 +C-B-H theta0= 2.08939654582 Ktheta= 0.678758848469 +C-B-N theta0= 2.07272839645 Ktheta= 1.12008248937 +C-B-O theta0= 2.00530214426 Ktheta= 1.16650915478 +C-B-P theta0= 1.97100657114 Ktheta= 1.14406455683 +C-B-S theta0= 1.93542605821 Ktheta= 1.20468745563 +C-B-Si theta0= 2.02156527056 Ktheta= 0.659359429793 +C-C-B theta0= 1.6361701115 Ktheta= 1.45480862208 +C-C-C theta0= 1.73120968315 Ktheta= 2.98923156394 +C-C-Cl theta0= 1.79574372687 Ktheta= 1.95748650371 +C-C-F theta0= 1.84074408322 Ktheta= 1.47915823143 +C-C-H theta0= 1.93281765849 Ktheta= 0.829274278062 +C-C-N theta0= 1.90531880681 Ktheta= 1.40793191154 +C-C-O theta0= 1.79296612635 Ktheta= 1.73123557692 +C-C-P theta0= 1.82789484518 Ktheta= 1.46262627235 +C-C-S theta0= 1.72769536219 Ktheta= 2.17197357971 +C-C-Si theta0= 1.76414867288 Ktheta= 1.5196405402 +C-N-B theta0= 1.67586351447 Ktheta= 1.37069556808 +C-N-C theta0= 1.72573215331 Ktheta= 3.25973746328 +C-N-Cl theta0= 1.81310016202 Ktheta= 1.92440251308 +C-N-F theta0= 1.78951856597 Ktheta= 1.77817992708 +C-N-H theta0= 1.91595824229 Ktheta= 0.799087502459 +C-N-N theta0= 1.87396172515 Ktheta= 1.55828486073 +C-N-O theta0= 1.76409784045 Ktheta= 2.00589373585 +C-N-P theta0= 1.86514868473 Ktheta= 1.37062165039 +C-N-S theta0= 1.73074950936 Ktheta= 2.26752463215 +C-N-Si theta0= 1.75534902518 Ktheta= 1.77571474493 +C-O-B theta0= 1.63039269307 Ktheta= 1.89315340047 +C-O-C theta0= 1.69279400673 Ktheta= 3.90182401124 +C-O-Cl theta0= 1.82237843056 Ktheta= 1.82476851727 +C-O-F theta0= 1.73960683233 Ktheta= 1.99128969475 +C-O-H theta0= 1.86377951006 Ktheta= 0.738203631822 +C-O-N theta0= 1.83603441258 Ktheta= 1.65076305031 +C-O-O theta0= 1.71332224869 Ktheta= 2.28762026503 +C-O-P theta0= 1.87332329871 Ktheta= 1.16904136849 +C-O-S theta0= 1.71386773707 Ktheta= 2.36267605952 +C-O-Si theta0= 1.70670275963 Ktheta= 2.43631130125 +C-P-B theta0= 1.6581836446 Ktheta= 0.609280287959 +C-P-C theta0= 1.63609033748 Ktheta= 2.7943300388 +C-P-Cl theta0= 1.66088632313 Ktheta= 2.19399515625 +C-P-F theta0= 1.68295724815 Ktheta= 1.5994024756 +C-P-H theta0= 1.78620400261 Ktheta= 0.79408620462 +C-P-N theta0= 1.74152380457 Ktheta= 1.38773775747 +C-P-O theta0= 1.65330343002 Ktheta= 1.85061921702 +C-P-P theta0= 1.68364612043 Ktheta= 1.66417609887 +C-P-S theta0= 1.61344999416 Ktheta= 2.23099806634 +C-P-Si theta0= 1.68206767737 Ktheta= 1.29935951724 +C-S-B theta0= 1.5177485823 Ktheta= 1.11040764487 +C-S-C theta0= 1.57109112406 Ktheta= 3.64869074184 +C-S-Cl theta0= 1.62330503383 Ktheta= 2.26912961069 +C-S-F theta0= 1.63591452677 Ktheta= 1.6799152246 +C-S-H theta0= 1.68129728727 Ktheta= 0.90303439735 +C-S-N theta0= 1.67654208106 Ktheta= 1.62090960413 +C-S-O theta0= 1.58811111345 Ktheta= 2.0700506479 +C-S-P theta0= 1.64224178963 Ktheta= 2.04127771328 +C-S-S theta0= 1.56211444304 Ktheta= 2.46596686607 +C-S-Si theta0= 1.59327424893 Ktheta= 1.97622800489 +C-Si-B theta0= 1.75771278661 Ktheta= 0.45362533808 +C-Si-C theta0= 1.68783835777 Ktheta= 2.05067974023 +C-Si-Cl theta0= 1.71806946539 Ktheta= 1.65178417564 +C-Si-F theta0= 1.79194434917 Ktheta= 1.02235727454 +C-Si-H theta0= 1.92345245935 Ktheta= 0.643922224311 +C-Si-N theta0= 1.85875406135 Ktheta= 0.886027912933 +C-Si-O theta0= 1.75093926301 Ktheta= 1.20544165278 +C-Si-P theta0= 1.73489587014 Ktheta= 1.23784369865 +C-Si-S theta0= 1.66900570184 Ktheta= 1.66007656622 +C-Si-Si theta0= 1.76811663842 Ktheta= 0.800311283899 +C=C-B theta0= 1.46367868923 Ktheta= 1.2914694035 +C=C-Cl theta0= 2.01897185286 Ktheta= 0.750331170018 +C=C-O theta0= 2.06886627221 Ktheta= 0.984056533846 +C=C-P theta0= 1.97762249421 Ktheta= 0.667822425684 +C=C-S theta0= 1.89908803597 Ktheta= 0.675404023501 +C=C-Si theta0= 1.76007552697 Ktheta= 0.697311755474 +C=N-B theta0= 2.97607732048 Ktheta= 1.07089103894 +C=N-C theta0= 2.97196476029 Ktheta= 1.07195792926 +C=N-Cl theta0= 2.95422851688 Ktheta= 1.05922516086 +C=N-H theta0= 3.09039498895 Ktheta= 0.245274285872 +C=N-P theta0= 2.93423961369 Ktheta= 1.23966924827 +C=N-S theta0= 2.93339508495 Ktheta= 0.599582193722 +C=N-Si theta0= 2.96915455241 Ktheta= 1.28101190739 +Cl-B-B theta0= 2.02538098144 Ktheta= 0.321247286451 +Cl-B-C theta0= 1.98288654443 Ktheta= 1.30899514614 +Cl-B-Cl theta0= 2.08236793975 Ktheta= 1.22749193431 +Cl-B-F theta0= 1.98457215756 Ktheta= 1.38844545083 +Cl-B-H theta0= 2.05491004634 Ktheta= 0.74552578588 +Cl-B-N theta0= 2.07929390763 Ktheta= 1.26853677792 +Cl-B-O theta0= 1.97392915767 Ktheta= 1.38214530201 +Cl-B-P theta0= 2.04315123357 Ktheta= 1.13469804711 +Cl-B-S theta0= 1.93971126515 Ktheta= 1.26216055118 +Cl-B-Si theta0= 2.02449063747 Ktheta= 0.67106746447 +Cl-C-B theta0= 1.54255591813 Ktheta= 1.89235931548 +Cl-C-C theta0= 1.79574374279 Ktheta= 1.95748639019 +Cl-C-Cl theta0= 1.89141943447 Ktheta= 1.49481285835 +Cl-C-F theta0= 1.84926574366 Ktheta= 1.53652155517 +Cl-C-H theta0= 1.89330327744 Ktheta= 0.860367494255 +Cl-C-N theta0= 1.95277012496 Ktheta= 1.60575239951 +Cl-C-O theta0= 1.80171310585 Ktheta= 1.78130671191 +Cl-C-P theta0= 1.87353822851 Ktheta= 1.34484713653 +Cl-C-S theta0= 1.70790190928 Ktheta= 2.33474535217 +Cl-C-Si theta0= 1.67711837617 Ktheta= 2.22299655371 +Cl-N-B theta0= 1.56012320914 Ktheta= 2.1026528175 +Cl-N-C theta0= 1.8131001739 Ktheta= 1.92440236634 +Cl-N-Cl theta0= 1.91866395881 Ktheta= 1.50908802887 +Cl-N-F theta0= 1.85808598786 Ktheta= 1.61588790316 +Cl-N-H theta0= 1.84973201799 Ktheta= 0.86905266282 +Cl-N-N theta0= 1.96070510028 Ktheta= 1.82452177451 +Cl-N-O theta0= 1.81575897944 Ktheta= 1.85368131782 +Cl-N-P theta0= 1.90202909206 Ktheta= 1.35193412971 +Cl-N-S theta0= 1.70568759856 Ktheta= 2.4949051421 +Cl-N-Si theta0= 1.65932955489 Ktheta= 2.86685958186 +Cl-O-B theta0= 1.52815951145 Ktheta= 2.94596497953 +Cl-O-C theta0= 1.82237843808 Ktheta= 1.82476843284 +Cl-O-Cl theta0= 1.8787332206 Ktheta= 1.35145516067 +Cl-O-F theta0= 1.85577408244 Ktheta= 1.5541143956 +Cl-O-H theta0= 1.78384612371 Ktheta= 0.839519417712 +Cl-O-N theta0= 1.94684201032 Ktheta= 1.70569641769 +Cl-O-O theta0= 1.81351243132 Ktheta= 1.78184659365 +Cl-O-P theta0= 1.88327455465 Ktheta= 1.39685263055 +Cl-O-S theta0= 1.6669393786 Ktheta= 2.93279216159 +Cl-O-Si theta0= 1.85540372974 Ktheta= 1.02570713912 +Cl-P-B theta0= 1.47461852692 Ktheta= 0.868363533239 +Cl-P-C theta0= 1.66088638061 Ktheta= 2.19399480994 +Cl-P-Cl theta0= 1.71038758111 Ktheta= 1.87659110743 +Cl-P-F theta0= 1.67583868211 Ktheta= 1.8303449205 +Cl-P-H theta0= 1.75525027306 Ktheta= 0.802542713641 +Cl-P-N theta0= 1.75589746194 Ktheta= 1.46427266828 +Cl-P-O theta0= 1.64394018272 Ktheta= 2.15669508442 +Cl-P-P theta0= 1.73435465957 Ktheta= 1.40364860324 +Cl-P-S theta0= 1.62050942961 Ktheta= 2.21718652905 +Cl-P-Si theta0= 1.65711659541 Ktheta= 1.26399817334 +Cl-S-B theta0= 1.40132572958 Ktheta= 1.26070692785 +Cl-S-C theta0= 1.62330514698 Ktheta= 2.26912884099 +Cl-S-Cl theta0= 1.74745456152 Ktheta= 1.38722803349 +Cl-S-F theta0= 1.68492882926 Ktheta= 1.44791296774 +Cl-S-H theta0= 1.67888644257 Ktheta= 0.823251493517 +Cl-S-N theta0= 1.79676527719 Ktheta= 1.34787107231 +Cl-S-O theta0= 1.62525925751 Ktheta= 1.81606115056 +Cl-S-P theta0= 1.75119489832 Ktheta= 1.42082920447 +Cl-S-S theta0= 1.56445878349 Ktheta= 1.81042862394 +Cl-S-Si theta0= 1.56869328217 Ktheta= 1.95666856293 +Cl-Si-B theta0= 1.65828148999 Ktheta= 0.464109576524 +Cl-Si-C theta0= 1.71806952722 Ktheta= 1.65178385314 +Cl-Si-Cl theta0= 1.74249496916 Ktheta= 1.59777548011 +Cl-Si-F theta0= 1.74754542006 Ktheta= 1.30338907917 +Cl-Si-H theta0= 1.88535332654 Ktheta= 0.668849864955 +Cl-Si-N theta0= 1.82079548477 Ktheta= 1.05514003686 +Cl-Si-O theta0= 1.71936087798 Ktheta= 1.4553109799 +Cl-Si-P theta0= 1.77611122369 Ktheta= 1.11659205327 +Cl-Si-S theta0= 1.67220519565 Ktheta= 1.65362604928 +Cl-Si-Si theta0= 1.76659917514 Ktheta= 0.755279017451 +F-B-B theta0= 2.14814925595 Ktheta= 0.496539393592 +F-B-C theta0= 2.02759494593 Ktheta= 1.15851563473 +F-B-Cl theta0= 1.98457215449 Ktheta= 1.38844549115 +F-B-F theta0= 1.92290890186 Ktheta= 2.01330361036 +F-B-H theta0= 2.05030261085 Ktheta= 0.875779445131 +F-B-N theta0= 2.0013968477 Ktheta= 1.50990734754 +F-B-O theta0= 1.9437104972 Ktheta= 1.69640426947 +F-B-P theta0= 1.99888195686 Ktheta= 1.1466460124 +F-B-S theta0= 1.953724575 Ktheta= 1.12944877109 +F-B-Si theta0= 2.0923501844 Ktheta= 0.710187129929 +F-C-B theta0= 1.62404100622 Ktheta= 0.758293836436 +F-C-C theta0= 1.8407440599 Ktheta= 1.479158084 +F-C-Cl theta0= 1.84926574123 Ktheta= 1.53652159384 +F-C-F theta0= 1.84621788228 Ktheta= 1.77777535996 +F-C-H theta0= 1.89527817489 Ktheta= 1.02480799671 +F-C-N theta0= 1.85868932774 Ktheta= 1.71762587913 +F-C-O theta0= 1.72121556751 Ktheta= 2.59538844674 +F-C-P theta0= 1.86334492272 Ktheta= 1.26071677912 +F-C-S theta0= 1.74655573632 Ktheta= 1.56742312582 +F-C-Si theta0= 1.80604673431 Ktheta= 0.779864326336 +F-N-B theta0= 1.57581027583 Ktheta= 0.988976884922 +F-N-C theta0= 1.789518562 Ktheta= 1.77817992861 +F-N-Cl theta0= 1.85808598418 Ktheta= 1.61588797257 +F-N-F theta0= 1.72803119273 Ktheta= 2.63007786571 +F-N-H theta0= 1.81999979929 Ktheta= 1.07104239143 +F-N-N theta0= 1.84756878906 Ktheta= 1.96819038798 +F-N-O theta0= 1.69579518552 Ktheta= 2.96412350099 +F-N-P theta0= 1.85298856583 Ktheta= 1.41952048004 +F-N-S theta0= 1.7143985117 Ktheta= 1.81519826761 +F-N-Si theta0= 1.71237444552 Ktheta= 1.10674458789 +F-O-B theta0= 1.4874410575 Ktheta= 1.69743945976 +F-O-C theta0= 1.73960683424 Ktheta= 1.99128968604 +F-O-Cl theta0= 1.85577407613 Ktheta= 1.55411451039 +F-O-F theta0= 1.77702704285 Ktheta= 1.96151393928 +F-O-H theta0= 1.7191294608 Ktheta= 1.05709111483 +F-O-N theta0= 1.88990342736 Ktheta= 2.18946666594 +F-O-O theta0= 1.69471583152 Ktheta= 2.47432734286 +F-O-P theta0= 1.81475107684 Ktheta= 1.51532220841 +F-O-S theta0= 1.66401937795 Ktheta= 2.00432969043 +F-O-Si theta0= 1.59426463669 Ktheta= 2.0126415348 +F-P-B theta0= 1.61781695895 Ktheta= 0.33962465045 +F-P-C theta0= 1.68295725081 Ktheta= 1.59940247769 +F-P-Cl theta0= 1.6758386797 Ktheta= 1.83034493252 +F-P-F theta0= 1.72106132475 Ktheta= 1.4537839264 +F-P-H theta0= 1.73340808162 Ktheta= 0.938558381629 +F-P-N theta0= 1.68854463549 Ktheta= 1.91335043612 +F-P-O theta0= 1.61151823747 Ktheta= 2.68163617804 +F-P-P theta0= 1.7047050124 Ktheta= 1.27800249108 +F-P-S theta0= 1.61683160587 Ktheta= 1.76493446224 +F-P-Si theta0= 1.74647465546 Ktheta= 0.74398394654 +F-S-B theta0= 1.40288379886 Ktheta= 0.517557658 +F-S-C theta0= 1.63591452718 Ktheta= 1.67991523014 +F-S-Cl theta0= 1.68492882227 Ktheta= 1.44791299551 +F-S-F theta0= 1.71211380284 Ktheta= 1.3092714759 +F-S-H theta0= 1.66803230924 Ktheta= 0.983152387154 +F-S-N theta0= 1.66963414117 Ktheta= 1.7622061248 +F-S-O theta0= 1.57157171045 Ktheta= 2.574202077 +F-S-P theta0= 1.67715285172 Ktheta= 1.41090348146 +F-S-S theta0= 1.58295278474 Ktheta= 1.82194013302 +F-S-Si theta0= 1.62344534414 Ktheta= 0.893027988764 +F-Si-B theta0= 1.85713248287 Ktheta= 0.446186518776 +F-Si-C theta0= 1.79194436173 Ktheta= 1.02235723686 +F-Si-Cl theta0= 1.74754541513 Ktheta= 1.30338910326 +F-Si-F theta0= 1.84037693686 Ktheta= 1.04126083737 +F-Si-H theta0= 1.87442289687 Ktheta= 0.726063845574 +F-Si-N theta0= 1.88859848093 Ktheta= 0.979614159925 +F-Si-O theta0= 1.69047365484 Ktheta= 1.77424865063 +F-Si-P theta0= 1.79666935268 Ktheta= 0.87960242292 +F-Si-S theta0= 1.7031817977 Ktheta= 1.16409774635 +F-Si-Si theta0= 1.8882078947 Ktheta= 0.573064438712 +H-B-B theta0= 2.1557073696 Ktheta= 0.302187244607 +H-B-C theta0= 2.08939654926 Ktheta= 0.678758853814 +H-B-Cl theta0= 2.05491004777 Ktheta= 0.745525795349 +H-B-F theta0= 2.05030261203 Ktheta= 0.8757794456 +H-B-H theta0= 2.09294024126 Ktheta= 0.549568598035 +H-B-N theta0= 2.09769529789 Ktheta= 0.88089075532 +H-B-O theta0= 2.03474831694 Ktheta= 0.826817842141 +H-B-P theta0= 2.03612085353 Ktheta= 0.671850475778 +H-B-S theta0= 1.96633865714 Ktheta= 0.624484491686 +H-B-Si theta0= 2.10835859911 Ktheta= 0.444051406561 +H-C-B theta0= 1.81478310714 Ktheta= 0.352011548923 +H-C-C theta0= 1.93281767721 Ktheta= 0.82927431127 +H-C-Cl theta0= 1.89330327859 Ktheta= 0.86036750693 +H-C-F theta0= 1.89527817481 Ktheta= 1.02480799661 +H-C-H theta0= 1.9135431149 Ktheta= 0.696670818848 +H-C-N theta0= 1.9233297653 Ktheta= 1.01481509369 +H-C-O theta0= 1.85056346459 Ktheta= 1.02922291174 +H-C-P theta0= 1.86845137926 Ktheta= 0.765651826742 +H-C-S theta0= 1.79885191929 Ktheta= 0.811264822868 +H-C-Si theta0= 1.9179239454 Ktheta= 0.528081381059 +H-N-B theta0= 2.12135833995 Ktheta= 0.166905396341 +H-N-C theta0= 1.91595824298 Ktheta= 0.799087506844 +H-N-Cl theta0= 1.84973202109 Ktheta= 0.869052676778 +H-N-F theta0= 1.81999979878 Ktheta= 1.07104238733 +H-N-H theta0= 1.89350641642 Ktheta= 0.694395267436 +H-N-N theta0= 1.86870611913 Ktheta= 1.00095418425 +H-N-O theta0= 1.80511397377 Ktheta= 1.06685765699 +H-N-P theta0= 1.85011395823 Ktheta= 0.720896305329 +H-N-S theta0= 1.80477374551 Ktheta= 0.79082978033 +H-N-Si theta0= 1.95800831453 Ktheta= 0.452196300377 +H-O-B theta0= 2.60591200295 Ktheta= 0.197400821642 +H-O-C theta0= 1.8637795109 Ktheta= 0.738203634374 +H-O-Cl theta0= 1.78384612685 Ktheta= 0.839519418413 +H-O-F theta0= 1.71912946004 Ktheta= 1.0570911132 +H-O-H theta0= 1.82688507839 Ktheta= 0.670320588307 +H-O-N theta0= 1.78555470875 Ktheta= 0.947877603518 +H-O-O theta0= 1.71300293036 Ktheta= 1.04507904153 +H-O-P theta0= 1.81103528128 Ktheta= 0.604197332111 +H-O-S theta0= 1.76256444901 Ktheta= 0.751873904956 +H-O-Si theta0= 1.99306786406 Ktheta= 0.280424758473 +H-P-B theta0= 1.8258134544 Ktheta= 0.257815041083 +H-P-C theta0= 1.78620400589 Ktheta= 0.794086222524 +H-P-Cl theta0= 1.7552502717 Ktheta= 0.802542718336 +H-P-F theta0= 1.73340808426 Ktheta= 0.938558385143 +H-P-H theta0= 1.75980016007 Ktheta= 0.692127986651 +H-P-N theta0= 1.80872505249 Ktheta= 0.908514785633 +H-P-O theta0= 1.69901348378 Ktheta= 0.992166111928 +H-P-P theta0= 1.73981354643 Ktheta= 0.748993131054 +H-P-S theta0= 1.63553338248 Ktheta= 0.83372086715 +H-P-Si theta0= 1.7869859248 Ktheta= 0.531743635552 +H-S-B theta0= 1.56752232135 Ktheta= 0.381616892009 +H-S-C theta0= 1.68129729828 Ktheta= 0.903034435816 +H-S-Cl theta0= 1.67888644345 Ktheta= 0.823251507071 +H-S-F theta0= 1.66803231164 Ktheta= 0.98315238952 +H-S-H theta0= 1.62051794905 Ktheta= 0.807967407144 +H-S-N theta0= 1.70295800479 Ktheta= 1.00694968294 +H-S-O theta0= 1.62078854926 Ktheta= 1.03144848972 +H-S-P theta0= 1.63256221643 Ktheta= 0.879569390926 +H-S-S theta0= 1.56797961025 Ktheta= 0.873087576549 +H-S-Si theta0= 1.63269222173 Ktheta= 0.62253730457 +H-Si-B theta0= 1.88662451594 Ktheta= 0.348417236768 +H-Si-C theta0= 1.92345246499 Ktheta= 0.643922231205 +H-Si-Cl theta0= 1.88535332543 Ktheta= 0.668849865921 +H-Si-F theta0= 1.87442289742 Ktheta= 0.726063847857 +H-Si-H theta0= 1.91430151359 Ktheta= 0.576734526814 +H-Si-N theta0= 1.94870595889 Ktheta= 0.757790536625 +H-Si-O theta0= 1.84668532238 Ktheta= 0.742375651195 +H-Si-P theta0= 1.86889006514 Ktheta= 0.624035198523 +H-Si-S theta0= 1.76068966274 Ktheta= 0.649939349847 +H-Si-Si theta0= 1.92679523603 Ktheta= 0.462525220777 +N+C-C theta0= 3.14090420403 Ktheta= 0.336143205175 +N+C-Cl theta0= 3.14159265362 Ktheta= 0.300616620467 +N+C-F theta0= 3.14159265362 Ktheta= 0.336164127365 +N+C-H theta0= 3.14159265361 Ktheta= 0.27536087666 +N+C-N theta0= 3.05925772589 Ktheta= 0.412153767504 +N+C-O theta0= 3.0690171851 Ktheta= 0.341965079947 +N+C-P theta0= 2.96705628504 Ktheta= 0.335105014137 +N+C-S theta0= 3.01534320658 Ktheta= 0.262898168635 +N-B-B theta0= 2.01394807657 Ktheta= 0.241687798785 +N-B-C theta0= 2.07272840341 Ktheta= 1.12008250803 +N-B-Cl theta0= 2.07929389319 Ktheta= 1.26853679228 +N-B-F theta0= 2.00139685504 Ktheta= 1.50990732055 +N-B-H theta0= 2.09769529765 Ktheta= 0.880890757543 +N-B-N theta0= 2.13782402155 Ktheta= 1.45832069674 +N-B-O theta0= 2.00864753737 Ktheta= 1.38910561106 +N-B-P theta0= 2.10315854404 Ktheta= 1.19808022724 +N-B-S theta0= 1.97000001022 Ktheta= 1.05077115768 +N-B-Si theta0= 2.07712584273 Ktheta= 0.659811408609 +N-C-B theta0= 1.39508105391 Ktheta= 1.35258642053 +N-C-C theta0= 1.9053188105 Ktheta= 1.40793250248 +N-C-Cl theta0= 1.9527700831 Ktheta= 1.6057522985 +N-C-F theta0= 1.85868933206 Ktheta= 1.71762584606 +N-C-H theta0= 1.92332976475 Ktheta= 1.01481509117 +N-C-N theta0= 1.96742557696 Ktheta= 1.8043516378 +N-C-O theta0= 1.81888169793 Ktheta= 1.81506562491 +N-C-P theta0= 1.91704788504 Ktheta= 1.28065291028 +N-C-S theta0= 1.76856620033 Ktheta= 1.39966249622 +N-C-Si theta0= 1.70825704076 Ktheta= 1.0217850677 +N-N-B theta0= 1.44069239758 Ktheta= 1.72522586434 +N-N-C theta0= 1.87396172546 Ktheta= 1.5582848565 +N-N-Cl theta0= 1.9607050176 Ktheta= 1.82452152887 +N-N-F theta0= 1.84756876463 Ktheta= 1.96819040738 +N-N-H theta0= 1.86870611829 Ktheta= 1.00095414246 +N-N-N theta0= 1.94138112929 Ktheta= 2.05221484337 +N-N-O theta0= 1.78951972414 Ktheta= 2.16226264549 +N-N-P theta0= 1.90346710006 Ktheta= 1.32406927631 +N-N-S theta0= 1.74365461194 Ktheta= 1.56599526946 +N-N-Si theta0= 1.64979248575 Ktheta= 1.53135460833 +N-O-B theta0= 1.41899406229 Ktheta= 2.58453012622 +N-O-C theta0= 1.83603441954 Ktheta= 1.65076303632 +N-O-Cl theta0= 1.94684197309 Ktheta= 1.70569633037 +N-O-F theta0= 1.88990341909 Ktheta= 2.18946661095 +N-O-H theta0= 1.78555470769 Ktheta= 0.94787759942 +N-O-N theta0= 1.93159424807 Ktheta= 2.37731425957 +N-O-O theta0= 1.81062091822 Ktheta= 2.15111973737 +N-O-P theta0= 1.85054067133 Ktheta= 1.20823008907 +N-O-S theta0= 1.6859433043 Ktheta= 1.80026855794 +N-O-Si theta0= 1.57011782523 Ktheta= 2.69036287126 +N-P-B theta0= 1.02765189417 Ktheta= 0.244553737676 +N-P-C theta0= 1.74152381368 Ktheta= 1.38773772399 +N-P-Cl theta0= 1.75589745323 Ktheta= 1.46427267404 +N-P-F theta0= 1.68854463747 Ktheta= 1.91335040016 +N-P-H theta0= 1.80872505286 Ktheta= 0.908514781319 +N-P-N theta0= 1.79653781039 Ktheta= 1.42342157008 +N-P-O theta0= 1.66536155895 Ktheta= 2.04367908601 +N-P-P theta0= 1.78538971893 Ktheta= 1.13183310532 +N-P-S theta0= 1.64896080985 Ktheta= 1.56567236774 +N-P-Si theta0= 1.74761780556 Ktheta= 0.677606473206 +N-S-B theta0= 0.926969886688 Ktheta= 0.447526487799 +N-S-C theta0= 1.67654210539 Ktheta= 1.62090957572 +N-S-Cl theta0= 1.7967652499 Ktheta= 1.34787105042 +N-S-F theta0= 1.66963413892 Ktheta= 1.76220610081 +N-S-H theta0= 1.70295800414 Ktheta= 1.00694967941 +N-S-N theta0= 1.76485699808 Ktheta= 1.61343904352 +N-S-O theta0= 1.61682076231 Ktheta= 2.10972198383 +N-S-P theta0= 1.72447950002 Ktheta= 1.43777148922 +N-S-S theta0= 1.59735407908 Ktheta= 1.27424918836 +N-S-Si theta0= 1.57606616354 Ktheta= 0.992953140451 +N-Si-B theta0= 1.79671673796 Ktheta= 0.259411435478 +N-Si-C theta0= 1.85875408637 Ktheta= 0.886027865679 +N-Si-Cl theta0= 1.82079551303 Ktheta= 1.05513993587 +N-Si-F theta0= 1.88859848625 Ktheta= 0.979614152071 +N-Si-H theta0= 1.94870595669 Ktheta= 0.75779053214 +N-Si-N theta0= 1.93344683899 Ktheta= 0.910146237333 +N-Si-O theta0= 1.77610548428 Ktheta= 1.21083438163 +N-Si-P theta0= 1.88134418367 Ktheta= 0.841785154171 +N-Si-S theta0= 1.73977633241 Ktheta= 1.01001076996 +N-Si-Si theta0= 1.91767801682 Ktheta= 0.539766227768 +N=C-B theta0= 1.97228601314 Ktheta= 0.311781119467 +N=C-C theta0= 2.08542427392 Ktheta= 1.36832838107 +N=C-Cl theta0= 2.06276188601 Ktheta= 1.47493880945 +N=C-F theta0= 2.00962621919 Ktheta= 1.7036985748 +N=C-H theta0= 2.07065479851 Ktheta= 1.06953958489 +N=C-N theta0= 2.07205111077 Ktheta= 1.61310995201 +N=C-O theta0= 2.0145825816 Ktheta= 1.67888094739 +N=C-P theta0= 2.02912848403 Ktheta= 1.30259247379 +N=C-S theta0= 2.01572597079 Ktheta= 1.28540146912 +N=C-Si theta0= 2.0527818782 Ktheta= 0.765711333185 +N=N-B theta0= 2.92212640401 Ktheta= 0.784171836668 +N=N-C theta0= 1.93883686153 Ktheta= 1.86796722865 +N=N-Cl theta0= 1.95234349612 Ktheta= 2.16614826709 +N=N-F theta0= 1.89834430426 Ktheta= 2.56649067938 +N=N-H theta0= 1.87415463736 Ktheta= 1.18552200062 +N=N-N theta0= 1.93080810701 Ktheta= 2.30224826555 +N=N-O theta0= 1.86556895405 Ktheta= 2.9198100716 +N=N-P theta0= 1.91836121625 Ktheta= 1.53298464904 +N=N-S theta0= 1.9060924561 Ktheta= 1.70679136312 +N=N-Si theta0= 1.94250997318 Ktheta= 0.676820041449 +O-B-B theta0= 2.12886952727 Ktheta= 0.500343216022 +O-B-C theta0= 2.0053021377 Ktheta= 1.16650914266 +O-B-Cl theta0= 1.97392915338 Ktheta= 1.38214532653 +O-B-F theta0= 1.9437104996 Ktheta= 1.69640425882 +O-B-H theta0= 2.03474831664 Ktheta= 0.826817842815 +O-B-N theta0= 2.00864753234 Ktheta= 1.38910562822 +O-B-O theta0= 1.95486938622 Ktheta= 1.54404057254 +O-B-P theta0= 1.97965582773 Ktheta= 1.12739903106 +O-B-S theta0= 1.94281370989 Ktheta= 1.1309301528 +O-B-Si theta0= 2.06083038266 Ktheta= 0.683490391599 +O-C-B theta0= 1.61452830244 Ktheta= 0.797332124406 +O-C-C theta0= 1.79296608942 Ktheta= 1.73123570984 +O-C-Cl theta0= 1.80171309683 Ktheta= 1.78130677905 +O-C-F theta0= 1.72121556856 Ktheta= 2.59538843184 +O-C-H theta0= 1.8505634646 Ktheta= 1.0292229123 +O-C-N theta0= 1.81888166489 Ktheta= 1.81506576439 +O-C-O theta0= 1.71516320088 Ktheta= 2.51421704841 +O-C-P theta0= 1.82026891635 Ktheta= 1.36777826708 +O-C-S theta0= 1.71726619621 Ktheta= 1.74382360304 +O-C-Si theta0= 1.75858843845 Ktheta= 0.950450060707 +O-N-B theta0= 1.62554146088 Ktheta= 0.838098573081 +O-N-C theta0= 1.76409784052 Ktheta= 2.00589375804 +O-N-Cl theta0= 1.81575896101 Ktheta= 1.85368143776 +O-N-F theta0= 1.69579518629 Ktheta= 2.9641234816 +O-N-H theta0= 1.80511397372 Ktheta= 1.06685765545 +O-N-N theta0= 1.78951975866 Ktheta= 2.1622625954 +O-N-O theta0= 1.68832704692 Ktheta= 2.98262203714 +O-N-P theta0= 1.8270042956 Ktheta= 1.45811433017 +O-N-S theta0= 1.69934375662 Ktheta= 1.95500463547 +O-N-Si theta0= 1.71065751551 Ktheta= 1.19035755279 +O-O-B theta0= 1.52281530101 Ktheta= 1.50973963826 +O-O-C theta0= 1.71332225379 Ktheta= 2.28762024403 +O-O-Cl theta0= 1.81351241268 Ktheta= 1.7818467243 +O-O-F theta0= 1.69471583139 Ktheta= 2.47432734164 +O-O-H theta0= 1.71300293102 Ktheta= 1.0450790417 +O-O-N theta0= 1.81062091595 Ktheta= 2.15111974983 +O-O-O theta0= 1.65553442105 Ktheta= 2.89078478211 +O-O-P theta0= 1.83959400385 Ktheta= 1.48946987799 +O-O-S theta0= 1.6498953911 Ktheta= 2.18753938116 +O-O-Si theta0= 1.60551915369 Ktheta= 2.04792168199 +O-P-B theta0= 1.70148815294 Ktheta= 0.32906473267 +O-P-C theta0= 1.65330342691 Ktheta= 1.85061923328 +O-P-Cl theta0= 1.64394017961 Ktheta= 2.15669508345 +O-P-F theta0= 1.61151823828 Ktheta= 2.68163616943 +O-P-H theta0= 1.69901348185 Ktheta= 0.992166112213 +O-P-N theta0= 1.66536155351 Ktheta= 2.04367915539 +O-P-O theta0= 1.60397891968 Ktheta= 2.75138644133 +O-P-P theta0= 1.67068657964 Ktheta= 1.35942057639 +O-P-S theta0= 1.57585893261 Ktheta= 1.62606568671 +O-P-Si theta0= 1.70537386086 Ktheta= 0.815208738979 +O-S-B theta0= 1.41606324731 Ktheta= 0.481357208035 +O-S-C theta0= 1.58811110415 Ktheta= 2.07005070874 +O-S-Cl theta0= 1.62525924536 Ktheta= 1.81606121146 +O-S-F theta0= 1.57157171071 Ktheta= 2.57420206776 +O-S-H theta0= 1.62078854764 Ktheta= 1.03144848944 +O-S-N theta0= 1.6168207547 Ktheta= 2.10972210999 +O-S-O theta0= 1.55706568157 Ktheta= 2.98023551936 +O-S-P theta0= 1.6343226652 Ktheta= 1.51146611008 +O-S-S theta0= 1.55320923558 Ktheta= 2.09903858963 +O-S-Si theta0= 1.58619073195 Ktheta= 1.0334924371 +O-Si-B theta0= 1.83093513669 Ktheta= 0.470539715602 +O-Si-C theta0= 1.75093926589 Ktheta= 1.20544161942 +O-Si-Cl theta0= 1.71936087024 Ktheta= 1.45531101335 +O-Si-F theta0= 1.69047365516 Ktheta= 1.77424865008 +O-Si-H theta0= 1.84668531929 Ktheta= 0.742375651528 +O-Si-N theta0= 1.77610546774 Ktheta= 1.21083446278 +O-Si-O theta0= 1.69063822861 Ktheta= 1.69630498325 +O-Si-P theta0= 1.76034490784 Ktheta= 0.948160798318 +O-Si-S theta0= 1.67715553347 Ktheta= 1.27134809126 +O-Si-Si theta0= 1.84206612162 Ktheta= 0.605162152758 +O=C-B theta0= 1.93380492515 Ktheta= 0.296630318217 +O=C-C theta0= 2.15019327432 Ktheta= 1.44591221945 +O=C-Cl theta0= 2.13091189432 Ktheta= 1.45261347425 +O=C-F theta0= 2.07721052206 Ktheta= 1.6163551095 +O=C-H theta0= 2.12935105261 Ktheta= 1.19380349889 +O=C-N theta0= 2.15830861047 Ktheta= 1.89141620946 +O=C-O theta0= 2.05377580807 Ktheta= 1.61494133577 +O=C-P theta0= 2.07634634593 Ktheta= 1.33027757708 +O=C-S theta0= 2.075082054 Ktheta= 1.28460205782 +O=C-Si theta0= 2.11515705456 Ktheta= 0.797343595301 +O=N-B theta0= 1.74282495405 Ktheta= 0.117382241184 +O=N-C theta0= 1.98162197919 Ktheta= 1.98780260502 +O=N-Cl theta0= 2.03156791962 Ktheta= 2.34489096091 +O=N-F theta0= 1.9383787173 Ktheta= 2.27640333262 +O=N-H theta0= 1.90343328969 Ktheta= 1.41244353244 +O=N-N theta0= 1.97121793233 Ktheta= 3.19441146816 +O=N-O theta0= 1.92153373767 Ktheta= 2.73888061212 +O=N-P theta0= 1.92894348092 Ktheta= 1.07441075668 +O=N-S theta0= 1.93877842405 Ktheta= 1.88389863417 +O=N-Si theta0= 1.94356153332 Ktheta= 0.723271357376 +P-B-B theta0= 1.61756271458 Ktheta= 0.338195306721 +P-B-C theta0= 1.9760753702 Ktheta= 1.12638721389 +P-B-Cl theta0= 2.04315123732 Ktheta= 1.13469801535 +P-B-F theta0= 1.99888196104 Ktheta= 1.14664595618 +P-B-H theta0= 2.03612083919 Ktheta= 0.671850474079 +P-B-N theta0= 2.10315859376 Ktheta= 1.19808033866 +P-B-O theta0= 1.97965584693 Ktheta= 1.12739898528 +P-B-P theta0= 2.13665144983 Ktheta= 1.21010863006 +P-B-S theta0= 1.88180269731 Ktheta= 1.17095563184 +P-B-Si theta0= 1.93501815766 Ktheta= 0.725435510985 +P-C-B theta0= 1.47698455124 Ktheta= 2.02317156729 +P-C-C theta0= 1.82789472966 Ktheta= 1.46262644619 +P-C-Cl theta0= 1.87353817423 Ktheta= 1.3448472396 +P-C-F theta0= 1.86334491928 Ktheta= 1.26071676216 +P-C-H theta0= 1.86845137504 Ktheta= 0.765651823376 +P-C-N theta0= 1.91704794423 Ktheta= 1.28065281966 +P-C-O theta0= 1.82026892758 Ktheta= 1.36777823588 +P-C-P theta0= 1.87801555405 Ktheta= 1.26411194566 +P-C-S theta0= 1.66750540209 Ktheta= 2.34663451932 +P-C-Si theta0= 1.65555226795 Ktheta= 2.39266437567 +P-N-B theta0= 1.54158435494 Ktheta= 2.13522396453 +P-N-C theta0= 1.86514868167 Ktheta= 1.37062160468 +P-N-Cl theta0= 1.90202907685 Ktheta= 1.35193414596 +P-N-F theta0= 1.85298856326 Ktheta= 1.41952046472 +P-N-H theta0= 1.85011395662 Ktheta= 0.720896303479 +P-N-N theta0= 1.90346715766 Ktheta= 1.32406903913 +P-N-O theta0= 1.82700430193 Ktheta= 1.45811429177 +P-N-P theta0= 1.84884757039 Ktheta= 1.35755379543 +P-N-S theta0= 1.67505827819 Ktheta= 2.5527659661 +P-N-Si theta0= 1.65460684135 Ktheta= 2.97157367824 +P-O-B theta0= 1.52568271022 Ktheta= 3.13318705495 +P-O-C theta0= 1.87332329474 Ktheta= 1.16904137354 +P-O-Cl theta0= 1.8832745453 Ktheta= 1.39685268724 +P-O-F theta0= 1.81475107143 Ktheta= 1.51532218576 +P-O-H theta0= 1.81103527946 Ktheta= 0.604197334644 +P-O-N theta0= 1.85054069775 Ktheta= 1.20822994229 +P-O-O theta0= 1.83959401641 Ktheta= 1.4894698576 +P-O-P theta0= 1.74848823814 Ktheta= 2.0826379304 +P-O-S theta0= 1.63325557545 Ktheta= 3.31682800465 +P-O-Si theta0= 1.61680330183 Ktheta= 4.38334366564 +P-P-B theta0= 1.37917548689 Ktheta= 0.678457009126 +P-P-C theta0= 1.68364613089 Ktheta= 1.66417583733 +P-P-Cl theta0= 1.73435461156 Ktheta= 1.40364868164 +P-P-F theta0= 1.70470500961 Ktheta= 1.27800246899 +P-P-H theta0= 1.73981353952 Ktheta= 0.74899310562 +P-P-N theta0= 1.78538973327 Ktheta= 1.1318330887 +P-P-O theta0= 1.67068658604 Ktheta= 1.3594205219 +P-P-P theta0= 1.7629531892 Ktheta= 1.23470518191 +P-P-S theta0= 1.60537069191 Ktheta= 1.81541593472 +P-P-Si theta0= 1.63160145049 Ktheta= 1.29544192295 +P-S-B theta0= 1.32740273478 Ktheta= 1.30794847143 +P-S-C theta0= 1.64224177752 Ktheta= 2.04127761303 +P-S-Cl theta0= 1.75119486542 Ktheta= 1.42082921017 +P-S-F theta0= 1.67715284855 Ktheta= 1.41090344315 +P-S-H theta0= 1.6325622116 Ktheta= 0.879569377393 +P-S-N theta0= 1.72447952432 Ktheta= 1.43777147038 +P-S-O theta0= 1.63432266707 Ktheta= 1.5114660731 +P-S-P theta0= 1.67292662261 Ktheta= 1.89784901089 +P-S-S theta0= 1.57373538366 Ktheta= 2.13053564213 +P-S-Si theta0= 1.55097838191 Ktheta= 2.11652973272 +P-Si-B theta0= 1.43713960687 Ktheta= 0.392275496232 +P-Si-C theta0= 1.73489591808 Ktheta= 1.23784329373 +P-Si-Cl theta0= 1.77611121752 Ktheta= 1.11659198075 +P-Si-F theta0= 1.79666935508 Ktheta= 0.879602381186 +P-Si-H theta0= 1.86889006424 Ktheta= 0.62403518563 +P-Si-N theta0= 1.88134419683 Ktheta= 0.841785084733 +P-Si-O theta0= 1.76034492375 Ktheta= 0.948160708187 +P-Si-P theta0= 1.82747808005 Ktheta= 0.917933081896 +P-Si-S theta0= 1.64950654277 Ktheta= 1.38664760164 +P-Si-Si theta0= 1.71003614403 Ktheta= 0.832455892484 +S-B-B theta0= 2.01893795286 Ktheta= 0.389322641269 +S-B-C theta0= 1.93542607815 Ktheta= 1.20468735375 +S-B-Cl theta0= 1.93971125819 Ktheta= 1.26216056221 +S-B-F theta0= 1.95372457455 Ktheta= 1.12944875346 +S-B-H theta0= 1.96633865339 Ktheta= 0.624484482809 +S-B-N theta0= 1.97000001884 Ktheta= 1.05077115067 +S-B-O theta0= 1.94281371304 Ktheta= 1.13093013587 +S-B-P theta0= 1.88180268003 Ktheta= 1.17095578101 +S-B-S theta0= 1.89274708226 Ktheta= 1.19695172179 +S-B-Si theta0= 1.92717176521 Ktheta= 0.814949509186 +S-C-B theta0= 1.61610434459 Ktheta= 1.55201409399 +S-C-C theta0= 1.72769534858 Ktheta= 2.17197344051 +S-C-Cl theta0= 1.70790189704 Ktheta= 2.33474547362 +S-C-F theta0= 1.74655573473 Ktheta= 1.56742309782 +S-C-H theta0= 1.79885191397 Ktheta= 0.811264820641 +S-C-N theta0= 1.76856625191 Ktheta= 1.39966238352 +S-C-O theta0= 1.71726620191 Ktheta= 1.74382354984 +S-C-P theta0= 1.6675054152 Ktheta= 2.3466344036 +S-C-S theta0= 1.64512954094 Ktheta= 2.87078504261 +S-C-Si theta0= 1.65617962549 Ktheta= 2.69453077825 +S-N-B theta0= 1.66252746423 Ktheta= 1.46551038723 +S-N-C theta0= 1.73074949007 Ktheta= 2.26752482008 +S-N-Cl theta0= 1.70568759599 Ktheta= 2.49490517059 +S-N-F theta0= 1.71439850971 Ktheta= 1.81519825443 +S-N-H theta0= 1.80477374388 Ktheta= 0.790829780794 +S-N-N theta0= 1.74365466172 Ktheta= 1.56599503385 +S-N-O theta0= 1.69934375743 Ktheta= 1.95500460232 +S-N-P theta0= 1.67505827809 Ktheta= 2.55276597701 +S-N-S theta0= 1.64264453615 Ktheta= 3.26499654543 +S-N-Si theta0= 1.66022030658 Ktheta= 3.14124556476 +S-O-B theta0= 1.61657065623 Ktheta= 2.04005756156 +S-O-C theta0= 1.71386772688 Ktheta= 2.36267615964 +S-O-Cl theta0= 1.66693937717 Ktheta= 2.93279218556 +S-O-F theta0= 1.66401937281 Ktheta= 2.00432969273 +S-O-H theta0= 1.76256444789 Ktheta= 0.751873908029 +S-O-N theta0= 1.68594331764 Ktheta= 1.80026846742 +S-O-O theta0= 1.64989538994 Ktheta= 2.18753935803 +S-O-P theta0= 1.63325557565 Ktheta= 3.31682801788 +S-O-S theta0= 1.79603927012 Ktheta= 1.40752360489 +S-O-Si theta0= 1.62088368071 Ktheta= 4.35841089259 +S-P-B theta0= 1.60195279407 Ktheta= 0.749004091766 +S-P-C theta0= 1.61345001445 Ktheta= 2.23099785749 +S-P-Cl theta0= 1.62050942535 Ktheta= 2.21718651419 +S-P-F theta0= 1.61683160469 Ktheta= 1.76493444429 +S-P-H theta0= 1.63553337773 Ktheta= 0.833720860244 +S-P-N theta0= 1.64896081752 Ktheta= 1.56567236464 +S-P-O theta0= 1.57585893554 Ktheta= 1.62606564405 +S-P-P theta0= 1.60537069875 Ktheta= 1.81541601096 +S-P-S theta0= 1.57232234873 Ktheta= 2.41154891685 +S-P-Si theta0= 1.60428206486 Ktheta= 1.73429858627 +S-S-B theta0= 1.49276027144 Ktheta= 1.13305879399 +S-S-C theta0= 1.56211446416 Ktheta= 2.46596659614 +S-S-Cl theta0= 1.56445877282 Ktheta= 1.8104286592 +S-S-F theta0= 1.58295278373 Ktheta= 1.82194011562 +S-S-H theta0= 1.56797960489 Ktheta= 0.873087567623 +S-S-N theta0= 1.59735409871 Ktheta= 1.27424915148 +S-S-O theta0= 1.55320923949 Ktheta= 2.09903855508 +S-S-P theta0= 1.57373539026 Ktheta= 2.13053562092 +S-S-S theta0= 1.53479027179 Ktheta= 2.69028393746 +S-S-Si theta0= 1.5442155764 Ktheta= 2.42771991043 +S-Si-B theta0= 1.66167960343 Ktheta= 0.62235411491 +S-Si-C theta0= 1.66900572536 Ktheta= 1.66007638664 +S-Si-Cl theta0= 1.67220519625 Ktheta= 1.65362601329 +S-Si-F theta0= 1.70318179814 Ktheta= 1.16409772761 +S-Si-H theta0= 1.76068966123 Ktheta= 0.649939343837 +S-Si-N theta0= 1.73977634125 Ktheta= 1.01001075236 +S-Si-O theta0= 1.67715553941 Ktheta= 1.27134805086 +S-Si-P theta0= 1.64950653414 Ktheta= 1.3866477308 +S-Si-S theta0= 1.61888671931 Ktheta= 1.77170508144 +S-Si-Si theta0= 1.6600421226 Ktheta= 1.21598592926 +Si-B-B theta0= 1.95615277596 Ktheta= 0.338914733858 +Si-B-C theta0= 2.02156525031 Ktheta= 0.659359397578 +Si-B-Cl theta0= 2.02449062545 Ktheta= 0.67106739016 +Si-B-F theta0= 2.09235015799 Ktheta= 0.710187073448 +Si-B-H theta0= 2.1083585924 Ktheta= 0.444051397868 +Si-B-N theta0= 2.07712578537 Ktheta= 0.659811447876 +Si-B-O theta0= 2.06083034559 Ktheta= 0.683490360372 +Si-B-P theta0= 1.93501810433 Ktheta= 0.725435641027 +Si-B-S theta0= 1.9271716986 Ktheta= 0.814949509083 +Si-B-Si theta0= 1.88196168681 Ktheta= 1.1103702557 +Si-C-B theta0= 1.6447230037 Ktheta= 1.87653448694 +Si-C-C theta0= 1.7641486115 Ktheta= 1.51964130457 +Si-C-Cl theta0= 1.67711832368 Ktheta= 2.22299711546 +Si-C-F theta0= 1.80604671383 Ktheta= 0.779864367718 +Si-C-H theta0= 1.91792394207 Ktheta= 0.528081379466 +Si-C-N theta0= 1.70825700442 Ktheta= 1.02178526215 +Si-C-O theta0= 1.75858841872 Ktheta= 0.950450123602 +Si-C-P theta0= 1.65555226515 Ktheta= 2.39266456086 +Si-C-S theta0= 1.65617960833 Ktheta= 2.69453106369 +Si-C-Si theta0= 1.6512665485 Ktheta= 4.30046121088 +Si-N-B theta0= 1.70215353732 Ktheta= 1.71149380916 +Si-N-C theta0= 1.75534902987 Ktheta= 1.77571471231 +Si-N-Cl theta0= 1.65932953925 Ktheta= 2.86685979907 +Si-N-F theta0= 1.71237443553 Ktheta= 1.10674462372 +Si-N-H theta0= 1.95800831373 Ktheta= 0.452196297883 +Si-N-N theta0= 1.64979249751 Ktheta= 1.53135454356 +Si-N-O theta0= 1.71065750171 Ktheta= 1.19035760264 +Si-N-P theta0= 1.65460684389 Ktheta= 2.97157389838 +Si-N-S theta0= 1.66022030264 Ktheta= 3.14124568219 +Si-N-Si theta0= 1.67832946832 Ktheta= 4.42055377264 +Si-O-B theta0= 1.68192481956 Ktheta= 2.14028826556 +Si-O-C theta0= 1.70670275816 Ktheta= 2.43631132808 +Si-O-Cl theta0= 1.85540370503 Ktheta= 1.02570720928 +Si-O-F theta0= 1.59426463099 Ktheta= 2.01264158942 +Si-O-H theta0= 1.99306786222 Ktheta= 0.28042476183 +Si-O-N theta0= 1.57011782669 Ktheta= 2.69036286198 +Si-O-O theta0= 1.60551914679 Ktheta= 2.04792177129 +Si-O-P theta0= 1.61680331044 Ktheta= 4.38334364524 +Si-O-S theta0= 1.62088367953 Ktheta= 4.35841096432 +Si-O-Si theta0= 1.64959022227 Ktheta= 6.17589069494 +Si-P-B theta0= 1.60850944805 Ktheta= 0.913977482921 +Si-P-C theta0= 1.68206766135 Ktheta= 1.29935945975 +Si-P-Cl theta0= 1.65711654041 Ktheta= 1.2639983072 +Si-P-F theta0= 1.74647463283 Ktheta= 0.743983934729 +Si-P-H theta0= 1.78698592063 Ktheta= 0.531743630571 +Si-P-N theta0= 1.74761779351 Ktheta= 0.677606488094 +Si-P-O theta0= 1.7053738511 Ktheta= 0.815208730441 +Si-P-P theta0= 1.63160141514 Ktheta= 1.29544205573 +Si-P-S theta0= 1.60428201728 Ktheta= 1.73429881879 +Si-P-Si theta0= 1.59450334856 Ktheta= 2.78491919331 +Si-S-B theta0= 1.53244225195 Ktheta= 1.60167926201 +Si-S-C theta0= 1.59327421803 Ktheta= 1.97622816065 +Si-S-Cl theta0= 1.56869323958 Ktheta= 1.95666884328 +Si-S-F theta0= 1.6246948486 Ktheta= 0.894907557312 +Si-S-H theta0= 1.63269221864 Ktheta= 0.622537301266 +Si-S-N theta0= 1.57606614767 Ktheta= 0.99295319681 +Si-S-O theta0= 1.58619072157 Ktheta= 1.03349244815 +Si-S-P theta0= 1.55097836871 Ktheta= 2.11652992609 +Si-S-S theta0= 1.5442155472 Ktheta= 2.42772021974 +Si-S-Si theta0= 1.53749660895 Ktheta= 4.42856930188 +Si-Si-B theta0= 1.65067846997 Ktheta= 0.65795644041 +Si-Si-C theta0= 1.76811664494 Ktheta= 0.800311154024 +Si-Si-Cl theta0= 1.76659912586 Ktheta= 0.755279079422 +Si-Si-F theta0= 1.88820787527 Ktheta= 0.573064411715 +Si-Si-H theta0= 1.92679523164 Ktheta= 0.462525216728 +Si-Si-N theta0= 1.91767799845 Ktheta= 0.539766207965 +Si-Si-O theta0= 1.8420661092 Ktheta= 0.605162127386 +Si-Si-P theta0= 1.71003606233 Ktheta= 0.832456047468 +Si-Si-S theta0= 1.66004208093 Ktheta= 1.21598605954 +Si-Si-Si theta0= 1.62370413304 Ktheta= 2.03152736152 diff --git a/sim/src/parameters/bonds/B-B.inp b/sim/src/parameters/bonds/B-B.inp new file mode 100755 index 000000000..4f6ee24db --- /dev/null +++ b/sim/src/parameters/bonds/B-B.inp @@ -0,0 +1,21 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,4 igrp1(1)=4,5,6 + orig1=-0.5412 disp1=0.0164 ndisp1=50 $END + $DATA + *** Parm Gen for B-B +C1 + ALPH 5. 0.0000000 0.0000000 0.8200000 + H 1. 0.0000000 1.0334979 1.4100000 + H 1. 0.0000000 -1.0334979 1.4100000 + BETA 5. -0.0000000 -0.0000000 -0.8200000 + H 1. -0.0000000 -1.0334979 -1.4100000 + H 1. -0.0000000 1.0334979 -1.4100000 + $END diff --git a/sim/src/parameters/bonds/B-P.inp b/sim/src/parameters/bonds/B-P.inp new file mode 100755 index 000000000..599c9358c --- /dev/null +++ b/sim/src/parameters/bonds/B-P.inp @@ -0,0 +1,21 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,4 igrp1(1)=4,5,6 + orig1=-0.6171 disp1=0.0187 ndisp1=50 $END + $DATA + *** Parm Gen for B-P +C1 + ALPH 5. 0.0000000 0.0000000 0.8200000 + H 1. 0.0000000 1.0334979 1.4100000 + H 1. 0.0000000 -1.0334979 1.4100000 + BETA 15. -0.0000000 -0.0000000 -1.0500000 + H 1. -0.5996617 -1.0386445 -1.5751276 + H 1. -0.5996617 1.0386445 -1.5751276 + $END diff --git a/sim/src/parameters/bonds/B-S.inp b/sim/src/parameters/bonds/B-S.inp new file mode 100755 index 000000000..a05dee8dd --- /dev/null +++ b/sim/src/parameters/bonds/B-S.inp @@ -0,0 +1,20 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,4 igrp1(1)=4,5 + orig1=-0.594 disp1=0.018 ndisp1=50 $END + $DATA + *** Parm Gen for B-S +C1 + ALPH 5. 0.0000000 0.0000000 0.8200000 + H 1. 0.0000000 1.0334979 1.4100000 + H 1. 0.0000000 -1.0334979 1.4100000 + BETA 16. -0.0000000 -0.0000000 -0.9800000 + H 1. -1.3482368 -0.0000000 -0.9800000 + $END diff --git a/sim/src/parameters/bonds/C+C.inp b/sim/src/parameters/bonds/C+C.inp new file mode 100755 index 000000000..df07e40e2 --- /dev/null +++ b/sim/src/parameters/bonds/C+C.inp @@ -0,0 +1,19 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,3 igrp1(1)=3,4 + orig1=-0.398740662474 disp1=0.012083050378 ndisp1=50 $END + $DATA + *** Parm Gen for C+C +C1 + ALPH 6. 0.0000000 0.0000000 0.6041525 + H 1. 0.0000000 0.0000000 1.6709165 + BETA 6. -0.0000000 -0.0000000 -0.6041525 + H 1. -0.0000000 -0.0000000 -1.6709165 + $END diff --git a/sim/src/parameters/bonds/C-B.inp b/sim/src/parameters/bonds/C-B.inp new file mode 100755 index 000000000..ce6da3970 --- /dev/null +++ b/sim/src/parameters/bonds/C-B.inp @@ -0,0 +1,22 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,5 igrp1(1)=5,6,7 + orig1=-0.5082 disp1=0.0154 ndisp1=50 $END + $DATA + *** Parm Gen for C-B +C1 + ALPH 6. 0.0000000 0.0000000 0.7200000 + H 1. 0.6814900 0.0000000 0.9612250 + H 1. -0.3410000 0.5900000 0.9612250 + H 1. -0.3410000 -0.5900000 0.9612250 + BETA 5. -0.0000000 -0.0000000 -0.8200000 + H 1. -0.0000000 -1.0334979 -1.4100000 + H 1. -0.0000000 1.0334979 -1.4100000 + $END diff --git a/sim/src/parameters/bonds/C-C.inp b/sim/src/parameters/bonds/C-C.inp new file mode 100755 index 000000000..7fdd7a7cb --- /dev/null +++ b/sim/src/parameters/bonds/C-C.inp @@ -0,0 +1,23 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,5 igrp1(1)=5,6,7,8 + orig1=-0.4752 disp1=0.0144 ndisp1=50 $END + $DATA + *** Parm Gen for C-C +C1 + ALPH 6. 0.0000000 0.0000000 0.7200000 + H 1. 0.6814900 0.0000000 0.9612250 + H 1. -0.3410000 0.5900000 0.9612250 + H 1. -0.3410000 -0.5900000 0.9612250 + BETA 6. -0.0000000 -0.0000000 -0.7200000 + H 1. -0.6814900 -0.0000000 -0.9612250 + H 1. 0.3410000 -0.5900000 -0.9612250 + H 1. 0.3410000 0.5900000 -0.9612250 + $END diff --git a/sim/src/parameters/bonds/C-N.inp b/sim/src/parameters/bonds/C-N.inp new file mode 100755 index 000000000..9c55e9e12 --- /dev/null +++ b/sim/src/parameters/bonds/C-N.inp @@ -0,0 +1,22 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,5 igrp1(1)=5,6,7 + orig1=-0.45078 disp1=0.01366 ndisp1=50 $END + $DATA + *** Parm Gen for C-N +C1 + ALPH 6. 0.0000000 0.0000000 0.7200000 + H 1. 0.6814900 0.0000000 0.9612250 + H 1. -0.3410000 0.5900000 0.9612250 + H 1. -0.3410000 -0.5900000 0.9612250 + BETA 7. -0.0000000 -0.0000000 -0.6460000 + H 1. -0.5057000 -0.8226000 -0.9620000 + H 1. -0.5057000 0.8226000 -0.9620000 + $END diff --git a/sim/src/parameters/bonds/C-O.inp b/sim/src/parameters/bonds/C-O.inp new file mode 100755 index 000000000..84ec256a1 --- /dev/null +++ b/sim/src/parameters/bonds/C-O.inp @@ -0,0 +1,21 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,5 igrp1(1)=5,6 + orig1=-0.43395 disp1=0.01315 ndisp1=50 $END + $DATA + *** Parm Gen for C-O +C1 + ALPH 6. 0.0000000 0.0000000 0.7200000 + H 1. 0.6814900 0.0000000 0.9612250 + H 1. -0.3410000 0.5900000 0.9612250 + H 1. -0.3410000 -0.5900000 0.9612250 + BETA 8. -0.0000000 -0.0000000 -0.5950000 + H 1. -0.9280000 -0.0000000 -0.8590000 + $END diff --git a/sim/src/parameters/bonds/C-P.inp b/sim/src/parameters/bonds/C-P.inp new file mode 100755 index 000000000..ba6b5833c --- /dev/null +++ b/sim/src/parameters/bonds/C-P.inp @@ -0,0 +1,22 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,5 igrp1(1)=5,6,7 + orig1=-0.5841 disp1=0.0177 ndisp1=50 $END + $DATA + *** Parm Gen for C-P +C1 + ALPH 6. 0.0000000 0.0000000 0.7200000 + H 1. 0.6814900 0.0000000 0.9612250 + H 1. -0.3410000 0.5900000 0.9612250 + H 1. -0.3410000 -0.5900000 0.9612250 + BETA 15. -0.0000000 -0.0000000 -1.0500000 + H 1. -0.5996617 -1.0386445 -1.5751276 + H 1. -0.5996617 1.0386445 -1.5751276 + $END diff --git a/sim/src/parameters/bonds/C-S.inp b/sim/src/parameters/bonds/C-S.inp new file mode 100755 index 000000000..b0734712b --- /dev/null +++ b/sim/src/parameters/bonds/C-S.inp @@ -0,0 +1,21 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,5 igrp1(1)=5,6 + orig1=-0.561 disp1=0.017 ndisp1=50 $END + $DATA + *** Parm Gen for C-S +C1 + ALPH 6. 0.0000000 0.0000000 0.7200000 + H 1. 0.6814900 0.0000000 0.9612250 + H 1. -0.3410000 0.5900000 0.9612250 + H 1. -0.3410000 -0.5900000 0.9612250 + BETA 16. -0.0000000 -0.0000000 -0.9800000 + H 1. -1.3482368 -0.0000000 -0.9800000 + $END diff --git a/sim/src/parameters/bonds/Cl-B.inp b/sim/src/parameters/bonds/Cl-B.inp new file mode 100755 index 000000000..203ffdac4 --- /dev/null +++ b/sim/src/parameters/bonds/Cl-B.inp @@ -0,0 +1,19 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3,4 + orig1=-0.608028481038 disp1=0.018425105486 ndisp1=50 $END + $DATA + *** Parm Gen for Cl-B +C1 + ALPH 17. 0.0000000 0.0000000 1.0225105 + BETA 5. -0.0000000 -0.0000000 -0.8200000 + H 1. -0.0000000 -1.0334979 -1.4100000 + H 1. -0.0000000 1.0334979 -1.4100000 + $END diff --git a/sim/src/parameters/bonds/Cl-B.parms b/sim/src/parameters/bonds/Cl-B.parms new file mode 100755 index 000000000..87629ab7c --- /dev/null +++ b/sim/src/parameters/bonds/Cl-B.parms @@ -0,0 +1,5 @@ +Parameters for Cl-B +# R0 = 1.74896037887 +# Ks = 376.688850399 +# De = 0.607995498407 +# beta= 1.76005485345 diff --git a/sim/src/parameters/bonds/Cl-C.inp b/sim/src/parameters/bonds/Cl-C.inp new file mode 100755 index 000000000..b33aa775a --- /dev/null +++ b/sim/src/parameters/bonds/Cl-C.inp @@ -0,0 +1,20 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3,4,5 + orig1=-0.575028481038 disp1=0.017425105486 ndisp1=50 $END + $DATA + *** Parm Gen for Cl-C +C1 + ALPH 17. 0.0000000 0.0000000 1.0225105 + BETA 6. -0.0000000 -0.0000000 -0.7200000 + H 1. -0.6814900 -0.0000000 -0.9612250 + H 1. 0.3410000 -0.5900000 -0.9612250 + H 1. 0.3410000 0.5900000 -0.9612250 + $END diff --git a/sim/src/parameters/bonds/Cl-C.parms b/sim/src/parameters/bonds/Cl-C.parms new file mode 100755 index 000000000..1b4fd4ac7 --- /dev/null +++ b/sim/src/parameters/bonds/Cl-C.parms @@ -0,0 +1,5 @@ +Parameters for Cl-C +# R0 = 1.79609091883 +# Ks = 352.505523227 +# De = 0.564813767416 +# beta= 1.76650685937 diff --git a/sim/src/parameters/bonds/Cl-Cl.dat b/sim/src/parameters/bonds/Cl-Cl.dat new file mode 100755 index 000000000..f3725eb4e --- /dev/null +++ b/sim/src/parameters/bonds/Cl-Cl.dat @@ -0,0 +1,18 @@ + $DATA + *** Parm Gen for Cl-Cl +C1 0 +ALPH 17.0 0.0000000000 0.0000000000 1.0225105000 + N31 6 + L 1 + 1 0.0483000000 1.00000000 1.00000000 + D 1 + 1 0.7500000000 1.00000000 + +BETA 17.0 0.0000000000 0.0000000000 -1.0225105000 + N31 6 + L 1 + 1 0.0483000000 1.00000000 1.00000000 + D 1 + 1 0.7500000000 1.00000000 + + $END diff --git a/sim/src/parameters/bonds/Cl-Cl.inp b/sim/src/parameters/bonds/Cl-Cl.inp new file mode 100755 index 000000000..20f0d9871 --- /dev/null +++ b/sim/src/parameters/bonds/Cl-Cl.inp @@ -0,0 +1,17 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2 + orig1=-0.674856962076 disp1=0.020450210972 ndisp1=50 $END + $DATA + *** Parm Gen for Cl-Cl +C1 + ALPH 17. 0.0000000 0.0000000 1.0225105 + BETA 17. -0.0000000 -0.0000000 -1.0225105 + $END diff --git a/sim/src/parameters/bonds/Cl-Cl.parms b/sim/src/parameters/bonds/Cl-Cl.parms new file mode 100755 index 000000000..0d2a92d75 --- /dev/null +++ b/sim/src/parameters/bonds/Cl-Cl.parms @@ -0,0 +1,5 @@ +Parameters for Cl-Cl +# R0 = 2.04540831439 +# Ks = 274.70046421 +# De = 0.456479315823 +# beta= 1.73461919191 diff --git a/sim/src/parameters/bonds/Cl-F.inp b/sim/src/parameters/bonds/Cl-F.inp new file mode 100755 index 000000000..9da677316 --- /dev/null +++ b/sim/src/parameters/bonds/Cl-F.inp @@ -0,0 +1,17 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2 + orig1=-0.570235262025 disp1=0.017279856425 ndisp1=50 $END + $DATA + *** Parm Gen for Cl-F +C1 + ALPH 17. 0.0000000 0.0000000 1.0225105 + BETA 9. -0.0000000 -0.0000000 -0.7054751 + $END diff --git a/sim/src/parameters/bonds/Cl-F.parms b/sim/src/parameters/bonds/Cl-F.parms new file mode 100755 index 000000000..4230092f3 --- /dev/null +++ b/sim/src/parameters/bonds/Cl-F.parms @@ -0,0 +1,5 @@ +Parameters for Cl-F +# R0 = 1.66959882604 +# Ks = 437.456723554 +# De = 0.605863460427 +# beta= 1.90005061245 diff --git a/sim/src/parameters/bonds/Cl-H.inp b/sim/src/parameters/bonds/Cl-H.inp new file mode 100755 index 000000000..1217c8c75 --- /dev/null +++ b/sim/src/parameters/bonds/Cl-H.inp @@ -0,0 +1,17 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2 + orig1=-0.460037196498 disp1=0.013940521106 ndisp1=50 $END + $DATA + *** Parm Gen for Cl-H +C1 + ALPH 17. 0.0000000 0.0000000 1.0225105 + BETA 1. -0.0000000 -0.0000000 -0.3715416 + $END diff --git a/sim/src/parameters/bonds/Cl-H.parms b/sim/src/parameters/bonds/Cl-H.parms new file mode 100755 index 000000000..5ae82e397 --- /dev/null +++ b/sim/src/parameters/bonds/Cl-H.parms @@ -0,0 +1,5 @@ +Parameters for Cl-H +# R0 = 1.28719499248 +# Ks = 502.458682961 +# De = 0.658073583862 +# beta= 1.95388028612 diff --git a/sim/src/parameters/bonds/Cl-N.inp b/sim/src/parameters/bonds/Cl-N.inp new file mode 100755 index 000000000..8223a08c0 --- /dev/null +++ b/sim/src/parameters/bonds/Cl-N.inp @@ -0,0 +1,19 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3,4 + orig1=-0.550608481038 disp1=0.016685105486 ndisp1=50 $END + $DATA + *** Parm Gen for Cl-N +C1 + ALPH 17. 0.0000000 0.0000000 1.0225105 + BETA 7. -0.0000000 -0.0000000 -0.6460000 + H 1. -0.5057000 -0.8226000 -0.9620000 + H 1. -0.5057000 0.8226000 -0.9620000 + $END diff --git a/sim/src/parameters/bonds/Cl-N.parms b/sim/src/parameters/bonds/Cl-N.parms new file mode 100755 index 000000000..4aeadb324 --- /dev/null +++ b/sim/src/parameters/bonds/Cl-N.parms @@ -0,0 +1,5 @@ +Parameters for Cl-N +# R0 = 1.75785296278 +# Ks = 344.384660281 +# De = 0.48435299708 +# beta= 1.8854972608 diff --git a/sim/src/parameters/bonds/Cl-O.inp b/sim/src/parameters/bonds/Cl-O.inp new file mode 100755 index 000000000..b571ab7e8 --- /dev/null +++ b/sim/src/parameters/bonds/Cl-O.inp @@ -0,0 +1,18 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3 + orig1=-0.533778481038 disp1=0.016175105486 ndisp1=50 $END + $DATA + *** Parm Gen for Cl-O +C1 + ALPH 17. 0.0000000 0.0000000 1.0225105 + BETA 8. -0.0000000 -0.0000000 -0.5950000 + H 1. -0.9280000 -0.0000000 -0.8590000 + $END diff --git a/sim/src/parameters/bonds/Cl-O.parms b/sim/src/parameters/bonds/Cl-O.parms new file mode 100755 index 000000000..7b42b2960 --- /dev/null +++ b/sim/src/parameters/bonds/Cl-O.parms @@ -0,0 +1,5 @@ +Parameters for Cl-O +# R0 = 1.72257770658 +# Ks = 365.06324005 +# De = 0.490975037799 +# beta= 1.92814347944 diff --git a/sim/src/parameters/bonds/Cl-P.inp b/sim/src/parameters/bonds/Cl-P.inp new file mode 100755 index 000000000..3273c6bff --- /dev/null +++ b/sim/src/parameters/bonds/Cl-P.inp @@ -0,0 +1,19 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3,4 + orig1=-0.683928481038 disp1=0.020725105486 ndisp1=50 $END + $DATA + *** Parm Gen for Cl-P +C1 + ALPH 17. 0.0000000 0.0000000 1.0225105 + BETA 15. -0.0000000 -0.0000000 -1.0500000 + H 1. -0.5996617 -1.0386445 -1.5751276 + H 1. -0.5996617 1.0386445 -1.5751276 + $END diff --git a/sim/src/parameters/bonds/Cl-P.parms b/sim/src/parameters/bonds/Cl-P.parms new file mode 100755 index 000000000..f0c5c6d33 --- /dev/null +++ b/sim/src/parameters/bonds/Cl-P.parms @@ -0,0 +1,5 @@ +Parameters for Cl-P +# R0 = 2.07089666025 +# Ks = 249.953275709 +# De = 0.408061148854 +# beta= 1.75005539011 diff --git a/sim/src/parameters/bonds/Cl-S.inp b/sim/src/parameters/bonds/Cl-S.inp new file mode 100755 index 000000000..c034d389c --- /dev/null +++ b/sim/src/parameters/bonds/Cl-S.inp @@ -0,0 +1,18 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3 + orig1=-0.660828481038 disp1=0.020025105486 ndisp1=50 $END + $DATA + *** Parm Gen for Cl-S +C1 + ALPH 17. 0.0000000 0.0000000 1.0225105 + BETA 16. -0.0000000 -0.0000000 -0.9800000 + H 1. -1.3482368 -0.0000000 -0.9800000 + $END diff --git a/sim/src/parameters/bonds/Cl-S.parms b/sim/src/parameters/bonds/Cl-S.parms new file mode 100755 index 000000000..125a95cbb --- /dev/null +++ b/sim/src/parameters/bonds/Cl-S.parms @@ -0,0 +1,5 @@ +Parameters for Cl-S +# R0 = 2.09454366507 +# Ks = 247.763924519 +# De = 0.441111768797 +# beta= 1.67582905382 diff --git a/sim/src/parameters/bonds/F-B.inp b/sim/src/parameters/bonds/F-B.inp new file mode 100755 index 000000000..c2521973d --- /dev/null +++ b/sim/src/parameters/bonds/F-B.inp @@ -0,0 +1,19 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3,4 + orig1=-0.503406780987 disp1=0.015254750939 ndisp1=50 $END + $DATA + *** Parm Gen for F-B +C1 + ALPH 9. 0.0000000 0.0000000 0.7054751 + BETA 5. -0.0000000 -0.0000000 -0.8200000 + H 1. -0.0000000 -1.0334979 -1.4100000 + H 1. -0.0000000 1.0334979 -1.4100000 + $END diff --git a/sim/src/parameters/bonds/F-C.inp b/sim/src/parameters/bonds/F-C.inp new file mode 100755 index 000000000..2b80cdfeb --- /dev/null +++ b/sim/src/parameters/bonds/F-C.inp @@ -0,0 +1,20 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3,4,5 + orig1=-0.470406780987 disp1=0.014254750939 ndisp1=50 $END + $DATA + *** Parm Gen for F-C +C1 + ALPH 9. 0.0000000 0.0000000 0.7054751 + BETA 6. -0.0000000 -0.0000000 -0.7200000 + H 1. -0.6814900 -0.0000000 -0.9612250 + H 1. 0.3410000 -0.5900000 -0.9612250 + H 1. 0.3410000 0.5900000 -0.9612250 + $END diff --git a/sim/src/parameters/bonds/F-C.parms b/sim/src/parameters/bonds/F-C.parms new file mode 100755 index 000000000..a568027bf --- /dev/null +++ b/sim/src/parameters/bonds/F-C.parms @@ -0,0 +1,5 @@ +Parameters for F-C +# R0 = 1.4183477 +# Ks = 573.93843785 +# De = 0.645820393541 +# beta= 2.10795715951 diff --git a/sim/src/parameters/bonds/F-F.inp b/sim/src/parameters/bonds/F-F.inp new file mode 100755 index 000000000..2626d36ca --- /dev/null +++ b/sim/src/parameters/bonds/F-F.inp @@ -0,0 +1,17 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2 + orig1=-0.465613561974 disp1=0.014109501878 ndisp1=50 $END + $DATA + *** Parm Gen for F-F +C1 + ALPH 9. 0.0000000 0.0000000 0.7054751 + BETA 9. -0.0000000 -0.0000000 -0.7054751 + $END diff --git a/sim/src/parameters/bonds/F-F.parms b/sim/src/parameters/bonds/F-F.parms new file mode 100755 index 000000000..06facce27 --- /dev/null +++ b/sim/src/parameters/bonds/F-F.parms @@ -0,0 +1,5 @@ +Parameters for F-F +# R0 = 1.41110468358 +# Ks = 599.548238053 +# De = 0.651489321013 +# beta= 2.14507962137 diff --git a/sim/src/parameters/bonds/F-N.inp b/sim/src/parameters/bonds/F-N.inp new file mode 100755 index 000000000..92632fbbe --- /dev/null +++ b/sim/src/parameters/bonds/F-N.inp @@ -0,0 +1,19 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3,4 + orig1=-0.445986780987 disp1=0.013514750939 ndisp1=50 $END + $DATA + *** Parm Gen for F-N +C1 + ALPH 9. 0.0000000 0.0000000 0.7054751 + BETA 7. -0.0000000 -0.0000000 -0.6460000 + H 1. -0.5057000 -0.8226000 -0.9620000 + H 1. -0.5057000 0.8226000 -0.9620000 + $END diff --git a/sim/src/parameters/bonds/F-N.parms b/sim/src/parameters/bonds/F-N.parms new file mode 100755 index 000000000..14bedb0c7 --- /dev/null +++ b/sim/src/parameters/bonds/F-N.parms @@ -0,0 +1,5 @@ +Parameters for F-N +# R0 = 1.41381427873 +# Ks = 524.141606703 +# De = 0.540226858412 +# beta= 2.20252696414 diff --git a/sim/src/parameters/bonds/F-O.inp b/sim/src/parameters/bonds/F-O.inp new file mode 100755 index 000000000..4c372118e --- /dev/null +++ b/sim/src/parameters/bonds/F-O.inp @@ -0,0 +1,18 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3 + orig1=-0.429156780987 disp1=0.013004750939 ndisp1=50 $END + $DATA + *** Parm Gen for F-O +C1 + ALPH 9. 0.0000000 0.0000000 0.7054751 + BETA 8. -0.0000000 -0.0000000 -0.5950000 + H 1. -0.9280000 -0.0000000 -0.8590000 + $END diff --git a/sim/src/parameters/bonds/F-P.inp b/sim/src/parameters/bonds/F-P.inp new file mode 100755 index 000000000..b3295146b --- /dev/null +++ b/sim/src/parameters/bonds/F-P.inp @@ -0,0 +1,19 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3,4 + orig1=-0.579306780987 disp1=0.017554750939 ndisp1=50 $END + $DATA + *** Parm Gen for F-P +C1 + ALPH 9. 0.0000000 0.0000000 0.7054751 + BETA 15. -0.0000000 -0.0000000 -1.0500000 + H 1. -0.5996617 -1.0386445 -1.5751276 + H 1. -0.5996617 1.0386445 -1.5751276 + $END diff --git a/sim/src/parameters/bonds/F-S.inp b/sim/src/parameters/bonds/F-S.inp new file mode 100755 index 000000000..62a051a57 --- /dev/null +++ b/sim/src/parameters/bonds/F-S.inp @@ -0,0 +1,18 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3 + orig1=-0.556206780987 disp1=0.016854750939 ndisp1=50 $END + $DATA + *** Parm Gen for F-S +C1 + ALPH 9. 0.0000000 0.0000000 0.7054751 + BETA 16. -0.0000000 -0.0000000 -0.9800000 + H 1. -1.3482368 -0.0000000 -0.9800000 + $END diff --git a/sim/src/parameters/bonds/H-B.inp b/sim/src/parameters/bonds/H-B.inp new file mode 100755 index 000000000..95d88a6c7 --- /dev/null +++ b/sim/src/parameters/bonds/H-B.inp @@ -0,0 +1,19 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3,4 + orig1=-0.39320871546 disp1=0.01191541562 ndisp1=50 $END + $DATA + *** Parm Gen for H-B +C1 + ALPH 1. 0.0000000 0.0000000 0.3715416 + BETA 5. -0.0000000 -0.0000000 -0.8200000 + H 1. -0.0000000 -1.0334979 -1.4100000 + H 1. -0.0000000 1.0334979 -1.4100000 + $END diff --git a/sim/src/parameters/bonds/H-B.parms b/sim/src/parameters/bonds/H-B.parms new file mode 100755 index 000000000..a91f275c6 --- /dev/null +++ b/sim/src/parameters/bonds/H-B.parms @@ -0,0 +1,5 @@ +Parameters for H-B +# R0 = 1.19384024016 +# Ks = 385.245868453 +# De = 0.596292691563 +# beta= 1.79731522765 diff --git a/sim/src/parameters/bonds/H-C.inp b/sim/src/parameters/bonds/H-C.inp new file mode 100755 index 000000000..30a8e8017 --- /dev/null +++ b/sim/src/parameters/bonds/H-C.inp @@ -0,0 +1,20 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3,4,5 + orig1=-0.36020871546 disp1=0.01091541562 ndisp1=50 $END + $DATA + *** Parm Gen for H-C +C1 + ALPH 1. 0.0000000 0.0000000 0.3715416 + BETA 6. -0.0000000 -0.0000000 -0.7200000 + H 1. -0.6814900 -0.0000000 -0.9612250 + H 1. 0.3410000 -0.5900000 -0.9612250 + H 1. 0.3410000 0.5900000 -0.9612250 + $END diff --git a/sim/src/parameters/bonds/H-C.parms b/sim/src/parameters/bonds/H-C.parms new file mode 100755 index 000000000..c820d89c3 --- /dev/null +++ b/sim/src/parameters/bonds/H-C.parms @@ -0,0 +1,5 @@ +Parameters for H-C +# R0 = 1.08752412639 +# Ks = 540.387648573 +# De = 0.627523671481 +# beta= 2.07502174719 diff --git a/sim/src/parameters/bonds/H-F.inp b/sim/src/parameters/bonds/H-F.inp new file mode 100755 index 000000000..465fd16cc --- /dev/null +++ b/sim/src/parameters/bonds/H-F.inp @@ -0,0 +1,17 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2 + orig1=-0.355415496447 disp1=0.010770166559 ndisp1=50 $END + $DATA + *** Parm Gen for H-F +C1 + ALPH 1. 0.0000000 0.0000000 0.3715416 + BETA 9. -0.0000000 -0.0000000 -0.7054751 + $END diff --git a/sim/src/parameters/bonds/H-F.parms b/sim/src/parameters/bonds/H-F.parms new file mode 100755 index 000000000..1ba7945e7 --- /dev/null +++ b/sim/src/parameters/bonds/H-F.parms @@ -0,0 +1,5 @@ +Parameters for H-F +# R0 = 0.928229620265 +# Ks = 930.158715987 +# De = 0.695578981122 +# beta= 2.58577246858 diff --git a/sim/src/parameters/bonds/H-H.inp b/sim/src/parameters/bonds/H-H.inp new file mode 100755 index 000000000..72c23bc85 --- /dev/null +++ b/sim/src/parameters/bonds/H-H.inp @@ -0,0 +1,17 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2 + orig1=-0.24521743092 disp1=0.00743083124 ndisp1=50 $END + $DATA + *** Parm Gen for H-H +C1 + ALPH 1. 0.0000000 0.0000000 0.3715416 + BETA 1. -0.0000000 -0.0000000 -0.3715416 + $END diff --git a/sim/src/parameters/bonds/H-H.parms b/sim/src/parameters/bonds/H-H.parms new file mode 100755 index 000000000..92d506e07 --- /dev/null +++ b/sim/src/parameters/bonds/H-H.parms @@ -0,0 +1,5 @@ +Parameters for H-H +# R0 = 0.743180973684 +# Ks = 599.553025525 +# De = 0.582847722546 +# beta= 2.26788615485 diff --git a/sim/src/parameters/bonds/H-N.inp b/sim/src/parameters/bonds/H-N.inp new file mode 100755 index 000000000..5aec6bc55 --- /dev/null +++ b/sim/src/parameters/bonds/H-N.inp @@ -0,0 +1,19 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3,4 + orig1=-0.33578871546 disp1=0.01017541562 ndisp1=50 $END + $DATA + *** Parm Gen for H-N +C1 + ALPH 1. 0.0000000 0.0000000 0.3715416 + BETA 7. -0.0000000 -0.0000000 -0.6460000 + H 1. -0.5057000 -0.8226000 -0.9620000 + H 1. -0.5057000 0.8226000 -0.9620000 + $END diff --git a/sim/src/parameters/bonds/H-N.parms b/sim/src/parameters/bonds/H-N.parms new file mode 100755 index 000000000..2d1222fd3 --- /dev/null +++ b/sim/src/parameters/bonds/H-N.parms @@ -0,0 +1,5 @@ +Parameters for H-N +# R0 = 1.01630730592 +# Ks = 716.722762381 +# De = 0.690749985707 +# beta= 2.27771907358 diff --git a/sim/src/parameters/bonds/H-O.inp b/sim/src/parameters/bonds/H-O.inp new file mode 100755 index 000000000..11c8ff794 --- /dev/null +++ b/sim/src/parameters/bonds/H-O.inp @@ -0,0 +1,18 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3 + orig1=-0.31895871546 disp1=0.00966541562 ndisp1=50 $END + $DATA + *** Parm Gen for H-O +C1 + ALPH 1. 0.0000000 0.0000000 0.3715416 + BETA 8. -0.0000000 -0.0000000 -0.5950000 + H 1. -0.9280000 -0.0000000 -0.8590000 + $END diff --git a/sim/src/parameters/bonds/H-O.parms b/sim/src/parameters/bonds/H-O.parms new file mode 100755 index 000000000..74f1ab7f0 --- /dev/null +++ b/sim/src/parameters/bonds/H-O.parms @@ -0,0 +1,5 @@ +Parameters for H-O +# R0 = 0.965347 +# Ks = 838.193670889 +# De = 0.673179557559 +# beta= 2.4951216877 diff --git a/sim/src/parameters/bonds/H-P.inp b/sim/src/parameters/bonds/H-P.inp new file mode 100755 index 000000000..193ab304d --- /dev/null +++ b/sim/src/parameters/bonds/H-P.inp @@ -0,0 +1,19 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3,4 + orig1=-0.46910871546 disp1=0.01421541562 ndisp1=50 $END + $DATA + *** Parm Gen for H-P +C1 + ALPH 1. 0.0000000 0.0000000 0.3715416 + BETA 15. -0.0000000 -0.0000000 -1.0500000 + H 1. -0.5996617 -1.0386445 -1.5751276 + H 1. -0.5996617 1.0386445 -1.5751276 + $END diff --git a/sim/src/parameters/bonds/H-P.parms b/sim/src/parameters/bonds/H-P.parms new file mode 100755 index 000000000..1c57a30f3 --- /dev/null +++ b/sim/src/parameters/bonds/H-P.parms @@ -0,0 +1,5 @@ +Parameters for H-P +# R0 = 1.40332004182 +# Ks = 363.2774435 +# De = 0.61833307634 +# beta= 1.7139295996 diff --git a/sim/src/parameters/bonds/H-S.inp b/sim/src/parameters/bonds/H-S.inp new file mode 100755 index 000000000..664715b8d --- /dev/null +++ b/sim/src/parameters/bonds/H-S.inp @@ -0,0 +1,18 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,2 igrp1(1)=2,3 + orig1=-0.44600871546 disp1=0.01351541562 ndisp1=50 $END + $DATA + *** Parm Gen for H-S +C1 + ALPH 1. 0.0000000 0.0000000 0.3715416 + BETA 16. -0.0000000 -0.0000000 -0.9800000 + H 1. -1.3482368 -0.0000000 -0.9800000 + $END diff --git a/sim/src/parameters/bonds/H-S.parms b/sim/src/parameters/bonds/H-S.parms new file mode 100755 index 000000000..c514dd0fd --- /dev/null +++ b/sim/src/parameters/bonds/H-S.parms @@ -0,0 +1,5 @@ +Parameters for H-S +# R0 = 1.3492628407 +# Ks = 415.749233829 +# De = 0.610205701941 +# beta= 1.84570632371 diff --git a/sim/src/parameters/bonds/N-B.inp b/sim/src/parameters/bonds/N-B.inp new file mode 100755 index 000000000..9f80eb5e7 --- /dev/null +++ b/sim/src/parameters/bonds/N-B.inp @@ -0,0 +1,21 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,4 igrp1(1)=4,5,6 + orig1=-0.48378 disp1=0.01466 ndisp1=50 $END + $DATA + *** Parm Gen for N-B +C1 + ALPH 7. 0.0000000 0.0000000 0.6460000 + H 1. 0.5057000 0.8226000 0.9620000 + H 1. 0.5057000 -0.8226000 0.9620000 + BETA 5. -0.0000000 -0.0000000 -0.8200000 + H 1. -0.0000000 -1.0334979 -1.4100000 + H 1. -0.0000000 1.0334979 -1.4100000 + $END diff --git a/sim/src/parameters/bonds/N-N.inp b/sim/src/parameters/bonds/N-N.inp new file mode 100755 index 000000000..09dbd5ce3 --- /dev/null +++ b/sim/src/parameters/bonds/N-N.inp @@ -0,0 +1,21 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,4 igrp1(1)=4,5,6 + orig1=-0.42636 disp1=0.01292 ndisp1=50 $END + $DATA + *** Parm Gen for N-N +C1 + ALPH 7. 0.0000000 0.0000000 0.6460000 + H 1. 0.5057000 0.8226000 0.9620000 + H 1. 0.5057000 -0.8226000 0.9620000 + BETA 7. -0.0000000 -0.0000000 -0.6460000 + H 1. -0.5057000 -0.8226000 -0.9620000 + H 1. -0.5057000 0.8226000 -0.9620000 + $END diff --git a/sim/src/parameters/bonds/N-O.inp b/sim/src/parameters/bonds/N-O.inp new file mode 100755 index 000000000..e1f600e7f --- /dev/null +++ b/sim/src/parameters/bonds/N-O.inp @@ -0,0 +1,20 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,4 igrp1(1)=4,5 + orig1=-0.40953 disp1=0.01241 ndisp1=50 $END + $DATA + *** Parm Gen for N-O +C1 + ALPH 7. 0.0000000 0.0000000 0.6460000 + H 1. 0.5057000 0.8226000 0.9620000 + H 1. 0.5057000 -0.8226000 0.9620000 + BETA 8. -0.0000000 -0.0000000 -0.5950000 + H 1. -0.9280000 -0.0000000 -0.8590000 + $END diff --git a/sim/src/parameters/bonds/N-P.inp b/sim/src/parameters/bonds/N-P.inp new file mode 100755 index 000000000..45bea4e9f --- /dev/null +++ b/sim/src/parameters/bonds/N-P.inp @@ -0,0 +1,21 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,4 igrp1(1)=4,5,6 + orig1=-0.55968 disp1=0.01696 ndisp1=50 $END + $DATA + *** Parm Gen for N-P +C1 + ALPH 7. 0.0000000 0.0000000 0.6460000 + H 1. 0.5057000 0.8226000 0.9620000 + H 1. 0.5057000 -0.8226000 0.9620000 + BETA 15. -0.0000000 -0.0000000 -1.0500000 + H 1. -0.5996617 -1.0386445 -1.5751276 + H 1. -0.5996617 1.0386445 -1.5751276 + $END diff --git a/sim/src/parameters/bonds/N-S.inp b/sim/src/parameters/bonds/N-S.inp new file mode 100755 index 000000000..1b2cd7a4e --- /dev/null +++ b/sim/src/parameters/bonds/N-S.inp @@ -0,0 +1,20 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,4 igrp1(1)=4,5 + orig1=-0.53658 disp1=0.01626 ndisp1=50 $END + $DATA + *** Parm Gen for N-S +C1 + ALPH 7. 0.0000000 0.0000000 0.6460000 + H 1. 0.5057000 0.8226000 0.9620000 + H 1. 0.5057000 -0.8226000 0.9620000 + BETA 16. -0.0000000 -0.0000000 -0.9800000 + H 1. -1.3482368 -0.0000000 -0.9800000 + $END diff --git a/sim/src/parameters/bonds/O-B.inp b/sim/src/parameters/bonds/O-B.inp new file mode 100755 index 000000000..30d54d2c4 --- /dev/null +++ b/sim/src/parameters/bonds/O-B.inp @@ -0,0 +1,20 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,3 igrp1(1)=3,4,5 + orig1=-0.48345 disp1=0.01465 ndisp1=50 $END + $DATA + *** Parm Gen for O-B +C1 + ALPH 8. 0.0000000 0.0000000 0.6450000 + H 1. 0.9280000 0.0000000 0.9090000 + BETA 5. -0.0000000 -0.0000000 -0.8200000 + H 1. -0.0000000 -1.0334979 -1.4100000 + H 1. -0.0000000 1.0334979 -1.4100000 + $END diff --git a/sim/src/parameters/bonds/O-O.inp b/sim/src/parameters/bonds/O-O.inp new file mode 100755 index 000000000..13a733f96 --- /dev/null +++ b/sim/src/parameters/bonds/O-O.inp @@ -0,0 +1,19 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,3 igrp1(1)=3,4 + orig1=-0.4257 disp1=0.0129 ndisp1=50 $END + $DATA + *** Parm Gen for O-O +C1 + ALPH 8. 0.0000000 0.0000000 0.6450000 + H 1. 0.9280000 0.0000000 0.9090000 + BETA 8. -0.0000000 -0.0000000 -0.6450000 + H 1. -0.9280000 -0.0000000 -0.9090000 + $END diff --git a/sim/src/parameters/bonds/O-P.inp b/sim/src/parameters/bonds/O-P.inp new file mode 100755 index 000000000..59aaafc3a --- /dev/null +++ b/sim/src/parameters/bonds/O-P.inp @@ -0,0 +1,20 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,3 igrp1(1)=3,4,5 + orig1=-0.55935 disp1=0.01695 ndisp1=50 $END + $DATA + *** Parm Gen for O-P +C1 + ALPH 8. 0.0000000 0.0000000 0.6450000 + H 1. 0.9280000 0.0000000 0.9090000 + BETA 15. -0.0000000 -0.0000000 -1.0500000 + H 1. -0.5996617 -1.0386445 -1.5751276 + H 1. -0.5996617 1.0386445 -1.5751276 + $END diff --git a/sim/src/parameters/bonds/O-S.inp b/sim/src/parameters/bonds/O-S.inp new file mode 100755 index 000000000..72f4825bd --- /dev/null +++ b/sim/src/parameters/bonds/O-S.inp @@ -0,0 +1,19 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,3 igrp1(1)=3,4 + orig1=-0.53625 disp1=0.01625 ndisp1=50 $END + $DATA + *** Parm Gen for O-S +C1 + ALPH 8. 0.0000000 0.0000000 0.6450000 + H 1. 0.9280000 0.0000000 0.9090000 + BETA 16. -0.0000000 -0.0000000 -0.9800000 + H 1. -1.3482368 -0.0000000 -0.9800000 + $END diff --git a/sim/src/parameters/bonds/P-P.inp b/sim/src/parameters/bonds/P-P.inp new file mode 100755 index 000000000..d1a808280 --- /dev/null +++ b/sim/src/parameters/bonds/P-P.inp @@ -0,0 +1,21 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,4 igrp1(1)=4,5,6 + orig1=-0.693 disp1=0.021 ndisp1=50 $END + $DATA + *** Parm Gen for P-P +C1 + ALPH 15. 0.0000000 0.0000000 1.0500000 + H 1. 0.5996617 1.0386445 1.5751276 + H 1. 0.5996617 -1.0386445 1.5751276 + BETA 15. -0.0000000 -0.0000000 -1.0500000 + H 1. -0.5996617 -1.0386445 -1.5751276 + H 1. -0.5996617 1.0386445 -1.5751276 + $END diff --git a/sim/src/parameters/bonds/S-P.inp b/sim/src/parameters/bonds/S-P.inp new file mode 100755 index 000000000..cb71979ed --- /dev/null +++ b/sim/src/parameters/bonds/S-P.inp @@ -0,0 +1,20 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,3 igrp1(1)=3,4,5 + orig1=-0.6699 disp1=0.0203 ndisp1=50 $END + $DATA + *** Parm Gen for S-P +C1 + ALPH 16. 0.0000000 0.0000000 0.9800000 + H 1. 1.3482368 0.0000000 0.9800000 + BETA 15. -0.0000000 -0.0000000 -1.0500000 + H 1. -0.5996617 -1.0386445 -1.5751276 + H 1. -0.5996617 1.0386445 -1.5751276 + $END diff --git a/sim/src/parameters/bonds/S-S.inp b/sim/src/parameters/bonds/S-S.inp new file mode 100755 index 000000000..93bc875ad --- /dev/null +++ b/sim/src/parameters/bonds/S-S.inp @@ -0,0 +1,19 @@ +! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $SURF ivec1(1)=1,3 igrp1(1)=3,4 + orig1=-0.6468 disp1=0.0196 ndisp1=50 $END + $DATA + *** Parm Gen for S-S +C1 + ALPH 16. 0.0000000 0.0000000 0.9800000 + H 1. 1.3482368 0.0000000 0.9800000 + BETA 16. -0.0000000 -0.0000000 -0.9800000 + H 1. -1.3482368 -0.0000000 -0.9800000 + $END diff --git a/sim/src/parameters/collang.py b/sim/src/parameters/collang.py new file mode 100755 index 000000000..ee1d5ed39 --- /dev/null +++ b/sim/src/parameters/collang.py @@ -0,0 +1,189 @@ +#! /usr/bin/python + +import os +import sys +import re +from Numeric import * +from LinearAlgebra import * + +nampat = re.compile("([A-Z][a-z]?[+=-][A-Z][a-z]?[+=-][A-Z][a-z]?)\.1\.log") +thetapat = re.compile(" INPUT CARD\> *theta *= *([\d\.-]+)") +engpat = re.compile(" FINAL U-B3LYP ENERGY IS +([\d\.-]+)") +hobond = re.compile("[A-Z+=]+\.") + +Hartree = 4.3597482 # attoJoules +Bohr = 0.5291772083 # Angstroms + +def fexist(fname): + try: os.stat(fname) + except OSError: return False + return True + +def findnext(f,pat): + while 1: + card = f.readline() + if not card: return None + m = pat.match(card) + if m: return m + +def ending(nam,suf): + if suf==nam[-len(suf):]: return nam + else: return nam+suf + +def readangle(name): + b=zeros((0,2),Float) + for num in "123456789": + fn='angles/'+name+'.'+num+'.log' + if not fexist(fn): continue + f=open(fn) + theta = 2*(180-float(findnext(f,thetapat).group(1)))*pi/180.0 + try: e = float(findnext(f,engpat).group(1))*Hartree + except AttributeError: + # print '# bad energy in',name+'.'+num + e=0.0 + if e != 0.0: b=concatenate((b,array(((theta,e),))),axis=0) + return b + +# return a function that evals a polynomial +def poly(c): + def ep(x): + b=0.0 + for q in c: + b = q+x*b + return b + return ep + +# The derivative of a polynomial +def dif(p): + a=arange(len(p))[::-1] + return (a*p)[:-1] + +def newton(f,df,g): + fg=f(g) + while abs(fg)>1e-8: + dfg=df(g) + g=g-fg/dfg + fg=f(g) + return g + +def quadmin(a,fa,b,fb,c,fc): + num = (b-a)**2 * (fb-fc) - (b-c)**2 * (fb-fa) + den = (b-a) * (fb-fc) - (b-c) * (fb-fa) + if den == 0.0: return b + return b - num / (2*den) + +def golden(f,a,fa,b,fb,c,fc, tol=1e-2): + if c-a<tol: return quadmin(a,fa,b,fb,c,fc) + if c-b > b-a: + new = b+0.38197*(c-b) + fnew = f(new) + if fnew < fb: return golden(f, b,fb, new,fnew, c,fc) + else: return golden(f, a,fa, b,fb, new, fnew) + else: + new = a+0.61803*(b-a) + fnew = f(new) + if fnew < fb: return golden(f, a, fa, new,fnew, b,fb) + else: return golden(f, new, fnew, b,fb, c,fc) + +def ak(m): + + # find lowest point + lo=m[0][1] + ix=0 + for i in range(shape(m)[0]): + if m[i][1] < lo: + lo=m[i][1] + ix=i + # take it and its neighbors for parabolic interpolation + a = m[ix-1][0] + fa= m[ix-1][1] + b = m[ix][0] + fb= m[ix][1] + c = m[ix+1][0] + fc= m[ix+1][1] + + # the lowest point on the parabola + th0 = quadmin(a,fa,b,fb,c,fc) + + # its value via Lagrange's formula + eth0 = (fa*((th0-b)*(th0-c))/((a-b)*(a-c)) + + fb*((th0-a)*(th0-c))/((b-a)*(b-c)) + + fc*((th0-a)*(th0-b))/((c-a)*(c-b))) + + # adjust points to min of 0 + m=m-array([0.0,eth0]) + + fa= m[ix-1][1] + fb= m[ix][1] + fc= m[ix+1][1] + + # stiffness, interpolated between two triples of points + # this assumes equally spaced abcissas + num = (b - a)*fc + (a - c)*fb + (c - b)*fa + den = (b - a)* c**2 + (a**2 - b**2 )*c + a*b**2 - a**2 * b + Kth1 = 200.0 * num / den + + ob = b + if th0>b: ix += 1 + else: ix -= 1 + a = m[ix-1][0] + fa= m[ix-1][1] + b = m[ix][0] + fb= m[ix][1] + c = m[ix+1][0] + fc= m[ix+1][1] + num = (b - a)*fc + (a - c)*fb + (c - b)*fa + den = (b - a)* c**2 + (a**2 - b**2 )*c + a*b**2 - a**2 * b + Kth2 = 200.0 * num / den + + Kth = Kth1 + (Kth2-Kth1)*(th0-ob)/(b-ob) + + return th0, Kth + +for fn in os.listdir('angles'): + m=nampat.match(fn) + if not m: continue + name=m.group(1) + m=readangle(name) +## x=m[:,0] +## xn=1.0 +## a=zeros((shape(m)[0],5),Float) +## for i in range(5): +## a[:,4-i]=xn +## xn=x*xn +## b=m[:,1] +## coef, sosr, rank, svs = linear_least_squares(a,b) +## d2f=poly(dif(dif(coef))) +## nx = newton(poly(dif(coef)), d2f, 1.5) +## print name, 'theta0=', nx, 'Ktheta=', d2f(nx) + + + # find lowest point + lo=m[0][1] + ix=0 + for i in range(shape(m)[0]): + if m[i][1] < lo: + lo=m[i][1] + ix=i + + # take it and its neighbors for parabolic interpolation + + if ix==0: ix=1 + if ix>len(m)-2: ix=len(m)-2 + + m2=m[ix-1:ix+2] + + x=m2[:,0] + xn=1.0 + a=zeros((3,3),Float) + + for i in [2,1,0]: + + a[:,i]=xn + + xn=x*xn + b=m2[:,1] + coef, sosr, rank, svs = linear_least_squares(a,b) + d2f=poly(dif(dif(coef))) + nx = newton(poly(dif(coef)), d2f, m2[1,0]) + print name, 'theta0=', nx, 'Ktheta=', d2f(nx) diff --git a/sim/src/parameters/dx.py b/sim/src/parameters/dx.py new file mode 100755 index 000000000..4204f82e1 --- /dev/null +++ b/sim/src/parameters/dx.py @@ -0,0 +1,22 @@ +#! /usr/bin/python + +from Numeric import * +import sys +import re + + +recpat = re.compile(" *([\d\.E+-]+) +([\d\.E+-]+) +([\d\.E+-]+)") + +f=open(sys.argv[1]) +card = f.readline() +m=recpat.match(card) +v=array(map(float,(m.group(1),m.group(2), m.group(3)))) +while 1: + card = f.readline() + if len(card)<3: break + m=recpat.match(card) + w=array(map(float,(m.group(1),m.group(2), m.group(3)))) + print (w-v)[0], (w-v)[1], (w-v)[2] + v=w + + diff --git a/sim/src/parameters/esee b/sim/src/parameters/esee new file mode 100755 index 000000000..ce8559aa2 --- /dev/null +++ b/sim/src/parameters/esee @@ -0,0 +1,48 @@ +#! /usr/bin/python + +import re +import os +import sys +engpat = re.compile(" *[\d\.-]+ +([\d\.-]+)") + +def findnext(f,pat): + while 1: + card = f.readline() + if not card: return None + m = pat.match(card) + if m: return m + +def ending(nam,suf): + if suf==nam[-len(suf):]: return nam + else: return nam+suf + +if len(sys.argv)>1: + files = map(lambda nm: ending(nm,'.log'),sys.argv[1:]) +else: + files = os.listdir('.') + + +for fn in files: + if '.log'==fn[-4:]: + fn = fn[:-4] + os.system("xe "+fn+" > "+fn+'.data') + f=open(fn+'.data','r') + hi=-1000000.0 + lo=0.0 + while 1: + m=findnext(f, engpat) + if not m: break + n=float(m.group(1)) + if n==0.0: continue + if n<lo: lo=n + if n>hi: hi=n + f.close() + dy = (hi - lo)/20. + yval = str(lo-dy)+':'+str(hi+dy) + f=open(fn+'.gnp','w') + print >>f, 'set title "',fn,'"' + print >>f, "plot []["+yval+"] '"+fn+".data' using 1:2 with lines" + print >>f, 'pause mouse' + f.close() + os.system('gnuplot '+fn+'.gnp') + diff --git a/sim/src/parameters/genang.py b/sim/src/parameters/genang.py new file mode 100755 index 000000000..c173eb33d --- /dev/null +++ b/sim/src/parameters/genang.py @@ -0,0 +1,97 @@ +#! /usr/bin/python + +import os +import sys +import re +from string import * +from math import sqrt + +leftpat=re.compile('([A-Z][a-z]?)([=+#@-])\.moi$') +rightpat=re.compile('([=+#@-])([A-Z][a-z]?)\.moi$') +centerpat=re.compile('([=+#@-])([A-Z][a-z]?)([=+#@-])\.moi$') + +thetapat=re.compile(" *theta *= *([\d\.]+)") + +parmpat = re.compile("([A-Z][a-z]?)([\+=\-@#])([A-Z][a-z]?) +Ks= *([\d\.]+) +R0= *([\d\.]+) +De= *([\d\.]+)") +commpat = re.compile("#") + +pref="""! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=energy MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best COORD=zmt nprint=-5 $END + $SCF NCONV=5 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 IFREEZ(1)=1,2,3 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END +! $BASIS GBASIS=AM1 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END + $DATA + *** bending for %s +C1 +""" + +angs=[('.1',-30),('.2',-20),('.3',-15),('.4',-7),('.5',0), + ('.6',7),('.7',15),('.8',20),('.9',30)] + +bontyp = {'-':'1', '=':'2', '+':'3','@':'a', '#':'g'} + +Rzeros={} +f=open('stretch.parms') +for lin in f.readlines(): + if commpat.match(lin): continue + m = parmpat.match(lin) + l,b,r = m.group(1),m.group(2),m.group(3) + + ks,r0,de = map(lambda p: float(m.group(p)),[4,5,6]) + + Rzeros[l+b+r]=r0 + Rzeros[r+b+l]=r0 + +lefts = [] +rights = [] +centers = [] + +for fn in os.listdir('moieties'): + if leftpat.match(fn): lefts += [fn] + if rightpat.match(fn): rights += [fn] + if centerpat.match(fn): centers += [fn] + +### hack +rights = ['-B.moi'] + +for c in centers: + m=centerpat.match(c) + ce=m.group(2) + clb=m.group(1) + crb=m.group(3) + # print c + for l in lefts: + m=leftpat.match(l) + le=m.group(1) + lb=m.group(2) + if lb != clb: continue + # print l + for r in rights: + m=rightpat.match(r) + re=m.group(2) + rb=m.group(1) + if rb != crb: continue + # print r + name = le+lb+ce+rb+re + print name + for nmx,dth in angs: + of = open(name+nmx+'.inp','w') + of.write(pref % name) + cf = open('moieties/'+c) + thetlin=cf.readline() + theta = float(thetapat.match(thetlin).group(1)) + dth + for ln in cf.readlines(): of.write(ln) + for ln in open('moieties/'+l).readlines(): of.write(ln) + for ln in open('moieties/'+r).readlines(): of.write(ln) + of.write('\n') + of.write(' theta = %f\n' % theta) + of.write(' dxl = %f\n' % Rzeros[le+lb+ce]) + of.write(' dxr = %f\n' % Rzeros[ce+rb+re]) + of.write(' $END\n') + of.close() + diff --git a/sim/src/parameters/lippmor b/sim/src/parameters/lippmor new file mode 100755 index 000000000..f5246eb45 --- /dev/null +++ b/sim/src/parameters/lippmor @@ -0,0 +1,28 @@ + + +r0=1 +De=1 +ks=100 +beta = sqrt(ks/(2*De)) + +morse(r)=De*(1-exp(-sqrt(ks/(2*De))*(r-r0)))**2 +lipp(r)=De*(1-exp(-ks*r0*(r-r0)**2/(2*De*r))) +lm(r)= (r<r0?morse(r):lipp(r)) - De + +pt = 2.0 +spr = 0.4 + +hartree = 4.356 + +q(x) = 0.5 + erf((x-pt)/spr)/2.0 +j(x) = q(x)*lipp(x) + (1.0-q(x))*morse(x) - De + +#plot [.9:2][-1.1:.1] j(x), (0) + +lj(x)=4*(1/x**24-1/x**12) +lj(x)=4*(1/x**32-1/x**16) +lj(x)=175*(1/x**65-1/x**64) +lj2(x,n)=lj((x-1)/n+1) +lj2(x,n)=lj(n*(x-1)+1.0625) +plot [.8:2][-1.1:.2] morse(x)-1,(0),lj2(x,.7),j(x) +plot [.8:2][-1.1:.2] morse(x-.098)-1,(0),lj2(x,6.2),j(x-.098) diff --git a/sim/src/parameters/lippmor.py b/sim/src/parameters/lippmor.py new file mode 100755 index 000000000..26ba11fc4 --- /dev/null +++ b/sim/src/parameters/lippmor.py @@ -0,0 +1,70 @@ +#! /usr/bin/python + +from math import * + +r0=1 +De=1 +ks=100 +beta = sqrt(ks/(2*De)) + +def morse(r): + return De*(1-exp(-sqrt(ks/(2*De))*(r-r0)))**2 +def lipp(r): + return De*(1-exp(-ks*r0*(r-r0)**2/(2*De*r))) +def lippmor(r): + if r<r0: return morse(r) - De + else: return lipp(r) - De + +def flp(x): + k1 = 4.55328 + k2 = -8.24688 + k3 = 4.7872 + c = 4.00777 + + return c*(1/(k1*x**2+k2*x+k3)**16-1/(k1*x**2+k2*x+k3)**8) + +def fmo(x): + k1 = 2303.27 + k2 = 1.12845 + k3 = 1.45109 + c = 59.1548 + k1 = 95.1566 + k2 = 1.3563 + k3 = 0.416429 + c = 46234.9 + + return k1*(c/(k2+x**2)**16-1/(k3+x**2)**8) + +def flipmor(r): + if r<1.03946: return fmo(r) + else: return flp(r) + +for i in range(600): + x=i*0.001 + .9 + print x, flp(x), fmo(x) +# print x, lippmor(x) + +# print x, flipmor(x),(flipmor(x+0.001)-flipmor(x-0.001))*1e3 + +## r<0, quartic +## a = 2689.48 +/- 12.49 (0.4645%) +## b = -11027.6 +/- 48.73 (0.4419%) +## c = 16997.7 +/- 71.21 (0.419%) +## d = -11670.6 +/- 46.22 (0.396%) +## e = 3009.98 +/- 11.24 (0.3734%) + +## r>0 + +## a = 274.58 +/- 6.785 (2.471%) +## b = -1349 +/- 29.58 (2.193%) +## c = 2459.39 +/- 48.31 (1.964%) +## d = -1970.22 +/- 35.02 (1.777%) +## e = 584.236 +/- 9.506 (1.627%) + +## for r>r0, using +/ a[i]/x^i + +## a = 214.69 +/- 1.915 (0.8918%) +## b = -1092.98 +/- 9.376 (0.8578%) +## c = 2068.38 +/- 17.13 (0.8281%) +## d = -1721.46 +/- 13.83 (0.8036%) +## e = 530.38 +/- 4.168 (0.7859%) diff --git a/sim/src/parameters/minimize.py b/sim/src/parameters/minimize.py new file mode 100755 index 000000000..c5857f86b --- /dev/null +++ b/sim/src/parameters/minimize.py @@ -0,0 +1,317 @@ +#! /usr/bin/python + +from Numeric import * +from VQT import * +from LinearAlgebra import * +from string import * +import re +import os +import sys +from struct import pack +from stat import * + +datapat = re.compile("\ \$DATA") +gradpat = re.compile("\ \$GRAD") +hesspat = re.compile(" \$HESS") +vecpat = re.compile(" \$VEC") +endpat = re.compile("\ \$END") +failpat = re.compile("-ABNORMALLY-") +blankpat = re.compile("\s*$") +equilpat = re.compile("1 \*\*\*\*\* EQUILIBRIUM GEOMETRY LOCATED \*\*\*\*\*") +coordpat = re.compile(" COORDINATES") +erecpat = re.compile("E\=\ +([\d\.-]+)\ +GMAX\=\ +([\d\.-]+)\ +GRMS\=\ +([\d\.-]+)") +frecpat = re.compile(".+\ +\d+\.\ +([\d\.E+-]+)\ +([\d\.E+-]+)\ +([\d\.E+-]+)") +irecpat = re.compile(" (\w+) +\d+\.\d* +([\d\.E+-]+) +([\d\.E+-]+) +([\d\.E+-]+)") +xyzpat = re.compile("(\w+) +([\d\.E+-]+) +([\d\.E+-]+) +([\d\.E+-]+)") +pdbname= re.compile("([^\.]+)\.pdb") +xyzname= re.compile("([^\.]+)\.xyz") +inpname= re.compile("([^\.]+)\.inp") + +am1p = re.compile("GBASIS=AM1") + +preface=["""! Gamess control file + $CONTRL SCFTYP=RHF MAXIT=200 RUNTYP=optimize MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. METHOD=analytic $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END +""", + """! Gamess control file + $CONTRL SCFTYP=RHF MAXIT=500 RUNTYP=energy MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $FORCE VIBANL=.f. PRTIFC=.f. METHOD=analytic $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END +""", + """! Gamess control file + $CONTRL SCFTYP=RHF MAXIT=500 RUNTYP=optimize MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 HSSEND=.true. $END + $FORCE VIBANL=.f. PRTIFC=.f. METHOD=seminum $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END +"""] +preface2=" $DATA\nGamess theory ladder: " +preface3="\nC1\n" +postface=""" $END +""" +dftface=""" $DFT DFTTYP=B3LYP $END +""" +levels=[" $BASIS GBASIS=AM1 $END\n", + " $BASIS GBASIS=N21 NGAUSS=3 $END\n", + " $BASIS GBASIS=N31 NGAUSS=6 $END\n", + " $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 $END\n", + " $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END\n", + " $BASIS GBASIS=N311 NGAUSS=6 NDFUNC=2 NPFUNC=2 DIFFSP=.t. $END\n" + ] +schedule=[#[0, 0, 0, " am1, no dft"], + [2, 0, 0, " am1, hessian"], + [0, 1, 1, " 3-21G, b3lyp"]] +## [0, 2, 1, " 6-31G, b3lyp"], +## [0, 3, 1, " 6-31G(d,p), b3lyp"], +## [0, 3, 1, " 6-31G(d,p), b3lyp"], +## [0, 4, 1, " 6-31+G(d,p), b3lyp"], +## [1, 5, 1, " 6-31+G(2d,2p), b3lyp, single point energy"]] + + +# distances are in angstroms, and delta T is 1e-16 seconds + +# gradients from Gamess are given in Hartrees/Bohr. To convert to N: +gradU = 82.38729477e-9 + +# given in 1e-27 kg +elmnts=[("H", 1, 1.6737), + ("He", 2, 6.646), + ("Li", 3, 11.525), + ("Be", 4, 14.964), + ("B", 5, 17.949), + ("C", 6, 19.925), + ("N", 7, 23.257), + ("O", 8, 26.565), + ("F", 9, 31.545), + ("Ne", 10, 33.49), + + ("Na", 11, 38.1726), + ("Mg", 12, 40.356), + ("Al", 13, 44.7997), + ("Si", 14, 46.6245), + ("P", 15, 51.429), + ("S", 16, 53.233), + ("Cl", 17, 58.867), + ("Ar", 18, 66.33), + + ("K", 19, 64.9256), + ("Ca", 20, 66.5495), + ("Sc", 21, 74.646), + ("Ti", 22, 79.534), + ("V", 23, 84.584), + ("Cr", 24, 86.335), + ("Mn", 25, 91.22), + ("Fe", 26, 92.729), + ("Co", 27, 97.854), + ("Ni", 28, 97.483), + ("Cu", 29, 105.513), + ("Zn", 30, 108.541), + ("Ga", 31, 115.764), + ("Ge", 32, 120.53), + ("As", 33, 124.401), + ("Se", 34, 131.106), + ("Br", 35, 132.674), + ("Kr", 36, 134.429)] + + +sym2num={} +num2mass=[0] +for (sym, num, mass) in elmnts: + sym2num[sym] = num + num2mass += [mass] + +def datread(fname): + f=open(fname,"r") + + grads=zeros((0,3),Float) + + while 1: + card = f.readline() + if gradpat.match(card): break + + f.readline() # R= ... + + while 1: + card = f.readline() + if endpat.match(card): break + m=frecpat.match(card) + v=A([map(float,(m.group(1),m.group(2), m.group(3)))]) + grads = concatenate((grads,v),axis=0) + + f.close() + return grads + +def inpread(fname): + + f=open(fname+'.inp',"r") + + atoms = zeros((0,3),Float) + elem = [] + preface=" $DATA\n" + postface="" + + while 1: + card = f.readline() + if datapat.match(card): break + + preface += f.readline() # the comment line + preface += f.readline() # the symmetry line + + while 1: + card = f.readline() + if blankpat.match(card): + preface += card # if non-C1 sym + continue + if endpat.match(card): break + m=irecpat.match(card) + elem += [m.group(1)] + + v=A([map(float,(m.group(2),m.group(3), m.group(4)))]) + atoms = concatenate((atoms,v),axis=0) + + postface = card + f.close() + return elem, atoms, preface + +def inpwrite(fname, elem, pos, pref=" $DATA\ncomment\nC1\n"): + f=open(fname+'.inp',"w") + f.write(pref) + + for i in range(len(elem)): + f.write(" %-10s %2d." % (elem[i], sym2num[elem[i]]) + + " %12.7f %12.7f %12.7f" % tuple(pos[i]) + "\n") + + f.write(" $END\n") + f.close() + +def xyzread(f): + n=int(f.readline()) + elems=[] + atoms = zeros((n,3),Float) + f.readline() # skip comment line + for i in range(n): + m=xyzpat.match(f.readline()) + elems += [capitalize(m.group(1))] + atoms[i]=A(map(float,(m.group(2),m.group(3), m.group(4)))) + return elems, atoms + +def xyzwrite(f, elem, pos): + f.write(str(len(elem))+"\n--comment line--\n") + for i in range(len(elem)): + f.write(elem[i] + " %12.7f %12.7f %12.7f" % tuple(pos[i]) + "\n") + +def logread(name): + f=open(name+'.log',"r") + while 1: + card = f.readline() + if failpat.search(card): + print 'GAMESS bombs in',name + return None, None + if card == "1 ***** EQUILIBRIUM GEOMETRY LOCATED *****\n": break + if card == " **** THE GEOMETRY SEARCH IS NOT CONVERGED! ****": + print 'GAMESS bombs in',name + return None, None + + f.readline() # COORDINATES ... + f.readline() # ATOM CHARGE X Y Z + f.readline() # ------------------------------------------------------------ + + atoms = zeros((0,3),Float) + elem = [] + + while 1: + card = f.readline() + if len(card)<10: break + if coordpat.match(card): break + m=irecpat.match(card) + elem += [capitalize(m.group(1))] + + v=A([map(float,(m.group(2),m.group(3), m.group(4)))]) + atoms = concatenate((atoms,v),axis=0) + + return elem, atoms + + +def dpbwrite(f, pos): + global ipos + npos=floor(pos*100) + delta=npos-ipos + ipos = npos + for line in delta: + f.write(pack("bbb",int(line[0]),int(line[1]),int(line[2]))) + +def rungms(name, elem, pos, pref): + print "***** running",name," *****" + inpwrite(name, elem, pos, pref) + if am1p.search(pref): + os.system("rungms "+name+" 1 > "+name+".log") + else: + os.system("rcp "+name+".inp cluster:/home/josh/working.inp") + os.system("rsh cluster /home/gamess32/rungms working Nov222004R1 4 >"+name+".log") + return name + +def makexyz(): + print "making xyz files:" + xyzs = {} + files = os.listdir('level0') + for file in files: + x = xyzname.match(file) + if x: xyzs[x.group(1)] = True + for file in files: + x = pdbname.match(file) + if x and not x.group(1) in xyzs: + print 'Making',x.group(1)+'.xyz' + os.system("pdb2xyz " + 'level0/'+x.group(1)) + +def fexist(fname): + try: os.stat(fname) + except OSError: return False + return True + + +def dirsetup(): + print "making input files:" + files = os.listdir('level0') + for file in files: + x = xyzname.match(file) + if x: + name = x.group(1) + if fexist('level0/'+name+'.inp'): continue + elems, atoms = xyzread(open('level0/'+name+'.xyz')) + inpwrite('level0/'+name, elems, atoms) + +def dorunrun(n): + print "\nrunning Gamess at level",n + fd = 'level'+str(n-1) + td = 'level'+str(n) + header = open(td+'/theory').read() + files = os.listdir(fd) + for file in files: + x = inpname.match(file) + if not x: continue + name = x.group(1) + fname = fd+'/'+name + tname = td+'/'+name + if fexist(tname+'.log'): continue + elem, atoms, pref = inpread(fname) + if fexist(fname+'.log'): elem, atoms = logread(fname) + if elem: rungms(tname, elem, atoms, header+pref) + + + +if __name__ == "__main__": + makexyz() + dirsetup() + n=1 + while 1: + dorunrun(n) + n += 1 + if not fexist('level'+str(n)): break + diff --git a/sim/src/parameters/moieties/B-.moi b/sim/src/parameters/moieties/B-.moi new file mode 100755 index 000000000..1bad4458e --- /dev/null +++ b/sim/src/parameters/moieties/B-.moi @@ -0,0 +1,3 @@ + B 5.0 0.0000000000 0.0000000000 0.8200000000 + H 1.0 0 1.0334979157 1.4100000000 + H 1.0 0 -1.0334979157 1.4100000000 diff --git a/sim/src/parameters/moieties/C+.moi b/sim/src/parameters/moieties/C+.moi new file mode 100755 index 000000000..f28d2d995 --- /dev/null +++ b/sim/src/parameters/moieties/C+.moi @@ -0,0 +1,2 @@ + C 6.0 0.0000000000 0.0000000000 0.6041525189 + H 1.0 0.0000000000 0.0000000000 1.6709165481 diff --git a/sim/src/parameters/moieties/C-.moi b/sim/src/parameters/moieties/C-.moi new file mode 100755 index 000000000..54bd54cb8 --- /dev/null +++ b/sim/src/parameters/moieties/C-.moi @@ -0,0 +1,4 @@ + C 6.0 0.0000000000 0.0000000000 0.7200000000 + H 1.0 0.68149 0 0.961225 + H 1.0 -0.341 0.59 0.961225 + H 1.0 -0.341 -0.59 0.961225 diff --git a/sim/src/parameters/moieties/C=.moi b/sim/src/parameters/moieties/C=.moi new file mode 100755 index 000000000..2278c569b --- /dev/null +++ b/sim/src/parameters/moieties/C=.moi @@ -0,0 +1,3 @@ + C 6.0 0.0000000000 0.0000000000 0.6670954768 + H 1.0 0.9243351843 0.0000000000 1.2397499091 + H 1.0 -0.9243351843 0.0000000000 1.2397499091 diff --git a/sim/src/parameters/moieties/Cl-.moi b/sim/src/parameters/moieties/Cl-.moi new file mode 100755 index 000000000..babdc155d --- /dev/null +++ b/sim/src/parameters/moieties/Cl-.moi @@ -0,0 +1 @@ + CL 17.0 0.0000000000 0.0000000000 1.0225105486 diff --git a/sim/src/parameters/moieties/F-.moi b/sim/src/parameters/moieties/F-.moi new file mode 100755 index 000000000..57bb35e51 --- /dev/null +++ b/sim/src/parameters/moieties/F-.moi @@ -0,0 +1 @@ + F 9.0 0.0000000000 0.0000000000 0.7054750939 diff --git a/sim/src/parameters/moieties/H-.moi b/sim/src/parameters/moieties/H-.moi new file mode 100755 index 000000000..a98adadc6 --- /dev/null +++ b/sim/src/parameters/moieties/H-.moi @@ -0,0 +1 @@ + H 1.0 0.0000000000 0.0000000000 0.3715415620 diff --git a/sim/src/parameters/moieties/N+.moi b/sim/src/parameters/moieties/N+.moi new file mode 100755 index 000000000..56823108d --- /dev/null +++ b/sim/src/parameters/moieties/N+.moi @@ -0,0 +1 @@ + N 7.0 0.0000000000 0.0000000000 0.5526429245 diff --git a/sim/src/parameters/moieties/N-.moi b/sim/src/parameters/moieties/N-.moi new file mode 100755 index 000000000..5da2b866e --- /dev/null +++ b/sim/src/parameters/moieties/N-.moi @@ -0,0 +1,4 @@ + N 7.0 0.0000000000 0.0000000000 0.646 + H 1.0 0.5057 0.8226 0.962 + H 1.0 0.5057 -0.8226 0.962 + diff --git a/sim/src/parameters/moieties/N=.moi b/sim/src/parameters/moieties/N=.moi new file mode 100755 index 000000000..81abe7e31 --- /dev/null +++ b/sim/src/parameters/moieties/N=.moi @@ -0,0 +1,2 @@ + N 7.0 0.0 0.0000000000 0.62215 + H 1.0 0.941848 0.0000000000 1.0489806697 diff --git a/sim/src/parameters/moieties/N=N.moi b/sim/src/parameters/moieties/N=N.moi new file mode 100755 index 000000000..81abe7e31 --- /dev/null +++ b/sim/src/parameters/moieties/N=N.moi @@ -0,0 +1,2 @@ + N 7.0 0.0 0.0000000000 0.62215 + H 1.0 0.941848 0.0000000000 1.0489806697 diff --git a/sim/src/parameters/moieties/O-.moi b/sim/src/parameters/moieties/O-.moi new file mode 100755 index 000000000..d60aa4c11 --- /dev/null +++ b/sim/src/parameters/moieties/O-.moi @@ -0,0 +1,2 @@ + O 8.0 0.0000000000 0.0000000000 0.645 + H 1.0 0.928 0.0000000000 0.909 diff --git a/sim/src/parameters/moieties/O=.moi b/sim/src/parameters/moieties/O=.moi new file mode 100755 index 000000000..840c2677c --- /dev/null +++ b/sim/src/parameters/moieties/O=.moi @@ -0,0 +1 @@ + O 8.0 0.0000000000 0.0000000000 0.6133930945 diff --git a/sim/src/parameters/moieties/P-.moi b/sim/src/parameters/moieties/P-.moi new file mode 100755 index 000000000..e6614afe4 --- /dev/null +++ b/sim/src/parameters/moieties/P-.moi @@ -0,0 +1,3 @@ + P 15.0 0.0000000000 0.0000000000 1.05 + H 1.0 0.5996616651 1.0386444713 1.5751276067 + H 1.0 0.5996616651 -1.0386444713 1.5751276067 diff --git a/sim/src/parameters/moieties/S-.moi b/sim/src/parameters/moieties/S-.moi new file mode 100755 index 000000000..184002b53 --- /dev/null +++ b/sim/src/parameters/moieties/S-.moi @@ -0,0 +1,2 @@ + S 16.0 0.0000000000 0.0000000000 0.98 + H 1.0 1.3482368 0.0000000000 0.98 diff --git a/sim/src/parameters/moieties/Si-.moi b/sim/src/parameters/moieties/Si-.moi new file mode 100755 index 000000000..2d201ba48 --- /dev/null +++ b/sim/src/parameters/moieties/Si-.moi @@ -0,0 +1,4 @@ + SI 14.0 0.0000000000 0.0000000000 1.1170000000 + H 1.0 1.4020000000 0.0000000000 1.6131802000 + H 1.0 -0.7010000000 -1.2140000000 1.6131802000 + H 1.0 -0.7010006000 1.2140000000 1.6131802000 diff --git a/sim/src/parameters/morgames.py b/sim/src/parameters/morgames.py new file mode 100755 index 000000000..7b83bc7b9 --- /dev/null +++ b/sim/src/parameters/morgames.py @@ -0,0 +1,511 @@ +#! /usr/bin/python + +from Numeric import * +from VQT import * +from LinearAlgebra import * +from string import * +import re +import os +import sys +from struct import pack +from stat import * + +datapat = re.compile("\ \$DATA") +gradpat = re.compile("\ \$GRAD") +hesspat = re.compile(" \$HESS") +vecpat = re.compile(" \$VEC") +endpat = re.compile("\ \$END") +termpat = re.compile(" EXECUTION OF GAMESS TERMINATED") +failpat = re.compile("-ABNORMALLY-") +blankpat = re.compile("\s*$") +potpat = re.compile(" POTENTIAL SURFACE MAP INPUT") +hevpat = re.compile(" HAS ENERGY VALUE +([\d\.-]+)") +smgpat = re.compile(" ---- SURFACE MAPPING GEOMETRY ----") +alphpat = re.compile(" *ALPH *[\d\.-]+ *[\d\.-]+ *([\d\.-]+)") +betapat = re.compile(" +\d+ +BETA +([\d\.]+)") +c1pat = re.compile(" \d C +([\d\.]+)") +b3pat = re.compile(" FINAL U-B3LYP ENERGY IS +([\d\.-]+)") +equilpat = re.compile("1 \*\*\*\*\* EQUILIBRIUM GEOMETRY LOCATED \*\*\*\*\*") +erecpat = re.compile("E\=\ +([\d\.-]+)\ +GMAX\=\ +([\d\.-]+)\ +GRMS\=\ +([\d\.-]+)") +frecpat = re.compile(".+\ +\d+\.\ +([\d\.E+-]+)\ +([\d\.E+-]+)\ +([\d\.E+-]+)") +irecpat = re.compile(" (\w+) +\d+\.\d* +([\d\.E+-]+) +([\d\.E+-]+) +([\d\.E+-]+)") +grecpat = re.compile("\w+ +\d+\.\d* +([\d\.E+-]+) +([\d\.E+-]+) +([\d\.E+-]+)") +xyzpat = re.compile("(\w+) +([\d\.E+-]+) +([\d\.E+-]+) +([\d\.E+-]+)") +pdbname= re.compile("([^\.]+)\.pdb") +xyzname= re.compile("([^\.]+)\.xyz") +inpname= re.compile("([^\.]+)\.inp") +moiname= re.compile("(\w+)([=\-\+])\.moi$") + + +am1p = re.compile("GBASIS=AM1") + +preface="""! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=surface MULT=1 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=8 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END +""" + +triplet="""! Gamess control file + $CONTRL SCFTYP=UHF MAXIT=200 RUNTYP=energy MULT=3 ICHARG=0 +ICUT=9 ITOL=20 INTTYP=best NPRINT=-5 $END + $SCF NCONV=5 dirscf=.t. DAMP=.t. SHIFT=.t. DIIS=.T. SOSCF=.T. npunch=0 $END + $STATPT NSTEP=50 OPTTOL=0.0001 $END + $FORCE VIBANL=.f. PRTIFC=.f. $END + $SYSTEM TIMLIM=10000 MWORDS=250 $END + $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 NPFUNC=1 DIFFSP=.t. $END + $DFT DFTTYP=B3LYP $END +""" + +# distances are in angstroms, and delta T is 1e-16 seconds + +# gradients from Gamess are given in Hartrees/Bohr. To convert to N: +gradU = 82.38729477e-9 + +Hartree = 4.3597482 # attoJoules +Bohr = 0.5291772083 # Angstroms + + +# given in 1e-27 kg +elmnts=[("H", 1, 1.6737), + ("He", 2, 6.646), + ("Li", 3, 11.525), + ("Be", 4, 14.964), + ("B", 5, 17.949), + ("C", 6, 19.925), + ("N", 7, 23.257), + ("O", 8, 26.565), + ("F", 9, 31.545), + ("Ne", 10, 33.49), + + ("Na", 11, 38.1726), + ("Mg", 12, 40.356), + ("Al", 13, 44.7997), + ("Si", 14, 46.6245), + ("P", 15, 51.429), + ("S", 16, 53.233), + ("Cl", 17, 58.867), + ("Ar", 18, 66.33), + + ("K", 19, 64.9256), + ("Ca", 20, 66.5495), + ("Sc", 21, 74.646), + ("Ti", 22, 79.534), + ("V", 23, 84.584), + ("Cr", 24, 86.335), + ("Mn", 25, 91.22), + ("Fe", 26, 92.729), + ("Co", 27, 97.854), + ("Ni", 28, 97.483), + ("Cu", 29, 105.513), + ("Zn", 30, 108.541), + ("Ga", 31, 115.764), + ("Ge", 32, 120.53), + ("As", 33, 124.401), + ("Se", 34, 131.106), + ("Br", 35, 132.674), + ("Kr", 36, 134.429)] + + +sym2num={} +num2mass=[0] +for (sym, num, mass) in elmnts: + sym2num[sym] = num + num2mass += [mass] + +def findnext(f,pat): + while 1: + card = f.readline() + if not card: return None + m = pat.match(card) + if m: return m + +def datread(fname): + f=open(fname,"r") + + grads=zeros((0,3),Float) + + while 1: + card = f.readline() + if gradpat.match(card): break + + f.readline() # R= ... + + while 1: + card = f.readline() + if endpat.match(card): break + m=frecpat.match(card) + v=A([map(float,(m.group(1),m.group(2), m.group(3)))]) + grads = concatenate((grads,v),axis=0) + + f.close() + return grads + +# read a moiety, consisting of a chunk of a $data section only +def moiread(fname): + + f=open(fname+'.moi',"r") + + atoms = zeros((0,3),Float) + elem = [] + + while 1: + card = f.readline() + if blankpat.match(card): break + m=irecpat.match(card) + elem += [capitalize(m.group(1))] + + v=A([map(float,(m.group(2),m.group(3), m.group(4)))]) + atoms = concatenate((atoms,v),axis=0) + + f.close() + return elem, atoms + +def inpread(fname): + + f=open(fname+'.inp',"r") + + atoms = zeros((0,3),Float) + elem = [] + preface="" + postface="" + + while 1: + card = f.readline() + preface += card + if datapat.match(card): break + + preface += f.readline() # the comment line + preface += f.readline() # the C1 line + + while 1: + card = f.readline() + if endpat.match(card): break + m=irecpat.match(card) + elem += [capitalize(m.group(1))] + + v=A([map(float,(m.group(2),m.group(3), m.group(4)))]) + atoms = concatenate((atoms,v),axis=0) + + postface = card + f.close() + return elem, atoms + +def absetup(e1, e2): + sym2num['ALPH']= sym2num[e1[0]] + sym2num['BETA']= sym2num[e2[0]] + e1[0] = 'ALPH' + e2[0] = 'BETA' + return e1, e2 + +def inpwrite(fname, elem, pos, pref=" $DATA\nComment\nC1\n"): + f=open(fname+'.inp',"w") + f.write(pref) + + for i in range(len(elem)): + f.write(" %-10s %2d." % (elem[i], sym2num[elem[i]]) + + " %12.7f %12.7f %12.7f" % tuple(pos[i]) + "\n") + + f.write(" $END\n") + f.close() + +def xyzread(f): + n=int(f.readline()) + elems=[] + atoms = zeros((n,3),Float) + f.readline() # skip comment line + for i in range(n): + m=xyzpat.match(f.readline()) + elems += [capitalize(m.group(1))] + atoms[i]=A(map(float,(m.group(2),m.group(3), m.group(4)))) + return elems, atoms + +def xyzwrite(f, elem, pos): + f.write(str(len(elem))+"\n--comment line--\n") + for i in range(len(elem)): + f.write(elem[i] + " %12.7f %12.7f %12.7f" % tuple(pos[i]) + "\n") + + +def xeread(name): + f=open(name+'.log',"r") + x = [] + e= [] + t = False + findnext(f, potpat) + + while 1: + m = findnext(f, betapat) + m1 = findnext(f,hevpat) + if not (m and m1): break + x += [float(m.group(1))] + e += [float(m1.group(1))*Hartree] + + f.close() + return x,e + + +def logread(name): + f=open(name+'.log',"r") + while 1: + card = f.readline() + if failpat.search(card): + print card + sys.exit(1) + if card == "1 ***** EQUILIBRIUM GEOMETRY LOCATED *****\n": break + if card == " **** THE GEOMETRY SEARCH IS NOT CONVERGED! ****": + print card + sys.exit(1) + f.readline() # COORDINATES OF ALL ATOMS ARE (ANGS) + f.readline() # ATOM CHARGE X Y Z + f.readline() # ------------------------------------------------------------ + + atoms = zeros((0,3),Float) + elem = [] + + while 1: + card = f.readline() + if len(card)<10: break + m=irecpat.match(card) + elem += [capitalize(m.group(1))] + + v=A([map(float,(m.group(2),m.group(3), m.group(4)))]) + atoms = concatenate((atoms,v),axis=0) + + return elem, atoms + + +def dpbwrite(f, pos): + global ipos + npos=floor(pos*100) + delta=npos-ipos + ipos = npos + for line in delta: + f.write(pack("bbb",int(line[0]),int(line[1]),int(line[2]))) + +def rungms(name, elem, pos, pref): + print "***** running",name," *****" + inpwrite(name, elem, pos, pref) + if am1p.search(pref): + os.system("rungms "+name+" 1 > "+name+".log") + else: + os.system("rcp "+name+".inp cluster:/home/josh/working.inp") + os.system("rsh cluster /home/gamess32/rungms working Nov222004R1 4 >"+name+".log") + return name + +def makexyz(): + print "making xyz files:" + xyzs = {} + files = os.listdir('.') + for file in files: + x = xyzname.match(file) + if x: xyzs[x.group(1)] = True + for file in files: + x = pdbname.match(file) + if x and not x.group(1) in xyzs: + print 'Making',x.group(1)+'.xyz' + os.system("pdb2xyz " + x.group(1)) + +def fexist(fname): + try: os.stat(fname) + except OSError: return False + return True + + +def dirsetup(): + print "making input files:" + files = os.listdir('.') + for file in files: + x = xyzname.match(file) + if x: + name = x.group(1) + if fexist('level0/'+name+'.inp'): continue + elems, atoms = xyzread(open(name+'.xyz')) + inpwrite('level0/'+name, elems, atoms) + +def dorunrun(n): + print "running Gamess at level",n + fd = 'level'+str(n-1) + td = 'level'+str(n) + header = open(td+'/theory').read() + files = os.listdir(fd) + for file in files: + x = inpname.match(file) + if not x: continue + name = x.group(1) + fname = fd+'/'+name + tname = td+'/'+name + if fexist(tname+'.inp'): continue + if fexist(fname+'.log'): elem, atoms = logread(fname) + else: elem, atoms = inpread(fname) + rungms(tname, elem, atoms, header) + +De=0.556 +# R0=1.523 +Beta=1.989 +def morse(r,de,beta, R0): + return de*(1-exp(-beta*(r-R0)))**2 + +def diff(de, e, x, ix, Ks, R0): + sum = 0.0 + beta = sqrt(Ks/(2.0*de)) /10.0 + for i in range(ix): + sum += (e[i]-morse(x[i],de,beta, R0))**2 + return sum + +def quadmin(a,fa,b,fb,c,fc): + num = (b-a)**2 * (fb-fc) - (b-c)**2 * (fb-fa) + den = (b-a) * (fb-fc) - (b-c) * (fb-fa) + if den == 0.0: return b + return b - num / (2*den) + +def golden(f,a,fa,b,fb,c,fc, tol=1e-2): + +## print 'Searching:',a,b,c +## print '[',fa, fb, fc,']' + + if c-a<tol: return quadmin(a,fa,b,fb,c,fc) + if c-b > b-a: + new = b+0.38197*(c-b) + fnew = f(new) + if fnew < fb: return golden(f, b,fb, new,fnew, c,fc) + else: return golden(f, a,fa, b,fb, new, fnew) + else: + new = a+0.61803*(b-a) + fnew = f(new) + if fnew < fb: return golden(f, a, fa, new,fnew, b,fb) + else: return golden(f, new, fnew, b,fb, c,fc) + +def texvec(v): + if len(v)>1: return str(v[0])+','+texvec(v[1:]) + if v: return str(v[0]) + return '' + +def surfgen(fqbn, x1, x2): + b = " $SURF ivec1(1)=1,"+str(1+len(x1)) + b += " igrp1(1)="+texvec(map(lambda x: 1+len(x1)+x, range(len(x2)))) + dx = x1[0][2]+x2[0][2] + b += "\n orig1="+str(-0.33*dx) + b += " disp1="+str(dx*0.01)+" ndisp1=50 $END\n" + b += " $DATA\n *** Parm Gen for "+fqbn+"\nC1\n" + return b + +def enggen(fqbn): + return " $DATA\n *** Separated energy for "+fqbn+"\nC1\n" + +def surfread(filnam, zero): + x,e = xeread('bonds/'+filnam) + + + # find lowest point + lo=e[0] + ix=0 + for i in range(len(x)): + if e[i] < lo: + lo=e[i] + ix=i + # take it and its neighbors for parabolic interpolation + a = x[ix-1] + fa= e[ix-1] + b = x[ix] + fb= e[ix] + c = x[ix+1] + fc= e[ix+1] + + # the lowest point on the parabola + R0 = quadmin(a,fa,b,fb,c,fc) + + # its value via Lagrange's formula + fR0 = (fa*((R0-b)*(R0-c))/((a-b)*(a-c)) + + fb*((R0-a)*(R0-c))/((b-a)*(b-c)) + + fc*((R0-a)*(R0-b))/((c-a)*(c-b))) + + # adjust points to min of 0 + for i in range(len(x)): + e[i]=e[i]-fR0 + + fa= e[ix-1] + fb= e[ix] + fc= e[ix+1] + + # stiffness, interpolated between two triples of points + # this assumes equally spaced abcissas + num = (b - a)*fc + (a - c)*fb + (c - b)*fa + den = (b - a)* c**2 + (a**2 - b**2 )*c + a*b**2 - a**2 * b + Ks1 = 200.0 * num / den + + ob = b + if R0>b: ix += 1 + else: ix -= 1 + a = x[ix-1] + fa= e[ix-1] + b = x[ix] + fb= e[ix] + c = x[ix+1] + fc= e[ix+1] + num = (b - a)*fc + (a - c)*fb + (c - b)*fa + den = (b - a)* c**2 + (a**2 - b**2 )*c + a*b**2 - a**2 * b + Ks2 = 200.0 * num / den + + Ks = Ks1 + (Ks2-Ks1)*(R0-ob)/(b-ob) + + # now search for De by fitting a morse curve to the points + + delo = 0.2 + dehi = 1.7 + demd = delo + 0.61803*(dehi-delo) + De = golden(lambda d: diff(d, e, x, ix, Ks, R0), + delo, diff(delo, e, x, ix, Ks, R0), + demd, diff(demd, e, x, ix, Ks, R0), + dehi, diff(dehi, e, x, ix, Ks, R0)) + + if zero != 0.0: De = zero-fR0 + Beta=sqrt(Ks/(2.0*De))/10.0 + return Ks, R0, De + +def deread(nam): + f=open('bonds/'+nam+'.De.log','r') + z=0.0 + while 1: + m=findnext(f, b3pat) + if not m: break + q=float(m.group(1)) + if q != 0.0: z=q*Hartree + return z + +## if __name__ == "__main__": +## files = os.listdir('moieties') +## for i in range(len(files)): +## f1 = moiname.match(files[i]) +## if f1: +## f1el, f1bn = f1.groups() +## for f2 in files[i:]: +## m = moiname.match(f2) +## if not m: continue +## f2el, f2bn = m.groups() +## if f1bn != f2bn: continue +## fqbn=f1el+f1bn+f2el +## #if fexist('bonds/'+fqbn+'.parms'): continue +## print 'Doing',fqbn +## el, pos = moiread('moieties/'+f1el+f1bn) +## el2, pos2 = moiread('moieties/'+f2el+f2bn) +## #el, el2 = absetup(el, el2) +## rungms('bonds/'+fqbn+'.De', +## el+el2, +## concatenate((pos+V(0,0,4), -pos2),axis=0), +## triplet+enggen(fqbn)) + +if __name__ == "__main__": + files = os.listdir('bonds') + logfiles = filter(lambda x: x[-4:]=='.log', files) + defiles = filter(lambda x: x[-7:]=='.De.log', logfiles) + logfiles = filter(lambda x: x not in defiles, logfiles) + fn = map(lambda x: x[:-4], logfiles) + for f in fn: + if fexist('bonds/'+f+'.De.log'): zero = deread(f) + else: zero=0.0 + if zero==0.0: print '###',f,'-- no energy zero' + print f,'Ks=%7.2f R0=%7.4f De=%7.4f' % surfread(f,zero) diff --git a/sim/src/parameters/new/DoubleTriple.txt b/sim/src/parameters/new/DoubleTriple.txt new file mode 100755 index 000000000..a8875dade --- /dev/null +++ b/sim/src/parameters/new/DoubleTriple.txt @@ -0,0 +1,80 @@ +C=C-B theta0= 2.16309448855 Ktheta= 1.12651176378 CenterHybridization= sp2 +C=C-C theta0= 2.1885381567 Ktheta= 1.22694309791 CenterHybridization= sp2 +C=C-Cl theta0= 2.1555506527 Ktheta= 1.24107140242 CenterHybridization= sp2 +C=C-F theta0= 2.12629044823 Ktheta= 1.27810406084 CenterHybridization= sp2 +C=C-H theta0= 2.1321064846 Ktheta= 0.815373444257 CenterHybridization= sp2 +C=C-N theta0= 2.12475624934 Ktheta= 1.2669580118 CenterHybridization= sp2 +C=C-O theta0= 2.12649557568 Ktheta= 1.28582550494 CenterHybridization= sp2 +C=C-P theta0= 2.09091632928 Ktheta= 1.01706722106 CenterHybridization= sp2 +C=C-S theta0= 2.12063073843 Ktheta= 1.01751346991 CenterHybridization= sp2 +C=C-Si theta0= 2.18774446121 Ktheta= 0.734381938292 CenterHybridization= sp2 +C=N-B theta0= 2.11202853781 Ktheta= 1.13426849915 CenterHybridization= sp2 +C=N-C theta0= 2.05897777134 Ktheta= 1.04423716095 CenterHybridization= sp2 +C=N-Cl theta0= 1.99737185534 Ktheta= 1.21860216885 CenterHybridization= sp2 +C=N-F theta0= 1.91907701759 Ktheta= 2.23662944604 CenterHybridization= sp2 +C=N-H theta0= 1.94763059675 Ktheta= 0.944693618863 CenterHybridization= sp2 +C=N-N theta0= 1.95191463763 Ktheta= 2.31797932001 CenterHybridization= sp2 +C=N-O theta0= 1.93947677369 Ktheta= 2.27901087712 CenterHybridization= sp2 +C=N-P theta0= 1.99421923687 Ktheta= 0.846357675504 CenterHybridization= sp2 +C=N-S theta0= 1.99867661957 Ktheta= 0.885608492675 CenterHybridization= sp2 +C=N-Si theta0= 2.17936138259 Ktheta= 0.52215141094 CenterHybridization= sp2 +N=C-B theta0= 2.10603625807 Ktheta= 1.16191296912 CenterHybridization= sp2 +N=C-C theta0= 2.1216686414 Ktheta= 1.35904782537 CenterHybridization= sp2 +N=C-Cl theta0= 2.10261752396 Ktheta= 1.42982316699 CenterHybridization= sp2 +N=C-F theta0= 2.08073492109 Ktheta= 1.48635434823 CenterHybridization= sp2 +N=C-H theta0= 2.07111062105 Ktheta= 1.02769700096 CenterHybridization= sp2 +N=C-N theta0= 2.09358164917 Ktheta= 1.47643161336 CenterHybridization= sp2 +N=C-O theta0= 2.07942279445 Ktheta= 1.45892041379 CenterHybridization= sp2 +N=C-P theta0= 2.04085650405 Ktheta= 1.18827860669 CenterHybridization= sp2 +N=C-S theta0= 2.04294843067 Ktheta= 1.18182720318 CenterHybridization= sp2 +N=C-Si theta0= 2.07799501192 Ktheta= 0.826079064277 CenterHybridization= sp2 +N=N-B theta0= 1.98096601612 Ktheta= 2.63825992047 CenterHybridization= sp2 +N=N-C theta0= 1.96165533356 Ktheta= 2.12870350452 CenterHybridization= sp2 +N=N-Cl theta0= 1.96358848055 Ktheta= 2.34850723385 CenterHybridization= sp2 +N=N-F theta0= 1.89993033714 Ktheta= 2.4748700498 CenterHybridization= sp2 +N=N-H theta0= 1.88113447149 Ktheta= 1.22992387663 CenterHybridization= sp2 +N=N-N theta0= 1.92338915905 Ktheta= 2.47469658838 CenterHybridization= sp2 +N=N-O theta0= 1.90778768924 Ktheta= 2.54256813539 CenterHybridization= sp2 +N=N-P theta0= 1.93261699857 Ktheta= 1.73732126435 CenterHybridization= sp2 +N=N-S theta0= 1.9296707993 Ktheta= 1.76594583245 CenterHybridization= sp2 +N=N-Si theta0= 1.99880645236 Ktheta= 0.531791063463 CenterHybridization= sp2 +O=C-B theta0= 2.15074232802 Ktheta= 1.29107706336 CenterHybridization= sp2 +O=C-C theta0= 2.1609521982 Ktheta= 1.49063161033 CenterHybridization= sp2 +O=C-Cl theta0= 2.1554649044 Ktheta= 1.49372220774 CenterHybridization= sp2 +O=C-F theta0= 2.13655764504 Ktheta= 1.61745266452 CenterHybridization= sp2 +O=C-H theta0= 2.12519860731 Ktheta= 1.1489781057 CenterHybridization= sp2 +O=C-N theta0= 2.14037709159 Ktheta= 1.64677800851 CenterHybridization= sp2 +O=C-O theta0= 2.13030721559 Ktheta= 1.60501951705 CenterHybridization= sp2 +O=C-P theta0= 2.08479575316 Ktheta= 1.2557172612 CenterHybridization= sp2 +O=C-S theta0= 2.09466277712 Ktheta= 1.25131675346 CenterHybridization= sp2 +O=C-Si theta0= 2.13127572285 Ktheta= 0.854365254268 CenterHybridization= sp2 +O=N-B theta0= 3.13535893586 Ktheta= 0.488352171839 CenterHybridization= sp2 +O=N-C theta0= 1.97188470125 Ktheta= 2.34140412197 CenterHybridization= sp2 +O=N-Cl theta0= 2.00803322817 Ktheta= 1.58480750142 CenterHybridization= sp2 +O=N-F theta0= 1.93881437339 Ktheta= 2.69127719545 CenterHybridization= sp2 +O=N-H theta0= 1.90340717211 Ktheta= 1.47614929846 CenterHybridization= sp2 +O=N-N theta0= 1.94407826065 Ktheta= 2.8220650125 CenterHybridization= sp2 +O=N-O theta0= 1.93520007861 Ktheta= 2.80425464224 CenterHybridization= sp2 +O=N-P theta0= 1.93694415265 Ktheta= 1.90771200667 CenterHybridization= sp2 +O=N-S theta0= 1.95368292649 Ktheta= 1.97993636585 CenterHybridization= sp2 +O=N-Si theta0= 1.99220034093 Ktheta= 0.61317302257 CenterHybridization= sp2 +C+C-B theta0= 3.14159265359 Ktheta= 0.319460781474 CenterHybridization= sp +C+C-C theta0= 3.14239417016 Ktheta= 0.353027344158 CenterHybridization= sp +C+C-Cl theta0= 3.14159265359 Ktheta= 0.268683948028 CenterHybridization= sp +C+C-F theta0= 3.14159265359 Ktheta= 0.317338843136 CenterHybridization= sp +C+C-H theta0= 3.14159265359 Ktheta= 0.253294978883 CenterHybridization= sp +C+C-N theta0= 3.07088872072 Ktheta= 0.410249987657 CenterHybridization= sp +C+C-O theta0= 3.07588768041 Ktheta= 0.342364901739 CenterHybridization= sp +C+C-P theta0= 2.98881064674 Ktheta= 0.315457133034 CenterHybridization= sp +C+C-S theta0= 3.01852526144 Ktheta= 0.240408060042 CenterHybridization= sp +C+C-Si theta0= 3.14101459215 Ktheta= 0.229702558193 CenterHybridization= sp +N+C-B theta0= 3.14159265359 Ktheta= 0.3011967305 CenterHybridization= sp3 +N+C-C theta0= 3.14278922667 Ktheta= 0.34678938974 CenterHybridization= sp3 +N+C-Cl theta0= 3.14159265359 Ktheta= 0.296844402333 CenterHybridization= sp3 +N+C-F theta0= 3.14159265359 Ktheta= 0.338297174767 CenterHybridization= sp3 +N+C-H theta0= 3.14159265359 Ktheta= 0.275285191583 CenterHybridization= sp3 +N+C-N theta0= 3.06281429195 Ktheta= 0.401314576146 CenterHybridization= sp3 +N+C-O theta0= 3.07396606659 Ktheta= 0.353765788426 CenterHybridization= sp3 +N+C-P theta0= 2.97586281684 Ktheta= 0.32130113683 CenterHybridization= sp3 +N+C-S theta0= 3.02016836101 Ktheta= 0.247517760763 CenterHybridization= sp3 +N+C-Si theta0= 3.14083417822 Ktheta= 0.222388201524 CenterHybridization= sp3 diff --git a/sim/src/parameters/new/RAlR.txt b/sim/src/parameters/new/RAlR.txt new file mode 100755 index 000000000..28fe56c79 --- /dev/null +++ b/sim/src/parameters/new/RAlR.txt @@ -0,0 +1,136 @@ +Br-Al-Br theta0= 2.0771649164 Ktheta= 0.556950153120 CenterHybridization= sp2 +Br-Al-Cl theta0= 2.0712844327 Ktheta= 0.577446734044 CenterHybridization= sp2 +Br-Al-F theta0= 2.0609737291 Ktheta= 0.608913074132 CenterHybridization= sp2 +Br-Al-H theta0= 2.0490360436 Ktheta= 0.459690005387 CenterHybridization= sp2 +Cl-Al-Cl theta0= 2.0636887354 Ktheta= 0.591378354055 CenterHybridization= sp2 +Cl-Al-F theta0= 2.0270797126 Ktheta= 0.642353179361 CenterHybridization= sp2 +Cl-Al-H theta0= 2.0449529156 Ktheta= 0.485496479886 CenterHybridization= sp2 +F-Al-F theta0= 2.0687134283 Ktheta= 0.747340588259 CenterHybridization= sp2 +F-Al-H theta0= 2.0374611718 Ktheta= 0.518218174351 CenterHybridization= sp2 +Al-Al-Al theta0= 2.2374519859 Ktheta= 0.182274339929 CenterHybridization= sp2 +Al-Al-B theta0= 2.1625384681 Ktheta= 0.187045936933 CenterHybridization= sp2 +Al-Al-Br theta0= 2.0198887047 Ktheta= 0.254732090074 CenterHybridization= sp2 +Al-Al-Cl theta0= 2.0380160556 Ktheta= 0.273290694743 CenterHybridization= sp2 +Al-Al-F theta0= 2.0540253325 Ktheta= 0.338651767702 CenterHybridization= sp2 +Al-Al-H theta0= 2.1342728574 Ktheta= 0.266471671121 CenterHybridization= sp2 +Al-Al-N theta0= 2.1349190569 Ktheta= 0.364375915615 CenterHybridization= sp2 +Al-Al-O theta0= 1.9319762069 Ktheta= 0.275497766740 CenterHybridization= sp2 +Al-Al-S theta0= 2.0473725336 Ktheta= 0.328824433176 CenterHybridization= sp2 +Al-Al-Se theta0= 2.1017645730 Ktheta= 0.296544776355 CenterHybridization= sp2 +As-Al-Al theta0= 2.1239784709 Ktheta= 0.257339408256 CenterHybridization= sp2 +As-Al-As theta0= 2.0671290778 Ktheta= 0.470854479928 CenterHybridization= sp2 +As-Al-B theta0= 2.0956571371 Ktheta= 0.273144861225 CenterHybridization= sp2 +As-Al-Br theta0= 2.0372588253 Ktheta= 0.479034190242 CenterHybridization= sp2 +As-Al-Cl theta0= 2.0216488169 Ktheta= 0.468012843913 CenterHybridization= sp2 +As-Al-F theta0= 2.0502928866 Ktheta= 0.497224369953 CenterHybridization= sp2 +As-Al-Ga theta0= 2.1174006549 Ktheta= 0.269050744476 CenterHybridization= sp2 +As-Al-H theta0= 2.0136934963 Ktheta= 0.366596343778 CenterHybridization= sp2 +As-Al-O theta0= 2.1242405478 Ktheta= 0.466855454699 CenterHybridization= sp2 +As-Al-P theta0= 2.0755298466 Ktheta= 0.418340451294 CenterHybridization= sp2 +As-Al-S theta0= 2.0625811355 Ktheta= 0.472132220401 CenterHybridization= sp2 +As-Al-Se theta0= 2.1124198988 Ktheta= 0.401508610627 CenterHybridization= sp2 +B-Al-B theta0= 2.1643944303 Ktheta= 0.221771952680 CenterHybridization= sp2 +B-Al-Br theta0= 2.0170849782 Ktheta= 0.294576318087 CenterHybridization= sp2 +B-Al-Cl theta0= 2.0310459454 Ktheta= 0.325307106213 CenterHybridization= sp2 +B-Al-F theta0= 2.0315517278 Ktheta= 0.294856908251 CenterHybridization= sp2 +B-Al-H theta0= 2.1162353072 Ktheta= 0.298805675376 CenterHybridization= sp2 +B-Al-O theta0= 2.0130903489 Ktheta= 0.409483541180 CenterHybridization= sp2 +B-Al-S theta0= 2.0704766245 Ktheta= 0.357584738444 CenterHybridization= sp2 +B-Al-Se theta0= 2.0774348316 Ktheta= 0.314651331961 CenterHybridization= sp2 +Ga-Al-Al theta0= 2.2067218568 Ktheta= 0.187386856213 CenterHybridization= sp2 +Ga-Al-B theta0= 2.1488149215 Ktheta= 0.194726531171 CenterHybridization= sp2 +Ga-Al-Br theta0= 2.0221756411 Ktheta= 0.274644463505 CenterHybridization= sp2 +Ga-Al-Cl theta0= 2.0299758491 Ktheta= 0.276343173467 CenterHybridization= sp2 +Ga-Al-F theta0= 2.0710944571 Ktheta= 0.336452429445 CenterHybridization= sp2 +Ga-Al-Ga theta0= 2.1931761366 Ktheta= 0.191634774160 CenterHybridization= sp2 +Ga-Al-H theta0= 2.1237831058 Ktheta= 0.273896095983 CenterHybridization= sp2 +Ga-Al-N theta0= 2.1492160261 Ktheta= 0.366331144947 CenterHybridization= sp2 +Ga-Al-O theta0= 1.9421829464 Ktheta= 0.302934660544 CenterHybridization= sp2 +Ga-Al-P theta0= 2.1234834659 Ktheta= 0.283197796425 CenterHybridization= sp2 +Ga-Al-S theta0= 2.0637563930 Ktheta= 0.328839335282 CenterHybridization= sp2 +Ga-Al-Se theta0= 2.0613858048 Ktheta= 0.327880002078 CenterHybridization= sp2 +N-Al-As theta0= 2.1228188044 Ktheta= 0.497116547949 CenterHybridization= sp2 +N-Al-B theta0= 2.0781521986 Ktheta= 0.437597454100 CenterHybridization= sp2 +N-Al-Br theta0= 2.0026889876 Ktheta= 0.612148124140 CenterHybridization= sp2 +N-Al-Cl theta0= 2.0683588821 Ktheta= 0.602298655023 CenterHybridization= sp2 +N-Al-F theta0= 2.0956341721 Ktheta= 0.653961846712 CenterHybridization= sp2 +N-Al-H theta0= 2.0503919689 Ktheta= 0.503049103734 CenterHybridization= sp2 +N-Al-N theta0= 2.1584269716 Ktheta= 0.662870167192 CenterHybridization= sp2 +N-Al-O theta0= 1.9750330571 Ktheta= 0.646981778818 CenterHybridization= sp2 +N-Al-P theta0= 2.1014322832 Ktheta= 0.529011440007 CenterHybridization= sp2 +N-Al-S theta0= 2.0548974124 Ktheta= 0.574554232414 CenterHybridization= sp2 +N-Al-Se theta0= 2.1147549661 Ktheta= 0.520506102269 CenterHybridization= sp2 +P-Al-Al theta0= 2.1286498237 Ktheta= 0.277720955419 CenterHybridization= sp2 +P-Al-B theta0= 2.1017182781 Ktheta= 0.290093038185 CenterHybridization= sp2 +P-Al-Br theta0= 2.0509432608 Ktheta= 0.457551362012 CenterHybridization= sp2 +P-Al-Cl theta0= 2.0355268758 Ktheta= 0.485673552972 CenterHybridization= sp2 +P-Al-F theta0= 2.0230873086 Ktheta= 0.523527295976 CenterHybridization= sp2 +P-Al-H theta0= 2.0217486306 Ktheta= 0.388704107547 CenterHybridization= sp2 +P-Al-O theta0= 2.0615767456 Ktheta= 0.436966223650 CenterHybridization= sp2 +P-Al-P theta0= 2.0815602489 Ktheta= 0.444147434366 CenterHybridization= sp2 +P-Al-S theta0= 2.0405424476 Ktheta= 0.446992002335 CenterHybridization= sp2 +P-Al-Se theta0= 2.0900423309 Ktheta= 0.464313239249 CenterHybridization= sp2 +C-Al-Al theta0= 2.2001756103 Ktheta= 0.259470616993 CenterHybridization= sp2 +C-Al-As theta0= 2.1008353335 Ktheta= 0.447398393131 CenterHybridization= sp2 +C-Al-B theta0= 2.1449488043 Ktheta= 0.374104842365 CenterHybridization= sp2 +C-Al-Br theta0= 2.0620473160 Ktheta= 0.546171053102 CenterHybridization= sp2 +C-Al-C theta0= 2.1291820322 Ktheta= 0.594981513406 CenterHybridization= sp2 +C-Al-Cl theta0= 2.0556292395 Ktheta= 0.556626074869 CenterHybridization= sp2 +C-Al-F theta0= 2.0755084000 Ktheta= 0.574599583405 CenterHybridization= sp2 +C-Al-Ga theta0= 2.1138230074 Ktheta= 0.319780137889 CenterHybridization= sp2 +C-Al-H theta0= 2.0874977997 Ktheta= 0.483552522344 CenterHybridization= sp2 +C-Al-N theta0= 2.0512280148 Ktheta= 0.657060180767 CenterHybridization= sp2 +C-Al-O theta0= 2.0200380124 Ktheta= 0.602084761993 CenterHybridization= sp2 +C-Al-P theta0= 2.0789811305 Ktheta= 0.451106721972 CenterHybridization= sp2 +C-Al-S theta0= 2.0586590141 Ktheta= 0.508233241965 CenterHybridization= sp2 +C-Al-Se theta0= 2.0338196523 Ktheta= 0.517558100707 CenterHybridization= sp2 +Ge-Al-Al theta0= 2.1942104048 Ktheta= 0.242449642006 CenterHybridization= sp2 +Ge-Al-As theta0= 2.0600454042 Ktheta= 0.402542440339 CenterHybridization= sp2 +Ge-Al-B theta0= 2.1066471612 Ktheta= 0.253303413324 CenterHybridization= sp2 +Ge-Al-Br theta0= 2.0575352909 Ktheta= 0.430253053007 CenterHybridization= sp2 +Ge-Al-C theta0= 2.1408724517 Ktheta= 0.401603817270 CenterHybridization= sp2 +Ge-Al-Cl theta0= 2.0426734266 Ktheta= 0.425651277585 CenterHybridization= sp2 +Ge-Al-F theta0= 2.0750879921 Ktheta= 0.465056135640 CenterHybridization= sp2 +Ge-Al-Ga theta0= 2.1662886745 Ktheta= 0.213134795375 CenterHybridization= sp2 +Ge-Al-Ge theta0= 2.2244842279 Ktheta= 0.313565988951 CenterHybridization= sp2 +Ge-Al-H theta0= 2.0958850823 Ktheta= 0.365673520829 CenterHybridization= sp2 +Ge-Al-N theta0= 2.0192521709 Ktheta= 0.488765575221 CenterHybridization= sp2 +Ge-Al-O theta0= 1.9709740723 Ktheta= 0.442398732492 CenterHybridization= sp2 +Ge-Al-P theta0= 2.0440145096 Ktheta= 0.345436388660 CenterHybridization= sp2 +Ge-Al-S theta0= 2.0660005496 Ktheta= 0.435828515022 CenterHybridization= sp2 +Ge-Al-Se theta0= 1.9876364566 Ktheta= 0.438842086954 CenterHybridization= sp2 +Ge-Al-Si theta0= 2.1810010217 Ktheta= 0.364009536636 CenterHybridization= sp2 +Si-Al-Al theta0= 2.1341459301 Ktheta= 0.261867505532 CenterHybridization= sp2 +Si-Al-As theta0= 2.0533867811 Ktheta= 0.366956736322 CenterHybridization= sp2 +Si-Al-B theta0= 2.1482959008 Ktheta= 0.264633003605 CenterHybridization= sp2 +Si-Al-Br theta0= 2.0698554967 Ktheta= 0.406624934428 CenterHybridization= sp2 +Si-Al-C theta0= 2.1565644330 Ktheta= 0.405590857687 CenterHybridization= sp2 +Si-Al-Cl theta0= 2.0472658800 Ktheta= 0.450472029953 CenterHybridization= sp2 +Si-Al-F theta0= 2.0554787048 Ktheta= 0.470399216739 CenterHybridization= sp2 +Si-Al-Ga theta0= 2.1415533919 Ktheta= 0.296979588614 CenterHybridization= sp2 +Si-Al-H theta0= 2.0952042800 Ktheta= 0.364233619473 CenterHybridization= sp2 +Si-Al-N theta0= 2.1126437478 Ktheta= 0.457213057391 CenterHybridization= sp2 +Si-Al-O theta0= 2.0180363536 Ktheta= 0.402289792348 CenterHybridization= sp2 +Si-Al-P theta0= 2.0676186688 Ktheta= 0.392419270354 CenterHybridization= sp2 +Si-Al-S theta0= 2.0101681266 Ktheta= 0.457463800657 CenterHybridization= sp2 +Si-Al-Se theta0= 2.0778485060 Ktheta= 0.442600239168 CenterHybridization= sp2 +Si-Al-Si theta0= 2.1087031992 Ktheta= 0.395516214583 CenterHybridization= sp2 +O-Al-Br theta0= 2.0952914802 Ktheta= 0.551633183747 CenterHybridization= sp2 +O-Al-Cl theta0= 2.1074174658 Ktheta= 0.569030337067 CenterHybridization= sp2 +O-Al-F theta0= 2.1064186400 Ktheta= 0.674015173105 CenterHybridization= sp2 +O-Al-H theta0= 2.0146797731 Ktheta= 0.517499244044 CenterHybridization= sp2 +O-Al-O theta0= 2.0333912124 Ktheta= 0.589772190059 CenterHybridization= sp2 +S-Al-Br theta0= 2.0775947282 Ktheta= 0.609372941064 CenterHybridization= sp2 +S-Al-Cl theta0= 2.0561171882 Ktheta= 0.591981632859 CenterHybridization= sp2 +S-Al-F theta0= 2.0327269156 Ktheta= 0.622135018601 CenterHybridization= sp2 +S-Al-H theta0= 2.0334511382 Ktheta= 0.436681682606 CenterHybridization= sp2 +S-Al-O theta0= 2.0797197765 Ktheta= 0.543257899138 CenterHybridization= sp2 +S-Al-S theta0= 2.0513221282 Ktheta= 0.490863271598 CenterHybridization= sp2 +Se-Al-Br theta0= 2.0642267715 Ktheta= 0.564073768670 CenterHybridization= sp2 +Se-Al-Cl theta0= 2.1119250020 Ktheta= 0.550346542790 CenterHybridization= sp2 +Se-Al-F theta0= 2.0602514665 Ktheta= 0.558359612247 CenterHybridization= sp2 +Se-Al-H theta0= 2.0378510819 Ktheta= 0.410241145297 CenterHybridization= sp2 +Se-Al-O theta0= 2.1081382938 Ktheta= 0.522263960409 CenterHybridization= sp2 +Se-Al-S theta0= 2.0768933240 Ktheta= 0.588361836240 CenterHybridization= sp2 +Se-Al-Se theta0= 2.0892670870 Ktheta= 0.454530814354 CenterHybridization= sp2 +H-Al-H theta0= 2.0943951000 Ktheta= 0.446598206006 CenterHybridization= sp2 diff --git a/sim/src/parameters/new/RAsR.txt b/sim/src/parameters/new/RAsR.txt new file mode 100755 index 000000000..d19184a1a --- /dev/null +++ b/sim/src/parameters/new/RAsR.txt @@ -0,0 +1,136 @@ +Br-As-Br theta0= 1.8022158675 Ktheta= 0.773024981445 CenterHybridization= sp3 +Br-As-Cl theta0= 1.7889225254 Ktheta= 0.812237852726 CenterHybridization= sp3 +Br-As-F theta0= 1.7555704214 Ktheta= 0.723737713615 CenterHybridization= sp3 +Br-As-H theta0= 2.0391279263 Ktheta= 0.505617774501 CenterHybridization= sp3 +Cl-As-Cl theta0= 2.0189000595 Ktheta= 0.591402033650 CenterHybridization= sp3 +Cl-As-F theta0= 1.9820475144 Ktheta= 0.562371408344 CenterHybridization= sp3 +Cl-As-H theta0= 2.0152026458 Ktheta= 0.543009251655 CenterHybridization= sp3 +F-As-F theta0= 1.9072605557 Ktheta= 0.562238316378 CenterHybridization= sp3 +F-As-H theta0= 1.9639921811 Ktheta= 0.571018443069 CenterHybridization= sp3 +Al-As-Al theta0= 2.3474380398 Ktheta= 0.293792096532 CenterHybridization= sp3 +Al-As-B theta0= 2.2864046473 Ktheta= 0.299175307619 CenterHybridization= sp3 +Al-As-Br theta0= 2.1440381160 Ktheta= 0.355370348715 CenterHybridization= sp3 +Al-As-Cl theta0= 2.1670764795 Ktheta= 0.341454097868 CenterHybridization= sp3 +Al-As-F theta0= 2.0968126131 Ktheta= 0.390750561445 CenterHybridization= sp3 +Al-As-H theta0= 2.2183830107 Ktheta= 0.324826925024 CenterHybridization= sp3 +Al-As-N theta0= 2.1509681674 Ktheta= 0.369819352615 CenterHybridization= sp3 +Al-As-O theta0= 2.2144121719 Ktheta= 0.407647166281 CenterHybridization= sp3 +Al-As-S theta0= 2.3039237579 Ktheta= 0.336612736318 CenterHybridization= sp3 +Al-As-Se theta0= 2.2414515283 Ktheta= 0.359278255730 CenterHybridization= sp3 +As-As-Al theta0= 2.1685490836 Ktheta= 0.335025151730 CenterHybridization= sp3 +As-As-As theta0= 1.8720933233 Ktheta= 0.755786572313 CenterHybridization= sp3 +As-As-B theta0= 2.1630953137 Ktheta= 0.463197699701 CenterHybridization= sp3 +As-As-Br theta0= 1.6831107266 Ktheta= 0.737745893921 CenterHybridization= sp3 +As-As-Cl theta0= 1.9868105389 Ktheta= 0.458960686010 CenterHybridization= sp3 +As-As-F theta0= 1.8889459869 Ktheta= 0.504669988180 CenterHybridization= sp3 +As-As-Ga theta0= 2.2247386882 Ktheta= 0.315053384768 CenterHybridization= sp3 +As-As-H theta0= 2.0737227048 Ktheta= 0.438487153159 CenterHybridization= sp3 +As-As-O theta0= 1.6566399899 Ktheta= 0.800558899555 CenterHybridization= sp3 +As-As-P theta0= 1.7438270538 Ktheta= 0.702518568876 CenterHybridization= sp3 +As-As-S theta0= 1.6943090750 Ktheta= 0.725157567689 CenterHybridization= sp3 +As-As-Se theta0= 1.6964774337 Ktheta= 0.704867114114 CenterHybridization= sp3 +B-As-B theta0= 2.2191487547 Ktheta= 0.483608139929 CenterHybridization= sp3 +B-As-Br theta0= 2.1744207587 Ktheta= 0.552423872979 CenterHybridization= sp3 +B-As-Cl theta0= 2.1599312970 Ktheta= 0.554336899519 CenterHybridization= sp3 +B-As-F theta0= 2.1240467569 Ktheta= 0.619588899214 CenterHybridization= sp3 +B-As-H theta0= 2.2000068491 Ktheta= 0.488414476702 CenterHybridization= sp3 +B-As-O theta0= 2.2190693195 Ktheta= 0.656202672157 CenterHybridization= sp3 +B-As-S theta0= 1.7784729582 Ktheta= 0.661804605440 CenterHybridization= sp3 +B-As-Se theta0= 1.7788501448 Ktheta= 0.622064416269 CenterHybridization= sp3 +Ga-As-Al theta0= 2.2258736863 Ktheta= 0.289949224470 CenterHybridization= sp3 +Ga-As-B theta0= 2.2725986200 Ktheta= 0.333063216414 CenterHybridization= sp3 +Ga-As-Br theta0= 2.1864267075 Ktheta= 0.342706501201 CenterHybridization= sp3 +Ga-As-Cl theta0= 2.1686431150 Ktheta= 0.352876394752 CenterHybridization= sp3 +Ga-As-F theta0= 2.1359671480 Ktheta= 0.380246774777 CenterHybridization= sp3 +Ga-As-Ga theta0= 2.3372429049 Ktheta= 0.319322171108 CenterHybridization= sp3 +Ga-As-H theta0= 2.2157440903 Ktheta= 0.343948807995 CenterHybridization= sp3 +Ga-As-N theta0= 2.1457071586 Ktheta= 0.378101442713 CenterHybridization= sp3 +Ga-As-O theta0= 2.2600787572 Ktheta= 0.405653281801 CenterHybridization= sp3 +Ga-As-S theta0= 2.2594947403 Ktheta= 0.370545584811 CenterHybridization= sp3 +Ga-As-Se theta0= 2.3379174275 Ktheta= 0.346517897921 CenterHybridization= sp3 +N-As-As theta0= 1.9710891890 Ktheta= 0.509280364560 CenterHybridization= sp3 +N-As-B theta0= 1.7972954702 Ktheta= 0.785464603761 CenterHybridization= sp3 +N-As-Br theta0= 1.8384876822 Ktheta= 0.755687659946 CenterHybridization= sp3 +N-As-Cl theta0= 1.9545297511 Ktheta= 0.615337856297 CenterHybridization= sp3 +N-As-F theta0= 1.8521505455 Ktheta= 0.606314074606 CenterHybridization= sp3 +N-As-H theta0= 2.0346214984 Ktheta= 0.582381674934 CenterHybridization= sp3 +N-As-N theta0= 1.7565209225 Ktheta= 1.150042917163 CenterHybridization= sp3 +N-As-O theta0= 1.8176410281 Ktheta= 0.719675821758 CenterHybridization= sp3 +N-As-P theta0= 1.9653901898 Ktheta= 0.557365030668 CenterHybridization= sp3 +N-As-S theta0= 1.9664912028 Ktheta= 0.551529245558 CenterHybridization= sp3 +N-As-Se theta0= 1.9489958566 Ktheta= 0.526802987134 CenterHybridization= sp3 +P-As-Al theta0= 2.2042569772 Ktheta= 0.334582730511 CenterHybridization= sp3 +P-As-B theta0= 2.1564631498 Ktheta= 0.506529149881 CenterHybridization= sp3 +P-As-Br theta0= 1.6860392146 Ktheta= 0.774396174993 CenterHybridization= sp3 +P-As-Cl theta0= 1.9622478030 Ktheta= 0.502260664210 CenterHybridization= sp3 +P-As-Ga theta0= 2.1737939010 Ktheta= 0.347828782779 CenterHybridization= sp3 +P-As-F theta0= 1.8563340351 Ktheta= 0.521590376922 CenterHybridization= sp3 +P-As-H theta0= 2.0662468732 Ktheta= 0.473159685112 CenterHybridization= sp3 +P-As-O theta0= 1.6983409078 Ktheta= 0.812472276126 CenterHybridization= sp3 +P-As-P theta0= 1.9888291273 Ktheta= 0.492033533264 CenterHybridization= sp3 +P-As-S theta0= 1.8284913020 Ktheta= 0.798686814105 CenterHybridization= sp3 +P-As-Se theta0= 1.6925245073 Ktheta= 0.723415710642 CenterHybridization= sp3 +C-As-Al theta0= 2.2331872163 Ktheta= 0.369639748948 CenterHybridization= sp3 +C-As-As theta0= 1.6810089802 Ktheta= 0.799787710062 CenterHybridization= sp3 +C-As-B theta0= 2.2224104173 Ktheta= 0.567950926882 CenterHybridization= sp3 +C-As-Br theta0= 1.7134898752 Ktheta= 0.926366325420 CenterHybridization= sp3 +C-As-C theta0= 1.7155880071 Ktheta= 0.978890681010 CenterHybridization= sp3 +C-As-Cl theta0= 1.6986714784 Ktheta= 0.961677869044 CenterHybridization= sp3 +C-As-F theta0= 1.6811753258 Ktheta= 1.054268886541 CenterHybridization= sp3 +C-As-Ga theta0= 2.2771533656 Ktheta= 0.381230269627 CenterHybridization= sp3 +C-As-H theta0= 1.6684336823 Ktheta= 0.774057262164 CenterHybridization= sp3 +C-As-N theta0= 1.6867049565 Ktheta= 1.062554313469 CenterHybridization= sp3 +C-As-O theta0= 1.6666975369 Ktheta= 1.051714992677 CenterHybridization= sp3 +C-As-P theta0= 1.6819388881 Ktheta= 0.824774941783 CenterHybridization= sp3 +C-As-S theta0= 1.7236695447 Ktheta= 0.897547306150 CenterHybridization= sp3 +C-As-Se theta0= 1.7383321535 Ktheta= 0.870475558703 CenterHybridization= sp3 +Ge-As-Al theta0= 2.2507929284 Ktheta= 0.331014153568 CenterHybridization= sp3 +Ge-As-As theta0= 1.6552558740 Ktheta= 0.645062490371 CenterHybridization= sp3 +Ge-As-B theta0= 2.2029835501 Ktheta= 0.419426632427 CenterHybridization= sp3 +Ge-As-Br theta0= 1.6829522263 Ktheta= 0.654873944312 CenterHybridization= sp3 +Ge-As-C theta0= 1.6947396704 Ktheta= 0.733574564621 CenterHybridization= sp3 +Ge-As-Cl theta0= 1.6821347752 Ktheta= 0.683407835004 CenterHybridization= sp3 +Ge-As-F theta0= 1.6872699929 Ktheta= 0.576021089561 CenterHybridization= sp3 +Ge-As-Ga theta0= 2.2819291065 Ktheta= 0.291285559271 CenterHybridization= sp3 +Ge-As-Ge theta0= 2.1829343281 Ktheta= 0.451726240721 CenterHybridization= sp3 +Ge-As-H theta0= 1.6168137057 Ktheta= 0.539413940229 CenterHybridization= sp3 +Ge-As-N theta0= 1.6471569685 Ktheta= 0.759352340858 CenterHybridization= sp3 +Ge-As-O theta0= 1.6299880198 Ktheta= 0.707796969346 CenterHybridization= sp3 +Ge-As-P theta0= 1.6602537290 Ktheta= 0.653177582252 CenterHybridization= sp3 +Ge-As-S theta0= 1.6811478875 Ktheta= 0.658973450818 CenterHybridization= sp3 +Ge-As-Se theta0= 2.1343535126 Ktheta= 0.447980670718 CenterHybridization= sp3 +Ge-As-Si theta0= 2.2489217417 Ktheta= 0.319361224698 CenterHybridization= sp3 +Si-As-Al theta0= 2.2691505580 Ktheta= 0.311257919233 CenterHybridization= sp3 +Si-As-As theta0= 1.6554669960 Ktheta= 0.636928209083 CenterHybridization= sp3 +Si-As-B theta0= 2.2401962788 Ktheta= 0.406705214232 CenterHybridization= sp3 +Si-As-Br theta0= 2.1294669240 Ktheta= 0.416681221945 CenterHybridization= sp3 +Si-As-C theta0= 2.1728427210 Ktheta= 0.452359820697 CenterHybridization= sp3 +Si-As-Cl theta0= 1.6863786584 Ktheta= 0.659400111260 CenterHybridization= sp3 +Si-As-F theta0= 1.6797271720 Ktheta= 0.630327939454 CenterHybridization= sp3 +Si-As-Ga theta0= 2.2755476871 Ktheta= 0.347757961857 CenterHybridization= sp3 +Si-As-H theta0= 2.1936568526 Ktheta= 0.404715470247 CenterHybridization= sp3 +Si-As-N theta0= 1.6653446991 Ktheta= 0.709513659284 CenterHybridization= sp3 +Si-As-O theta0= 1.6230981197 Ktheta= 0.663845211621 CenterHybridization= sp3 +Si-As-P theta0= 1.6571462785 Ktheta= 0.632469707083 CenterHybridization= sp3 +Si-As-S theta0= 2.1131307976 Ktheta= 0.464169746555 CenterHybridization= sp3 +Si-As-Se theta0= 2.0751325067 Ktheta= 0.425267878958 CenterHybridization= sp3 +Si-As-Si theta0= 1.6652702520 Ktheta= 0.624141805017 CenterHybridization= sp3 +O-As-Br theta0= 1.7869134647 Ktheta= 0.769117558742 CenterHybridization= sp3 +O-As-Cl theta0= 2.0204635708 Ktheta= 0.547904903239 CenterHybridization= sp3 +O-As-F theta0= 1.9284194423 Ktheta= 0.570973515336 CenterHybridization= sp3 +O-As-H theta0= 1.9375964707 Ktheta= 0.577686177693 CenterHybridization= sp3 +O-As-O theta0= 1.8568340894 Ktheta= 0.716818007539 CenterHybridization= sp3 +S-As-Br theta0= 1.8200097401 Ktheta= 0.791352068124 CenterHybridization= sp3 +S-As-Cl theta0= 2.0409763225 Ktheta= 0.580459276759 CenterHybridization= sp3 +S-As-F theta0= 1.9699972900 Ktheta= 0.474472417532 CenterHybridization= sp3 +S-As-H theta0= 2.0336688820 Ktheta= 0.493787795492 CenterHybridization= sp3 +S-As-O theta0= 1.8939212155 Ktheta= 0.554760510319 CenterHybridization= sp3 +S-As-S theta0= 2.0562388184 Ktheta= 0.546853713026 CenterHybridization= sp3 +Se-As-Br theta0= 2.0710489790 Ktheta= 0.537773099455 CenterHybridization= sp3 +Se-As-Cl theta0= 2.0768481671 Ktheta= 0.476963363225 CenterHybridization= sp3 +Se-As-F theta0= 1.9191310862 Ktheta= 0.558982685852 CenterHybridization= sp3 +Se-As-H theta0= 2.0574770841 Ktheta= 0.451651891821 CenterHybridization= sp3 +Se-As-O theta0= 1.8258618972 Ktheta= 0.715968726087 CenterHybridization= sp3 +Se-As-S theta0= 2.1050136622 Ktheta= 0.397234177474 CenterHybridization= sp3 +Se-As-Se theta0= 2.0880563242 Ktheta= 0.495607946195 CenterHybridization= sp3 +H-As-H theta0= 2.0943949551 Ktheta= 0.520515195863 CenterHybridization= sp3 diff --git a/sim/src/parameters/new/RBR.txt b/sim/src/parameters/new/RBR.txt new file mode 100755 index 000000000..72b1f990c --- /dev/null +++ b/sim/src/parameters/new/RBR.txt @@ -0,0 +1,136 @@ +Br-B-Br theta0= 2.1244133110 Ktheta= 0.968428884432 CenterHybridization= sp3 +Br-B-Cl theta0= 2.1200357407 Ktheta= 1.033335193480 CenterHybridization= sp3 +Br-B-F theta0= 2.0802819296 Ktheta= 1.063067773311 CenterHybridization= sp3 +Br-B-H theta0= 2.0499635499 Ktheta= 0.670628354990 CenterHybridization= sp3 +Cl-B-Cl theta0= 2.1110503215 Ktheta= 1.107655674088 CenterHybridization= sp3 +Cl-B-F theta0= 2.0746130112 Ktheta= 1.173458348390 CenterHybridization= sp3 +Cl-B-H theta0= 2.0558421470 Ktheta= 0.742597146153 CenterHybridization= sp3 +F-B-F theta0= 2.0579302466 Ktheta= 1.284142826685 CenterHybridization= sp3 +F-B-H theta0= 2.0505365049 Ktheta= 0.851790079003 CenterHybridization= sp3 +Al-B-Al theta0= 2.2165197652 Ktheta= 0.209285477749 CenterHybridization= sp3 +Al-B-B theta0= 2.0651913783 Ktheta= 0.134367051664 CenterHybridization= sp3 +Al-B-Br theta0= 2.0410438912 Ktheta= 0.273928679756 CenterHybridization= sp3 +Al-B-Cl theta0= 2.0860900380 Ktheta= 0.311999345355 CenterHybridization= sp3 +Al-B-F theta0= 2.1106829140 Ktheta= 0.410725672188 CenterHybridization= sp3 +Al-B-H theta0= 2.1418163240 Ktheta= 0.234218096515 CenterHybridization= sp3 +Al-B-N theta0= 2.0683873240 Ktheta= 0.497215047403 CenterHybridization= sp3 +Al-B-O theta0= 2.0477674702 Ktheta= 0.359167791942 CenterHybridization= sp3 +Al-B-S theta0= 2.1110037648 Ktheta= 0.338007943257 CenterHybridization= sp3 +Al-B-Se theta0= 2.2103950157 Ktheta= 0.331598871640 CenterHybridization= sp3 +As-B-Al theta0= 2.1359841685 Ktheta= 0.278930240400 CenterHybridization= sp3 +As-B-As theta0= 2.2030040490 Ktheta= 0.566809819009 CenterHybridization= sp3 +As-B-B theta0= 2.0428658893 Ktheta= 0.194425002115 CenterHybridization= sp3 +As-B-Br theta0= 2.1160268730 Ktheta= 0.706473285323 CenterHybridization= sp3 +As-B-Cl theta0= 2.1222832815 Ktheta= 0.749610099957 CenterHybridization= sp3 +As-B-F theta0= 2.1090045460 Ktheta= 0.802116034793 CenterHybridization= sp3 +As-B-Ga theta0= 2.1433929253 Ktheta= 0.311536846842 CenterHybridization= sp3 +As-B-H theta0= 2.0387656990 Ktheta= 0.493918754280 CenterHybridization= sp3 +As-B-O theta0= 2.0663946816 Ktheta= 0.743935827371 CenterHybridization= sp3 +As-B-P theta0= 2.2173966675 Ktheta= 0.575728713322 CenterHybridization= sp3 +As-B-S theta0= 2.1175786435 Ktheta= 0.643037029836 CenterHybridization= sp3 +As-B-Se theta0= 2.1276643602 Ktheta= 0.640261584010 CenterHybridization= sp3 +B-B-B theta0= 2.2605060382 Ktheta= 0.186365895624 CenterHybridization= sp3 +B-B-Br theta0= 2.0096789493 Ktheta= 0.261321377520 CenterHybridization= sp3 +B-B-Cl theta0= 2.0709305428 Ktheta= 0.334986758710 CenterHybridization= sp3 +B-B-F theta0= 2.1097626525 Ktheta= 0.480200440865 CenterHybridization= sp3 +B-B-H theta0= 2.1301472516 Ktheta= 0.279503610719 CenterHybridization= sp3 +B-B-O theta0= 2.1337169282 Ktheta= 0.472729201076 CenterHybridization= sp3 +B-B-S theta0= 2.2075631230 Ktheta= 0.336600236698 CenterHybridization= sp3 +B-B-Se theta0= 2.1477649960 Ktheta= 0.291593260362 CenterHybridization= sp3 +Ga-B-Al theta0= 2.2132215380 Ktheta= 0.232184492269 CenterHybridization= sp3 +Ga-B-B theta0= 2.1176629220 Ktheta= 0.166980159407 CenterHybridization= sp3 +Ga-B-Br theta0= 2.0707892008 Ktheta= 0.341692826595 CenterHybridization= sp3 +Ga-B-Cl theta0= 2.1049752789 Ktheta= 0.368354312217 CenterHybridization= sp3 +Ga-B-F theta0= 2.1086981797 Ktheta= 0.446188400773 CenterHybridization= sp3 +Ga-B-Ga theta0= 2.2032158447 Ktheta= 0.251566381282 CenterHybridization= sp3 +Ga-B-H theta0= 2.1291731694 Ktheta= 0.258367297506 CenterHybridization= sp3 +Ga-B-N theta0= 2.2041312716 Ktheta= 0.446063955074 CenterHybridization= sp3 +Ga-B-O theta0= 2.0558488263 Ktheta= 0.417979170098 CenterHybridization= sp3 +Ga-B-P theta0= 2.1946235190 Ktheta= 0.342097848095 CenterHybridization= sp3 +Ga-B-S theta0= 2.1214000402 Ktheta= 0.384856832229 CenterHybridization= sp3 +Ga-B-Se theta0= 2.2221021380 Ktheta= 0.359853433269 CenterHybridization= sp3 +N-B-As theta0= 2.1865915923 Ktheta= 0.736237593653 CenterHybridization= sp3 +N-B-B theta0= 2.2363988350 Ktheta= 0.457233544532 CenterHybridization= sp3 +N-B-Br theta0= 2.0862368551 Ktheta= 0.955779558997 CenterHybridization= sp3 +N-B-Cl theta0= 2.0944128325 Ktheta= 1.046015430027 CenterHybridization= sp3 +N-B-F theta0= 2.0743356557 Ktheta= 1.198835285210 CenterHybridization= sp3 +N-B-H theta0= 2.0770343361 Ktheta= 0.749774108489 CenterHybridization= sp3 +N-B-N theta0= 2.1428841549 Ktheta= 1.141728047410 CenterHybridization= sp3 +N-B-O theta0= 2.0661228204 Ktheta= 1.228689773591 CenterHybridization= sp3 +N-B-P theta0= 2.1883009206 Ktheta= 0.749030118584 CenterHybridization= sp3 +N-B-S theta0= 2.0900598784 Ktheta= 0.927191283432 CenterHybridization= sp3 +N-B-Se theta0= 2.1051028817 Ktheta= 0.825659955295 CenterHybridization= sp3 +P-B-Al theta0= 2.0551679420 Ktheta= 0.342391721594 CenterHybridization= sp3 +P-B-B theta0= 2.0922775566 Ktheta= 0.219995381706 CenterHybridization= sp3 +P-B-Br theta0= 2.1327381947 Ktheta= 0.667212779508 CenterHybridization= sp3 +P-B-Cl theta0= 2.1303118362 Ktheta= 0.730250113767 CenterHybridization= sp3 +P-B-F theta0= 2.1074530670 Ktheta= 0.811584874619 CenterHybridization= sp3 +P-B-H theta0= 2.0553740147 Ktheta= 0.489458238132 CenterHybridization= sp3 +P-B-O theta0= 2.0784596296 Ktheta= 0.785183349993 CenterHybridization= sp3 +P-B-P theta0= 2.2232995438 Ktheta= 0.577099562985 CenterHybridization= sp3 +P-B-S theta0= 2.1293218889 Ktheta= 0.693163898697 CenterHybridization= sp3 +P-B-Se theta0= 2.1227110669 Ktheta= 0.679292193093 CenterHybridization= sp3 +C-B-Al theta0= 2.2436355635 Ktheta= 0.306707843425 CenterHybridization= sp3 +C-B-As theta0= 2.1546652146 Ktheta= 0.703513153553 CenterHybridization= sp3 +C-B-B theta0= 2.2368253638 Ktheta= 0.327848039314 CenterHybridization= sp3 +C-B-Br theta0= 2.1049934932 Ktheta= 0.924368778539 CenterHybridization= sp3 +C-B-C theta0= 2.1904586782 Ktheta= 0.919901971926 CenterHybridization= sp3 +C-B-Cl theta0= 2.0959091819 Ktheta= 1.013022090601 CenterHybridization= sp3 +C-B-F theta0= 2.0643800463 Ktheta= 1.073412017475 CenterHybridization= sp3 +C-B-Ga theta0= 2.2173926567 Ktheta= 0.338168199037 CenterHybridization= sp3 +C-B-H theta0= 2.0859791224 Ktheta= 0.675262257188 CenterHybridization= sp3 +C-B-N theta0= 2.1183065750 Ktheta= 0.984446054948 CenterHybridization= sp3 +C-B-O theta0= 2.0857086923 Ktheta= 1.085196320469 CenterHybridization= sp3 +C-B-P theta0= 2.1556600819 Ktheta= 0.691160668525 CenterHybridization= sp3 +C-B-S theta0= 2.0863620755 Ktheta= 0.844560468694 CenterHybridization= sp3 +C-B-Se theta0= 2.0768968897 Ktheta= 0.798167641283 CenterHybridization= sp3 +Ge-B-Al theta0= 2.1832788649 Ktheta= 0.271114784783 CenterHybridization= sp3 +Ge-B-As theta0= 2.1219144062 Ktheta= 0.521393038780 CenterHybridization= sp3 +Ge-B-B theta0= 2.0795130667 Ktheta= 0.186357636322 CenterHybridization= sp3 +Ge-B-Br theta0= 2.0931449346 Ktheta= 0.648072628254 CenterHybridization= sp3 +Ge-B-C theta0= 2.1408724517 Ktheta= 0.409637623434 CenterHybridization= sp3 +Ge-B-Cl theta0= 2.0969091857 Ktheta= 0.646259265816 CenterHybridization= sp3 +Ge-B-F theta0= 2.0819444814 Ktheta= 0.675451888197 CenterHybridization= sp3 +Ge-B-Ga theta0= 2.1936632056 Ktheta= 0.294557796957 CenterHybridization= sp3 +Ge-B-Ge theta0= 2.2244842279 Ktheta= 0.275746162032 CenterHybridization= sp3 +Ge-B-H theta0= 2.0686001390 Ktheta= 0.431579235152 CenterHybridization= sp3 +Ge-B-N theta0= 2.1143897717 Ktheta= 0.635395433038 CenterHybridization= sp3 +Ge-B-O theta0= 2.0622049908 Ktheta= 0.666110464383 CenterHybridization= sp3 +Ge-B-P theta0= 2.1461625831 Ktheta= 0.460123808188 CenterHybridization= sp3 +Ge-B-S theta0= 2.0903404349 Ktheta= 0.569889976003 CenterHybridization= sp3 +Ge-B-Se theta0= 2.1042083813 Ktheta= 0.534561569420 CenterHybridization= sp3 +Ge-B-Si theta0= 2.1810010217 Ktheta= 0.308682458875 CenterHybridization= sp3 +Si-B-Al theta0= 2.2435238502 Ktheta= 0.237081103835 CenterHybridization= sp3 +Si-B-As theta0= 2.1191659716 Ktheta= 0.517362639916 CenterHybridization= sp3 +Si-B-B theta0= 2.1211801112 Ktheta= 0.181439899013 CenterHybridization= sp3 +Si-B-Br theta0= 2.0836845973 Ktheta= 0.612683377072 CenterHybridization= sp3 +Si-B-C theta0= 2.2197639169 Ktheta= 0.529413007749 CenterHybridization= sp3 +Si-B-Cl theta0= 2.0904288026 Ktheta= 0.624056587387 CenterHybridization= sp3 +Si-B-F theta0= 2.0828091280 Ktheta= 0.670685760109 CenterHybridization= sp3 +Si-B-Ga theta0= 2.2175668598 Ktheta= 0.259154699532 CenterHybridization= sp3 +Si-B-H theta0= 2.0741981464 Ktheta= 0.438355894454 CenterHybridization= sp3 +Si-B-N theta0= 2.1202591795 Ktheta= 0.625509398766 CenterHybridization= sp3 +Si-B-O theta0= 2.0764667690 Ktheta= 0.641167466583 CenterHybridization= sp3 +Si-B-P theta0= 2.1459304857 Ktheta= 0.441550321801 CenterHybridization= sp3 +Si-B-S theta0= 2.0878957190 Ktheta= 0.526273737776 CenterHybridization= sp3 +Si-B-Se theta0= 2.0805558608 Ktheta= 0.557279347485 CenterHybridization= sp3 +Si-B-Si theta0= 2.2517256253 Ktheta= 0.362445437720 CenterHybridization= sp3 +O-B-Br theta0= 2.1066678137 Ktheta= 1.108798863674 CenterHybridization= sp3 +O-B-Cl theta0= 2.1046146381 Ktheta= 1.186601066292 CenterHybridization= sp3 +O-B-F theta0= 2.0973918966 Ktheta= 1.289290447202 CenterHybridization= sp3 +O-B-H theta0= 2.0360621752 Ktheta= 0.819327704938 CenterHybridization= sp3 +O-B-O theta0= 2.0812803016 Ktheta= 1.330335011060 CenterHybridization= sp3 +S-B-Br theta0= 2.1561503868 Ktheta= 0.968009572860 CenterHybridization= sp3 +S-B-Cl theta0= 2.1592002938 Ktheta= 0.958536961411 CenterHybridization= sp3 +S-B-F theta0= 2.1197118024 Ktheta= 1.043791266879 CenterHybridization= sp3 +S-B-H theta0= 2.0200348359 Ktheta= 0.646380595895 CenterHybridization= sp3 +S-B-O theta0= 2.0367776450 Ktheta= 0.965115016946 CenterHybridization= sp3 +S-B-S theta0= 2.1575232541 Ktheta= 0.831912764738 CenterHybridization= sp3 +Se-B-Br theta0= 2.1862843742 Ktheta= 0.826643088082 CenterHybridization= sp3 +Se-B-Cl theta0= 2.1774329945 Ktheta= 0.908147693266 CenterHybridization= sp3 +Se-B-F theta0= 2.1282506669 Ktheta= 0.946214120525 CenterHybridization= sp3 +Se-B-H theta0= 2.0159815705 Ktheta= 0.587416048235 CenterHybridization= sp3 +Se-B-O theta0= 2.0351553685 Ktheta= 0.884336554428 CenterHybridization= sp3 +Se-B-S theta0= 2.1386799203 Ktheta= 0.818528422088 CenterHybridization= sp3 +Se-B-Se theta0= 2.1677935323 Ktheta= 0.729517439829 CenterHybridization= sp3 +H-B-H theta0= 2.0943951000 Ktheta= 0.546480999782 CenterHybridization= sp3 diff --git a/sim/src/parameters/new/RCR.txt b/sim/src/parameters/new/RCR.txt new file mode 100755 index 000000000..790e2a811 --- /dev/null +++ b/sim/src/parameters/new/RCR.txt @@ -0,0 +1,136 @@ +Br-C-Al theta0= 1.4848704220 Ktheta= 0.891596588790 CenterHybridization= sp3 +Br-C-B theta0= 1.4905487285 Ktheta= 0.738059505260 CenterHybridization= sp3 +Br-C-Br theta0= 1.9976194223 Ktheta= 1.076749749319 CenterHybridization= sp3 +Br-C-Ga theta0= 1.5875532468 Ktheta= 0.626431041600 CenterHybridization= sp3 +Br-C-O theta0= 1.9761390845 Ktheta= 1.239501742942 CenterHybridization= sp3 +Br-C-S theta0= 1.9108022948 Ktheta= 1.000101927996 CenterHybridization= sp3 +Br-C-Se theta0= 1.9102958107 Ktheta= 0.981134966171 CenterHybridization= sp3 +Cl-C-Al theta0= 1.4322052811 Ktheta= 0.991903239361 CenterHybridization= sp3 +Cl-C-B theta0= 2.0418291148 Ktheta= 0.919940661905 CenterHybridization= sp3 +Cl-C-Br theta0= 1.9878815410 Ktheta= 1.169424043876 CenterHybridization= sp3 +Cl-C-Cl theta0= 1.9788887268 Ktheta= 1.269125784015 CenterHybridization= sp3 +Cl-C-Ga theta0= 1.6806852496 Ktheta= 0.412505495402 CenterHybridization= sp3 +Cl-C-O theta0= 1.9653063896 Ktheta= 1.399298782006 CenterHybridization= sp3 +Cl-C-S theta0= 1.9138826438 Ktheta= 1.121500180792 CenterHybridization= sp3 +Cl-C-Se theta0= 1.9044172852 Ktheta= 1.036338809149 CenterHybridization= sp3 +F-C-Al theta0= 1.9620824750 Ktheta= 0.524851397979 CenterHybridization= sp3 +F-C-B theta0= 2.0097977573 Ktheta= 1.006894565008 CenterHybridization= sp3 +F-C-Br theta0= 1.9346420437 Ktheta= 1.207075229499 CenterHybridization= sp3 +F-C-Cl theta0= 1.9263363499 Ktheta= 1.369481436455 CenterHybridization= sp3 +F-C-F theta0= 1.8930056280 Ktheta= 1.624648738707 CenterHybridization= sp3 +F-C-Ga theta0= 1.9694766775 Ktheta= 0.679455732704 CenterHybridization= sp3 +F-C-O theta0= 1.9173740825 Ktheta= 1.649419689716 CenterHybridization= sp3 +F-C-S theta0= 1.8679462220 Ktheta= 1.189006689878 CenterHybridization= sp3 +F-C-Se theta0= 1.8821062475 Ktheta= 1.024983106405 CenterHybridization= sp3 +Al-C-Al theta0= 2.0942202704 Ktheta= 0.311884853023 CenterHybridization= sp3 +Al-C-As theta0= 2.0944428033 Ktheta= 0.486784724478 CenterHybridization= sp3 +Al-C-B theta0= 1.8559500679 Ktheta= 0.370893273426 CenterHybridization= sp3 +Al-C-Ga theta0= 2.0411991644 Ktheta= 0.349721991076 CenterHybridization= sp3 +Al-C-N theta0= 2.0928927223 Ktheta= 0.591915356031 CenterHybridization= sp3 +Al-C-O theta0= 1.2371181232 Ktheta= 1.363111388736 CenterHybridization= sp3 +Al-C-S theta0= 1.9873088077 Ktheta= 0.491701035666 CenterHybridization= sp3 +Al-C-Se theta0= 1.9527811354 Ktheta= 0.514101040112 CenterHybridization= sp3 +As-C-As theta0= 2.1281540455 Ktheta= 0.850741708444 CenterHybridization= sp3 +As-C-Br theta0= 2.0539064983 Ktheta= 0.901963128049 CenterHybridization= sp3 +As-C-Cl theta0= 2.0380806747 Ktheta= 0.969667719062 CenterHybridization= sp3 +As-C-F theta0= 1.9849657712 Ktheta= 0.964146603459 CenterHybridization= sp3 +As-C-H theta0= 1.9675873900 Ktheta= 0.604334943968 CenterHybridization= sp3 +As-C-O theta0= 1.9477856209 Ktheta= 0.999490999100 CenterHybridization= sp3 +As-C-S theta0= 1.9752519458 Ktheta= 0.890718771492 CenterHybridization= sp3 +As-C-Se theta0= 1.9903327494 Ktheta= 0.838409764314 CenterHybridization= sp3 +B-C-As theta0= 1.7270357595 Ktheta= 0.686859569052 CenterHybridization= sp3 +B-C-B theta0= 1.8738333415 Ktheta= 0.443291862132 CenterHybridization= sp3 +B-C-N theta0= 1.1206340724 Ktheta= 4.450624596286 CenterHybridization= sp3 +B-C-O theta0= 1.9866254223 Ktheta= 1.000509755007 CenterHybridization= sp3 +B-C-P theta0= 1.7215296122 Ktheta= 0.651308985717 CenterHybridization= sp3 +B-C-S theta0= 1.9899898795 Ktheta= 0.763999851626 CenterHybridization= sp3 +B-C-Se theta0= 1.6954714381 Ktheta= 0.601689728822 CenterHybridization= sp3 +Ga-C-As theta0= 2.1114875404 Ktheta= 0.575412515218 CenterHybridization= sp3 +Ga-C-B theta0= 1.8346030139 Ktheta= 0.404036950451 CenterHybridization= sp3 +Ga-C-Ga theta0= 1.9631341877 Ktheta= 0.467129490217 CenterHybridization= sp3 +Ga-C-N theta0= 2.0911052469 Ktheta= 0.723450712602 CenterHybridization= sp3 +Ga-C-O theta0= 1.9337070010 Ktheta= 0.641737837683 CenterHybridization= sp3 +Ga-C-P theta0= 2.1000169958 Ktheta= 0.621573482805 CenterHybridization= sp3 +Ga-C-S theta0= 1.9638589269 Ktheta= 0.582499236271 CenterHybridization= sp3 +Ga-C-Se theta0= 1.9568435446 Ktheta= 0.592652233266 CenterHybridization= sp3 +N-C-As theta0= 2.0981725458 Ktheta= 1.015846821128 CenterHybridization= sp3 +N-C-Br theta0= 2.0213095755 Ktheta= 1.112391949065 CenterHybridization= sp3 +N-C-Cl theta0= 2.0158943652 Ktheta= 1.248073085677 CenterHybridization= sp3 +N-C-F theta0= 1.9809158115 Ktheta= 1.465959993231 CenterHybridization= sp3 +N-C-H theta0= 2.0088182436 Ktheta= 0.971979253994 CenterHybridization= sp3 +N-C-N theta0= 2.0898860663 Ktheta= 1.451413695620 CenterHybridization= sp3 +N-C-O theta0= 1.9373965538 Ktheta= 1.553602918286 CenterHybridization= sp3 +N-C-S theta0= 1.9694303128 Ktheta= 1.167949621688 CenterHybridization= sp3 +N-C-Se theta0= 1.9881321406 Ktheta= 1.046149265854 CenterHybridization= sp3 +P-C-Al theta0= 1.7038265701 Ktheta= 0.263711193804 CenterHybridization= sp3 +P-C-As theta0= 2.1262131364 Ktheta= 0.915340069609 CenterHybridization= sp3 +P-C-Br theta0= 2.0563536593 Ktheta= 0.974743389431 CenterHybridization= sp3 +P-C-Cl theta0= 2.0433868177 Ktheta= 1.031599426034 CenterHybridization= sp3 +P-C-F theta0= 1.9902705477 Ktheta= 1.042122135236 CenterHybridization= sp3 +P-C-H theta0= 1.9845394170 Ktheta= 0.627909302691 CenterHybridization= sp3 +P-C-N theta0= 2.1014293162 Ktheta= 1.100516116985 CenterHybridization= sp3 +P-C-O theta0= 1.9510784603 Ktheta= 1.112273860827 CenterHybridization= sp3 +P-C-P theta0= 2.1331033751 Ktheta= 0.943287304956 CenterHybridization= sp3 +P-C-S theta0= 1.9917798456 Ktheta= 0.934742114326 CenterHybridization= sp3 +P-C-Se theta0= 1.9933443814 Ktheta= 0.896288628623 CenterHybridization= sp3 +C-C-Al theta0= 2.0410185246 Ktheta= 0.530955604238 CenterHybridization= sp3 +C-C-As theta0= 2.0413131012 Ktheta= 0.949094518329 CenterHybridization= sp3 +C-C-B theta0= 2.0683661724 Ktheta= 0.864307238368 CenterHybridization= sp3 +C-C-Br theta0= 1.9574939084 Ktheta= 1.076784811516 CenterHybridization= sp3 +C-C-C theta0= 1.9710141223 Ktheta= 1.133302050816 CenterHybridization= sp3 +C-C-Cl theta0= 1.9513010596 Ktheta= 1.200962924126 CenterHybridization= sp3 +C-C-F theta0= 1.9151573730 Ktheta= 1.313014616595 CenterHybridization= sp3 +C-C-Ga theta0= 2.0369195438 Ktheta= 0.623832121244 CenterHybridization= sp3 +C-C-H theta0= 1.9401169758 Ktheta= 0.802391737383 CenterHybridization= sp3 +C-C-N theta0= 2.0283688302 Ktheta= 1.272083752266 CenterHybridization= sp3 +C-C-O theta0= 1.8821913672 Ktheta= 1.378878850558 CenterHybridization= sp3 +C-C-P theta0= 2.0433643728 Ktheta= 1.027391015623 CenterHybridization= sp3 +C-C-S theta0= 1.9077631233 Ktheta= 1.107294059694 CenterHybridization= sp3 +C-C-Se theta0= 1.9170407805 Ktheta= 0.975424485773 CenterHybridization= sp3 +Ge-C-Al theta0= 2.0627585202 Ktheta= 0.444505563646 CenterHybridization= sp3 +Ge-C-As theta0= 2.0481817520 Ktheta= 0.686791830718 CenterHybridization= sp3 +Ge-C-B theta0= 2.0555296981 Ktheta= 0.586126543754 CenterHybridization= sp3 +Ge-C-Br theta0= 1.9331777456 Ktheta= 0.776312080003 CenterHybridization= sp3 +Ge-C-C theta0= 1.9990178324 Ktheta= 0.722013501279 CenterHybridization= sp3 +Ge-C-Cl theta0= 1.9478710652 Ktheta= 0.748989739908 CenterHybridization= sp3 +Ge-C-F theta0= 1.9326329795 Ktheta= 0.769673974759 CenterHybridization= sp3 +Ge-C-Ga theta0= 2.0305512475 Ktheta= 0.523938465921 CenterHybridization= sp3 +Ge-C-Ge theta0= 1.9929986683 Ktheta= 0.651755278912 CenterHybridization= sp3 +Ge-C-H theta0= 1.9406396373 Ktheta= 0.576438073772 CenterHybridization= sp3 +Ge-C-N theta0= 2.0447759951 Ktheta= 0.785451319083 CenterHybridization= sp3 +Ge-C-O theta0= 1.8838381185 Ktheta= 0.763006736206 CenterHybridization= sp3 +Ge-C-P theta0= 2.0472750133 Ktheta= 0.727074793295 CenterHybridization= sp3 +Ge-C-S theta0= 1.9345286863 Ktheta= 0.720018464304 CenterHybridization= sp3 +Ge-C-Se theta0= 1.9366101782 Ktheta= 0.764862772577 CenterHybridization= sp3 +Ge-C-Si theta0= 2.0228641124 Ktheta= 0.587629057560 CenterHybridization= sp3 +Si-C-Al theta0= 2.0679816781 Ktheta= 0.433928863577 CenterHybridization= sp3 +Si-C-As theta0= 2.0381900091 Ktheta= 0.688965004361 CenterHybridization= sp3 +Si-C-B theta0= 2.0576809979 Ktheta= 0.539425006617 CenterHybridization= sp3 +Si-C-Br theta0= 1.9376866449 Ktheta= 0.691151875691 CenterHybridization= sp3 +Si-C-C theta0= 2.0018942258 Ktheta= 0.707530184541 CenterHybridization= sp3 +Si-C-Cl theta0= 1.9398008041 Ktheta= 0.703644656664 CenterHybridization= sp3 +Si-C-F theta0= 1.9312144352 Ktheta= 0.731238187230 CenterHybridization= sp3 +Si-C-Ga theta0= 2.0478107578 Ktheta= 0.489737358286 CenterHybridization= sp3 +Si-C-H theta0= 1.9449732951 Ktheta= 0.531369635187 CenterHybridization= sp3 +Si-C-N theta0= 2.0370822730 Ktheta= 0.740687765974 CenterHybridization= sp3 +Si-C-O theta0= 1.8990894565 Ktheta= 0.737398440109 CenterHybridization= sp3 +Si-C-P theta0= 2.0384512587 Ktheta= 0.686709636427 CenterHybridization= sp3 +Si-C-S theta0= 1.9481494644 Ktheta= 0.700183805901 CenterHybridization= sp3 +Si-C-Se theta0= 1.9467956143 Ktheta= 0.722674310297 CenterHybridization= sp3 +Si-C-Si theta0= 2.0262602997 Ktheta= 0.568375053367 CenterHybridization= sp3 +H-C-Al theta0= 1.9425338920 Ktheta= 0.361712034927 CenterHybridization= sp3 +H-C-B theta0= 1.8059460969 Ktheta= 0.350928331698 CenterHybridization= sp3 +H-C-Br theta0= 1.8880020378 Ktheta= 0.743919645625 CenterHybridization= sp3 +H-C-Cl theta0= 1.8922784610 Ktheta= 0.829771695974 CenterHybridization= sp3 +H-C-F theta0= 1.8956024318 Ktheta= 0.998086205366 CenterHybridization= sp3 +H-C-Ga theta0= 1.9251050498 Ktheta= 0.413690518320 CenterHybridization= sp3 +H-C-H theta0= 1.9111430651 Ktheta= 0.660042365894 CenterHybridization= sp3 +H-C-O theta0= 1.8594917738 Ktheta= 1.017666730562 CenterHybridization= sp3 +H-C-S theta0= 1.8551663854 Ktheta= 0.763149990069 CenterHybridization= sp3 +H-C-Se theta0= 1.8535475524 Ktheta= 0.684585201497 CenterHybridization= sp3 +O-C-O theta0= 1.8748722295 Ktheta= 1.784491800304 CenterHybridization= sp3 +O-C-Se theta0= 1.8215143675 Ktheta= 1.124159991361 CenterHybridization= sp3 +S-C-O theta0= 1.8289037320 Ktheta= 1.256041944388 CenterHybridization= sp3 +S-C-S theta0= 1.8804600215 Ktheta= 1.050078163164 CenterHybridization= sp3 +S-C-Se theta0= 1.8649308760 Ktheta= 0.979501782425 CenterHybridization= sp3 +Se-C-Se theta0= 1.8874572263 Ktheta= 0.944054123378 CenterHybridization= sp3
\ No newline at end of file diff --git a/sim/src/parameters/new/RGaR.txt b/sim/src/parameters/new/RGaR.txt new file mode 100755 index 000000000..3713080d5 --- /dev/null +++ b/sim/src/parameters/new/RGaR.txt @@ -0,0 +1,136 @@ +Br-Ga-Br theta0= 2.0350897912 Ktheta= 0.537683353280 CenterHybridization= sp3 +Br-Ga-Cl theta0= 2.0238936385 Ktheta= 0.549007450526 CenterHybridization= sp3 +Br-Ga-F theta0= 1.9694999096 Ktheta= 0.513053227869 CenterHybridization= sp3 +Br-Ga-H theta0= 2.0038550491 Ktheta= 0.448212978927 CenterHybridization= sp3 +Cl-Ga-Cl theta0= 2.0111324245 Ktheta= 0.563773674422 CenterHybridization= sp3 +Cl-Ga-F theta0= 2.0043341699 Ktheta= 0.534903429300 CenterHybridization= sp3 +Cl-Ga-H theta0= 1.9963124691 Ktheta= 0.469927462464 CenterHybridization= sp3 +F-Ga-F theta0= 1.9854555228 Ktheta= 0.567095145332 CenterHybridization= sp3 +F-Ga-H theta0= 1.9798782255 Ktheta= 0.476970103733 CenterHybridization= sp3 +Al-Ga-Al theta0= 2.2844912690 Ktheta= 0.167597782879 CenterHybridization= sp3 +Al-Ga-B theta0= 2.2099293287 Ktheta= 0.163677322460 CenterHybridization= sp3 +Al-Ga-Br theta0= 1.8962196849 Ktheta= 0.166230172073 CenterHybridization= sp3 +Al-Ga-Cl theta0= 1.9180951653 Ktheta= 0.198764669456 CenterHybridization= sp3 +Al-Ga-F theta0= 1.8635528670 Ktheta= 0.243369816052 CenterHybridization= sp3 +Al-Ga-H theta0= 2.1513100216 Ktheta= 0.253641301864 CenterHybridization= sp3 +Al-Ga-N theta0= 2.0381765631 Ktheta= 0.327982240657 CenterHybridization= sp3 +Al-Ga-O theta0= 1.9122577929 Ktheta= 0.236030986765 CenterHybridization= sp3 +Al-Ga-S theta0= 2.0321824601 Ktheta= 0.298858734511 CenterHybridization= sp3 +Al-Ga-Se theta0= 2.1156742607 Ktheta= 0.290681512573 CenterHybridization= sp3 +As-Ga-Al theta0= 2.1221481232 Ktheta= 0.230168256816 CenterHybridization= sp3 +As-Ga-As theta0= 2.0524474920 Ktheta= 0.498701450967 CenterHybridization= sp3 +As-Ga-B theta0= 2.0712195920 Ktheta= 0.232384385528 CenterHybridization= sp3 +As-Ga-Br theta0= 2.0097199261 Ktheta= 0.480276690066 CenterHybridization= sp3 +As-Ga-Cl theta0= 1.9912012043 Ktheta= 0.455595462463 CenterHybridization= sp3 +As-Ga-F theta0= 1.9117053229 Ktheta= 0.486288507563 CenterHybridization= sp3 +As-Ga-Ga theta0= 2.1141504155 Ktheta= 0.253264871461 CenterHybridization= sp3 +As-Ga-H theta0= 1.9885645267 Ktheta= 0.383692989519 CenterHybridization= sp3 +As-Ga-O theta0= 1.9748851300 Ktheta= 0.414745588165 CenterHybridization= sp3 +As-Ga-P theta0= 2.0767105601 Ktheta= 0.418394414121 CenterHybridization= sp3 +As-Ga-S theta0= 2.0634884815 Ktheta= 0.417036638896 CenterHybridization= sp3 +As-Ga-Se theta0= 2.0202628178 Ktheta= 0.393743004951 CenterHybridization= sp3 +B-Ga-B theta0= 2.2471455201 Ktheta= 0.195485220227 CenterHybridization= sp3 +B-Ga-Br theta0= 1.9217575258 Ktheta= 0.222647348131 CenterHybridization= sp3 +B-Ga-Cl theta0= 1.9496108199 Ktheta= 0.264062077860 CenterHybridization= sp3 +B-Ga-F theta0= 1.9596639460 Ktheta= 0.256819959041 CenterHybridization= sp3 +B-Ga-H theta0= 2.1391846433 Ktheta= 0.266650247653 CenterHybridization= sp3 +B-Ga-O theta0= 2.0363313591 Ktheta= 0.351546784113 CenterHybridization= sp3 +B-Ga-S theta0= 2.0321152109 Ktheta= 0.327843109337 CenterHybridization= sp3 +B-Ga-Se theta0= 2.0909826672 Ktheta= 0.249010780522 CenterHybridization= sp3 +Ga-Ga-Al theta0= 2.2365063141 Ktheta= 0.176811536720 CenterHybridization= sp3 +Ga-Ga-B theta0= 2.1821889975 Ktheta= 0.178703135465 CenterHybridization= sp3 +Ga-Ga-Br theta0= 1.9451618168 Ktheta= 0.208042259466 CenterHybridization= sp3 +Ga-Ga-Cl theta0= 1.9495477262 Ktheta= 0.237459539740 CenterHybridization= sp3 +Ga-Ga-F theta0= 1.8976472054 Ktheta= 0.291186411128 CenterHybridization= sp3 +Ga-Ga-Ga theta0= 2.2297727274 Ktheta= 0.179094059528 CenterHybridization= sp3 +Ga-Ga-H theta0= 2.1387294126 Ktheta= 0.266294264714 CenterHybridization= sp3 +Ga-Ga-N theta0= 2.0582285182 Ktheta= 0.342782502912 CenterHybridization= sp3 +Ga-Ga-O theta0= 1.8873867115 Ktheta= 0.266086480597 CenterHybridization= sp3 +Ga-Ga-P theta0= 2.1279690319 Ktheta= 0.247900123759 CenterHybridization= sp3 +Ga-Ga-S theta0= 2.0539804165 Ktheta= 0.292890439216 CenterHybridization= sp3 +Ga-Ga-Se theta0= 2.1480082949 Ktheta= 0.229736055302 CenterHybridization= sp3 +N-Ga-As theta0= 2.0254339491 Ktheta= 0.543648341366 CenterHybridization= sp3 +N-Ga-B theta0= 2.0595846338 Ktheta= 0.394077926550 CenterHybridization= sp3 +N-Ga-Br theta0= 2.0071416315 Ktheta= 0.574629983885 CenterHybridization= sp3 +N-Ga-Cl theta0= 1.9651259993 Ktheta= 0.600482358221 CenterHybridization= sp3 +N-Ga-F theta0= 1.9495717280 Ktheta= 0.648288247747 CenterHybridization= sp3 +N-Ga-H theta0= 2.0297747697 Ktheta= 0.480927350209 CenterHybridization= sp3 +N-Ga-N theta0= 1.9727417400 Ktheta= 0.706467169494 CenterHybridization= sp3 +N-Ga-O theta0= 1.9310613541 Ktheta= 0.665565736764 CenterHybridization= sp3 +N-Ga-P theta0= 2.0049011523 Ktheta= 0.529958463713 CenterHybridization= sp3 +N-Ga-S theta0= 1.9592840455 Ktheta= 0.575784422946 CenterHybridization= sp3 +N-Ga-Se theta0= 2.0186679551 Ktheta= 0.546617743999 CenterHybridization= sp3 +P-Ga-Al theta0= 2.1283751264 Ktheta= 0.249933433235 CenterHybridization= sp3 +P-Ga-B theta0= 2.1008006276 Ktheta= 0.252794904871 CenterHybridization= sp3 +P-Ga-Br theta0= 1.9892153268 Ktheta= 0.489371850434 CenterHybridization= sp3 +P-Ga-Cl theta0= 1.9956060227 Ktheta= 0.488266234331 CenterHybridization= sp3 +P-Ga-F theta0= 1.9949257195 Ktheta= 0.448170660574 CenterHybridization= sp3 +P-Ga-H theta0= 2.0766923301 Ktheta= 0.378312763133 CenterHybridization= sp3 +P-Ga-O theta0= 1.9980866207 Ktheta= 0.470680840631 CenterHybridization= sp3 +P-Ga-P theta0= 2.0645066752 Ktheta= 0.477774125963 CenterHybridization= sp3 +P-Ga-S theta0= 2.0153147343 Ktheta= 0.462871434885 CenterHybridization= sp3 +P-Ga-Se theta0= 2.0552707855 Ktheta= 0.448503477438 CenterHybridization= sp3 +C-Ga-Al theta0= 2.1653001253 Ktheta= 0.273771591905 CenterHybridization= sp3 +C-Ga-As theta0= 2.0317872129 Ktheta= 0.463784394304 CenterHybridization= sp3 +C-Ga-B theta0= 2.1585881423 Ktheta= 0.299140891866 CenterHybridization= sp3 +C-Ga-Br theta0= 2.0116670922 Ktheta= 0.515071804047 CenterHybridization= sp3 +C-Ga-C theta0= 2.1202365723 Ktheta= 0.522459348072 CenterHybridization= sp3 +C-Ga-Cl theta0= 2.0205018581 Ktheta= 0.521661329895 CenterHybridization= sp3 +C-Ga-F theta0= 2.0037469067 Ktheta= 0.489167498189 CenterHybridization= sp3 +C-Ga-Ga theta0= 2.1519235816 Ktheta= 0.327314429990 CenterHybridization= sp3 +C-Ga-H theta0= 2.0856459565 Ktheta= 0.448453828397 CenterHybridization= sp3 +C-Ga-N theta0= 2.0249972416 Ktheta= 0.608320753374 CenterHybridization= sp3 +C-Ga-O theta0= 2.0037481250 Ktheta= 0.546507551793 CenterHybridization= sp3 +C-Ga-P theta0= 2.0676695190 Ktheta= 0.460746085918 CenterHybridization= sp3 +C-Ga-S theta0= 2.0102766303 Ktheta= 0.522852011506 CenterHybridization= sp3 +C-Ga-Se theta0= 2.0789096837 Ktheta= 0.464302808329 CenterHybridization= sp3 +Ge-Ga-Al theta0= 2.1873246812 Ktheta= 0.231775149746 CenterHybridization= sp3 +Ge-Ga-As theta0= 2.0529599451 Ktheta= 0.409997327562 CenterHybridization= sp3 +Ge-Ga-B theta0= 2.1453174842 Ktheta= 0.218820246337 CenterHybridization= sp3 +Ge-Ga-Br theta0= 2.0269848260 Ktheta= 0.404092117618 CenterHybridization= sp3 +Ge-Ga-C theta0= 2.1408724517 Ktheta= 0.435305769429 CenterHybridization= sp3 +Ge-Ga-Cl theta0= 1.9889517332 Ktheta= 0.402364844771 CenterHybridization= sp3 +Ge-Ga-F theta0= 1.9164235971 Ktheta= 0.429128085914 CenterHybridization= sp3 +Ge-Ga-Ga theta0= 2.2024153930 Ktheta= 0.219389160341 CenterHybridization= sp3 +Ge-Ga-Ge theta0= 2.2244842279 Ktheta= 0.311940391110 CenterHybridization= sp3 +Ge-Ga-H theta0= 2.0964861127 Ktheta= 0.354553644858 CenterHybridization= sp3 +Ge-Ga-N theta0= 2.0409334258 Ktheta= 0.447185307954 CenterHybridization= sp3 +Ge-Ga-O theta0= 1.9855190930 Ktheta= 0.396245685418 CenterHybridization= sp3 +Ge-Ga-P theta0= 2.0080038137 Ktheta= 0.394611404894 CenterHybridization= sp3 +Ge-Ga-S theta0= 2.0623969526 Ktheta= 0.387134707166 CenterHybridization= sp3 +Ge-Ga-Se theta0= 1.9790357219 Ktheta= 0.457491827865 CenterHybridization= sp3 +Ge-Ga-Si theta0= 2.1810010217 Ktheta= 0.391873008763 CenterHybridization= sp3 +Si-Ga-Al theta0= 2.1582784615 Ktheta= 0.214765682794 CenterHybridization= sp3 +Si-Ga-As theta0= 1.9879631404 Ktheta= 0.393511549989 CenterHybridization= sp3 +Si-Ga-B theta0= 2.1473133904 Ktheta= 0.228994772576 CenterHybridization= sp3 +Si-Ga-Br theta0= 1.9854297339 Ktheta= 0.413354404878 CenterHybridization= sp3 +Si-Ga-C theta0= 2.1208638262 Ktheta= 0.403559098943 CenterHybridization= sp3 +Si-Ga-Cl theta0= 2.0121307756 Ktheta= 0.413514898542 CenterHybridization= sp3 +Si-Ga-F theta0= 1.9975371614 Ktheta= 0.352505195028 CenterHybridization= sp3 +Si-Ga-Ga theta0= 2.1846418797 Ktheta= 0.283900110074 CenterHybridization= sp3 +Si-Ga-H theta0= 2.0972656500 Ktheta= 0.350438709825 CenterHybridization= sp3 +Si-Ga-N theta0= 2.0191516976 Ktheta= 0.447801126208 CenterHybridization= sp3 +Si-Ga-O theta0= 2.0084535937 Ktheta= 0.422962937955 CenterHybridization= sp3 +Si-Ga-P theta0= 2.0658815409 Ktheta= 0.403653018303 CenterHybridization= sp3 +Si-Ga-S theta0= 1.9971293181 Ktheta= 0.448396545161 CenterHybridization= sp3 +Si-Ga-Se theta0= 2.0792097581 Ktheta= 0.416250423525 CenterHybridization= sp3 +Si-Ga-Si theta0= 2.1174562017 Ktheta= 0.364694541396 CenterHybridization= sp3 +O-Ga-Br theta0= 1.9996806596 Ktheta= 0.555581401285 CenterHybridization= sp3 +O-Ga-Cl theta0= 2.0074167320 Ktheta= 0.550758896318 CenterHybridization= sp3 +O-Ga-F theta0= 1.9908850519 Ktheta= 0.562223864616 CenterHybridization= sp3 +O-Ga-H theta0= 1.9770500695 Ktheta= 0.477457655721 CenterHybridization= sp3 +O-Ga-O theta0= 1.9750108268 Ktheta= 0.571041949072 CenterHybridization= sp3 +S-Ga-Br theta0= 2.0582169781 Ktheta= 0.546941387568 CenterHybridization= sp3 +S-Ga-Cl theta0= 2.0068986118 Ktheta= 0.601422863396 CenterHybridization= sp3 +S-Ga-F theta0= 1.9884669803 Ktheta= 0.487201257669 CenterHybridization= sp3 +S-Ga-H theta0= 2.0003795366 Ktheta= 0.431015172066 CenterHybridization= sp3 +S-Ga-O theta0= 2.0156795378 Ktheta= 0.533307265478 CenterHybridization= sp3 +S-Ga-S theta0= 1.9951175347 Ktheta= 0.559168071251 CenterHybridization= sp3 +Se-Ga-Br theta0= 2.0226821391 Ktheta= 0.567163724771 CenterHybridization= sp3 +Se-Ga-Cl theta0= 2.0531600122 Ktheta= 0.547592745863 CenterHybridization= sp3 +Se-Ga-F theta0= 1.9387421537 Ktheta= 0.541876992779 CenterHybridization= sp3 +Se-Ga-H theta0= 2.0021468430 Ktheta= 0.408536520146 CenterHybridization= sp3 +Se-Ga-O theta0= 2.0516487770 Ktheta= 0.515497979344 CenterHybridization= sp3 +Se-Ga-S theta0= 2.0589243356 Ktheta= 0.533492051134 CenterHybridization= sp3 +Se-Ga-Se theta0= 1.9953462618 Ktheta= 0.517312854708 CenterHybridization= sp3 +H-Ga-H theta0= 2.0943951000 Ktheta= 0.421550504584 CenterHybridization= sp3 diff --git a/sim/src/parameters/new/RGeR.txt b/sim/src/parameters/new/RGeR.txt new file mode 100755 index 000000000..72b22fc7f --- /dev/null +++ b/sim/src/parameters/new/RGeR.txt @@ -0,0 +1,136 @@ +Br-Ge-Al theta0= 1.0462430504 Ktheta= 5.184578560035 CenterHybridization= sp3 +Br-Ge-B theta0= 1.1167100120 Ktheta= 1.838206797249 CenterHybridization= sp3 +Br-Ge-Br theta0= 1.9181960052 Ktheta= 0.674430155116 CenterHybridization= sp3 +Br-Ge-Ga theta0= 1.2334603075 Ktheta= 1.246834131452 CenterHybridization= sp3 +Br-Ge-O theta0= 1.9052256886 Ktheta= 0.676954307165 CenterHybridization= sp3 +Br-Ge-S theta0= 1.8258231264 Ktheta= 0.683139474923 CenterHybridization= sp3 +Br-Ge-Se theta0= 1.8232921023 Ktheta= 0.677367245262 CenterHybridization= sp3 +Cl-Ge-Al theta0= 1.6915767987 Ktheta= 0.119274822445 CenterHybridization= sp3 +Cl-Ge-B theta0= 1.9319979066 Ktheta= 0.600533187503 CenterHybridization= sp3 +Cl-Ge-Br theta0= 1.9063595382 Ktheta= 0.697503338201 CenterHybridization= sp3 +Cl-Ge-Cl theta0= 1.8943316296 Ktheta= 0.729019776145 CenterHybridization= sp3 +Cl-Ge-Ga theta0= 1.7318311354 Ktheta= 0.210536724116 CenterHybridization= sp3 +Cl-Ge-O theta0= 1.8845789759 Ktheta= 0.764849589527 CenterHybridization= sp3 +Cl-Ge-S theta0= 1.8215141075 Ktheta= 0.736927890085 CenterHybridization= sp3 +Cl-Ge-Se theta0= 1.8290251371 Ktheta= 0.677634839283 CenterHybridization= sp3 +F-Ge-Al theta0= 1.8579510984 Ktheta= 0.426771576293 CenterHybridization= sp3 +F-Ge-B theta0= 1.9011422464 Ktheta= 0.538301890850 CenterHybridization= sp3 +F-Ge-Br theta0= 1.8722451756 Ktheta= 0.709169032992 CenterHybridization= sp3 +F-Ge-Cl theta0= 1.8366526850 Ktheta= 0.741812951205 CenterHybridization= sp3 +F-Ge-F theta0= 1.8307150190 Ktheta= 0.633245956152 CenterHybridization= sp3 +F-Ge-Ga theta0= 1.8916573594 Ktheta= 0.485275114717 CenterHybridization= sp3 +F-Ge-O theta0= 1.8318355710 Ktheta= 0.815745616617 CenterHybridization= sp3 +F-Ge-S theta0= 1.8168881402 Ktheta= 0.807148747528 CenterHybridization= sp3 +F-Ge-Se theta0= 1.8314457412 Ktheta= 0.642769804894 CenterHybridization= sp3 +Al-Ge-Al theta0= 2.0287473415 Ktheta= 0.211117506237 CenterHybridization= sp3 +Al-Ge-As theta0= 1.8959541174 Ktheta= 0.172088724552 CenterHybridization= sp3 +Al-Ge-B theta0= 1.8826025650 Ktheta= 0.205980230222 CenterHybridization= sp3 +Al-Ge-Ga theta0= 1.9894287143 Ktheta= 0.233906252492 CenterHybridization= sp3 +Al-Ge-N theta0= 1.9406018858 Ktheta= 0.434835361099 CenterHybridization= sp3 +Al-Ge-O theta0= 1.7749367937 Ktheta= 0.281960944090 CenterHybridization= sp3 +Al-Ge-S theta0= 1.8926011252 Ktheta= 0.400841170960 CenterHybridization= sp3 +Al-Ge-Se theta0= 1.9182856662 Ktheta= 0.381792885133 CenterHybridization= sp3 +As-Ge-As theta0= 2.0756450453 Ktheta= 0.485478433310 CenterHybridization= sp3 +As-Ge-Br theta0= 1.9719394767 Ktheta= 0.574311832130 CenterHybridization= sp3 +As-Ge-Cl theta0= 1.9700502311 Ktheta= 0.560108281589 CenterHybridization= sp3 +As-Ge-F theta0= 1.9165536800 Ktheta= 0.585630462836 CenterHybridization= sp3 +As-Ge-H theta0= 1.9685943752 Ktheta= 0.479452760079 CenterHybridization= sp3 +As-Ge-O theta0= 1.8665740180 Ktheta= 0.580670204980 CenterHybridization= sp3 +As-Ge-S theta0= 1.9217133410 Ktheta= 0.517274005342 CenterHybridization= sp3 +As-Ge-Se theta0= 1.9020768598 Ktheta= 0.585437783452 CenterHybridization= sp3 +B-Ge-As theta0= 1.7133281949 Ktheta= 0.185087837008 CenterHybridization= sp3 +B-Ge-B theta0= 1.8744770259 Ktheta= 0.284718734590 CenterHybridization= sp3 +B-Ge-N theta0= 1.8346544209 Ktheta= 0.292847014160 CenterHybridization= sp3 +B-Ge-O theta0= 1.8685086072 Ktheta= 0.578288032206 CenterHybridization= sp3 +B-Ge-P theta0= 1.7798862438 Ktheta= 0.179773006789 CenterHybridization= sp3 +B-Ge-S theta0= 1.8986844668 Ktheta= 0.546766441276 CenterHybridization= sp3 +B-Ge-Se theta0= 1.9584323562 Ktheta= 0.466373017200 CenterHybridization= sp3 +Ga-Ge-As theta0= 1.8888740671 Ktheta= 0.214862648636 CenterHybridization= sp3 +Ga-Ge-B theta0= 1.8565613869 Ktheta= 0.226342693692 CenterHybridization= sp3 +Ga-Ge-Ga theta0= 1.9698162976 Ktheta= 0.241170156599 CenterHybridization= sp3 +Ga-Ge-N theta0= 2.0550869063 Ktheta= 0.505654205558 CenterHybridization= sp3 +Ga-Ge-O theta0= 1.8497343047 Ktheta= 0.449069564468 CenterHybridization= sp3 +Ga-Ge-P theta0= 1.9393187913 Ktheta= 0.205264383980 CenterHybridization= sp3 +Ga-Ge-S theta0= 1.8549061132 Ktheta= 0.441462485659 CenterHybridization= sp3 +Ga-Ge-Se theta0= 1.8581079110 Ktheta= 0.434646974237 CenterHybridization= sp3 +N-Ge-As theta0= 2.0740861260 Ktheta= 0.572810776443 CenterHybridization= sp3 +N-Ge-Br theta0= 1.9931291963 Ktheta= 0.663502766434 CenterHybridization= sp3 +N-Ge-Cl theta0= 1.9688095446 Ktheta= 0.703912218198 CenterHybridization= sp3 +N-Ge-F theta0= 1.9558325993 Ktheta= 0.684624805394 CenterHybridization= sp3 +N-Ge-H theta0= 1.9999038767 Ktheta= 0.628118521870 CenterHybridization= sp3 +N-Ge-N theta0= 2.0867492611 Ktheta= 0.679582428818 CenterHybridization= sp3 +N-Ge-O theta0= 1.9012885469 Ktheta= 0.769837649023 CenterHybridization= sp3 +N-Ge-S theta0= 1.9246477072 Ktheta= 0.689025544087 CenterHybridization= sp3 +N-Ge-Se theta0= 1.9567805242 Ktheta= 0.625314777800 CenterHybridization= sp3 +P-Ge-Al theta0= 1.9339655541 Ktheta= 0.225244409363 CenterHybridization= sp3 +P-Ge-As theta0= 2.0907319838 Ktheta= 0.497648827116 CenterHybridization= sp3 +P-Ge-Br theta0= 1.9814330363 Ktheta= 0.572670211762 CenterHybridization= sp3 +P-Ge-Cl theta0= 1.9598265339 Ktheta= 0.619184343879 CenterHybridization= sp3 +P-Ge-F theta0= 1.8966534865 Ktheta= 0.605686138457 CenterHybridization= sp3 +P-Ge-H theta0= 1.9769413669 Ktheta= 0.502083707731 CenterHybridization= sp3 +P-Ge-N theta0= 2.0626318949 Ktheta= 0.597541659987 CenterHybridization= sp3 +P-Ge-O theta0= 1.8654188840 Ktheta= 0.608438385244 CenterHybridization= sp3 +P-Ge-P theta0= 2.0744039783 Ktheta= 0.547240709713 CenterHybridization= sp3 +P-Ge-S theta0= 1.9099091854 Ktheta= 0.630316799639 CenterHybridization= sp3 +P-Ge-Se theta0= 1.9333152462 Ktheta= 0.544418952229 CenterHybridization= sp3 +C-Ge-Al theta0= 2.0105725578 Ktheta= 0.405927328311 CenterHybridization= sp3 +C-Ge-As theta0= 2.0086110870 Ktheta= 0.538043570512 CenterHybridization= sp3 +C-Ge-B theta0= 1.9951296001 Ktheta= 0.539752464059 CenterHybridization= sp3 +C-Ge-Br theta0= 1.8944555183 Ktheta= 0.643531414622 CenterHybridization= sp3 +C-Ge-C theta0= 1.9411100402 Ktheta= 0.639245767623 CenterHybridization= sp3 +C-Ge-Cl theta0= 1.8865559697 Ktheta= 0.693429634099 CenterHybridization= sp3 +C-Ge-F theta0= 1.8493674469 Ktheta= 0.668134576331 CenterHybridization= sp3 +C-Ge-Ga theta0= 2.0171198708 Ktheta= 0.456908602079 CenterHybridization= sp3 +C-Ge-Ge theta0= 1.9569435031 Ktheta= 0.507836782837 CenterHybridization= sp3 +C-Ge-H theta0= 1.9280855259 Ktheta= 0.572843766055 CenterHybridization= sp3 +C-Ge-N theta0= 2.0035881307 Ktheta= 0.697736643350 CenterHybridization= sp3 +C-Ge-O theta0= 1.8188273075 Ktheta= 0.729664457063 CenterHybridization= sp3 +C-Ge-P theta0= 1.9929891214 Ktheta= 0.573567491824 CenterHybridization= sp3 +C-Ge-S theta0= 1.8431147717 Ktheta= 0.673717659992 CenterHybridization= sp3 +C-Ge-Se theta0= 1.8742086483 Ktheta= 0.591918032389 CenterHybridization= sp3 +Ge-Ge-Al theta0= 2.0031134901 Ktheta= 0.353901243992 CenterHybridization= sp3 +Ge-Ge-As theta0= 2.0117603643 Ktheta= 0.416565671521 CenterHybridization= sp3 +Ge-Ge-B theta0= 2.0245779332 Ktheta= 0.451373535816 CenterHybridization= sp3 +Ge-Ge-Br theta0= 1.8734043221 Ktheta= 0.479921679142 CenterHybridization= sp3 +Ge-Ge-Cl theta0= 1.8686080543 Ktheta= 0.513402976646 CenterHybridization= sp3 +Ge-Ge-F theta0= 1.8630251039 Ktheta= 0.545391398221 CenterHybridization= sp3 +Ge-Ge-Ga theta0= 2.0438803776 Ktheta= 0.354599561170 CenterHybridization= sp3 +Ge-Ge-Ge theta0= 1.9971103446 Ktheta= 0.391338337363 CenterHybridization= sp3 +Ge-Ge-H theta0= 1.9224399670 Ktheta= 0.453681195229 CenterHybridization= sp3 +Ge-Ge-N theta0= 2.0129604632 Ktheta= 0.560532549937 CenterHybridization= sp3 +Ge-Ge-O theta0= 1.8285398291 Ktheta= 0.514698710535 CenterHybridization= sp3 +Ge-Ge-P theta0= 2.0052092029 Ktheta= 0.413089338603 CenterHybridization= sp3 +Ge-Ge-S theta0= 1.8358240829 Ktheta= 0.533826836150 CenterHybridization= sp3 +Ge-Ge-Se theta0= 1.8607331043 Ktheta= 0.515528454503 CenterHybridization= sp3 +Si-Ge-Al theta0= 2.0658458803 Ktheta= 0.324910683518 CenterHybridization= sp3 +Si-Ge-As theta0= 2.0016998746 Ktheta= 0.429119002385 CenterHybridization= sp3 +Si-Ge-B theta0= 2.0017569277 Ktheta= 0.432199509642 CenterHybridization= sp3 +Si-Ge-Br theta0= 1.9047659235 Ktheta= 0.488653250637 CenterHybridization= sp3 +Si-Ge-C theta0= 1.9669084796 Ktheta= 0.500679736796 CenterHybridization= sp3 +Si-Ge-Cl theta0= 1.8876247360 Ktheta= 0.498604438208 CenterHybridization= sp3 +Si-Ge-F theta0= 1.8444263046 Ktheta= 0.530579591679 CenterHybridization= sp3 +Si-Ge-Ga theta0= 1.9979592850 Ktheta= 0.368721997444 CenterHybridization= sp3 +Si-Ge-Ge theta0= 1.9592911489 Ktheta= 0.420271990687 CenterHybridization= sp3 +Si-Ge-H theta0= 1.9334759823 Ktheta= 0.448183591780 CenterHybridization= sp3 +Si-Ge-N theta0= 2.0086668555 Ktheta= 0.533753951322 CenterHybridization= sp3 +Si-Ge-O theta0= 1.8017276641 Ktheta= 0.512660736567 CenterHybridization= sp3 +Si-Ge-P theta0= 2.0224702701 Ktheta= 0.432587145268 CenterHybridization= sp3 +Si-Ge-S theta0= 1.8836942109 Ktheta= 0.539125625774 CenterHybridization= sp3 +Si-Ge-Se theta0= 1.8933635863 Ktheta= 0.504009755313 CenterHybridization= sp3 +Si-Ge-Si theta0= 2.0226848234 Ktheta= 0.407374496639 CenterHybridization= sp3 +H-Ge-Al theta0= 1.9183781425 Ktheta= 0.316094679224 CenterHybridization= sp3 +H-Ge-B theta0= 1.8815969883 Ktheta= 0.340357300698 CenterHybridization= sp3 +H-Ge-Br theta0= 1.8690729263 Ktheta= 0.582041906791 CenterHybridization= sp3 +H-Ge-Cl theta0= 1.8658368398 Ktheta= 0.599233558133 CenterHybridization= sp3 +H-Ge-F theta0= 1.8521916043 Ktheta= 0.631744962759 CenterHybridization= sp3 +H-Ge-Ga theta0= 1.9004987628 Ktheta= 0.338789188076 CenterHybridization= sp3 +H-Ge-H theta0= 1.9109561316 Ktheta= 0.526625261192 CenterHybridization= sp3 +H-Ge-O theta0= 1.8136954530 Ktheta= 0.654441748515 CenterHybridization= sp3 +H-Ge-S theta0= 1.8367536069 Ktheta= 0.568534220684 CenterHybridization= sp3 +H-Ge-Se theta0= 1.8414556548 Ktheta= 0.545214956838 CenterHybridization= sp3 +O-Ge-O theta0= 1.7625211061 Ktheta= 1.000961617939 CenterHybridization= sp3 +O-Ge-Se theta0= 1.7860977572 Ktheta= 0.655567867451 CenterHybridization= sp3 +S-Ge-O theta0= 1.8707084324 Ktheta= 0.739638187533 CenterHybridization= sp3 +S-Ge-S theta0= 1.7819595902 Ktheta= 0.763558364605 CenterHybridization= sp3 +S-Ge-Se theta0= 1.7858709132 Ktheta= 0.691030550914 CenterHybridization= sp3 +Se-Ge-Se theta0= 1.7888421059 Ktheta= 0.730562987174 CenterHybridization= sp3 diff --git a/sim/src/parameters/new/RNR.txt b/sim/src/parameters/new/RNR.txt new file mode 100755 index 000000000..d03d4f8e5 --- /dev/null +++ b/sim/src/parameters/new/RNR.txt @@ -0,0 +1,136 @@ +Br-N-Br theta0= 2.1446635460 Ktheta= 0.960507901872 CenterHybridization= sp3 +Br-N-Cl theta0= 2.1313846552 Ktheta= 1.055980458452 CenterHybridization= sp3 +Br-N-F theta0= 2.0460658946 Ktheta= 1.103186368377 CenterHybridization= sp3 +Br-N-H theta0= 2.0598741787 Ktheta= 0.758218730280 CenterHybridization= sp3 +Cl-N-Cl theta0= 2.1133265380 Ktheta= 1.183142248972 CenterHybridization= sp3 +Cl-N-F theta0= 2.0309214371 Ktheta= 1.230133711428 CenterHybridization= sp3 +Cl-N-H theta0= 2.0528026299 Ktheta= 0.822910717727 CenterHybridization= sp3 +F-N-F theta0= 1.9732323922 Ktheta= 1.359689635529 CenterHybridization= sp3 +F-N-H theta0= 1.9849616750 Ktheta= 0.899078344716 CenterHybridization= sp3 +Al-N-Al theta0= 2.3039599770 Ktheta= 0.436537012001 CenterHybridization= sp3 +Al-N-B theta0= 2.1896944474 Ktheta= 0.468855746278 CenterHybridization= sp3 +Al-N-Br theta0= 2.2018182810 Ktheta= 0.512044004952 CenterHybridization= sp3 +Al-N-Cl theta0= 2.1737987687 Ktheta= 0.482103458670 CenterHybridization= sp3 +Al-N-F theta0= 2.1179499414 Ktheta= 0.460975633709 CenterHybridization= sp3 +Al-N-H theta0= 2.1790428914 Ktheta= 0.350038228266 CenterHybridization= sp3 +Al-N-N theta0= 2.1383108250 Ktheta= 0.477403865206 CenterHybridization= sp3 +Al-N-O theta0= 2.2874354841 Ktheta= 0.551263215203 CenterHybridization= sp3 +Al-N-S theta0= 2.3199569685 Ktheta= 0.499600188225 CenterHybridization= sp3 +Al-N-Se theta0= 2.2770032166 Ktheta= 0.540101520847 CenterHybridization= sp3 +As-N-Al theta0= 2.2185640607 Ktheta= 0.446561055751 CenterHybridization= sp3 +As-N-As theta0= 2.1609865004 Ktheta= 0.635824270233 CenterHybridization= sp3 +As-N-B theta0= 2.1712224690 Ktheta= 0.750073404110 CenterHybridization= sp3 +As-N-Br theta0= 2.1008313943 Ktheta= 0.742751761401 CenterHybridization= sp3 +As-N-Cl theta0= 2.0864317875 Ktheta= 0.793001863773 CenterHybridization= sp3 +As-N-F theta0= 1.9863536658 Ktheta= 0.765040881213 CenterHybridization= sp3 +As-N-Ga theta0= 2.2178674230 Ktheta= 0.518882515219 CenterHybridization= sp3 +As-N-H theta0= 2.1019120254 Ktheta= 0.635310812690 CenterHybridization= sp3 +As-N-O theta0= 2.0392235948 Ktheta= 0.884588805478 CenterHybridization= sp3 +As-N-P theta0= 2.1608616640 Ktheta= 0.683965053516 CenterHybridization= sp3 +As-N-S theta0= 2.1800179231 Ktheta= 0.772483835753 CenterHybridization= sp3 +As-N-Se theta0= 2.1588905624 Ktheta= 0.674845096687 CenterHybridization= sp3 +B-N-B theta0= 2.1987689656 Ktheta= 0.878912196189 CenterHybridization= sp3 +B-N-Br theta0= 2.1940340096 Ktheta= 0.897459883741 CenterHybridization= sp3 +B-N-Cl theta0= 2.1849680434 Ktheta= 1.017171458144 CenterHybridization= sp3 +B-N-F theta0= 2.1203040816 Ktheta= 1.042672710710 CenterHybridization= sp3 +B-N-H theta0= 2.1497798705 Ktheta= 0.654224412056 CenterHybridization= sp3 +B-N-O theta0= 2.1985721152 Ktheta= 1.144152092916 CenterHybridization= sp3 +B-N-S theta0= 2.2615532061 Ktheta= 0.983572329698 CenterHybridization= sp3 +B-N-Se theta0= 2.2552244939 Ktheta= 0.880735007076 CenterHybridization= sp3 +Ga-N-Al theta0= 2.2716855300 Ktheta= 0.455725835282 CenterHybridization= sp3 +Ga-N-B theta0= 2.1877935517 Ktheta= 0.569825717225 CenterHybridization= sp3 +Ga-N-Br theta0= 2.2204983968 Ktheta= 0.552200855034 CenterHybridization= sp3 +Ga-N-Cl theta0= 2.1856434125 Ktheta= 0.591261138577 CenterHybridization= sp3 +Ga-N-F theta0= 2.1210522327 Ktheta= 0.579876610659 CenterHybridization= sp3 +Ga-N-Ga theta0= 2.2877601555 Ktheta= 0.531493373324 CenterHybridization= sp3 +Ga-N-H theta0= 2.1689954533 Ktheta= 0.416129003980 CenterHybridization= sp3 +Ga-N-N theta0= 2.1419511699 Ktheta= 0.663571711137 CenterHybridization= sp3 +Ga-N-O theta0= 2.2715500070 Ktheta= 0.634894946711 CenterHybridization= sp3 +Ga-N-P theta0= 2.2082408640 Ktheta= 0.612187372213 CenterHybridization= sp3 +Ga-N-S theta0= 2.2957117709 Ktheta= 0.591499984788 CenterHybridization= sp3 +Ga-N-Se theta0= 2.3013053033 Ktheta= 0.603176845153 CenterHybridization= sp3 +N-N-As theta0= 2.0917381312 Ktheta= 0.880234250707 CenterHybridization= sp3 +N-N-B theta0= 2.1509170397 Ktheta= 1.104121839874 CenterHybridization= sp3 +N-N-Br theta0= 2.0760662421 Ktheta= 1.130315135156 CenterHybridization= sp3 +N-N-Cl theta0= 2.0505609168 Ktheta= 1.279823256120 CenterHybridization= sp3 +N-N-F theta0= 1.9545433298 Ktheta= 1.364594173631 CenterHybridization= sp3 +N-N-H theta0= 2.0692785747 Ktheta= 0.840704985965 CenterHybridization= sp3 +N-N-N theta0= 2.0476025715 Ktheta= 1.515585221142 CenterHybridization= sp3 +N-N-O theta0= 1.9257474165 Ktheta= 1.433827314133 CenterHybridization= sp3 +N-N-P theta0= 2.0860413399 Ktheta= 0.954478936001 CenterHybridization= sp3 +N-N-S theta0= 2.0326516832 Ktheta= 1.095284413723 CenterHybridization= sp3 +N-N-Se theta0= 2.0610647882 Ktheta= 0.922156772918 CenterHybridization= sp3 +P-N-Al theta0= 2.2090383870 Ktheta= 0.497036800784 CenterHybridization= sp3 +P-N-B theta0= 2.1792285473 Ktheta= 0.807917659195 CenterHybridization= sp3 +P-N-Br theta0= 2.0987189124 Ktheta= 0.801838196658 CenterHybridization= sp3 +P-N-Cl theta0= 2.0827977432 Ktheta= 0.853690275208 CenterHybridization= sp3 +P-N-F theta0= 1.9808033931 Ktheta= 0.847966523608 CenterHybridization= sp3 +P-N-H theta0= 2.1121643774 Ktheta= 0.636582760200 CenterHybridization= sp3 +P-N-O theta0= 2.0057769865 Ktheta= 0.969543001072 CenterHybridization= sp3 +P-N-P theta0= 2.1569550621 Ktheta= 0.692551585799 CenterHybridization= sp3 +P-N-S theta0= 2.2423429517 Ktheta= 0.868549651521 CenterHybridization= sp3 +P-N-Se theta0= 2.2126876313 Ktheta= 0.750451015967 CenterHybridization= sp3 +C-N-Al theta0= 2.2439133187 Ktheta= 0.577451816968 CenterHybridization= sp3 +C-N-As theta0= 2.0122000372 Ktheta= 0.765265726210 CenterHybridization= sp3 +C-N-B theta0= 2.2210822723 Ktheta= 1.018940105237 CenterHybridization= sp3 +C-N-Br theta0= 2.0965456982 Ktheta= 1.023448128713 CenterHybridization= sp3 +C-N-C theta0= 1.9835791072 Ktheta= 1.073248551677 CenterHybridization= sp3 +C-N-Cl theta0= 2.0843543098 Ktheta= 1.072010500860 CenterHybridization= sp3 +C-N-F theta0= 2.0138506736 Ktheta= 1.150194723114 CenterHybridization= sp3 +C-N-Ga theta0= 2.2296897405 Ktheta= 0.728771989885 CenterHybridization= sp3 +C-N-H theta0= 2.1168333059 Ktheta= 0.770514289861 CenterHybridization= sp3 +C-N-N theta0= 2.0560091296 Ktheta= 1.185418460046 CenterHybridization= sp3 +C-N-O theta0= 2.0025350479 Ktheta= 1.358485908372 CenterHybridization= sp3 +C-N-P theta0= 2.0622755283 Ktheta= 0.834614070715 CenterHybridization= sp3 +C-N-S theta0= 2.0960941082 Ktheta= 1.005643254996 CenterHybridization= sp3 +C-N-Se theta0= 2.1177584578 Ktheta= 0.900520166503 CenterHybridization= sp3 +Ge-N-Al theta0= 2.2935264546 Ktheta= 0.495227933943 CenterHybridization= sp3 +Ge-N-As theta0= 2.1979566126 Ktheta= 0.456277255664 CenterHybridization= sp3 +Ge-N-B theta0= 2.2170762757 Ktheta= 0.680259235952 CenterHybridization= sp3 +Ge-N-Br theta0= 2.1563787806 Ktheta= 0.550035720028 CenterHybridization= sp3 +Ge-N-C theta0= 2.2056229295 Ktheta= 0.905463526392 CenterHybridization= sp3 +Ge-N-Cl theta0= 2.1290544207 Ktheta= 0.644908637069 CenterHybridization= sp3 +Ge-N-F theta0= 2.0472157245 Ktheta= 0.597209778990 CenterHybridization= sp3 +Ge-N-Ga theta0= 2.2933283405 Ktheta= 0.552237663454 CenterHybridization= sp3 +Ge-N-Ge theta0= 2.2517027423 Ktheta= 0.584341695242 CenterHybridization= sp3 +Ge-N-H theta0= 2.1622517105 Ktheta= 0.515445896307 CenterHybridization= sp3 +Ge-N-N theta0= 2.1626608244 Ktheta= 0.755850597259 CenterHybridization= sp3 +Ge-N-O theta0= 2.0227558793 Ktheta= 0.726671520808 CenterHybridization= sp3 +Ge-N-P theta0= 2.2282278021 Ktheta= 0.584657613181 CenterHybridization= sp3 +Ge-N-S theta0= 2.1393213445 Ktheta= 0.689819136461 CenterHybridization= sp3 +Ge-N-Se theta0= 2.1375688035 Ktheta= 0.623214118579 CenterHybridization= sp3 +Ge-N-Si theta0= 2.2443873641 Ktheta= 0.711509512421 CenterHybridization= sp3 +Si-N-Al theta0= 2.2852769901 Ktheta= 0.452490035611 CenterHybridization= sp3 +Si-N-As theta0= 2.2279976525 Ktheta= 0.554359456629 CenterHybridization= sp3 +Si-N-B theta0= 2.2411224499 Ktheta= 0.671439726534 CenterHybridization= sp3 +Si-N-Br theta0= 2.1454661583 Ktheta= 0.579491176469 CenterHybridization= sp3 +Si-N-C theta0= 2.2115581904 Ktheta= 0.881712671669 CenterHybridization= sp3 +Si-N-Cl theta0= 2.1326200551 Ktheta= 0.608703373917 CenterHybridization= sp3 +Si-N-F theta0= 2.0466557042 Ktheta= 0.618923369502 CenterHybridization= sp3 +Si-N-Ga theta0= 2.2505822165 Ktheta= 0.602540553162 CenterHybridization= sp3 +Si-N-H theta0= 2.1741893874 Ktheta= 0.512945193929 CenterHybridization= sp3 +Si-N-N theta0= 2.1714594079 Ktheta= 0.729590889283 CenterHybridization= sp3 +Si-N-O theta0= 2.0559157772 Ktheta= 0.736173425342 CenterHybridization= sp3 +Si-N-P theta0= 2.2456646903 Ktheta= 0.537678002617 CenterHybridization= sp3 +Si-N-S theta0= 2.1402292316 Ktheta= 0.703782124924 CenterHybridization= sp3 +Si-N-Se theta0= 2.1606302665 Ktheta= 0.625715264773 CenterHybridization= sp3 +Si-N-Si theta0= 2.2459387436 Ktheta= 0.596426971210 CenterHybridization= sp3 +O-N-Br theta0= 2.1265919304 Ktheta= 1.089517941999 CenterHybridization= sp3 +O-N-Cl theta0= 2.1064603237 Ktheta= 1.199644672050 CenterHybridization= sp3 +O-N-F theta0= 2.0149952937 Ktheta= 1.277047789750 CenterHybridization= sp3 +O-N-H theta0= 1.9709362824 Ktheta= 0.899414189919 CenterHybridization= sp3 +O-N-O theta0= 1.9716383638 Ktheta= 1.372836305847 CenterHybridization= sp3 +S-N-Br theta0= 2.1748181876 Ktheta= 1.016647814099 CenterHybridization= sp3 +S-N-Cl theta0= 2.1507271217 Ktheta= 1.111574988339 CenterHybridization= sp3 +S-N-F theta0= 2.0448220560 Ktheta= 1.130589360387 CenterHybridization= sp3 +S-N-H theta0= 2.0517149442 Ktheta= 0.749628047886 CenterHybridization= sp3 +S-N-O theta0= 1.9417615140 Ktheta= 1.032621241384 CenterHybridization= sp3 +S-N-S theta0= 2.1190749719 Ktheta= 0.959844573116 CenterHybridization= sp3 +Se-N-Br theta0= 2.1707130144 Ktheta= 0.886640209996 CenterHybridization= sp3 +Se-N-Cl theta0= 2.1571855538 Ktheta= 0.953373415282 CenterHybridization= sp3 +Se-N-F theta0= 2.0478933381 Ktheta= 0.966195587059 CenterHybridization= sp3 +Se-N-H theta0= 2.0637122956 Ktheta= 0.680242509690 CenterHybridization= sp3 +Se-N-O theta0= 1.9446756065 Ktheta= 0.900494332862 CenterHybridization= sp3 +Se-N-S theta0= 2.1430888244 Ktheta= 0.815663880030 CenterHybridization= sp3 +Se-N-Se theta0= 2.1311093906 Ktheta= 0.757346796695 CenterHybridization= sp3 +H-N-H theta0= 2.0943944001 Ktheta= 0.689494535736 CenterHybridization= sp3 diff --git a/sim/src/parameters/new/ROR.txt b/sim/src/parameters/new/ROR.txt new file mode 100755 index 000000000..1e129530f --- /dev/null +++ b/sim/src/parameters/new/ROR.txt @@ -0,0 +1,136 @@ +Br-O-Br theta0= 1.9955063783 Ktheta= 1.075234633615 CenterHybridization= sp3 +Br-O-Cl theta0= 1.9836560273 Ktheta= 1.125377505930 CenterHybridization= sp3 +Br-O-F theta0= 1.8689157280 Ktheta= 1.169810559347 CenterHybridization= sp3 +Br-O-H theta0= 1.7937954358 Ktheta= 0.738586042670 CenterHybridization= sp3 +Cl-O-Cl theta0= 1.9676157062 Ktheta= 1.252446877326 CenterHybridization= sp3 +Cl-O-F theta0= 1.8648778756 Ktheta= 1.352329192433 CenterHybridization= sp3 +Cl-O-H theta0= 1.7948833519 Ktheta= 0.800425120393 CenterHybridization= sp3 +F-O-F theta0= 1.8136666603 Ktheta= 1.559833128520 CenterHybridization= sp3 +F-O-H theta0= 1.7119020602 Ktheta= 1.014743173661 CenterHybridization= sp3 +As-O-As theta0= 2.2151625989 Ktheta= 0.694936238034 CenterHybridization= sp3 +As-O-Br theta0= 2.0882824107 Ktheta= 0.828632804523 CenterHybridization= sp3 +As-O-Cl theta0= 2.0574975743 Ktheta= 0.882814946338 CenterHybridization= sp3 +As-O-F theta0= 1.9057956276 Ktheta= 0.864592108603 CenterHybridization= sp3 +As-O-H theta0= 1.9724580263 Ktheta= 0.466484800794 CenterHybridization= sp3 +As-O-O theta0= 1.8985518113 Ktheta= 0.963265039915 CenterHybridization= sp3 +As-O-P theta0= 2.2315833599 Ktheta= 0.683317085924 CenterHybridization= sp3 +As-O-S theta0= 2.0498300148 Ktheta= 0.752264021108 CenterHybridization= sp3 +As-O-Se theta0= 2.0530732694 Ktheta= 0.705950033992 CenterHybridization= sp3 +N-O-As theta0= 1.9801748355 Ktheta= 0.941653515352 CenterHybridization= sp3 +N-O-Br theta0= 2.0202229074 Ktheta= 1.070406737408 CenterHybridization= sp3 +N-O-Cl theta0= 1.9962689441 Ktheta= 1.161930252221 CenterHybridization= sp3 +N-O-F theta0= 1.8916037027 Ktheta= 1.238124356812 CenterHybridization= sp3 +N-O-H theta0= 1.7923755372 Ktheta= 0.921274485323 CenterHybridization= sp3 +N-O-N theta0= 1.9283411712 Ktheta= 1.711733342327 CenterHybridization= sp3 +N-O-O theta0= 1.8762793070 Ktheta= 1.610338711250 CenterHybridization= sp3 +N-O-P theta0= 2.0015691163 Ktheta= 1.010871194288 CenterHybridization= sp3 +N-O-S theta0= 1.8585553523 Ktheta= 1.101592372291 CenterHybridization= sp3 +N-O-Se theta0= 1.8516103224 Ktheta= 0.987921545567 CenterHybridization= sp3 +P-O-Br theta0= 2.1272766772 Ktheta= 0.829523865511 CenterHybridization= sp3 +P-O-Cl theta0= 2.0910122313 Ktheta= 0.920901683504 CenterHybridization= sp3 +P-O-F theta0= 1.9416072618 Ktheta= 0.959736390513 CenterHybridization= sp3 +P-O-H theta0= 2.0260346304 Ktheta= 0.507094751475 CenterHybridization= sp3 +P-O-O theta0= 1.9338731302 Ktheta= 1.052967215112 CenterHybridization= sp3 +P-O-P theta0= 2.2639581092 Ktheta= 0.633622530525 CenterHybridization= sp3 +P-O-S theta0= 2.0913826425 Ktheta= 0.698286015575 CenterHybridization= sp3 +P-O-Se theta0= 2.1143651939 Ktheta= 0.628488307756 CenterHybridization= sp3 +C-O-As theta0= 2.0710076043 Ktheta= 0.857906344238 CenterHybridization= sp3 +C-O-Br theta0= 1.9491291334 Ktheta= 1.205668168925 CenterHybridization= sp3 +C-O-C theta0= 1.9700068649 Ktheta= 1.197791683028 CenterHybridization= sp3 +C-O-Cl theta0= 1.9304922354 Ktheta= 1.306331242803 CenterHybridization= sp3 +C-O-F theta0= 1.8286080034 Ktheta= 1.424741505741 CenterHybridization= sp3 +C-O-H theta0= 1.8983582683 Ktheta= 0.760397107508 CenterHybridization= sp3 +C-O-N theta0= 1.9702141961 Ktheta= 1.438512049637 CenterHybridization= sp3 +C-O-O theta0= 1.8257686983 Ktheta= 1.463888970900 CenterHybridization= sp3 +C-O-P theta0= 2.1037064211 Ktheta= 0.850491048808 CenterHybridization= sp3 +C-O-S theta0= 1.9407027170 Ktheta= 1.043271684984 CenterHybridization= sp3 +C-O-Se theta0= 1.9455161151 Ktheta= 0.984751547681 CenterHybridization= sp3 +Ge-O-As theta0= 2.1932988961 Ktheta= 0.426600819049 CenterHybridization= sp3 +Ge-O-Br theta0= 1.9751720412 Ktheta= 0.728136766130 CenterHybridization= sp3 +Ge-O-C theta0= 2.0544514686 Ktheta= 0.590264070229 CenterHybridization= sp3 +Ge-O-Cl theta0= 1.9487055944 Ktheta= 0.712423366353 CenterHybridization= sp3 +Ge-O-F theta0= 1.7648073792 Ktheta= 0.802650583747 CenterHybridization= sp3 +Ge-O-Ge theta0= 2.2645714755 Ktheta= 0.267760064338 CenterHybridization= sp3 +Ge-O-H theta0= 1.9745788701 Ktheta= 0.417826820445 CenterHybridization= sp3 +Ge-O-N theta0= 2.0089420363 Ktheta= 0.745330136694 CenterHybridization= sp3 +Ge-O-O theta0= 1.8145336614 Ktheta= 0.798434711789 CenterHybridization= sp3 +Ge-O-P theta0= 2.2137745124 Ktheta= 0.430747384857 CenterHybridization= sp3 +Ge-O-S theta0= 2.0497109135 Ktheta= 0.540151862993 CenterHybridization= sp3 +Ge-O-Se theta0= 2.0261615280 Ktheta= 0.619831439275 CenterHybridization= sp3 +Ge-O-Si theta0= 2.3489272699 Ktheta= 0.195331168210 CenterHybridization= sp3 +Si-O-As theta0= 2.2339191061 Ktheta= 0.353747763417 CenterHybridization= sp3 +Si-O-Br theta0= 1.9961663414 Ktheta= 0.599618888620 CenterHybridization= sp3 +Si-O-C theta0= 2.1550651585 Ktheta= 0.396453587225 CenterHybridization= sp3 +Si-O-Cl theta0= 1.9632458940 Ktheta= 0.625871747661 CenterHybridization= sp3 +Si-O-F theta0= 1.7851967519 Ktheta= 0.685392421077 CenterHybridization= sp3 +Si-O-H theta0= 2.0717272489 Ktheta= 0.339731942778 CenterHybridization= sp3 +Si-O-N theta0= 2.0376421782 Ktheta= 0.597773781684 CenterHybridization= sp3 +Si-O-O theta0= 1.8490710045 Ktheta= 0.666741813647 CenterHybridization= sp3 +Si-O-P theta0= 2.2837206154 Ktheta= 0.290858217547 CenterHybridization= sp3 +Si-O-S theta0= 2.1289798358 Ktheta= 0.405335253700 CenterHybridization= sp3 +Si-O-Se theta0= 2.1450784753 Ktheta= 0.392605788759 CenterHybridization= sp3 +Si-O-Si theta0= 3.0880606181 Ktheta= 0.042944355224 CenterHybridization= sp3 +O-O-Br theta0= 1.8401062203 Ktheta= 1.301733602640 CenterHybridization= sp3 +O-O-Cl theta0= 1.8395422189 Ktheta= 1.450694992881 CenterHybridization= sp3 +O-O-F theta0= 1.8352659144 Ktheta= 1.648181123492 CenterHybridization= sp3 +O-O-H theta0= 1.7282316259 Ktheta= 0.967404359270 CenterHybridization= sp3 +O-O-O theta0= 1.8032984656 Ktheta= 1.815396091842 CenterHybridization= sp3 +O-O-S theta0= 1.7928422749 Ktheta= 1.207093425926 CenterHybridization= sp3 +S-O-Br theta0= 1.9280492841 Ktheta= 0.966128168577 CenterHybridization= sp3 +S-O-Cl theta0= 1.9062506768 Ktheta= 1.066900080809 CenterHybridization= sp3 +S-O-F theta0= 1.7927401399 Ktheta= 1.184592616428 CenterHybridization= sp3 +S-O-H theta0= 1.8414215842 Ktheta= 0.693603945111 CenterHybridization= sp3 +S-O-S theta0= 1.9082527597 Ktheta= 0.931833158455 CenterHybridization= sp3 +Se-O-Br theta0= 1.9273708589 Ktheta= 0.891526229683 CenterHybridization= sp3 +Se-O-Cl theta0= 1.9091789553 Ktheta= 0.947545987530 CenterHybridization= sp3 +Se-O-F theta0= 1.7778246592 Ktheta= 1.028895793730 CenterHybridization= sp3 +Se-O-H theta0= 1.8328266353 Ktheta= 0.654344088293 CenterHybridization= sp3 +Se-O-O theta0= 1.7793129869 Ktheta= 1.095744362965 CenterHybridization= sp3 +Se-O-S theta0= 1.9286218708 Ktheta= 0.841583671339 CenterHybridization= sp3 +Se-O-Se theta0= 1.9334579443 Ktheta= 0.817028559323 CenterHybridization= sp3 +H-O-H theta0= 1.8465727699 Ktheta= 0.667156053774 CenterHybridization= sp3 +Al-O-Al theta0= 3.1415420651 Ktheta= 0.091100210035 CenterHybridization= sp3 +Al-O-As theta0= 2.3129498224 Ktheta= 0.226704457638 CenterHybridization= sp3 +Al-O-B theta0= 3.1415693848 Ktheta= 0.106589559748 CenterHybridization= sp3 +Al-O-Br theta0= 2.1035698700 Ktheta= 0.407894828658 CenterHybridization= sp3 +Al-O-Cl theta0= 2.0853335268 Ktheta= 0.400661729452 CenterHybridization= sp3 +Al-O-F theta0= 1.8274469964 Ktheta= 0.525024834837 CenterHybridization= sp3 +Al-O-H theta0= 2.2260664963 Ktheta= 0.147229943805 CenterHybridization= sp3 +Al-O-N theta0= 2.9018006985 Ktheta= 0.053711401704 CenterHybridization= sp3 +Al-O-O theta0= 1.9200989376 Ktheta= 0.458516000363 CenterHybridization= sp3 +Al-O-P theta0= 3.0833679182 Ktheta= 0.060270571307 CenterHybridization= sp3 +Al-O-S theta0= 2.2518992577 Ktheta= 0.250291440310 CenterHybridization= sp3 +Al-O-Se theta0= 2.2717990480 Ktheta= 0.256002796073 CenterHybridization= sp3 +B-O-As theta0= 2.1249978357 Ktheta= 0.631054038651 CenterHybridization= sp3 +B-O-B theta0= 2.1927451782 Ktheta= 0.619571793936 CenterHybridization= sp3 +B-O-Br theta0= 2.0717079595 Ktheta= 0.966841054165 CenterHybridization= sp3 +B-O-Cl theta0= 2.0501862923 Ktheta= 1.065425403638 CenterHybridization= sp3 +B-O-F theta0= 1.9283191173 Ktheta= 1.250849719120 CenterHybridization= sp3 +B-O-H theta0= 1.9918559646 Ktheta= 0.555063899947 CenterHybridization= sp3 +B-O-N theta0= 2.0125775362 Ktheta= 1.113770609706 CenterHybridization= sp3 +B-O-O theta0= 1.9573674959 Ktheta= 1.144820869949 CenterHybridization= sp3 +B-O-P theta0= 2.1405117114 Ktheta= 0.647558896093 CenterHybridization= sp3 +B-O-S theta0= 2.0837814055 Ktheta= 0.746376005727 CenterHybridization= sp3 +B-O-Se theta0= 2.0849427144 Ktheta= 0.669794913551 CenterHybridization= sp3 +Ga-O-Al theta0= 3.1397396270 Ktheta= 0.072702158442 CenterHybridization= sp3 +Ga-O-As theta0= 2.2135883207 Ktheta= 0.335380489360 CenterHybridization= sp3 +Ga-O-B theta0= 2.2035672702 Ktheta= 0.377430539113 CenterHybridization= sp3 +Ga-O-Br theta0= 2.0421525104 Ktheta= 0.668322100033 CenterHybridization= sp3 +Ga-O-Cl theta0= 2.0378163620 Ktheta= 0.577540580454 CenterHybridization= sp3 +Ga-O-F theta0= 1.8278283265 Ktheta= 0.683974055173 CenterHybridization= sp3 +Ga-O-Ga theta0= 3.1415870632 Ktheta= 0.057919427480 CenterHybridization= sp3 +Ga-O-H theta0= 1.9905578725 Ktheta= 0.340886427833 CenterHybridization= sp3 +Ga-O-N theta0= 1.9616805920 Ktheta= 0.642429261256 CenterHybridization= sp3 +Ga-O-O theta0= 1.8916664682 Ktheta= 0.654588219427 CenterHybridization= sp3 +Ga-O-P theta0= 2.2135875335 Ktheta= 0.345769636510 CenterHybridization= sp3 +Ga-O-S theta0= 2.1536149767 Ktheta= 0.383850752066 CenterHybridization= sp3 +Ga-O-Se theta0= 2.1637413979 Ktheta= 0.348633367688 CenterHybridization= sp3 +C-O-Al theta0= 2.3594951093 Ktheta= 0.215002202226 CenterHybridization= sp3 +C-O-B theta0= 2.1428934453 Ktheta= 0.955911818377 CenterHybridization= sp3 +C-O-Ga theta0= 2.1764827378 Ktheta= 0.461444122414 CenterHybridization= sp3 +Ge-O-Al theta0= 2.6046876192 Ktheta= 0.075049564053 CenterHybridization= sp3 +Ge-O-B theta0= 2.2229335605 Ktheta= 0.464100214990 CenterHybridization= sp3 +Ge-O-Ga theta0= 2.3108478089 Ktheta= 0.283838138329 CenterHybridization= sp3 +Si-O-Al theta0= 3.1213748310 Ktheta= 0.114692346877 CenterHybridization= sp3 +Si-O-B theta0= 2.3553070644 Ktheta= 0.232724532994 CenterHybridization= sp3 +Si-O-Ga theta0= 2.5249542316 Ktheta= 0.130567967634 CenterHybridization= sp3 diff --git a/sim/src/parameters/new/RPR.txt b/sim/src/parameters/new/RPR.txt new file mode 100755 index 000000000..8abc48687 --- /dev/null +++ b/sim/src/parameters/new/RPR.txt @@ -0,0 +1,137 @@ +Br-P-Br theta0= 2.0931010797 Ktheta= 0.656455820082 CenterHybridization= sp3 +Br-P-Cl theta0= 2.0771363052 Ktheta= 0.693201047839 CenterHybridization= sp3 +Br-P-F theta0= 2.0304377837 Ktheta= 0.686613450051 CenterHybridization= sp3 +Br-P-H theta0= 2.0608324272 Ktheta= 0.582926244002 CenterHybridization= sp3 +Cl-P-Cl theta0= 2.0570818840 Ktheta= 0.739294992321 CenterHybridization= sp3 +Cl-P-F theta0= 1.9968421661 Ktheta= 0.773720308099 CenterHybridization= sp3 +Cl-P-H theta0= 2.0437938302 Ktheta= 0.639569662266 CenterHybridization= sp3 +F-P-F theta0= 1.9539420656 Ktheta= 0.774700805730 CenterHybridization= sp3 +F-P-H theta0= 1.9983989561 Ktheta= 0.685211236788 CenterHybridization= sp3 +Al-P-Al theta0= 2.3336266787 Ktheta= 0.299048885163 CenterHybridization= sp3 +Al-P-B theta0= 2.2647407305 Ktheta= 0.342129178919 CenterHybridization= sp3 +Al-P-Br theta0= 2.1874157141 Ktheta= 0.384895230458 CenterHybridization= sp3 +Al-P-Cl theta0= 2.1933299664 Ktheta= 0.417241001085 CenterHybridization= sp3 +Al-P-F theta0= 2.1382888548 Ktheta= 0.448458560483 CenterHybridization= sp3 +Al-P-H theta0= 2.2091431015 Ktheta= 0.356030754696 CenterHybridization= sp3 +Al-P-N theta0= 2.1624306591 Ktheta= 0.461962098391 CenterHybridization= sp3 +Al-P-O theta0= 2.2428738564 Ktheta= 0.499773169251 CenterHybridization= sp3 +Al-P-S theta0= 2.2970288487 Ktheta= 0.356981576760 CenterHybridization= sp3 +Al-P-Se theta0= 2.3188640259 Ktheta= 0.361361072747 CenterHybridization= sp3 +As-P-Al theta0= 2.1523161655 Ktheta= 0.342608573498 CenterHybridization= sp3 +As-P-As theta0= 2.0655102011 Ktheta= 0.411889206991 CenterHybridization= sp3 +As-P-B theta0= 2.1311404784 Ktheta= 0.573553778161 CenterHybridization= sp3 +As-P-Br theta0= 2.0371292608 Ktheta= 0.510185979991 CenterHybridization= sp3 +As-P-Cl theta0= 2.0262639439 Ktheta= 0.545421622504 CenterHybridization= sp3 +As-P-F theta0= 1.9494249074 Ktheta= 0.492342318818 CenterHybridization= sp3 +As-P-Ga theta0= 2.1985168441 Ktheta= 0.371088310179 CenterHybridization= sp3 +As-P-H theta0= 2.0811787636 Ktheta= 0.482504299231 CenterHybridization= sp3 +As-P-O theta0= 1.7447639413 Ktheta= 0.872445424677 CenterHybridization= sp3 +As-P-P theta0= 2.0592540178 Ktheta= 0.502553080670 CenterHybridization= sp3 +As-P-S theta0= 1.8665784843 Ktheta= 0.802965459555 CenterHybridization= sp3 +As-P-Se theta0= 1.8959308923 Ktheta= 0.788320619112 CenterHybridization= sp3 +B-P-B theta0= 2.1813157360 Ktheta= 0.650945028525 CenterHybridization= sp3 +B-P-Br theta0= 2.2355154558 Ktheta= 0.628159393384 CenterHybridization= sp3 +B-P-Cl theta0= 2.2204119332 Ktheta= 0.699458459070 CenterHybridization= sp3 +B-P-F theta0= 2.1655023025 Ktheta= 0.763233307397 CenterHybridization= sp3 +B-P-H theta0= 2.1885881983 Ktheta= 0.569562651033 CenterHybridization= sp3 +B-P-O theta0= 2.2498451884 Ktheta= 0.754186856601 CenterHybridization= sp3 +B-P-S theta0= 1.8980407353 Ktheta= 0.644560530865 CenterHybridization= sp3 +B-P-Se theta0= 1.8876356757 Ktheta= 0.577881056536 CenterHybridization= sp3 +Ga-P-Al theta0= 2.3140773766 Ktheta= 0.296640045328 CenterHybridization= sp3 +Ga-P-B theta0= 2.2332573994 Ktheta= 0.342307930997 CenterHybridization= sp3 +Ga-P-Br theta0= 2.2153796010 Ktheta= 0.425074070118 CenterHybridization= sp3 +Ga-P-Cl theta0= 2.2102003975 Ktheta= 0.423190112037 CenterHybridization= sp3 +Ga-P-F theta0= 2.1390192035 Ktheta= 0.488860743577 CenterHybridization= sp3 +Ga-P-Ga theta0= 2.3136755338 Ktheta= 0.338226012826 CenterHybridization= sp3 +Ga-P-H theta0= 2.2057049320 Ktheta= 0.384700939894 CenterHybridization= sp3 +Ga-P-N theta0= 2.1706871364 Ktheta= 0.508592905159 CenterHybridization= sp3 +Ga-P-O theta0= 2.2608996187 Ktheta= 0.512761048578 CenterHybridization= sp3 +Ga-P-P theta0= 2.1744338521 Ktheta= 0.425301069125 CenterHybridization= sp3 +Ga-P-S theta0= 2.2765097091 Ktheta= 0.416363093625 CenterHybridization= sp3 +Ga-P-Se theta0= 2.3382566881 Ktheta= 0.365334951733 CenterHybridization= sp3 +N-P-As theta0= 2.0027501283 Ktheta= 0.605569731199 CenterHybridization= sp3 +N-P-B theta0= 2.1694050594 Ktheta= 0.815651269486 CenterHybridization= sp3 +N-P-Br theta0= 2.0163753378 Ktheta= 0.705756851323 CenterHybridization= sp3 +N-P-Cl theta0= 1.9794377690 Ktheta= 0.785474334053 CenterHybridization= sp3 +N-P-F theta0= 1.9003724707 Ktheta= 0.796160534133 CenterHybridization= sp3 +N-P-H theta0= 2.0477771585 Ktheta= 0.678205838060 CenterHybridization= sp3 +N-P-N theta0= 1.9500220247 Ktheta= 1.107451244601 CenterHybridization= sp3 +N-P-O theta0= 1.8438607272 Ktheta= 0.957867016370 CenterHybridization= sp3 +N-P-P theta0= 1.9823655134 Ktheta= 0.668157935029 CenterHybridization= sp3 +N-P-S theta0= 1.9538174072 Ktheta= 0.709950137558 CenterHybridization= sp3 +N-P-Se theta0= 2.0012942723 Ktheta= 0.615728965726 CenterHybridization= sp3 +P-P-Al theta0= 2.1858877307 Ktheta= 0.385711650458 CenterHybridization= sp3 +P-P-B theta0= 2.1568134426 Ktheta= 0.576895272172 CenterHybridization= sp3 +P-P-Br theta0= 2.0334249042 Ktheta= 0.572048186830 CenterHybridization= sp3 +P-P-Cl theta0= 2.0061173501 Ktheta= 0.593425762463 CenterHybridization= sp3 +P-P-F theta0= 1.9536243319 Ktheta= 0.566200022604 CenterHybridization= sp3 +P-P-H theta0= 2.0753749190 Ktheta= 0.524738546673 CenterHybridization= sp3 +P-P-O theta0= 1.7369605970 Ktheta= 0.987791750662 CenterHybridization= sp3 +P-P-P theta0= 2.0261834284 Ktheta= 0.533837141431 CenterHybridization= sp3 +P-P-S theta0= 1.7576560096 Ktheta= 0.813382170363 CenterHybridization= sp3 +P-P-Se theta0= 1.7543179260 Ktheta= 0.780226168586 CenterHybridization= sp3 +C-P-Al theta0= 2.2197200027 Ktheta= 0.423080366602 CenterHybridization= sp3 +C-P-As theta0= 1.7377730338 Ktheta= 0.784859380522 CenterHybridization= sp3 +C-P-B theta0= 2.2106493154 Ktheta= 0.712297312762 CenterHybridization= sp3 +C-P-Br theta0= 1.7613050585 Ktheta= 1.001437221991 CenterHybridization= sp3 +C-P-Cl theta0= 1.7467637658 Ktheta= 1.112585771750 CenterHybridization= sp3 +C-P-C theta0= 1.7523735612 Ktheta= 1.095031229341 CenterHybridization= sp3 +C-P-F theta0= 1.7238889570 Ktheta= 1.225461420821 CenterHybridization= sp3 +C-P-Ga theta0= 2.2308960475 Ktheta= 0.465383599118 CenterHybridization= sp3 +C-P-H theta0= 1.7048980312 Ktheta= 0.820883779349 CenterHybridization= sp3 +C-P-N theta0= 1.7539308260 Ktheta= 1.200266569427 CenterHybridization= sp3 +C-P-O theta0= 1.7296928348 Ktheta= 1.178696828086 CenterHybridization= sp3 +C-P-P theta0= 1.7216952806 Ktheta= 0.920689991012 CenterHybridization= sp3 +C-P-S theta0= 1.7705025003 Ktheta= 1.025043819355 CenterHybridization= sp3 +C-P-Se theta0= 1.7866903523 Ktheta= 0.935124607511 CenterHybridization= sp3 +Ge-P-Al theta0= 2.3214233243 Ktheta= 0.275522584205 CenterHybridization= sp3 +Ge-P-As theta0= 1.6878089069 Ktheta= 0.660151880089 CenterHybridization= sp3 +Ge-P-B theta0= 2.2286883456 Ktheta= 0.422257095770 CenterHybridization= sp3 +Ge-P-Br theta0= 2.1553679958 Ktheta= 0.445381520950 CenterHybridization= sp3 +Ge-P-C theta0= 2.1668071578 Ktheta= 0.519921035437 CenterHybridization= sp3 +Ge-P-Cl theta0= 2.1362240203 Ktheta= 0.481280028566 CenterHybridization= sp3 +Ge-P-F theta0= 1.7241909199 Ktheta= 0.816863467165 CenterHybridization= sp3 +Ge-P-Ga theta0= 2.2649602493 Ktheta= 0.349257516838 CenterHybridization= sp3 +Ge-P-Ge theta0= 2.1896657489 Ktheta= 0.479439909561 CenterHybridization= sp3 +Ge-P-H theta0= 2.1838403617 Ktheta= 0.428929763129 CenterHybridization= sp3 +Ge-P-N theta0= 1.7335085469 Ktheta= 0.781420648094 CenterHybridization= sp3 +Ge-P-O theta0= 1.9857971676 Ktheta= 0.516440008695 CenterHybridization= sp3 +Ge-P-P theta0= 1.7193146690 Ktheta= 0.626311098460 CenterHybridization= sp3 +Ge-P-S theta0= 2.1007387767 Ktheta= 0.448146823820 CenterHybridization= sp3 +Ge-P-Se theta0= 2.1295514852 Ktheta= 0.483789392911 CenterHybridization= sp3 +Ge-P-Si theta0= 2.2021996040 Ktheta= 0.412097766804 CenterHybridization= sp3 +Si-P-Al theta0= 2.2663949850 Ktheta= 0.351521415697 CenterHybridization= sp3 +Si-P-As theta0= 1.7195358964 Ktheta= 0.629826752441 CenterHybridization= sp3 +Si-P-B theta0= 2.2475774437 Ktheta= 0.455178443423 CenterHybridization= sp3 +Si-P-Br theta0= 1.7185766373 Ktheta= 0.685821749024 CenterHybridization= sp3 +Si-P-C theta0= 2.1405540723 Ktheta= 0.574173499031 CenterHybridization= sp3 +Si-P-Cl theta0= 1.7384764905 Ktheta= 0.716735635362 CenterHybridization= sp3 +Si-P-F theta0= 1.7190450156 Ktheta= 0.797043528313 CenterHybridization= sp3 +Si-P-Ga theta0= 2.2651422802 Ktheta= 0.405495684088 CenterHybridization= sp3 +Si-P-H theta0= 2.1936942708 Ktheta= 0.444465488999 CenterHybridization= sp3 +Si-P-N theta0= 1.7375524730 Ktheta= 0.761490196309 CenterHybridization= sp3 +Si-P-O theta0= 1.7186181325 Ktheta= 0.750429291192 CenterHybridization= sp3 +Si-P-P theta0= 2.2275375855 Ktheta= 0.448741260573 CenterHybridization= sp3 +Si-P-S theta0= 1.7377036325 Ktheta= 0.651074090051 CenterHybridization= sp3 +Si-P-Se theta0= 1.7474794171 Ktheta= 0.755294286932 CenterHybridization= sp3 +Si-P-Si theta0= 1.7503913436 Ktheta= 0.552682928472 CenterHybridization= sp3 +O-P-Br theta0= 1.8196666555 Ktheta= 0.949331508836 CenterHybridization= sp3 +O-P-Cl theta0= 2.0776102285 Ktheta= 0.705550100098 CenterHybridization= sp3 +O-P-F theta0= 1.9898737854 Ktheta= 0.747898007277 CenterHybridization= sp3 +O-P-H theta0= 1.9604063271 Ktheta= 0.703440571585 CenterHybridization= sp3 +O-P-O theta0= 1.8951190594 Ktheta= 0.929746169692 CenterHybridization= sp3 +S-P-Br theta0= 2.1247996728 Ktheta= 0.645600348375 CenterHybridization= sp3 +S-P-Cl theta0= 2.0793985312 Ktheta= 0.708840766691 CenterHybridization= sp3 +S-P-F theta0= 2.0173709416 Ktheta= 0.633274915649 CenterHybridization= sp3 +S-P-H theta0= 2.0376240355 Ktheta= 0.575027477063 CenterHybridization= sp3 +S-P-O theta0= 1.8674117673 Ktheta= 0.714676320657 CenterHybridization= sp3 +S-P-S theta0= 2.0646532584 Ktheta= 0.655322586115 CenterHybridization= sp3 +Se-P-Br theta0= 1.8669629506 Ktheta= 0.815118559299 CenterHybridization= sp3 +Se-P-Cl theta0= 2.0848596612 Ktheta= 0.589477975051 CenterHybridization= sp3 +Se-P-F theta0= 2.0374345870 Ktheta= 0.548864816523 CenterHybridization= sp3 +Se-P-H theta0= 2.0581105165 Ktheta= 0.509252228827 CenterHybridization= sp3 +Se-P-O theta0= 1.8982428496 Ktheta= 0.643699207078 CenterHybridization= sp3 +Se-P-S theta0= 2.1077491586 Ktheta= 0.526892410177 CenterHybridization= sp3 +Se-P-Se theta0= 2.0935379688 Ktheta= 0.582950139778 CenterHybridization= sp3 +H-P-H theta0= 2.0943953932 Ktheta= 0.577851509151 CenterHybridization= sp3 + diff --git a/sim/src/parameters/new/RSR.txt b/sim/src/parameters/new/RSR.txt new file mode 100755 index 000000000..a1331d6b5 --- /dev/null +++ b/sim/src/parameters/new/RSR.txt @@ -0,0 +1,136 @@ +Br-S-Br theta0= 1.8474493790 Ktheta= 0.903396271139 CenterHybridization= sp3 +Br-S-Cl theta0= 1.8341276857 Ktheta= 0.957706235466 CenterHybridization= sp3 +Br-S-F theta0= 1.7625115906 Ktheta= 0.993343666735 CenterHybridization= sp3 +Br-S-H theta0= 1.6617759737 Ktheta= 0.749614786058 CenterHybridization= sp3 +Cl-S-Cl theta0= 1.8212538160 Ktheta= 1.018175021624 CenterHybridization= sp3 +Cl-S-F theta0= 1.7569440933 Ktheta= 1.002810386793 CenterHybridization= sp3 +Cl-S-H theta0= 1.6684818917 Ktheta= 0.853716687246 CenterHybridization= sp3 +F-S-F theta0= 1.7123360555 Ktheta= 1.165355836907 CenterHybridization= sp3 +F-S-H theta0= 1.6599436730 Ktheta= 1.007326357222 CenterHybridization= sp3 +As-S-As theta0= 1.8128269824 Ktheta= 0.754814449838 CenterHybridization= sp3 +As-S-Br theta0= 1.8726612255 Ktheta= 0.795793716482 CenterHybridization= sp3 +As-S-Cl theta0= 1.8648141012 Ktheta= 0.825271139741 CenterHybridization= sp3 +As-S-F theta0= 1.7938180501 Ktheta= 0.865788479534 CenterHybridization= sp3 +As-S-H theta0= 1.7065559614 Ktheta= 0.569454945992 CenterHybridization= sp3 +As-S-O theta0= 1.7509589631 Ktheta= 0.886683664435 CenterHybridization= sp3 +As-S-P theta0= 1.8339349961 Ktheta= 0.776112840766 CenterHybridization= sp3 +As-S-S theta0= 1.7920951937 Ktheta= 0.786840322174 CenterHybridization= sp3 +As-S-Se theta0= 1.7681711890 Ktheta= 0.781473405097 CenterHybridization= sp3 +N-S-As theta0= 1.9226746945 Ktheta= 0.910507000151 CenterHybridization= sp3 +N-S-Br theta0= 1.8918900100 Ktheta= 0.951758574322 CenterHybridization= sp3 +N-S-Cl theta0= 1.8751788612 Ktheta= 1.027942215401 CenterHybridization= sp3 +N-S-F theta0= 1.8386607857 Ktheta= 1.084012035593 CenterHybridization= sp3 +N-S-H theta0= 1.7907916683 Ktheta= 1.035873108006 CenterHybridization= sp3 +N-S-N theta0= 1.9407465701 Ktheta= 1.218921777196 CenterHybridization= sp3 +N-S-O theta0= 1.7647348748 Ktheta= 1.307528689644 CenterHybridization= sp3 +N-S-P theta0= 1.8289106784 Ktheta= 1.050850829097 CenterHybridization= sp3 +N-S-S theta0= 1.8062123329 Ktheta= 1.073054776741 CenterHybridization= sp3 +N-S-Se theta0= 1.8391088345 Ktheta= 0.941392785532 CenterHybridization= sp3 +P-S-Br theta0= 1.9017091050 Ktheta= 0.847646871187 CenterHybridization= sp3 +P-S-Cl theta0= 1.8852395638 Ktheta= 0.885567871565 CenterHybridization= sp3 +P-S-F theta0= 1.8453771565 Ktheta= 0.826040554857 CenterHybridization= sp3 +P-S-H theta0= 1.7430013037 Ktheta= 0.665482514632 CenterHybridization= sp3 +P-S-O theta0= 1.7690134308 Ktheta= 1.001025436709 CenterHybridization= sp3 +P-S-P theta0= 1.8414702702 Ktheta= 0.875021537377 CenterHybridization= sp3 +P-S-S theta0= 1.7950925506 Ktheta= 0.869217842519 CenterHybridization= sp3 +P-S-Se theta0= 1.8245653741 Ktheta= 0.761745760191 CenterHybridization= sp3 +C-S-As theta0= 1.8160019755 Ktheta= 0.903526700723 CenterHybridization= sp3 +C-S-Br theta0= 1.7679993805 Ktheta= 1.028898705334 CenterHybridization= sp3 +C-S-C theta0= 1.7421916245 Ktheta= 1.133464722013 CenterHybridization= sp3 +C-S-Cl theta0= 1.7481415461 Ktheta= 1.138039560759 CenterHybridization= sp3 +C-S-F theta0= 1.7049343341 Ktheta= 1.223196027674 CenterHybridization= sp3 +C-S-H theta0= 1.6932456407 Ktheta= 0.883421690330 CenterHybridization= sp3 +C-S-N theta0= 1.8332773439 Ktheta= 1.176832443315 CenterHybridization= sp3 +C-S-O theta0= 1.6645423974 Ktheta= 1.261897809200 CenterHybridization= sp3 +C-S-P theta0= 1.8233681655 Ktheta= 0.961259134905 CenterHybridization= sp3 +C-S-S theta0= 1.6913411164 Ktheta= 1.097887448000 CenterHybridization= sp3 +C-S-Se theta0= 1.7090504103 Ktheta= 0.920598898676 CenterHybridization= sp3 +Ge-S-As theta0= 1.8015471621 Ktheta= 0.676044164820 CenterHybridization= sp3 +Ge-S-Br theta0= 1.7451583020 Ktheta= 0.682529954890 CenterHybridization= sp3 +Ge-S-C theta0= 1.7546806124 Ktheta= 0.775656553453 CenterHybridization= sp3 +Ge-S-Cl theta0= 1.7272902477 Ktheta= 0.717695978754 CenterHybridization= sp3 +Ge-S-F theta0= 1.6921178578 Ktheta= 0.786012157201 CenterHybridization= sp3 +Ge-S-Ge theta0= 1.7799634764 Ktheta= 0.585878847913 CenterHybridization= sp3 +Ge-S-H theta0= 1.6427030890 Ktheta= 0.569209266227 CenterHybridization= sp3 +Ge-S-N theta0= 1.8300560944 Ktheta= 0.797808179576 CenterHybridization= sp3 +Ge-S-O theta0= 1.6475717216 Ktheta= 0.777153770282 CenterHybridization= sp3 +Ge-S-P theta0= 1.8143414814 Ktheta= 0.685404748922 CenterHybridization= sp3 +Ge-S-S theta0= 1.7180594858 Ktheta= 0.716859562921 CenterHybridization= sp3 +Ge-S-Se theta0= 1.7131813342 Ktheta= 0.708768428509 CenterHybridization= sp3 +Ge-S-Si theta0= 1.7530422544 Ktheta= 0.646275725751 CenterHybridization= sp3 +Si-S-As theta0= 1.7896065235 Ktheta= 0.718106296593 CenterHybridization= sp3 +Si-S-Br theta0= 1.7314260427 Ktheta= 0.694812345346 CenterHybridization= sp3 +Si-S-C theta0= 1.7540301090 Ktheta= 0.750451375162 CenterHybridization= sp3 +Si-S-Cl theta0= 1.7486789906 Ktheta= 0.707499746732 CenterHybridization= sp3 +Si-S-F theta0= 1.7024487793 Ktheta= 0.698808721865 CenterHybridization= sp3 +Si-S-H theta0= 1.6576515513 Ktheta= 0.576298898026 CenterHybridization= sp3 +Si-S-N theta0= 1.8222989471 Ktheta= 0.755082809529 CenterHybridization= sp3 +Si-S-O theta0= 1.6706966308 Ktheta= 0.759034737832 CenterHybridization= sp3 +Si-S-P theta0= 1.8072157559 Ktheta= 0.666383797902 CenterHybridization= sp3 +Si-S-S theta0= 1.7297618399 Ktheta= 0.730250740430 CenterHybridization= sp3 +Si-S-Se theta0= 1.7317849313 Ktheta= 0.704602321529 CenterHybridization= sp3 +Si-S-Si theta0= 1.7974926314 Ktheta= 0.537097585538 CenterHybridization= sp3 +O-S-Br theta0= 1.6977812487 Ktheta= 1.102730207632 CenterHybridization= sp3 +O-S-Cl theta0= 1.8048132194 Ktheta= 1.100124254132 CenterHybridization= sp3 +O-S-F theta0= 1.7386541720 Ktheta= 1.167491347321 CenterHybridization= sp3 +O-S-H theta0= 1.6189592285 Ktheta= 1.016606949459 CenterHybridization= sp3 +O-S-O theta0= 1.6620221734 Ktheta= 1.421872459876 CenterHybridization= sp3 +O-S-S theta0= 1.6036569635 Ktheta= 1.180295602854 CenterHybridization= sp3 +O-S-Se theta0= 1.6203836911 Ktheta= 0.976061154620 CenterHybridization= sp3 +S-S-Br theta0= 1.7449497247 Ktheta= 0.933565188856 CenterHybridization= sp3 +S-S-Cl theta0= 1.7202744971 Ktheta= 1.006703436929 CenterHybridization= sp3 +S-S-F theta0= 1.6590679593 Ktheta= 1.099310408440 CenterHybridization= sp3 +S-S-H theta0= 1.6211224750 Ktheta= 0.818765552264 CenterHybridization= sp3 +S-S-S theta0= 1.6576426152 Ktheta= 1.035464872629 CenterHybridization= sp3 +S-S-Se theta0= 1.6862891492 Ktheta= 0.869729766890 CenterHybridization= sp3 +Se-S-Br theta0= 1.7258491887 Ktheta= 0.834801317617 CenterHybridization= sp3 +Se-S-Cl theta0= 1.7330208635 Ktheta= 0.904029625392 CenterHybridization= sp3 +Se-S-F theta0= 1.6914847658 Ktheta= 0.967581442601 CenterHybridization= sp3 +Se-S-H theta0= 1.6088922741 Ktheta= 0.740975192223 CenterHybridization= sp3 +Se-S-Se theta0= 1.6590130198 Ktheta= 0.902907430367 CenterHybridization= sp3 +H-S-H theta0= 1.6204910376 Ktheta= 0.777935778465 CenterHybridization= sp3 +Al-S-Al theta0= 1.8208241980 Ktheta= 0.505486917193 CenterHybridization= sp3 +Al-S-As theta0= 1.8649194633 Ktheta= 0.608491122860 CenterHybridization= sp3 +Al-S-B theta0= 1.7839819818 Ktheta= 0.695283492847 CenterHybridization= sp3 +Al-S-Br theta0= 1.7951067017 Ktheta= 0.638450213700 CenterHybridization= sp3 +Al-S-Cl theta0= 1.7709559665 Ktheta= 0.637087218955 CenterHybridization= sp3 +Al-S-F theta0= 1.7306428716 Ktheta= 0.516152191145 CenterHybridization= sp3 +Al-S-H theta0= 1.6523354704 Ktheta= 0.412352073728 CenterHybridization= sp3 +Al-S-N theta0= 1.7180440187 Ktheta= 0.578896175335 CenterHybridization= sp3 +Al-S-O theta0= 1.7354286499 Ktheta= 0.589596896174 CenterHybridization= sp3 +Al-S-P theta0= 1.7656678772 Ktheta= 0.659356583476 CenterHybridization= sp3 +Al-S-S theta0= 1.7530505587 Ktheta= 0.619052472278 CenterHybridization= sp3 +Al-S-Se theta0= 1.7955473223 Ktheta= 0.565156782273 CenterHybridization= sp3 +B-S-As theta0= 1.8833726060 Ktheta= 0.838473852549 CenterHybridization= sp3 +B-S-B theta0= 1.8278937623 Ktheta= 1.016241030542 CenterHybridization= sp3 +B-S-Br theta0= 1.8599991183 Ktheta= 0.980037918947 CenterHybridization= sp3 +B-S-Cl theta0= 1.8597018451 Ktheta= 1.060044016295 CenterHybridization= sp3 +B-S-F theta0= 1.8457268961 Ktheta= 1.068458039487 CenterHybridization= sp3 +B-S-H theta0= 1.7334553685 Ktheta= 0.741076021894 CenterHybridization= sp3 +B-S-N theta0= 1.8125412249 Ktheta= 1.189234532159 CenterHybridization= sp3 +B-S-O theta0= 1.8043743442 Ktheta= 1.139421300999 CenterHybridization= sp3 +B-S-P theta0= 1.4394517852 Ktheta= 0.942142878112 CenterHybridization= sp3 +B-S-S theta0= 1.8206183975 Ktheta= 0.914166526160 CenterHybridization= sp3 +B-S-Se theta0= 1.8223191057 Ktheta= 0.807185833710 CenterHybridization= sp3 +Ga-S-Al theta0= 1.8209654370 Ktheta= 0.618116161392 CenterHybridization= sp3 +Ga-S-As theta0= 1.7639905442 Ktheta= 0.758828994601 CenterHybridization= sp3 +Ga-S-B theta0= 1.8040964075 Ktheta= 0.745070398795 CenterHybridization= sp3 +Ga-S-Br theta0= 1.7918561080 Ktheta= 0.737798442427 CenterHybridization= sp3 +Ga-S-Cl theta0= 1.8064848975 Ktheta= 0.696580048604 CenterHybridization= sp3 +Ga-S-F theta0= 1.7486159528 Ktheta= 0.672217209830 CenterHybridization= sp3 +Ga-S-Ga theta0= 1.7694250422 Ktheta= 0.880884084712 CenterHybridization= sp3 +Ga-S-H theta0= 1.6766752841 Ktheta= 0.470821801130 CenterHybridization= sp3 +Ga-S-N theta0= 1.7445197663 Ktheta= 0.782247572089 CenterHybridization= sp3 +Ga-S-O theta0= 1.7352715441 Ktheta= 0.708247014669 CenterHybridization= sp3 +Ga-S-P theta0= 1.7873085095 Ktheta= 0.702238835427 CenterHybridization= sp3 +Ga-S-S theta0= 1.8004241597 Ktheta= 0.641138070278 CenterHybridization= sp3 +Ga-S-Se theta0= 1.7554826575 Ktheta= 0.654728708806 CenterHybridization= sp3 +C-S-Al theta0= 1.8128468548 Ktheta= 0.587222949804 CenterHybridization= sp3 +C-S-B theta0= 1.8285331375 Ktheta= 1.018767699422 CenterHybridization= sp3 +C-S-Ga theta0= 1.8007614550 Ktheta= 0.737128555505 CenterHybridization= sp3 +Ge-S-Al theta0= 1.7946087942 Ktheta= 0.548722417068 CenterHybridization= sp3 +Ge-S-B theta0= 1.8005764431 Ktheta= 0.650016291908 CenterHybridization= sp3 +Ge-S-Ga theta0= 1.7796021321 Ktheta= 0.588090552775 CenterHybridization= sp3 +Si-S-Al theta0= 1.7928503941 Ktheta= 0.490104494980 CenterHybridization= sp3 +Si-S-B theta0= 1.7988494747 Ktheta= 0.608316753951 CenterHybridization= sp3 +Si-S-Ga theta0= 1.8003701260 Ktheta= 0.499771114326 CenterHybridization= sp3 diff --git a/sim/src/parameters/new/RSeR.txt b/sim/src/parameters/new/RSeR.txt new file mode 100755 index 000000000..b46f56266 --- /dev/null +++ b/sim/src/parameters/new/RSeR.txt @@ -0,0 +1,136 @@ +Br-Se-Br theta0= 1.8099903686 Ktheta= 0.800201373458 CenterHybridization= sp3 +Br-Se-Cl theta0= 1.7948054055 Ktheta= 0.837979113404 CenterHybridization= sp3 +Br-Se-F theta0= 1.7537627734 Ktheta= 0.754449676831 CenterHybridization= sp3 +Br-Se-H theta0= 1.6371900843 Ktheta= 0.717590002324 CenterHybridization= sp3 +Cl-Se-Cl theta0= 1.7808858986 Ktheta= 0.874902294409 CenterHybridization= sp3 +Cl-Se-F theta0= 1.7434207377 Ktheta= 0.855697792875 CenterHybridization= sp3 +Cl-Se-H theta0= 1.6373969408 Ktheta= 0.804279262138 CenterHybridization= sp3 +F-Se-F theta0= 1.6778568161 Ktheta= 0.980778002661 CenterHybridization= sp3 +F-Se-H theta0= 1.6396818193 Ktheta= 0.895707074058 CenterHybridization= sp3 +As-Se-As theta0= 1.7620134789 Ktheta= 0.714745169158 CenterHybridization= sp3 +As-Se-Br theta0= 1.8280662026 Ktheta= 0.732747192454 CenterHybridization= sp3 +As-Se-Cl theta0= 1.8189890646 Ktheta= 0.739201593235 CenterHybridization= sp3 +As-Se-F theta0= 1.8059322949 Ktheta= 0.670476090429 CenterHybridization= sp3 +As-Se-H theta0= 1.6747543415 Ktheta= 0.498055331245 CenterHybridization= sp3 +As-Se-O theta0= 1.6864410662 Ktheta= 0.787699567745 CenterHybridization= sp3 +As-Se-P theta0= 1.7717997110 Ktheta= 0.764400730298 CenterHybridization= sp3 +As-Se-S theta0= 1.7270439974 Ktheta= 0.762350542758 CenterHybridization= sp3 +As-Se-Se theta0= 1.7307545011 Ktheta= 0.736610075733 CenterHybridization= sp3 +N-Se-As theta0= 1.8873572747 Ktheta= 0.740163356597 CenterHybridization= sp3 +N-Se-Br theta0= 1.8548064270 Ktheta= 0.775176225641 CenterHybridization= sp3 +N-Se-Cl theta0= 1.8504712892 Ktheta= 0.814895979942 CenterHybridization= sp3 +N-Se-F theta0= 1.8122470183 Ktheta= 0.854999246773 CenterHybridization= sp3 +N-Se-H theta0= 1.7591377121 Ktheta= 0.906059054593 CenterHybridization= sp3 +N-Se-N theta0= 1.9185276474 Ktheta= 0.982207665250 CenterHybridization= sp3 +N-Se-O theta0= 1.7289432420 Ktheta= 1.008652876385 CenterHybridization= sp3 +N-Se-P theta0= 1.7685729446 Ktheta= 0.892565469760 CenterHybridization= sp3 +N-Se-S theta0= 1.7794867554 Ktheta= 0.861552962406 CenterHybridization= sp3 +N-Se-Se theta0= 1.7721911255 Ktheta= 0.844695691098 CenterHybridization= sp3 +P-Se-Br theta0= 1.8482074784 Ktheta= 0.775446368046 CenterHybridization= sp3 +P-Se-Cl theta0= 1.8315937556 Ktheta= 0.799783024901 CenterHybridization= sp3 +P-Se-F theta0= 1.8053016742 Ktheta= 0.775482851106 CenterHybridization= sp3 +P-Se-H theta0= 1.7010725191 Ktheta= 0.655962314011 CenterHybridization= sp3 +P-Se-O theta0= 1.7230365068 Ktheta= 0.836298483378 CenterHybridization= sp3 +P-Se-P theta0= 1.7809848710 Ktheta= 0.823411825643 CenterHybridization= sp3 +P-Se-S theta0= 1.7453338559 Ktheta= 0.816883247410 CenterHybridization= sp3 +P-Se-Se theta0= 1.7487926482 Ktheta= 0.761857970982 CenterHybridization= sp3 +C-Se-As theta0= 1.7655471912 Ktheta= 0.793648611689 CenterHybridization= sp3 +C-Se-Br theta0= 1.7223878936 Ktheta= 0.917653401154 CenterHybridization= sp3 +C-Se-C theta0= 1.7132420210 Ktheta= 0.975554208112 CenterHybridization= sp3 +C-Se-Cl theta0= 1.6958230015 Ktheta= 0.981374379867 CenterHybridization= sp3 +C-Se-F theta0= 1.6752331918 Ktheta= 1.024745531632 CenterHybridization= sp3 +C-Se-H theta0= 1.6612506506 Ktheta= 0.815969676807 CenterHybridization= sp3 +C-Se-N theta0= 1.7973856200 Ktheta= 0.978389887797 CenterHybridization= sp3 +C-Se-O theta0= 1.6122555549 Ktheta= 1.068384624960 CenterHybridization= sp3 +C-Se-P theta0= 1.7607280648 Ktheta= 0.866536022127 CenterHybridization= sp3 +C-Se-S theta0= 1.6535273103 Ktheta= 0.945308032511 CenterHybridization= sp3 +C-Se-Se theta0= 1.6625586352 Ktheta= 0.874853901763 CenterHybridization= sp3 +Ge-Se-As theta0= 1.7341363924 Ktheta= 0.667555879155 CenterHybridization= sp3 +Ge-Se-Br theta0= 1.6957375275 Ktheta= 0.622362081549 CenterHybridization= sp3 +Ge-Se-C theta0= 1.7115991705 Ktheta= 0.676515511619 CenterHybridization= sp3 +Ge-Se-Cl theta0= 1.6917358785 Ktheta= 0.654262865637 CenterHybridization= sp3 +Ge-Se-F theta0= 1.6831777787 Ktheta= 0.567327151059 CenterHybridization= sp3 +Ge-Se-Ge theta0= 1.7005526640 Ktheta= 0.566262079022 CenterHybridization= sp3 +Ge-Se-H theta0= 1.6048063623 Ktheta= 0.556165922522 CenterHybridization= sp3 +Ge-Se-N theta0= 1.7930040337 Ktheta= 0.657412943535 CenterHybridization= sp3 +Ge-Se-O theta0= 1.5883405614 Ktheta= 0.722275758475 CenterHybridization= sp3 +Ge-Se-P theta0= 1.7353448602 Ktheta= 0.722535837405 CenterHybridization= sp3 +Ge-Se-S theta0= 1.6700938848 Ktheta= 0.694043931670 CenterHybridization= sp3 +Ge-Se-Se theta0= 1.6597660194 Ktheta= 0.697368292402 CenterHybridization= sp3 +Ge-Se-Si theta0= 1.6922260822 Ktheta= 0.585535210180 CenterHybridization= sp3 +Si-Se-As theta0= 1.7216640846 Ktheta= 0.703131617483 CenterHybridization= sp3 +Si-Se-Br theta0= 1.6955644066 Ktheta= 0.622993135800 CenterHybridization= sp3 +Si-Se-C theta0= 1.6963139417 Ktheta= 0.711081127122 CenterHybridization= sp3 +Si-Se-Cl theta0= 1.6968172475 Ktheta= 0.632170832769 CenterHybridization= sp3 +Si-Se-F theta0= 1.6789373372 Ktheta= 0.642715524911 CenterHybridization= sp3 +Si-Se-H theta0= 1.6149755092 Ktheta= 0.589634109881 CenterHybridization= sp3 +Si-Se-N theta0= 1.7840855775 Ktheta= 0.689592154157 CenterHybridization= sp3 +Si-Se-O theta0= 1.6062989120 Ktheta= 0.639429517707 CenterHybridization= sp3 +Si-Se-P theta0= 1.7288677339 Ktheta= 0.694700905910 CenterHybridization= sp3 +Si-Se-S theta0= 1.6678721767 Ktheta= 0.691767839121 CenterHybridization= sp3 +Si-Se-Se theta0= 1.6610246112 Ktheta= 0.685736678852 CenterHybridization= sp3 +Si-Se-Si theta0= 1.6859560409 Ktheta= 0.583960570712 CenterHybridization= sp3 +O-Se-Br theta0= 1.7625386764 Ktheta= 0.916280421139 CenterHybridization= sp3 +O-Se-Cl theta0= 1.7492129776 Ktheta= 0.921278226551 CenterHybridization= sp3 +O-Se-F theta0= 1.7068046638 Ktheta= 0.967349127087 CenterHybridization= sp3 +O-Se-H theta0= 1.5890292072 Ktheta= 0.900913861704 CenterHybridization= sp3 +O-Se-O theta0= 1.6127471461 Ktheta= 1.166395765984 CenterHybridization= sp3 +O-Se-S theta0= 1.5636522927 Ktheta= 1.023122509586 CenterHybridization= sp3 +O-Se-Se theta0= 1.5631724825 Ktheta= 0.948167931868 CenterHybridization= sp3 +S-Se-Br theta0= 1.6868021678 Ktheta= 0.866437815740 CenterHybridization= sp3 +S-Se-Cl theta0= 1.6756728769 Ktheta= 0.922869265084 CenterHybridization= sp3 +S-Se-F theta0= 1.6545104002 Ktheta= 0.864040730906 CenterHybridization= sp3 +S-Se-H theta0= 1.5902364305 Ktheta= 0.777424597427 CenterHybridization= sp3 +S-Se-S theta0= 1.6186527015 Ktheta= 0.971092568188 CenterHybridization= sp3 +S-Se-Se theta0= 1.6306159509 Ktheta= 0.861247466408 CenterHybridization= sp3 +Se-Se-Br theta0= 1.6856112476 Ktheta= 0.801326672048 CenterHybridization= sp3 +Se-Se-Cl theta0= 1.6773737369 Ktheta= 0.836693984697 CenterHybridization= sp3 +Se-Se-F theta0= 1.6352197001 Ktheta= 0.786956074222 CenterHybridization= sp3 +Se-Se-H theta0= 1.5835007669 Ktheta= 0.704066918675 CenterHybridization= sp3 +Se-Se-Se theta0= 1.6339607871 Ktheta= 0.842129258674 CenterHybridization= sp3 +Se-Se-H theta0= 1.5945010832 Ktheta= 0.745086981847 CenterHybridization= sp3 +Al-Se-Al theta0= 1.7171068379 Ktheta= 0.771669621219 CenterHybridization= sp3 +Al-Se-As theta0= 1.7751028828 Ktheta= 0.701057998881 CenterHybridization= sp3 +Al-Se-B theta0= 1.7098056388 Ktheta= 0.695637370269 CenterHybridization= sp3 +Al-Se-Br theta0= 1.7230785308 Ktheta= 0.659260325182 CenterHybridization= sp3 +Al-Se-Cl theta0= 1.7213168548 Ktheta= 0.649080793873 CenterHybridization= sp3 +Al-Se-F theta0= 1.7135596168 Ktheta= 0.545078919418 CenterHybridization= sp3 +Al-Se-H theta0= 1.5946070840 Ktheta= 0.433139516773 CenterHybridization= sp3 +Al-Se-N theta0= 1.6869505924 Ktheta= 0.522479624156 CenterHybridization= sp3 +Al-Se-O theta0= 1.7095361861 Ktheta= 0.563863542642 CenterHybridization= sp3 +Al-Se-P theta0= 1.7930330114 Ktheta= 0.659117858123 CenterHybridization= sp3 +Al-Se-S theta0= 1.7030950991 Ktheta= 0.640087209491 CenterHybridization= sp3 +Al-Se-Se theta0= 1.7057287346 Ktheta= 0.605139957032 CenterHybridization= sp3 +B-Se-As theta0= 1.8268000989 Ktheta= 0.818425742501 CenterHybridization= sp3 +B-Se-B theta0= 1.7739802818 Ktheta= 0.968923432694 CenterHybridization= sp3 +B-Se-Br theta0= 1.8108743849 Ktheta= 0.925331310949 CenterHybridization= sp3 +B-Se-Cl theta0= 1.8075543794 Ktheta= 0.937108171866 CenterHybridization= sp3 +B-Se-F theta0= 1.7943973929 Ktheta= 0.975046988432 CenterHybridization= sp3 +B-Se-H theta0= 1.6981053668 Ktheta= 0.730446361599 CenterHybridization= sp3 +B-Se-N theta0= 1.7569372271 Ktheta= 1.048837144298 CenterHybridization= sp3 +B-Se-O theta0= 1.7541157087 Ktheta= 0.997300395089 CenterHybridization= sp3 +B-Se-P theta0= 1.3734014578 Ktheta= 0.912988530436 CenterHybridization= sp3 +B-Se-S theta0= 1.7708627031 Ktheta= 0.846091927548 CenterHybridization= sp3 +B-Se-Se theta0= 1.7648186890 Ktheta= 0.810445276708 CenterHybridization= sp3 +Ga-Se-Al theta0= 1.7120527397 Ktheta= 0.825283759703 CenterHybridization= sp3 +Ga-Se-As theta0= 1.7992553807 Ktheta= 0.697228660842 CenterHybridization= sp3 +Ga-Se-B theta0= 1.7346786959 Ktheta= 0.793806258974 CenterHybridization= sp3 +Ga-Se-Br theta0= 1.7494649578 Ktheta= 0.718374792090 CenterHybridization= sp3 +Ga-Se-Cl theta0= 1.7472792139 Ktheta= 0.679722881500 CenterHybridization= sp3 +Ga-Se-F theta0= 1.7325383428 Ktheta= 0.605875770285 CenterHybridization= sp3 +Ga-Se-Ga theta0= 1.7100386332 Ktheta= 0.901288277958 CenterHybridization= sp3 +Ga-Se-H theta0= 1.6354786878 Ktheta= 0.453227886518 CenterHybridization= sp3 +Ga-Se-N theta0= 1.7093128468 Ktheta= 0.635547028286 CenterHybridization= sp3 +Ga-Se-O theta0= 1.7198242702 Ktheta= 0.592724064764 CenterHybridization= sp3 +Ga-Se-P theta0= 1.7216506491 Ktheta= 0.707831652527 CenterHybridization= sp3 +Ga-Se-S theta0= 1.7124622219 Ktheta= 0.654444670344 CenterHybridization= sp3 +Ga-Se-Se theta0= 1.7157583512 Ktheta= 0.650587492384 CenterHybridization= sp3 +C-Se-Al theta0= 1.7458029184 Ktheta= 0.588366618952 CenterHybridization= sp3 +C-Se-B theta0= 1.7777940496 Ktheta= 0.928948496067 CenterHybridization= sp3 +C-Se-Ga theta0= 1.7647142066 Ktheta= 0.630481242374 CenterHybridization= sp3 +Ge-Se-Al theta0= 1.7155323625 Ktheta= 0.555794211317 CenterHybridization= sp3 +Ge-Se-B theta0= 1.7473116857 Ktheta= 0.660308587476 CenterHybridization= sp3 +Ge-Se-Ga theta0= 1.7285327441 Ktheta= 0.569030040135 CenterHybridization= sp3 +Si-Se-Al theta0= 1.7211054693 Ktheta= 0.526494725127 CenterHybridization= sp3 +Si-Se-B theta0= 1.7254952167 Ktheta= 0.651394254420 CenterHybridization= sp3 +Si-Se-Ga theta0= 1.7358693997 Ktheta= 0.542117180605 CenterHybridization= sp3 diff --git a/sim/src/parameters/new/RSiR.txt b/sim/src/parameters/new/RSiR.txt new file mode 100755 index 000000000..c6f4de5ea --- /dev/null +++ b/sim/src/parameters/new/RSiR.txt @@ -0,0 +1,136 @@ +Br-Si-Al theta0= 1.7652586254 Ktheta= 0.166741678089 CenterHybridization= sp3 +Br-Si-B theta0= 1.6676043437 Ktheta= 0.188636390077 CenterHybridization= sp3 +Br-Si-Br theta0= 1.9466265756 Ktheta= 0.764652427619 CenterHybridization= sp3 +Br-Si-Ga theta0= 1.7740165235 Ktheta= 0.224419724287 CenterHybridization= sp3 +Br-Si-O theta0= 1.9424260132 Ktheta= 0.811779371942 CenterHybridization= sp3 +Br-Si-S theta0= 1.8701791770 Ktheta= 0.789353249803 CenterHybridization= sp3 +Br-Si-Se theta0= 1.8501904762 Ktheta= 0.702263105064 CenterHybridization= sp3 +Cl-Si-Al theta0= 1.9684134299 Ktheta= 0.446122752507 CenterHybridization= sp3 +Cl-Si-B theta0= 1.9878527361 Ktheta= 0.613137825683 CenterHybridization= sp3 +Cl-Si-Br theta0= 1.9393161105 Ktheta= 0.797614802652 CenterHybridization= sp3 +Cl-Si-Cl theta0= 1.9304580235 Ktheta= 0.836305539676 CenterHybridization= sp3 +Cl-Si-Ga theta0= 1.9644813340 Ktheta= 0.492867368530 CenterHybridization= sp3 +Cl-Si-O theta0= 1.9229153912 Ktheta= 0.906765850666 CenterHybridization= sp3 +Cl-Si-S theta0= 1.8483151984 Ktheta= 0.810554451546 CenterHybridization= sp3 +Cl-Si-Se theta0= 1.8678820270 Ktheta= 0.765633838108 CenterHybridization= sp3 +F-Si-Al theta0= 1.9963715904 Ktheta= 0.447547221965 CenterHybridization= sp3 +F-Si-B theta0= 1.9634674443 Ktheta= 0.622048220414 CenterHybridization= sp3 +F-Si-Br theta0= 1.8880721302 Ktheta= 0.737995751293 CenterHybridization= sp3 +F-Si-Cl theta0= 1.9179214596 Ktheta= 0.793341459524 CenterHybridization= sp3 +F-Si-F theta0= 1.8990031325 Ktheta= 0.788266580435 CenterHybridization= sp3 +F-Si-Ga theta0= 1.8917010275 Ktheta= 0.480537437365 CenterHybridization= sp3 +F-Si-O theta0= 1.9128050357 Ktheta= 0.897728213301 CenterHybridization= sp3 +F-Si-S theta0= 1.8278120827 Ktheta= 0.759797359693 CenterHybridization= sp3 +F-Si-Se theta0= 1.8137904740 Ktheta= 0.802569865254 CenterHybridization= sp3 +Al-Si-Al theta0= 1.9797100717 Ktheta= 0.225576970321 CenterHybridization= sp3 +Al-Si-As theta0= 1.8897065316 Ktheta= 0.193059081495 CenterHybridization= sp3 +Al-Si-B theta0= 1.8029571682 Ktheta= 0.202703078971 CenterHybridization= sp3 +Al-Si-Ga theta0= 1.9518211153 Ktheta= 0.245450635929 CenterHybridization= sp3 +Al-Si-N theta0= 1.9020126421 Ktheta= 0.494326116203 CenterHybridization= sp3 +Al-Si-O theta0= 1.8581771918 Ktheta= 0.483747169242 CenterHybridization= sp3 +Al-Si-S theta0= 1.9011494896 Ktheta= 0.438494094884 CenterHybridization= sp3 +Al-Si-Se theta0= 1.8893712817 Ktheta= 0.386822396094 CenterHybridization= sp3 +As-Si-As theta0= 2.0923291677 Ktheta= 0.537555536130 CenterHybridization= sp3 +As-Si-Br theta0= 2.0051688020 Ktheta= 0.632936632090 CenterHybridization= sp3 +As-Si-Cl theta0= 2.0076887381 Ktheta= 0.634256980236 CenterHybridization= sp3 +As-Si-F theta0= 1.9852338189 Ktheta= 0.565604798793 CenterHybridization= sp3 +As-Si-H theta0= 1.9791777358 Ktheta= 0.506962462242 CenterHybridization= sp3 +As-Si-O theta0= 1.9103731864 Ktheta= 0.706426037021 CenterHybridization= sp3 +As-Si-S theta0= 1.9449916315 Ktheta= 0.626141316190 CenterHybridization= sp3 +As-Si-Se theta0= 1.9180968739 Ktheta= 0.600637507603 CenterHybridization= sp3 +B-Si-As theta0= 1.7059097131 Ktheta= 0.239528066121 CenterHybridization= sp3 +B-Si-B theta0= 1.8151465599 Ktheta= 0.302723706777 CenterHybridization= sp3 +B-Si-N theta0= 1.8668305674 Ktheta= 0.333455158309 CenterHybridization= sp3 +B-Si-O theta0= 1.9192969222 Ktheta= 0.696787072369 CenterHybridization= sp3 +B-Si-P theta0= 1.7469587086 Ktheta= 0.229282839029 CenterHybridization= sp3 +B-Si-S theta0= 1.9021856985 Ktheta= 0.573302506716 CenterHybridization= sp3 +B-Si-Se theta0= 1.8940471898 Ktheta= 0.564624291931 CenterHybridization= sp3 +Ga-Si-As theta0= 1.8894638645 Ktheta= 0.236565282194 CenterHybridization= sp3 +Ga-Si-B theta0= 1.8033095781 Ktheta= 0.229030176647 CenterHybridization= sp3 +Ga-Si-Ga theta0= 1.9314708799 Ktheta= 0.264513315521 CenterHybridization= sp3 +Ga-Si-N theta0= 2.0757747495 Ktheta= 0.501355940990 CenterHybridization= sp3 +Ga-Si-O theta0= 1.8792699443 Ktheta= 0.545783291187 CenterHybridization= sp3 +Ga-Si-P theta0= 1.9501678923 Ktheta= 0.261806122692 CenterHybridization= sp3 +Ga-Si-S theta0= 1.9235296458 Ktheta= 0.470308636394 CenterHybridization= sp3 +Ga-Si-Se theta0= 1.8690857038 Ktheta= 0.439113174894 CenterHybridization= sp3 +N-Si-As theta0= 2.0879148426 Ktheta= 0.647239662512 CenterHybridization= sp3 +N-Si-Br theta0= 2.0070802395 Ktheta= 0.754485301199 CenterHybridization= sp3 +N-Si-Cl theta0= 2.0131046798 Ktheta= 0.761499022047 CenterHybridization= sp3 +N-Si-F theta0= 2.0083755147 Ktheta= 0.796619058100 CenterHybridization= sp3 +N-Si-H theta0= 2.0192918144 Ktheta= 0.709701449517 CenterHybridization= sp3 +N-Si-N theta0= 2.1228134968 Ktheta= 0.797831613251 CenterHybridization= sp3 +N-Si-O theta0= 1.9397222556 Ktheta= 0.889425927087 CenterHybridization= sp3 +N-Si-S theta0= 1.9229653390 Ktheta= 0.788581109770 CenterHybridization= sp3 +N-Si-Se theta0= 1.9461035127 Ktheta= 0.756389825358 CenterHybridization= sp3 +P-Si-Al theta0= 1.9582024579 Ktheta= 0.251021127420 CenterHybridization= sp3 +P-Si-As theta0= 2.1108253573 Ktheta= 0.546913640492 CenterHybridization= sp3 +P-Si-Br theta0= 2.0203848984 Ktheta= 0.667799434690 CenterHybridization= sp3 +P-Si-Cl theta0= 2.0048904709 Ktheta= 0.682926769184 CenterHybridization= sp3 +P-Si-F theta0= 2.0023751897 Ktheta= 0.637778422024 CenterHybridization= sp3 +P-Si-H theta0= 1.9931900262 Ktheta= 0.535461143208 CenterHybridization= sp3 +P-Si-N theta0= 2.0997973234 Ktheta= 0.663751013841 CenterHybridization= sp3 +P-Si-O theta0= 1.9140844004 Ktheta= 0.725895819563 CenterHybridization= sp3 +P-Si-P theta0= 2.1045328432 Ktheta= 0.591107457290 CenterHybridization= sp3 +P-Si-S theta0= 1.9253266508 Ktheta= 0.684146885948 CenterHybridization= sp3 +P-Si-Se theta0= 1.9701304220 Ktheta= 0.620061503383 CenterHybridization= sp3 +C-Si-Al theta0= 1.9942125849 Ktheta= 0.435285239946 CenterHybridization= sp3 +C-Si-As theta0= 2.0099127256 Ktheta= 0.616678587542 CenterHybridization= sp3 +C-Si-B theta0= 2.0223108255 Ktheta= 0.610287204200 CenterHybridization= sp3 +C-Si-Br theta0= 1.9203955162 Ktheta= 0.763342540358 CenterHybridization= sp3 +C-Si-C theta0= 1.9539972669 Ktheta= 0.773619220643 CenterHybridization= sp3 +C-Si-Cl theta0= 1.9096498940 Ktheta= 0.790758348516 CenterHybridization= sp3 +C-Si-F theta0= 1.8835683692 Ktheta= 0.846049105915 CenterHybridization= sp3 +C-Si-Ga theta0= 2.0070934936 Ktheta= 0.467813147430 CenterHybridization= sp3 +C-Si-H theta0= 1.9317851945 Ktheta= 0.629214123540 CenterHybridization= sp3 +C-Si-N theta0= 2.0175554299 Ktheta= 0.837217254304 CenterHybridization= sp3 +C-Si-O theta0= 1.8526223534 Ktheta= 0.936559658329 CenterHybridization= sp3 +C-Si-P theta0= 2.0055854680 Ktheta= 0.662468224604 CenterHybridization= sp3 +C-Si-S theta0= 1.8582744939 Ktheta= 0.779993633587 CenterHybridization= sp3 +C-Si-Se theta0= 1.8742140711 Ktheta= 0.730827113220 CenterHybridization= sp3 +Ge-Si-Al theta0= 1.9817374671 Ktheta= 0.358617168831 CenterHybridization= sp3 +Ge-Si-As theta0= 2.0187690987 Ktheta= 0.469145324327 CenterHybridization= sp3 +Ge-Si-B theta0= 2.0075432562 Ktheta= 0.450365106529 CenterHybridization= sp3 +Ge-Si-Br theta0= 1.9322423190 Ktheta= 0.547555628113 CenterHybridization= sp3 +Ge-Si-C theta0= 1.9587459639 Ktheta= 0.545636024890 CenterHybridization= sp3 +Ge-Si-Cl theta0= 1.9126006663 Ktheta= 0.564106846861 CenterHybridization= sp3 +Ge-Si-F theta0= 1.8662642971 Ktheta= 0.576533115568 CenterHybridization= sp3 +Ge-Si-Ga theta0= 2.0326171187 Ktheta= 0.372895044006 CenterHybridization= sp3 +Ge-Si-Ge theta0= 1.9892145379 Ktheta= 0.437366571295 CenterHybridization= sp3 +Ge-Si-H theta0= 1.9167504781 Ktheta= 0.482133973883 CenterHybridization= sp3 +Ge-Si-N theta0= 2.0205092286 Ktheta= 0.581745163997 CenterHybridization= sp3 +Ge-Si-O theta0= 1.8551947837 Ktheta= 0.635616081647 CenterHybridization= sp3 +Ge-Si-P theta0= 2.0196739542 Ktheta= 0.494365935492 CenterHybridization= sp3 +Ge-Si-S theta0= 1.8866300275 Ktheta= 0.561928268625 CenterHybridization= sp3 +Ge-Si-Se theta0= 1.8730637193 Ktheta= 0.542323288489 CenterHybridization= sp3 +Ge-Si-Si theta0= 1.9485735620 Ktheta= 0.424000247879 CenterHybridization= sp3 +Si-Si-Al theta0= 2.0454854173 Ktheta= 0.338269877409 CenterHybridization= sp3 +Si-Si-As theta0= 1.9958387484 Ktheta= 0.427861253386 CenterHybridization= sp3 +Si-Si-B theta0= 2.0486807382 Ktheta= 0.423143551492 CenterHybridization= sp3 +Si-Si-Br theta0= 1.9141653627 Ktheta= 0.508666593636 CenterHybridization= sp3 +Si-Si-C theta0= 1.9622837219 Ktheta= 0.541796302027 CenterHybridization= sp3 +Si-Si-Cl theta0= 1.9239277694 Ktheta= 0.574331306013 CenterHybridization= sp3 +Si-Si-F theta0= 1.9481128387 Ktheta= 0.524943610953 CenterHybridization= sp3 +Si-Si-Ga theta0= 2.0152842626 Ktheta= 0.343776921532 CenterHybridization= sp3 +Si-Si-H theta0= 1.9282838756 Ktheta= 0.471209283277 CenterHybridization= sp3 +Si-Si-N theta0= 2.0332282597 Ktheta= 0.553031041781 CenterHybridization= sp3 +Si-Si-O theta0= 1.8495644894 Ktheta= 0.616103357090 CenterHybridization= sp3 +Si-Si-P theta0= 2.0258086259 Ktheta= 0.482464139753 CenterHybridization= sp3 +Si-Si-S theta0= 1.8800957661 Ktheta= 0.599002858033 CenterHybridization= sp3 +Si-Si-Se theta0= 1.8927521136 Ktheta= 0.500915569778 CenterHybridization= sp3 +Si-Si-Si theta0= 1.9982258299 Ktheta= 0.436439156125 CenterHybridization= sp3 +H-Si-Al theta0= 1.9130734917 Ktheta= 0.338047168642 CenterHybridization= sp3 +H-Si-B theta0= 1.8571985089 Ktheta= 0.352817642791 CenterHybridization= sp3 +H-Si-Br theta0= 1.8922825136 Ktheta= 0.637107593607 CenterHybridization= sp3 +H-Si-Cl theta0= 1.8940758918 Ktheta= 0.667986529685 CenterHybridization= sp3 +H-Si-F theta0= 1.8875125445 Ktheta= 0.717697435398 CenterHybridization= sp3 +H-Si-Ga theta0= 1.8931693573 Ktheta= 0.357692694289 CenterHybridization= sp3 +H-Si-H theta0= 1.9108108748 Ktheta= 0.561368162828 CenterHybridization= sp3 +H-Si-O theta0= 1.8471259154 Ktheta= 0.742619996409 CenterHybridization= sp3 +H-Si-S theta0= 1.8402852579 Ktheta= 0.619425834122 CenterHybridization= sp3 +H-Si-Se theta0= 1.8415472148 Ktheta= 0.585636258039 CenterHybridization= sp3 +O-Si-O theta0= 1.8375042957 Ktheta= 1.059211050995 CenterHybridization= sp3 +O-Si-Se theta0= 1.8073032423 Ktheta= 0.815087912925 CenterHybridization= sp3 +S-Si-O theta0= 1.8796310163 Ktheta= 0.905929651390 CenterHybridization= sp3 +S-Si-S theta0= 1.7899411450 Ktheta= 0.845981817405 CenterHybridization= sp3 +S-Si-Se theta0= 1.8373527348 Ktheta= 0.755798685007 CenterHybridization= sp3 +Se-Si-Se theta0= 1.7875122278 Ktheta= 0.760091174672 CenterHybridization= sp3 diff --git a/sim/src/parameters/nlippmor b/sim/src/parameters/nlippmor new file mode 100755 index 000000000..5939538e0 --- /dev/null +++ b/sim/src/parameters/nlippmor @@ -0,0 +1,500 @@ +220.000000 1043.455195 +218.764816 1031.397604 +217.534247 1019.469629 +216.308266 1007.669879 +215.086849 995.996973 +213.869969 984.449549 +212.657602 973.026260 +211.449722 961.725772 +210.246305 950.546768 +209.047326 939.487943 +207.852761 928.548011 +206.662584 917.725694 +205.476773 907.019734 +204.295302 896.428884 +203.118149 885.951911 +201.945289 875.587595 +200.776699 865.334732 +199.612356 855.192129 +198.452237 845.158607 +197.296319 835.233000 +196.144578 825.414155 +194.996993 815.700931 +193.853541 806.092200 +192.714200 796.586846 +191.578947 787.183767 +190.447761 777.881871 +189.320620 768.680080 +188.197501 759.577325 +187.078385 750.572551 +185.963248 741.664714 +184.852071 732.852782 +183.744832 724.135733 +182.641509 715.512558 +181.542084 706.982257 +180.446533 698.543842 +179.354839 690.196335 +178.266979 681.938771 +177.182934 673.770193 +176.102684 665.689656 +175.026209 657.696223 +173.953488 649.788971 +172.884504 641.966984 +171.819235 634.229356 +170.757663 626.575193 +169.699769 619.003609 +168.645533 611.513728 +167.594937 604.104684 +166.547961 596.775620 +165.504587 589.525687 +164.464797 582.354049 +163.428571 575.259874 +162.395893 568.242344 +161.366743 561.300645 +160.341103 554.433976 +159.318956 547.641543 +158.300283 540.922559 +157.285068 534.276249 +156.273292 527.701843 +155.264938 521.198580 +154.259989 514.765710 +153.258427 508.402487 +152.260236 502.108177 +151.265398 495.882050 +150.273896 489.723387 +149.285714 483.631475 +148.300836 477.605610 +147.319244 471.645093 +146.340922 465.749237 +145.365854 459.917357 +144.394023 454.148779 +143.425414 448.442835 +142.460011 442.798866 +141.497797 437.216216 +140.538758 431.694240 +139.582876 426.232299 +138.630137 420.829758 +137.680525 415.485993 +136.734025 410.200384 +135.790622 404.972319 +134.850299 399.801191 +133.913043 394.686401 +132.978839 389.627355 +132.047671 384.623467 +131.119524 379.674155 +130.194384 374.778847 +129.272237 369.936972 +128.353068 365.147969 +127.436862 360.411282 +126.523605 355.726360 +125.613283 351.092659 +124.705882 346.509640 +123.801388 341.976770 +122.899787 337.493522 +122.001064 333.059373 +121.105207 328.673809 +120.212202 324.336317 +119.322034 320.046394 +118.434691 315.803538 +117.550158 311.607255 +116.668424 307.457056 +115.789474 303.352457 +114.913295 299.292979 +114.039874 295.278147 +113.169199 291.307493 +112.301255 287.380552 +111.436031 283.496866 +110.573514 279.655979 +109.713691 275.857444 +108.856549 272.100814 +108.002076 268.385651 +107.150259 264.711517 +106.301086 261.077984 +105.454545 257.484624 +104.610624 253.931016 +103.769310 250.416742 +102.930591 246.941390 +102.094456 243.504551 +101.260892 240.105820 +100.429887 236.744798 +99.601431 233.421089 +98.775510 230.134301 +97.952114 226.884047 +97.131231 223.669943 +96.312849 220.491610 +95.496957 217.348672 +94.683544 214.240758 +93.872599 211.167500 +93.064109 208.128535 +92.258065 205.123503 +91.454454 202.152047 +90.653266 199.213815 +89.854491 196.308458 +89.058116 193.435631 +88.264132 190.594994 +87.472527 187.786207 +86.683292 185.008936 +85.896414 182.262852 +85.111885 179.547626 +84.329692 176.862934 +83.549826 174.208456 +82.772277 171.583874 +81.997034 168.988875 +81.224087 166.423148 +80.453425 163.886386 +79.685039 161.378284 +78.918919 158.898542 +78.155054 156.446861 +77.393435 154.022947 +76.634051 151.626508 +75.876893 149.257256 +75.121951 146.914904 +74.369216 144.599171 +73.618677 142.309776 +72.870325 140.046443 +72.124151 137.808898 +71.380145 135.596870 +70.638298 133.410090 +69.898600 131.248293 +69.161041 129.111216 +68.425614 126.998600 +67.692308 124.910186 +66.961114 122.845722 +66.232023 120.804954 +65.505026 118.787633 +64.780115 116.793513 +64.057279 114.822349 +63.336511 112.873900 +62.617801 110.947926 +61.901141 109.044192 +61.186521 107.162463 +60.473934 105.302506 +59.763370 103.464093 +59.054820 101.646997 +58.348277 99.850993 +57.643732 98.075859 +56.941176 96.321375 +56.240602 94.587323 +55.541999 92.873488 +54.845361 91.179656 +54.150679 89.505617 +53.457944 87.851161 +52.767149 86.216082 +52.078285 84.600176 +51.391345 83.003239 +50.706320 81.425073 +50.023202 79.865478 +49.341983 78.324258 +48.662656 76.801219 +47.985213 75.296170 +47.309645 73.808919 +46.635945 72.339279 +45.964105 70.887063 +45.294118 69.452087 +44.625975 68.034169 +43.959670 66.633128 +43.295195 65.248785 +42.632541 63.880964 +41.971702 62.529489 +41.312671 61.194188 +40.655439 59.874888 +40.000000 58.571421 +39.346346 57.283619 +38.694470 56.011314 +38.044364 54.754344 +37.396022 53.512544 +36.749436 52.285754 +36.104599 51.073815 +35.461504 49.876569 +34.820144 48.693859 +34.180512 47.525532 +33.542601 46.371434 +32.906404 45.231413 +32.271914 44.105321 +31.639125 42.993008 +31.008029 41.894329 +30.378619 40.809138 +29.750890 39.737290 +29.124833 38.678645 +28.500444 37.633060 +27.877714 36.600398 +27.256637 35.580519 +26.637207 34.573288 +26.019417 33.578569 +25.403261 32.596229 +24.788732 31.626136 +24.175824 30.668158 +23.564530 29.722166 +22.954844 28.788032 +22.346760 27.865628 +21.740271 26.954830 +21.135371 26.055512 +20.532054 25.167552 +19.930314 24.290828 +19.330144 23.425220 +18.731538 22.570607 +18.134490 21.726873 +17.538995 20.893900 +16.945045 20.071573 +16.352636 19.259777 +15.761761 18.458398 +15.172414 17.667326 +14.584589 16.886448 +13.998280 16.115655 +13.413482 15.354839 +12.830189 14.603891 +12.248394 13.862706 +11.668092 13.131177 +11.089278 12.409201 +10.511945 11.696675 +9.936089 10.993496 +9.361702 10.299563 +8.788780 9.614776 +8.217317 8.939036 +7.647308 8.272245 +7.078747 7.614306 +6.511628 6.965124 +5.945946 6.324602 +5.381695 5.692648 +4.818871 5.069167 +4.257467 4.454069 +3.697479 3.847261 +3.138901 3.248653 +2.581727 2.658157 +2.025952 2.075683 +1.471572 1.501145 +0.918580 0.934329 +0.366972 0.374503 +-0.183257 -0.179187 +-0.732113 -0.727572 +-1.279601 -1.271461 +-1.825726 -1.811592 +-2.370493 -2.348205 +-2.913907 -2.881284 +-3.455974 -3.410807 +-3.996697 -3.936752 +-4.536082 -4.459102 +-5.074135 -4.977835 +-5.610860 -5.492935 +-6.146261 -6.004382 +-6.680345 -6.512160 +-7.213115 -7.016252 +-7.744576 -7.516641 +-8.274734 -8.013313 +-8.803593 -8.506252 +-9.331158 -8.995444 +-9.857434 -9.480875 +-10.382425 -9.962532 +-10.906136 -10.440402 +-11.428571 -10.914474 +-11.949737 -11.384736 +-12.469636 -11.851176 +-12.988273 -12.313785 +-13.505654 -12.772553 +-14.021783 -13.227470 +-14.536664 -13.678528 +-15.050302 -14.125718 +-15.562701 -14.569034 +-16.073866 -15.008467 +-16.583801 -15.444011 +-17.092511 -15.875660 +-17.600000 -16.303408 +-18.106272 -16.727251 +-18.611333 -17.147184 +-19.115185 -17.563202 +-19.617834 -17.975302 +-20.119284 -18.383482 +-20.619539 -18.787737 +-21.118604 -19.188067 +-21.616482 -19.584469 +-22.113178 -19.976943 +-22.608696 -20.365486 +-23.103040 -20.750101 +-23.596215 -21.130785 +-24.088224 -21.507540 +-24.579072 -21.880367 +-25.068762 -22.249268 +-25.557300 -22.614244 +-26.044688 -22.975297 +-26.530932 -23.332431 +-27.016034 -23.685648 +-27.500000 -24.034952 +-27.982833 -24.380347 +-28.464536 -24.721837 +-28.945115 -25.059427 +-29.424572 -25.393123 +-29.902913 -25.722929 +-30.380140 -26.048851 +-30.856257 -26.370896 +-31.331269 -26.689071 +-31.805180 -27.003382 +-32.277992 -27.313836 +-32.749711 -27.620442 +-33.220339 -27.923207 +-33.689881 -28.222140 +-34.158340 -28.517250 +-34.625720 -28.808545 +-35.092025 -29.096034 +-35.557258 -29.379728 +-36.021423 -29.659637 +-36.484524 -29.935770 +-36.946565 -30.208139 +-37.407549 -30.476754 +-37.867479 -30.741626 +-38.326360 -31.002767 +-38.784195 -31.260189 +-39.240987 -31.513903 +-39.696740 -31.763923 +-40.151458 -32.010260 +-40.605144 -32.252927 +-41.057801 -32.491938 +-41.509434 -32.727306 +-41.960045 -32.959045 +-42.409639 -33.187167 +-42.858217 -33.411688 +-43.305785 -33.632622 +-43.752345 -33.849983 +-44.197901 -34.063786 +-44.642456 -34.274046 +-45.086013 -34.480779 +-45.528577 -34.683999 +-45.970149 -34.883723 +-46.410734 -35.079965 +-46.850335 -35.272743 +-47.288955 -35.462073 +-47.726597 -35.647970 +-48.163265 -35.830452 +-48.598962 -36.009535 +-49.033691 -36.185236 +-49.467456 -36.357572 +-49.900259 -36.526561 +-50.332103 -36.692221 +-50.762993 -36.854567 +-51.192931 -37.013620 +-51.621920 -37.169395 +-52.049963 -37.321913 +-52.477064 -37.471189 +-52.903226 -37.617244 +-53.328451 -37.760096 +-53.752743 -37.899762 +-54.176105 -38.036262 +-54.598540 -38.169615 +-55.020051 -38.299840 +-55.440641 -38.426955 +-55.860313 -38.550980 +-56.279070 -38.671935 +-56.696915 -38.789838 +-57.113851 -38.904710 +-57.529880 -39.016569 +-57.945007 -39.125436 +-58.359234 -39.231330 +-58.772563 -39.334271 +-59.184998 -39.434279 +-59.596542 -39.531374 +-60.007197 -39.625577 +-60.416966 -39.716906 +-60.825853 -39.805384 +-61.233859 -39.891029 +-61.640989 -39.973863 +-62.047244 -40.053905 +-62.452628 -40.131177 +-62.857143 -40.205698 +-63.260792 -40.277489 +-63.663578 -40.346572 +-64.065504 -40.412966 +-64.466572 -40.476692 +-64.866785 -40.537771 +-65.266146 -40.596224 +-65.664658 -40.652071 +-66.062323 -40.705334 +-66.459144 -40.756033 +-66.855124 -40.804189 +-67.250265 -40.849823 +-67.644570 -40.892955 +-68.038042 -40.933608 +-68.430683 -40.971801 +-68.822496 -41.007556 +-69.213483 -41.040893 +-69.603648 -41.071834 +-69.992992 -41.100399 +-70.381519 -41.126610 +-70.769231 -41.150486 +-71.156130 -41.172050 +-71.542219 -41.191322 +-71.927501 -41.208323 +-72.311978 -41.223074 +-72.695652 -41.235596 +-73.078527 -41.245909 +-73.460604 -41.254034 +-73.841886 -41.259993 +-74.222376 -41.263805 +-74.602076 -41.265493 +-74.980989 -41.265075 +-75.359116 -41.262574 +-75.736461 -41.258009 +-76.113025 -41.251402 +-76.488812 -41.242773 +-76.863824 -41.232142 +-77.238063 -41.219529 +-77.611531 -41.204957 +-77.984230 -41.188444 +-78.356164 -41.170011 +-78.727335 -41.149678 +-79.097744 -41.127466 +-79.467395 -41.103395 +-79.836289 -41.077485 +-80.204429 -41.049755 +-80.571818 -41.020227 +-80.938456 -40.988920 +-81.304348 -40.955854 +-81.669494 -40.921049 +-82.033898 -40.884524 +-82.397562 -40.846299 +-82.760487 -40.806394 +-83.122677 -40.764829 +-83.484132 -40.721623 +-83.844857 -40.676795 +-84.204852 -40.630365 +-84.564120 -40.582352 +-84.922663 -40.532775 +-85.280484 -40.481654 +-85.637584 -40.429007 +-85.993966 -40.374854 +-86.349632 -40.319212 +-86.704583 -40.262103 +-87.058824 -40.203543 +-87.412354 -40.143551 +-87.765177 -40.082147 +-88.117294 -40.019349 +-88.468708 -39.955174 +-88.819421 -39.889642 +-89.169435 -39.822770 +-89.518752 -39.754577 +-89.867374 -39.685081 +-90.215303 -39.614300 +-90.562541 -39.542251 +-90.909091 -39.468953 +-91.254954 -39.394422 +-91.600132 -39.318678 +-91.944628 -39.241736 +-92.288443 -39.163615 +-92.631579 -39.084332 +-92.974039 -39.003904 +-93.315824 -38.922348 +-93.656937 -38.839681 +-93.997379 -38.755920 +-94.337152 -38.671082 +-94.676259 -38.585184 +-95.014701 -38.498241 +-95.352480 -38.410272 +-95.689599 -38.321292 +-96.026059 -38.231317 +-96.361861 -38.140364 +-96.697009 -38.048448 +-97.031504 -37.955587 +-97.365347 -37.861795 +-97.698541 -37.767088 +-98.031088 -37.671483 +-98.362989 -37.574994 +-98.694247 -37.477638 +-99.024863 -37.379429 diff --git a/sim/src/parameters/oope b/sim/src/parameters/oope new file mode 100755 index 000000000..47c9a12a4 --- /dev/null +++ b/sim/src/parameters/oope @@ -0,0 +1,43 @@ +#! /usr/bin/python + +import os +import sys +import re + +cenpat = re.compile(" CENTER +[\d\.-]+ +[\d\.-]+ +[\d\.-]+ +([\d\.-]+)") +radpat = re.compile(" 1 CENTER +[\d\.-]+ +([\d\.-]+)") +engpat = re.compile(" FINAL U-B3LYP ENERGY IS +([\d\.-]+)") + + +Hartree = 4.3597482 # attoJoules +Bohr = 0.5291772083 # Angstroms + +def findnext(f,pat): + while 1: + card = f.readline() + if not card: return None + m = pat.match(card) + if m: return m.group(1) + +def ending(nam,suf): + if suf==nam[-len(suf):]: return nam + else: return nam+suf + +def xeread(name): + f=open(ending(name,'.log'),"r") + x = float(findnext(f, cenpat)) + r = float(findnext(f, radpat)) + e = float(findnext(f, engpat)) + + f.close() + return x*Bohr, e*Hartree, r # already in Angstroms + + +namelist = sys.argv[1:] +for name in namelist: + x, e, r = xeread(name) + if e!=0.0: + print x, e, r + if x != 0.0: + print -x, e, r + diff --git a/sim/src/parameters/parmlist.py b/sim/src/parameters/parmlist.py new file mode 100755 index 000000000..bc874ff62 --- /dev/null +++ b/sim/src/parameters/parmlist.py @@ -0,0 +1,79 @@ +#! /usr/bin/python + +from string import * +import re +import os +import sys +from math import sqrt + +parmpat = re.compile("([A-Z][a-z]?)([\+=\-@#])([A-Z][a-z]?) +Ks= *([\d\.]+) +R0= *([\d\.]+) +De= *([\d\.]+)") +commpat = re.compile("#") + + +elmnts=[("H", 1, 1.6737), + ("He", 2, 6.646), + ("Li", 3, 11.525), + ("Be", 4, 14.964), + ("B", 5, 17.949), + ("C", 6, 19.925), + ("N", 7, 23.257), + ("O", 8, 26.565), + ("F", 9, 31.545), + ("Ne", 10, 33.49), + + ("Na", 11, 38.1726), + ("Mg", 12, 40.356), + ("Al", 13, 44.7997), + ("Si", 14, 46.6245), + ("P", 15, 51.429), + ("S", 16, 53.233), + ("Cl", 17, 58.867), + ("Ar", 18, 66.33), + + ("K", 19, 64.9256), + ("Ca", 20, 66.5495), + ("Sc", 21, 74.646), + ("Ti", 22, 79.534), + ("V", 23, 84.584), + ("Cr", 24, 86.335), + ("Mn", 25, 91.22), + ("Fe", 26, 92.729), + ("Co", 27, 97.854), + ("Ni", 28, 97.483), + ("Cu", 29, 105.513), + ("Zn", 30, 108.541), + ("Ga", 31, 115.764), + ("Ge", 32, 120.53), + ("As", 33, 124.401), + ("Se", 34, 131.106), + ("Br", 35, 132.674), + ("Kr", 36, 134.429)] + + +sym2num={} + +for (sym, num, mass) in elmnts: + sym2num[sym] = num + +bontyp = {'-':'1', '=':'2', '+':'3','@':'a', '#':'g'} + + +if __name__ == "__main__": + f=open(sys.argv[1]) + for lin in f.readlines(): + if commpat.match(lin): continue + m = parmpat.match(lin) + which = m.group(1),m.group(2),m.group(3) + + ks,r0,de = map(lambda p: float(m.group(p)),[4,5,6]) + + bt=sqrt(ks/(2.0*de))/10.0 + r0=r0*100.0 + + print ' addInitialBondStretch(', + print '%2d,'%sym2num[which[0]], + print '%2d,'%sym2num[which[2]], + print "'%s',"%bontyp[which[1]], + + print '%6.1f,%6.1f,%7.4f,%7.4f); //'%(ks,r0,de,bt), + print which[0]+which[1]+which[2] diff --git a/sim/src/parameters/pdb2xyz b/sim/src/parameters/pdb2xyz new file mode 100755 index 000000000..30c76c068 --- /dev/null +++ b/sim/src/parameters/pdb2xyz @@ -0,0 +1,40 @@ +#! /usr/bin/python + +from Numeric import * +from VQT import * +from LinearAlgebra import * +from string import * +import re +import os +import sys +from string import capitalize + +# read a Protein DataBank-format file +def pdbread(filename): + atoms = zeros((0,3),Float) + elem = [] + + f=open(filename+".pdb","rU").readlines() + + for card in f: + key=card[:6].lower().replace(" ", "") + if key in ["atom", "hetatm"]: + sym = capitalize(card[12:14].replace(" ", "").replace("_", "")) + if sym == "X": continue + elem += [sym] + xyz = A([map(float, [card[30:38],card[38:46],card[46:54]])]) + atoms = concatenate((atoms,xyz),axis=0) + return elem, atoms + +def xyzwrite(fn, elem, pos): + f=open(fn+".xyz","w") + f.write(str(len(elem))+"\n--comment line--\n") + for i in range(len(elem)): + f.write(elem[i] + " %12.7f %12.7f %12.7f" % tuple(pos[i]) + "\n") + + +fn = sys.argv[1] +print fn+'.pdb --> '+fn+'.xyz' + +el, pos = pdbread(fn) +xyzwrite(fn, el, pos) diff --git a/sim/src/parameters/rg b/sim/src/parameters/rg new file mode 100755 index 000000000..e74af6956 --- /dev/null +++ b/sim/src/parameters/rg @@ -0,0 +1,24 @@ +#! /usr/bin/python + +import os +import sys + +def fexist(fname): + try: os.stat(fname) + except OSError: return False + return True + +start=1 +newonly=False +if sys.argv[1]=='-n': + start=2 + newonly=True + +for name in sys.argv[start:]: + if name[-4:] == '.inp': name = name[:-4] + if newonly and fexist(name+'.log'): + print 'skipping',name + continue + print '\nProcessing',name + os.system("rcp "+name+".inp cluster:/home/josh/working.inp") + os.system("rsh cluster /home/gamess32/rungms working Nov222004R1 4 >"+name+".log") diff --git a/sim/src/parameters/stretch.parms b/sim/src/parameters/stretch.parms new file mode 100755 index 000000000..cd5cd459b --- /dev/null +++ b/sim/src/parameters/stretch.parms @@ -0,0 +1,68 @@ +Cl-Cl Ks= 274.70 R0= 2.0454 De= 0.3145 +Cl-H Ks= 502.46 R0= 1.2872 De= 0.7163 +Cl-F Ks= 437.46 R0= 1.6696 De= 0.3873 +Cl-C Ks= 352.51 R0= 1.7961 De= 0.6352 +Cl-N Ks= 344.38 R0= 1.7579 De= 0.3575 +### Cl-O -- no energy zero +Cl-O Ks= 365.06 R0= 1.7226 De= 0.4910 +Cl-B Ks= 376.69 R0= 1.7490 De= 0.8529 +Cl-S Ks= 247.76 R0= 2.0945 De= 0.3779 +Cl-P Ks= 249.95 R0= 2.0709 De= 0.4061 +H-H Ks= 599.55 R0= 0.7432 De= 0.7763 +H-F Ks= 930.16 R0= 0.9282 De= 0.9595 +H-C Ks= 540.39 R0= 1.0875 De= 0.8397 +H-N Ks= 716.72 R0= 1.0163 De= 0.7920 +H-O Ks= 838.19 R0= 0.9653 De= 0.8485 +H-B Ks= 385.25 R0= 1.1938 De= 0.7747 +H-S Ks= 415.75 R0= 1.3493 De= 0.6438 +H-P Ks= 363.28 R0= 1.4033 De= 0.5327 +F-F Ks= 599.55 R0= 1.4111 De= 0.2414 +F-C Ks= 573.94 R0= 1.4183 De= 0.8204 +F-N Ks= 524.14 R0= 1.4138 De= 0.4805 +F-O Ks= 524.82 R0= 1.4284 De= 0.3222 +F-B Ks= 674.89 R0= 1.3298 De= 1.1693 +### F-S -- no energy zero +F-S Ks= 414.90 R0= 1.6726 De= 0.5560 +F-P Ks= 464.48 R0= 1.6298 De= 0.6214 +C+C Ks=1730.61 R0= 1.2085 De= 1.8689 +C-C Ks= 437.82 R0= 1.5488 De= 0.7578 +C-N Ks= 497.22 R0= 1.5036 De= 0.6519 +C-O Ks= 538.53 R0= 1.4570 De= 0.6953 +C-B Ks= 374.86 R0= 1.5709 De= 0.7836 +C-S Ks= 310.12 R0= 1.8444 De= 0.5671 +C-P Ks= 299.57 R0= 1.8514 De= 0.4918 +N-N Ks= 506.79 R0= 1.4608 De= 0.4548 +N-O Ks= 533.13 R0= 1.4246 De= 0.4571 +N-B Ks= 592.16 R0= 1.4282 De= 0.9424 +N-S Ks= 342.60 R0= 1.7715 De= 0.4387 +N-P Ks= 352.72 R0= 1.7607 De= 0.3841 +O-O Ks= 495.90 R0= 1.4427 De= 0.3277 +O-B Ks= 596.39 R0= 1.3882 De= 0.9424 +### O-S -- no energy zero +O-S Ks= 349.25 R0= 1.7332 De= 0.4774 +O-P Ks= 439.50 R0= 1.6698 De= 0.5014 +B-B Ks= 255.71 R0= 1.7579 De= 0.6481 +B-S Ks= 280.54 R0= 1.8715 De= 0.6401 +B-P Ks= 321.32 R0= 1.8405 De= 0.6418 +S-S Ks= 215.90 R0= 2.1596 De= 0.3505 +S-P Ks= 242.40 R0= 2.1221 De= 0.3651 +P-P Ks= 207.05 R0= 2.2003 De= 0.2030 +Cl-Si Ks= 275.90 R0= 2.0824 De= 0.7021 +H-Si Ks= 290.41 R0= 1.4873 De= 0.6601 +F-Si Ks= 507.97 R0= 1.6332 De= 0.9925 +Si-Si Ks= 165.22 R0= 2.3609 De= 0.5095 +Si-C Ks= 272.66 R0= 1.8880 De= 0.6522 +Si-N Ks= 359.22 R0= 1.7806 De= 0.6579 +Si-O Ks= 434.29 R0= 1.6951 De= 0.7898 +Si-B Ks= 204.42 R0= 2.0340 De= 0.5867 +Si-S Ks= 231.15 R0= 2.1730 De= 0.5644 +Si-P Ks= 201.44 R0= 2.2526 De= 0.4227 +C+N Ks=2004.91 R0= 1.1580 De= 1.6892 +### O=O -- no energy zero +O=O Ks=1257.24 R0= 1.2159 De= 0.2724 +O=C Ks=1359.14 R0= 1.2118 De= 1.2578 +C=C Ks= 988.51 R0= 1.3344 De= 1.2708 +N+N Ks=2477.70 R0= 1.1054 De= 1.5347 +N=N Ks=1278.37 R0= 1.2315 De= 0.8346 +N=O Ks=1320.74 R0= 1.2056 De= 0.7920 +N=C Ks=1167.02 R0= 1.2701 De= 1.1232 diff --git a/sim/src/parameters/the b/sim/src/parameters/the new file mode 100755 index 000000000..93e59a31b --- /dev/null +++ b/sim/src/parameters/the @@ -0,0 +1,35 @@ +#! /usr/bin/python + +import os +import sys +import re +from math import pi + +thetapat = re.compile(" INPUT CARD\> *theta *= *([\d\.-]+)") +engpat = re.compile(" FINAL U-B3LYP ENERGY IS +([\d\.-]+)") +betapat = re.compile(" COORD 1= *([\d\.-]+)") +potpat = re.compile(" POTENTIAL SURFACE MAP INPUT") +orgpat = re.compile(" HAS ORIGIN= *([\d\.-]+)") + + +Hartree = 4.3597482 # attoJoules +Bohr = 0.5291772083 # Angstroms + +def findnext(f,pat): + while 1: + card = f.readline() + if not card: return None + m = pat.match(card) + if m: return m + +def ending(nam,suf): + if suf==nam[-len(suf):]: return nam + else: return nam+suf + +for name in sys.argv[1:]: + f=open(ending(name,'.log'),"r") + theta = 2*(180-float(findnext(f,thetapat).group(1)))*pi/180.0 + e = float(findnext(f,engpat).group(1))*Hartree + + print theta, e + diff --git a/sim/src/parameters/xe b/sim/src/parameters/xe new file mode 100755 index 000000000..df69fa2ca --- /dev/null +++ b/sim/src/parameters/xe @@ -0,0 +1,51 @@ +#! /usr/bin/python + +import os +import sys +import re + +hevpat = re.compile(" HAS ENERGY VALUE +([\d\.-]+)") +betapat = re.compile(" COORD 1= *([\d\.-]+)") +potpat = re.compile(" POTENTIAL SURFACE MAP INPUT") +orgpat = re.compile(" HAS ORIGIN= *([\d\.-]+)") + + +Hartree = 4.3597482 # attoJoules +Bohr = 0.5291772083 # Angstroms + +def findnext(f,pat): + while 1: + card = f.readline() + if not card: return None + m = pat.match(card) + if m: return m + +def ending(nam,suf): + if suf==nam[-len(suf):]: return nam + else: return nam+suf + +def xeread(name): + f=open(ending(name,'.log'),"r") + x = [] + e= [] + + findnext(f, potpat) + #org=float(findnext(f,orgpat).group(1)) + + while 1: + m = findnext(f, betapat) + m1 = findnext(f,hevpat) + if not (m and m1): break + x += [float(m.group(1))] + e += [float(m1.group(1))*Hartree] + + f.close() + return x,e + + +name = sys.argv[1] +x,e = xeread(name) + +for i in range(len(x)): + print x[i],e[i] + diff --git a/sim/src/parameters/xecc b/sim/src/parameters/xecc new file mode 100755 index 000000000..21957b862 --- /dev/null +++ b/sim/src/parameters/xecc @@ -0,0 +1,16 @@ +-0.4 -336.780032737 +-0.3 -337.430821071 +-0.2 -337.76534455 +-0.1 -337.903910427 +0.0 -337.922356522 +0.1 -727.285617482 +0.3 -709.589068197 +0.6 -339.373555387 +0.7 -339.470947802 +0.8 -339.547491901 +0.9 -339.607577951 +1.0 -687.792550669 +1.2 -338.190773139 +1.3 -339.743253315 +1.4 -339.760810021 +1.5 -339.774996641 diff --git a/sim/src/part.c b/sim/src/part.c new file mode 100755 index 000000000..dc14e9804 --- /dev/null +++ b/sim/src/part.c @@ -0,0 +1,2845 @@ +// Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. + +#include "simulator.h" + +#define CHECK_VALID_BOND(b) { \ + NULLPTR(b); NULLPTR((b)->a1); NULLPTR((b)->a2); } + +static char const rcsid[] = "$Id$"; + +// This is the default value for the p->parseError() function. +// p->parseError() is called by routines in this file while a part is +// being constructed. It generally points to a routine that can emit +// line number and character position information to identify the +// location of the error in the input file. The stream pointer is +// used to pass that information through to the parser's parseError +// routine. +// +// If the parser does not declare a parseError routine, or after +// endPart() is called to indicate that the parser is no longer +// responsible for errors, this routine will be installed as +// p->parseError(). When that happens, the stream pointer is set to +// the part, allowing us to extract and print the filename where the +// problem was found. +static int +defaultParseError(void *stream) +{ + struct part *p; + + p = (struct part *)stream; + ERROR1("Parsing part %s", p->filename); + done("Failed to parse part %s", p->filename); + RAISER("Failed to parse part", 0); +} + +// Create a new part. Pass in a filename (or any other string +// identifying where the data for this part is coming from), and an +// error handler. The parseError() routine will be called with stream +// as it's only argument if any of the routines in this file detect an +// error before you call endPart(). Pass NULL for both parseError and +// stream to use a default error handler. The default error handler +// will also be used after a call to endPart() if an error is +// detected. +struct part * +makePart(char *filename, int (*parseError)(void *), void *stream) +{ + struct part *p; + struct rigidBody *rb; + + p = (struct part *)allocate(sizeof(struct part)); + memset(p, 0, sizeof(struct part)); + p->max_atom_id = -1; + p->filename = copy_string(filename); + p->parseError = parseError ? parseError : &defaultParseError; + p->stream = parseError ? stream : p; + + p->num_rigidBodies = 1 ; + p->rigidBodies = (struct rigidBody *)accumulator(p->rigidBodies, sizeof(struct rigidBody), 0); + rb = &p->rigidBodies[0]; + memset(rb, 0, sizeof(struct rigidBody)); + rb->name = copy_string("$Anchor"); + + return p; +} + +void +destroyPart(struct part *p) +{ + int i; + int k; + struct atom *a; + struct bond *b; + struct jig *j; + struct vanDerWaals *v; + struct rigidBody *rb; + + if (p == NULL){ + return; + } + if (p->filename != NULL) { + free(p->filename); + p->filename = NULL; + } + // p->stream is handled by caller. readmmp just keeps the stream + // in it's stack frame. + destroyAccumulator(p->atom_id_to_index_plus_one); + p->atom_id_to_index_plus_one = NULL; + for (i=0; i<p->num_atoms; i++) { + a = p->atoms[i]; + + //a->type points into periodicTable, don't free + //a->prev and next just point to other atoms + //a->bonds has pointers into the p->bonds array + if (a->bonds != NULL) { + free(a->bonds); + a->bonds = NULL; + } + free(a); + } + destroyAccumulator(p->atoms); + p->atoms = NULL; + destroyAccumulator(p->charged_atoms); + p->charged_atoms = NULL; + destroyAccumulator(p->positions); + p->positions = NULL; + destroyAccumulator(p->velocities); + p->velocities = NULL; + + for (i=0; i<p->num_bonds; i++) { + b = p->bonds[i]; + // b->a1 and a2 point to already freed atoms + free(b); + } + destroyAccumulator(p->bonds); + p->bonds = NULL; + + for (i=0; i<p->num_jigs; i++) { + j = p->jigs[i]; + if (j->name != NULL) { + free(j->name); + j->name = NULL; + } + free(j->atoms); + j->atoms = NULL; + if (j->type == RotaryMotor) { + if (j->j.rmotor.u != NULL) { + free(j->j.rmotor.u); + free(j->j.rmotor.v); + free(j->j.rmotor.w); + free(j->j.rmotor.rPrevious); + j->j.rmotor.u = NULL; + j->j.rmotor.v = NULL; + j->j.rmotor.w = NULL; + j->j.rmotor.rPrevious = NULL; + } + } + free(j); + } + destroyAccumulator(p->jigs); + p->jigs = NULL; + + if (p->rigid_body_info != NULL) { + rigid_destroy(p); + p->rigid_body_info = NULL; + } + for (i=0; i<p->num_rigidBodies; i++) { + rb = &p->rigidBodies[i]; + free(rb->name); + rb->name = NULL; + destroyAccumulator(rb->stations); + rb->stations = NULL; + for (k=0; k<rb->num_stations; k++) { + free(rb->stationNames[k]); + } + destroyAccumulator(rb->stationNames); + rb->stationNames = NULL; + destroyAccumulator(rb->axes); + rb->axes = NULL; + for (k=0; k<rb->num_axes; k++) { + free(rb->axisNames[k]); + } + destroyAccumulator(rb->axisNames); + rb->axisNames = NULL; + free(rb->attachmentLocations); + rb->attachmentLocations = NULL; + free(rb->attachmentAtomIndices); + rb->attachmentAtomIndices = NULL; + } + destroyAccumulator(p->rigidBodies); + p->rigidBodies = NULL; + + // joint has no separately allocated storage + destroyAccumulator(p->joints); + p->joints = NULL; + + for (i=0; i<p->num_vanDerWaals; i++) { + v = p->vanDerWaals[i]; + if (v != NULL) { + // v->a1 and v->a2 already freed + // v->parameters still held by vdw hashtable + free(v); + p->vanDerWaals[i] = NULL; + } + } + destroyAccumulator(p->vanDerWaals); + p->vanDerWaals = NULL; + + // nothing in a stretch needs freeing + if (p->stretches != NULL) { + free(p->stretches); + p->stretches = NULL; + } + + // nothing in a bend needs freeing + if (p->bends != NULL) { + free(p->bends); + p->bends = NULL; + } + + // nothing in a torsion needs freeing + if (p->torsions != NULL) { + free(p->torsions); + p->torsions = NULL; + } + + // nothing in a cumuleneTorsion needs freeing + if (p->cumuleneTorsions != NULL) { + free(p->cumuleneTorsions); + p->cumuleneTorsions = NULL; + } + + // nothing in an outOfPlane needs freeing + if (p->outOfPlanes != NULL) { + free(p->outOfPlanes); + p->outOfPlanes = NULL; + } + + free(p); +} + +// Add a bond to the bond list for a single atom. +static void +addBondToAtom(struct part *p, struct bond *b, struct atom *a) +{ + int i; + + for (i=0; i<a->num_bonds; i++) { + if (a->bonds[i] == NULL) { + a->bonds[i] = b; + return; + } + } + ERROR("Internal error: No slot for bond in atom"); + p->parseError(p->stream); +} + +// After creating all of the atoms and bonds, we go back and tell each +// atom which bonds it is a part of. +static void +addBondsToAtoms(struct part *p) +{ + int i; + struct bond *b; + struct atom *a; + + NULLPTR(p); + for (i=0; i<p->num_bonds; i++) { + /* + * I've seen a few different bugs with null pointers here. We + * should try to get a warning of some kind. + */ + b = p->bonds[i]; + CHECK_VALID_BOND(b); + b->a1->num_bonds++; + b->a2->num_bonds++; + } + for (i=0; i<p->num_atoms; i++) { + a = p->atoms[i]; + a->bonds = (struct bond **)allocate(sizeof(struct bond *) * a->num_bonds); + memset(a->bonds, 0, sizeof(struct bond *) * a->num_bonds); + } + for (i=0; i<p->num_bonds; i++) { + b = p->bonds[i]; + addBondToAtom(p, b, b->a1); BAIL(); + addBondToAtom(p, b, b->a2); BAIL(); + } +} + +// Called to indicate that a parser has finished reading data for this +// part. Finalizes the data structures and switches to the default +// error handler. +struct part * +endPart(struct part *p) +{ + p->parseError = &defaultParseError; + p->stream = p; + p->num_vanDerWaals = p->num_static_vanDerWaals; + + // XXX realloc any accumulators + + addBondsToAtoms(p); + + // other routines should: + // build stretchs, bends, and torsions + // calculate initial velocities + + return p; +} + +void +initializePart(struct part *p) +{ + updateVanDerWaals(p, NULL, p->positions); BAIL(); + generateStretches(p); BAIL(); + generateBends(p); BAIL(); + generateTorsions(p); BAIL(); + generateOutOfPlanes(p); BAIL(); + rigid_init(p); +} + +// Creates a stretch for each bond in the part. +void +generateStretches(struct part *p) +{ + int i; + + p->num_stretches = p->num_bonds; + p->stretches = (struct stretch *)allocate(sizeof(struct stretch) * p->num_stretches); + for (i=0; i<p->num_bonds; i++) { + CHECK_VALID_BOND(p->bonds[i]); + // XXX skip stretch if both ends are grounded + p->stretches[i].a1 = p->bonds[i]->a1; + p->stretches[i].a2 = p->bonds[i]->a2; + p->stretches[i].b = p->bonds[i]; + // XXX really should send struct atomType instead of protons + p->stretches[i].stretchType = getBondStretch(p->stretches[i].a1->type->protons, + p->stretches[i].a2->type->protons, + p->bonds[i]->order); + } +} + +// Fill in the bend data structure for a bend centered on the given +// atom. The two bonds that make up the bend are indexed in the +// center atom's bond array. +static void +makeBend(struct part *p, int bend_number, struct atom *a, int bond1, int bond2) +{ + struct bend *b; + + b = &p->bends[bend_number]; + b->ac = a; + b->b1 = a->bonds[bond1]; + b->b2 = a->bonds[bond2]; + + CHECK_VALID_BOND(b->b1); + if (b->b1->a1 == a) { + b->a1 = b->b1->a2; + b->dir1 = 1; + } else if (b->b1->a2 == a) { + b->a1 = b->b1->a1; + b->dir1 = 0; + } else { + // print a better error if it ever happens... + fprintf(stderr, "neither end of bond on center!"); + } + + CHECK_VALID_BOND(b->b2); + if (b->b2->a1 == a) { + b->a2 = b->b2->a2; + b->dir2 = 1; + } else if (b->b2->a2 == a) { + b->a2 = b->b2->a1; + b->dir2 = 0; + } else { + // print a better error if it ever happens... + fprintf(stderr, "neither end of bond on center!"); + } + + // XXX should just use atomType instead of protons + b->bendType = getBendData(a->type->protons, + a->hybridization, + b->a1->type->protons, b->b1->order, + b->a2->type->protons, b->b2->order); +} + +// Creates a bend for each pair of adjacent bonds in the part. +void +generateBends(struct part *p) +{ + int i; + int j; + int k; + int bend_index = 0; + struct atom *a; + + // first, count the number of bends + for (i=0; i<p->num_atoms; i++) { + a = p->atoms[i]; + for (j=0; j<a->num_bonds; j++) { + for (k=j+1; k<a->num_bonds; k++) { + p->num_bends++; + } + } + } + + p->bends = (struct bend *)allocate(sizeof(struct bend) * p->num_bends); + + // now, fill them in (make sure loop structure is same as above) + for (i=0; i<p->num_atoms; i++) { + a = p->atoms[i]; + for (j=0; j<a->num_bonds; j++) { + for (k=j+1; k<a->num_bonds; k++) { + makeBend(p, bend_index++, a, j, k); BAIL(); + } + } + } +} + +static void +makeTorsion(struct part *p, int index, struct bond *center, struct bond *b1, struct bond *b2) +{ + struct torsion *t = &(p->torsions[index]); + + t->aa = center->a1; + t->ab = center->a2; + t->a1 = b1->a1 == t->aa ? b1->a2 : b1->a1; + t->a2 = b2->a1 == t->ab ? b2->a2 : b2->a1; + + // These numbers are based on a torsion around a Carbon-Carbon bond. + switch (center->order) { + case '2': + // Barrior to rotation of a simple alkene is about 265 kJ/mol, but + // can be on the order of 50 kJ/mol for "captodative ethylenes", + // where the charge density on the carbons involved in the double + // bond has been significantly altered. + // [[Advanced Organic Chemistry, Jerry March, Fourth Edition, + // Chapter 4, p.129.]] + // A is in aJ/rad^2, but rotational barrior is 2A + // 2.65e5 J/mol == 4.4e-19 J/bond + // A = 2.2e-19 or 0.22 aJ + t->A = 0.22; // XXX need to get actual value from real parameters + break; + case 'a': + case 'g': + // Damian has calculated the following for a small graphitic system + t->A = 0.37013376; + break; + default: + t->A = 0; + } +} + +// This is called for every double bond in the cumulene chain. On +// either end of the chain, there should be atoms of sp2 +// hybridization. In the middle, all of the atoms are sp. This +// routine returns non-zero only when called with b as one of the two +// ending bonds, but not the other one. When it does return non-zero, +// b2 is filled in with the other ending bond, and aa, ab, ay, and az +// are the atoms on either end of the bonds b and b2. So, atom aa +// will be sp2, as will az, while ab and ay are sp. The total number +// of double bonds in the chain (including b and b2) is returned in n. +static int +findCumuleneTorsion(struct bond *b, + struct bond **b2, + struct atom **aa, + struct atom **ab, + struct atom **ay, + struct atom **az, + int *n) +{ + int chainLength; + struct bond *lastBond; + struct bond *nextBond; + struct atom *nextAtom; + + if (b->a1->hybridization == sp && b->a2->hybridization == sp) { + return 0; // middle of the chain. + } + if (b->a1->hybridization != sp && b->a2->hybridization != sp) { + return 0; // not a cumulene + } + if (b->a1->hybridization == sp) { + nextAtom = b->a1; + *aa = b->a2; + *ab = b->a1; + } else { + nextAtom = b->a2; + *aa = b->a1; + *ab = b->a2; + } + nextBond = lastBond = b; + chainLength = 1; + while (nextAtom->hybridization == sp) { + if (nextAtom->num_bonds != 2) { + // XXX complain, I thought this thing was supposed to be sp, that means TWO bonds! + return 0; + } + if (nextAtom->bonds[0] == lastBond) { + nextBond = nextAtom->bonds[1]; + } else { + nextBond = nextAtom->bonds[0]; + } + switch (nextBond->order) { + case '2': + case 'a': + case 'g': // we're being lenient here, a and g don't really make sense + break; + default: + return 0; // chain terminated by a non-double bond, no torsions + } + if (nextBond->a1 == nextAtom) { + nextAtom = nextBond->a2; + } else { + nextAtom = nextBond->a1; + } + lastBond = nextBond; + chainLength++; + } + if ((*aa)->index >= nextAtom->index) { + return 0; // only pick one end of the chain + } + *az = nextAtom; + *b2 = nextBond; + *n = chainLength; + if (nextBond->a1 == nextAtom) { + *ay = nextBond->a2; + } else { + *ay = nextBond->a1; + } + return 1; +} + +static void +makeCumuleneTorsion(struct part *p, + int index, + struct atom *aa, + struct atom *ab, + struct atom *ay, + struct atom *az, + int j, + int k, + int n) +{ + struct cumuleneTorsion *t = &(p->cumuleneTorsions[index]); + + if (aa->bonds[j]->a1 == aa) { + t->a1 = aa->bonds[j]->a2; + } else { + t->a1 = aa->bonds[j]->a1; + } + t->aa = aa; + t->ab = ab; + t->ay = ay; + t->az = az; + if (az->bonds[k]->a1 == az) { + t->a2 = az->bonds[k]->a2; + } else { + t->a2 = az->bonds[k]->a1; + } + t->numberOfDoubleBonds = n; + t->A = 0.22 / ((double)n); // XXX need actual value here +} + +// Creates a torsion for each triplet of adjacent bonds in the part, +// where the center bond is graphitic, aromatic, or double. If one +// end of a double bond is an sp atom, we make a cumuleneTorsion +// instead. +void +generateTorsions(struct part *p) +{ + int i; + int j; + int k; + int torsion_index = 0; + int cumuleneTorsion_index = 0; + struct bond *b; + struct bond *b2; + struct atom *ct_a; + struct atom *ct_b; + struct atom *ct_y; + struct atom *ct_z; + int n; + + // first, count the number of torsions + for (i=0; i<p->num_bonds; i++) { + b = p->bonds[i]; + CHECK_VALID_BOND(b); + switch (b->order) { + case 'a': + case 'g': + case '2': + if (b->a1->hybridization == sp || b->a2->hybridization == sp) { + if (findCumuleneTorsion(b, &b2, &ct_a, &ct_b, &ct_y, &ct_z, &n)) { + for (j=0; j<ct_a->num_bonds; j++) { + if (ct_a->bonds[j] != b) { + for (k=0; k<ct_z->num_bonds; k++) { + if (ct_z->bonds[k] != b2) { + p->num_cumuleneTorsions++; + } + } + } + } + } + break; + } + for (j=0; j<b->a1->num_bonds; j++) { + if (b->a1->bonds[j] != b) { + for (k=0; k<b->a2->num_bonds; k++) { + if (b->a2->bonds[k] != b) { + p->num_torsions++; + } + } + } + } + break; + default: + break; + } + + } + + p->torsions = (struct torsion *)allocate(sizeof(struct torsion) * p->num_torsions); + p->cumuleneTorsions = (struct cumuleneTorsion *)allocate(sizeof(struct cumuleneTorsion) * p->num_cumuleneTorsions); + + // now, fill them in (make sure loop structure is same as above) + for (i=0; i<p->num_bonds; i++) { + b = p->bonds[i]; + CHECK_VALID_BOND(b); + switch (b->order) { + case 'a': + case 'g': + case '2': + if (b->a1->hybridization == sp || b->a2->hybridization == sp) { + if (findCumuleneTorsion(b, &b2, &ct_a, &ct_b, &ct_y, &ct_z, &n)) { + for (j=0; j<ct_a->num_bonds; j++) { + if (ct_a->bonds[j] != b) { + for (k=0; k<ct_z->num_bonds; k++) { + if (ct_z->bonds[k] != b2) { + makeCumuleneTorsion(p, cumuleneTorsion_index++, ct_a, ct_b, ct_y, ct_z, j, k, n); + } + } + } + } + } + break; + } + for (j=0; j<b->a1->num_bonds; j++) { + if (b->a1->bonds[j] != b) { + for (k=0; k<b->a2->num_bonds; k++) { + if (b->a2->bonds[k] != b) { + makeTorsion(p, torsion_index++, b, b->a1->bonds[j], b->a2->bonds[k]); + } + } + } + } + default: + break; + } + + } +} + +static void +makeOutOfPlane(struct part *p, int index, struct atom *a) +{ + struct outOfPlane *o = &(p->outOfPlanes[index]); + struct bond *b; + + o->ac = a; + b = a->bonds[0]; + o->a1 = b->a1 == a ? b->a2 : b->a1; + b = a->bonds[1]; + o->a2 = b->a1 == a ? b->a2 : b->a1; + b = a->bonds[2]; + o->a3 = b->a1 == a ? b->a2 : b->a1; + + // A is in aJ/pm^2 + o->A = 0.00025380636; // This is for carbon in graphene with deflection less than 0.5 pm. + //o->A = 0.0005; // XXX need to get actual value from real parameters +} + +// Creates an outOfPlane for each sp2 atom +void +generateOutOfPlanes(struct part *p) +{ + int i; + int outOfPlane_index = 0; + struct atom *a; + + // first, count the number of outOfPlanes + for (i=0; i<p->num_atoms; i++) { + a = p->atoms[i]; + switch (a->hybridization) { + case sp2: + case sp2_g: + if (a->num_bonds == 3) { + p->num_outOfPlanes++; + } + default: + break; + } + + } + + p->outOfPlanes = (struct outOfPlane *)allocate(sizeof(struct outOfPlane) * p->num_outOfPlanes); + + // now, fill them in (make sure loop structure is same as above) + for (i=0; i<p->num_atoms; i++) { + a = p->atoms[i]; + switch (a->hybridization) { + case sp2: + case sp2_g: + if (a->num_bonds == 3) { + makeOutOfPlane(p, outOfPlane_index++, a); + } // else WARNING ??? + default: + break; + } + + } +} + +// use these if the vdw generation code fails to create or destroy an +// interaction when it should, as determined by the verification +// routine. The grid locations of the two indicated atoms will be +// printed each time, along with indications of when the interaction +// between them is created or destroyed. +//#define TRACK_VDW_PAIR +//#define VDW_FIRST_ATOM_ID 61 +//#define VDW_SECOND_ATOM_ID 73 + +// Scan the dynamic van der Waals list and mark as invalid any +// interaction involving atom a. +static void +invalidateVanDerWaals(struct part *p, struct atom *a) +{ + int i; + struct vanDerWaals *vdw; + + for (i=p->num_static_vanDerWaals; i<p->num_vanDerWaals; i++) { + vdw = p->vanDerWaals[i]; + if (vdw && (vdw->a1 == a || vdw->a2 == a)) { +#ifdef TRACK_VDW_PAIR + if (vdw->a1->atomID == VDW_FIRST_ATOM_ID && vdw->a2->atomID == VDW_SECOND_ATOM_ID) { + fprintf(stderr, "deleting vdw from %d to %d\n", vdw->a1->atomID, vdw->a2->atomID); + } +#endif + p->vanDerWaals[i] = NULL; + free(vdw); + if (i < p->start_vanDerWaals_free_scan) { + p->start_vanDerWaals_free_scan = i; + } + } + } +} + +// Find a free slot in the dynamic van der Waals list (either one +// marked invalid above, or a new one appended to the list). Fill it +// with a new, valid, interaction. +static void +makeDynamicVanDerWaals(struct part *p, struct atom *a1, struct atom *a2) +{ + int i; + struct vanDerWaals *vdw = NULL; + + vdw = (struct vanDerWaals *)allocate(sizeof(struct vanDerWaals)); + + for (i=p->start_vanDerWaals_free_scan; i<p->num_vanDerWaals; i++) { + if (!(p->vanDerWaals[i])) { + p->vanDerWaals[i] = vdw; + p->start_vanDerWaals_free_scan = i + 1; + break; + } + } + if (i >= p->num_vanDerWaals) { + p->num_vanDerWaals++; + p->vanDerWaals = (struct vanDerWaals **) + accumulator(p->vanDerWaals, + sizeof(struct vanDerWaals *) * p->num_vanDerWaals, 0); + p->vanDerWaals[p->num_vanDerWaals - 1] = vdw; + p->start_vanDerWaals_free_scan = p->num_vanDerWaals; + } + vdw->a1 = a1; + vdw->a2 = a2; + vdw->parameters = getVanDerWaalsTable(a1->type->protons, a2->type->protons); +#ifdef TRACK_VDW_PAIR + if (a1->atomID == VDW_FIRST_ATOM_ID && a2->atomID == VDW_SECOND_ATOM_ID) { + fprintf(stderr, "creating vdw from %d to %d\n", a1->atomID, a2->atomID); + } +#endif +} + +// Scan the dynamic electrostatic list and mark as invalid any +// interaction involving atom a. +static void +invalidateElectrostatic(struct part *p, struct atom *a) +{ + int i; + struct electrostatic *es; + + for (i=0; i<p->num_electrostatic; i++) { + es = p->electrostatic[i]; + if (es && (es->a1 == a || es->a2 == a)) { + p->electrostatic[i] = NULL; + free(es); + if (i < p->start_electrostatic_free_scan) { + p->start_electrostatic_free_scan = i; + } + } + } +} + +// Find a free slot in the dynamic electrostatic list (either one +// marked invalid above, or a new one appended to the list). Fill it +// with a new, valid, interaction. +static void +makeDynamicElectrostatic(struct part *p, struct atom *a1, struct atom *a2) +{ + int i; + struct electrostatic *es = NULL; + + es = (struct electrostatic *)allocate(sizeof(struct electrostatic)); + + for (i=p->start_electrostatic_free_scan; i<p->num_electrostatic; i++) { + if (!(p->electrostatic[i])) { + p->electrostatic[i] = es; + p->start_electrostatic_free_scan = i + 1; + break; + } + } + if (i >= p->num_electrostatic) { + p->num_electrostatic++; + p->electrostatic = (struct electrostatic **) + accumulator(p->electrostatic, + sizeof(struct electrostatic *) * p->num_electrostatic, 0); + p->electrostatic[p->num_electrostatic - 1] = es; + p->start_electrostatic_free_scan = p->num_electrostatic; + } + es->a1 = a1; + es->a2 = a2; + es->parameters = getElectrostaticParameters(a1->type->protons, a2->type->protons); +} + +// Are a1 and a2 both bonded to the same atom (or to each other)? +static int +isBondedToSame(struct atom *a1, struct atom *a2) +{ + int i; + int j; + struct bond *b1; + struct bond *b2; + struct atom *ac; + + if (a1 == a2) { + return 1; + } + for (i=0; i<a1->num_bonds; i++) { + b1 = a1->bonds[i]; + ac = (b1->a1 == a1) ? b1->a2 : b1->a1; + if (ac == a2) { + // bonded to each other + return 1; + } + for (j=0; j<a2->num_bonds; j++) { + b2 = a2->bonds[j]; + if (ac == ((b2->a1 == a2) ? b2->a2 : b2->a1)) { + // both bonded to common atom ac + return 1; + } + } + } + return 0; +} + +static void +verifyVanDerWaals(struct part *p, struct xyz *positions) +{ + int *seen; + int i; + int j; + int k; + struct atom *a1, *a2; + double r1, r2; + int i1, i2; + struct xyz p1, p2; + struct vanDerWaals *vdw; + double rvdw; + double distance; + int found; + int actual_count; + int notseen_count; + + seen = (int *)allocate(sizeof(int) * p->num_vanDerWaals); + // wware 060109 python exception handling + NULLPTR(seen); + for (i=0; i<p->num_vanDerWaals; i++) { + seen[i] = 0; + } + + for (j=0; j<p->num_atoms; j++) { + a1 = p->atoms[j]; + i1 = a1->index; + r1 = a1->type->vanDerWaalsRadius; // angstroms + p1 = positions[i1]; + for (k=j+1; k<p->num_atoms; k++) { + a2 = p->atoms[k]; + if (!isBondedToSame(a1, a2)) { + i2 = a2->index; + r2 = a2->type->vanDerWaalsRadius; // angstroms + p2 = positions[i2]; + rvdw = (r1 + r2) * 100.0; // picometers + distance = vlen(vdif(p1, p2)); + if (distance < rvdw * VanDerWaalsCutoffFactor) { + found = 0; + for (i=0; i<p->num_vanDerWaals; i++) { + vdw = p->vanDerWaals[i]; + if (vdw != NULL) { + CHECK_VALID_BOND(vdw); + if (vdw->a1 == a1 && vdw->a2 == a2) { + seen[i] = 1; + found = 1; + break; + } + } + } + if (!found) { + testAlert("missing vdw: a1:"); + printAtomShort(stderr, a1); + testAlert(" a2:"); + printAtomShort(stderr, a2); + testAlert(" distance: %f rvdw: %f\n", distance, rvdw); + } + } + } + } + } + actual_count = 0; + notseen_count = 0; + for (i=0; i<p->num_vanDerWaals; i++) { + vdw = p->vanDerWaals[i]; + if (vdw != NULL) { + actual_count++; + if (!seen[i]) { + notseen_count++; + CHECK_VALID_BOND(vdw); + p1 = positions[vdw->a1->index]; + p2 = positions[vdw->a2->index]; + distance = vlen(vdif(p1, p2)); + r1 = vdw->a1->type->vanDerWaalsRadius; // angstroms + r2 = vdw->a2->type->vanDerWaalsRadius; // angstroms + rvdw = (r1 + r2) * 100.0; // picometers + if (distance < rvdw * VanDerWaalsCutoffFactor) { + testAlert("should have found this one above!!!\n"); + } + if (distance > rvdw * VanDerWaalsCutoffFactor + 2079.0) { // was 866.0 + testAlert("unnecessary vdw: a1:"); + printAtomShort(stderr, vdw->a1); + testAlert(" a2:"); + printAtomShort(stderr, vdw->a2); + testAlert(" distance: %f rvdw: %f\n", distance, rvdw); + } + } + } + } + //testAlert("num_vdw: %d actual_count: %d not_seen: %d\n", p->num_vanDerWaals, actual_count, notseen_count); + free(seen); // yes, alloca would work here too. +} + +// All of space is divided into a cubic grid with each cube being +// GRID_SPACING pm on a side. Every GRID_OCCUPANCY cubes in each +// direction there is a bucket. Every GRID_SIZE buckets the grid +// wraps back on itself, so that each bucket stores atoms that are in +// an infinite number of grid cubes, where the cubes are some multiple +// of GRID_SPACING * GRID_OCCUPANCY * GRID_SIZE pm apart. GRID_SIZE +// must be a power of two, so the index along a particular dimension +// of the bucket array where a particular coordinates is found is +// calculated with: (int(x/GRID_SPACING) * GRID_OCCUPANCY) & +// (GRID_SIZE-1). +// +// Buckets can overlap. When deciding if an atom is still in the same +// bucket, a fuzzy match is used, masking off one or more low order +// bits of the bucket array index. When an atom leaves a bucket +// according to the fuzzy matching, it is placed in a new bucket based +// on the non-fuzzy index into the bucket array. In this way, an atom +// vibrating less than the bucket overlap distance will remain in the +// same bucket irrespective of it's position with respect to the grid +// while it is vibrating. +// +// The fuzzy match looks like this: moved = (current - previous) & +// GRID_MASK. GRID_MASK is (GRID_SIZE-1) with one or more low order +// bits zeroed. It works correctly if the subtraction is done two's +// complement, it may not for one's complement subtraction. With no +// bits zeroed, there is no overlap. With one zero, the buckets +// overlap by 50%. Two zeros = 3/4 overlap. Three zeros = 7/8 +// overlap. The above are if GRID_OCCUPANCY == 1. Larger values for +// GRID_OCCUPANCY allow overlaps between zero and 50%. +// +// Current algorithm is written for 50% overlap, so GRID_OCCUPANCY is +// assumed to be 1, simplifing the code. +// +// GRID_FUZZY_BUCKET_WIDTH is the size of a fuzzy bucket in bucket +// units. For a 50% overlap it has the value 2. + + + +// Update the dynamic van der Waals list for this part. Validity is a +// tag to prevent rescanning the same configuration a second time. +void +updateVanDerWaals(struct part *p, void *validity, struct xyz *positions) +{ + int i; + int ax; + int ay; + int az; + int ax2; + int ay2; + int az2; + struct atom *a; + struct atom *a2; + struct atom *aNext; + struct atom *aPrev; + struct atom **bucket; + double r; + double rSquared; + double actualR; + double r_maxVdw; + double r_maxElectrostatic; + double coulombK; + struct xyz dr; + double drSquared; + int dx; + int dy; + int dz; + double deltax; + double deltay; + double deltaz; + double deltaXSquared; + double deltaYSquared; + double deltaZSquared; + int signx; + int signy; + int signz; + + // wware 060109 python exception handling + NULLPTR(p); + if (validity && p->vanDerWaals_validity == validity) { + return; + } + if (p->num_atoms <= 0) { + return; + } + NULLPTR(positions); + for (i=0; i<p->num_atoms; i++) { + a = p->atoms[i]; + if (a->type->vanDerWaalsRadius <= 0.0) { + continue; + } + ax = (int)(positions[i].x / GRID_SPACING); + ay = (int)(positions[i].y / GRID_SPACING); + az = (int)(positions[i].z / GRID_SPACING); + +#ifdef TRACK_VDW_PAIR + if (a->atomID == VDW_FIRST_ATOM_ID || a->atomID == VDW_SECOND_ATOM_ID) { + fprintf(stderr, "%d (%d, %d, %d) Iteration %d\n", a->atomID, ax, ay, az, Iteration); + } +#endif + if (a->vdwBucketInvalid || + (ax - a->vdwBucketIndexX) & GRID_MASK_FUZZY || + (ay - a->vdwBucketIndexY) & GRID_MASK_FUZZY || + (az - a->vdwBucketIndexZ) & GRID_MASK_FUZZY) { + + invalidateVanDerWaals(p, a); + invalidateElectrostatic(p, a); + // remove a from it's old bucket chain + if (a->vdwNext) { + a->vdwNext->vdwPrev = a->vdwPrev; + } + if (a->vdwPrev) { + a->vdwPrev->vdwNext = a->vdwNext; + } else { + bucket = &(p->vdwHash[a->vdwBucketIndexX][a->vdwBucketIndexY][a->vdwBucketIndexZ]); + if (*bucket == a) { + *bucket = a->vdwNext; + } + } + // and add it to the new one + a->vdwBucketIndexX = ax & GRID_MASK; + a->vdwBucketIndexY = ay & GRID_MASK; + a->vdwBucketIndexZ = az & GRID_MASK; + a->vdwBucketInvalid = 0; + bucket = &(p->vdwHash[a->vdwBucketIndexX][a->vdwBucketIndexY][a->vdwBucketIndexZ]); + + // If a is charged, we put it on the front of the list, otherwise + // we search for the first non-charged atom and insert it there. + // This maintains the invariant that charged atoms preceed non + // charged atoms. + if (a->isCharged) { + a->vdwNext = *bucket; + a->vdwPrev = NULL; + *bucket = a; + if (a->vdwNext) { + a->vdwNext->vdwPrev = a; + } + } else { + aNext = *bucket; + aPrev = NULL; + while (aNext != NULL && aNext->isCharged) { + aPrev = aNext; + aNext = aNext->vdwNext; + } + // At this point, aNext is the first non-charged atom + // and aPrev is the last charged atom. Either or both + // may be NULL. + a->vdwNext = aNext; + a->vdwPrev = aPrev; + if (aPrev == NULL) { + *bucket = a; + } else { + aPrev->vdwNext = a; + } + if (aNext != NULL) { + aNext->vdwPrev = a; + } + } + + r_maxVdw = (a->type->vanDerWaalsRadius * 100.0 + p->maxVanDerWaalsRadius) * VanDerWaalsCutoffFactor; + r = r_maxVdw; + if (EnableElectrostatic && a->isCharged) { + coulombK = COULOMB * a->type->charge * p->maxParticleCharge / DielectricConstant; + r_maxElectrostatic = fabs(coulombK) / MinElectrostaticSensitivity; + if (r_maxElectrostatic > r) { + r = r_maxElectrostatic; + } + } + + rSquared = r * r; + dx = 0; + while (1) { + // deltax is the minimum distance along the x axis + // between the fuzzy edges of the two buckets we're + // looking at. Both atoms can move within their + // respective fuzzy buckets and will never get closer + // than this along the x axis. If the fuzzy buckets + // overlap, or share an edge, the distance is zero. + deltax = (dx-GRID_FUZZY_BUCKET_WIDTH > 0 ? dx-GRID_FUZZY_BUCKET_WIDTH : 0) * GRID_SPACING; + if (deltax > r) { + break; + } + deltaXSquared = deltax * deltax; + for (signx=-1; signx<=1; signx+=2) { + if (signx > 0 || dx > 0) { + ax2 = ax + dx * signx; + + dy = 0; + while (1) { + deltay = (dy-GRID_FUZZY_BUCKET_WIDTH > 0 ? dy-GRID_FUZZY_BUCKET_WIDTH : 0) * GRID_SPACING; + deltaYSquared = deltay * deltay; + if (deltaXSquared + deltaYSquared > rSquared) { + break; + } + for (signy=-1; signy<=1; signy+=2) { + if (signy > 0 || dy > 0) { + ay2 = ay + dy * signy; + + dz = 0; + while (1) { + deltaz = (dz-GRID_FUZZY_BUCKET_WIDTH > 0 ? dz-GRID_FUZZY_BUCKET_WIDTH : 0) * GRID_SPACING; + deltaZSquared = deltaz * deltaz; + if (deltaXSquared + + deltaYSquared + + deltaZSquared > rSquared) { + break; + } + for (signz=-1; signz<=1; signz+=2) { + if (signz > 0 || dz > 0) { + az2 = az + dz * signz; + // We hit this point in the code once for each bucket + // that could contain an atom of any type which is + // within the maximum vdw cutoff radius. + + a2 = p->vdwHash[ax2&GRID_MASK][ay2&GRID_MASK][az2&GRID_MASK]; + for (; a2 != NULL; a2=a2->vdwNext) { + if (isBondedToSame(a, a2)) { + continue; + } + if (a->type->vanDerWaalsRadius > 0.0 && + a2->type->vanDerWaalsRadius > 0.0) { + // At this point, we know the types of both + // atoms, so we can eliminate buckets which + // might be in range for some atom types, + // but not for this one. + actualR = (a->type->vanDerWaalsRadius * 100.0 + + a2->type->vanDerWaalsRadius * 100.0) + * VanDerWaalsCutoffFactor; + if (deltaXSquared + + deltaYSquared + + deltaZSquared > (actualR * actualR)) { + continue; + } + // Now we check to see if the two atoms are + // actually within the same wrapping of the + // grid. Just because they're in nearby + // buckets, it doesn't mean that they are + // actually near each other. This check is + // very coarse, because we've already + // eliminated intermediate distances. + dr = vdif(positions[i], positions[a2->index]); + drSquared = vdot(dr, dr); + if (drSquared < GRID_WRAP_COMPARE * GRID_WRAP_COMPARE) { + // We insure that all vdw's are created + // with the first atom of lower index + // than the second. + if (i < a2->index) { + makeDynamicVanDerWaals(p, a, a2); BAIL(); + } else { + makeDynamicVanDerWaals(p, a2, a); BAIL(); + } + } + } + if (EnableElectrostatic && a->isCharged && a2->isCharged) { + coulombK = COULOMB * a->type->charge * a2->type->charge / + DielectricConstant; + actualR = fabs(coulombK) / MinElectrostaticSensitivity; + if (deltaXSquared + + deltaYSquared + + deltaZSquared > (actualR * actualR)) { + continue; + } + dr = vdif(positions[i], positions[a2->index]); + drSquared = vdot(dr, dr); + if (drSquared < GRID_WRAP_COMPARE * GRID_WRAP_COMPARE) { + if (i < a2->index) { + makeDynamicElectrostatic(p, a, a2); BAIL(); + } else { + makeDynamicElectrostatic(p, a2, a); BAIL(); + } + } + } + } + } + } + dz++; + } + } + } + dy++; + } + } + } + dx++; + } + } + } + p->vanDerWaals_validity = validity; + if (DEBUG(D_VERIFY_VDW)) { // -D13 + // wware 060109 python exception handling + verifyVanDerWaals(p, positions); BAIL(); + } +} + +// Returns an entry in the p->atoms array, given an external atom id +// (as used in an mmp file, for example). +static struct atom * +translateAtomID(struct part *p, int atomID) +{ + int atomIndex; + + if (atomID < 0 || atomID > p->max_atom_id) { + ERROR2("atom ID %d out of range [0, %d]", atomID, p->max_atom_id); + p->parseError(p->stream); + return NULL; + } + atomIndex = p->atom_id_to_index_plus_one[atomID] - 1; + if (atomIndex < 0) { + ERROR1("atom ID %d not yet encountered", atomID); + p->parseError(p->stream); + return NULL; + } + return p->atoms[atomIndex]; +} + +// gaussianDistribution() and gxyz() are also used by the thermostat jig... + +// generate a random number with a gaussian distribution +// +// see Knuth, Vol 2, 3.4.1.C +static double +gaussianDistribution(double mean, double stddev) +{ + double v0,v1, rSquared; + + do { + // generate random numbers in the range [-1.0 .. 1.0] + v0=(float)rand()/(float)(RAND_MAX/2) - 1.0; + v1=(float)rand()/(float)(RAND_MAX/2) - 1.0; + rSquared = v0*v0 + v1*v1; + } while (rSquared>=1.0 || rSquared==0.0); + // v0 and v1 are uniformly distributed within a unit circle + // (excluding the origin) + return mean + stddev * v0 * sqrt(-2.0 * log(rSquared) / rSquared); +} + +// Generates a gaussian distributed random velocity for a range of +// atoms, scaled by 1/sqrt(mass). The result array must be +// preallocated by the caller. +static void +generateRandomVelocities(struct part *p, struct xyz *velocity, int firstAtom, int lastAtom) +{ + int i; + double stddev; + + for (i=firstAtom; i<=lastAtom; i++) { + stddev = sqrt(2.0 * Boltz * Temperature / (p->atoms[i]->mass * 1e-27)) * Dt / Dx; + velocity[i].x = gaussianDistribution(0.0, stddev); + velocity[i].y = gaussianDistribution(0.0, stddev); + velocity[i].z = gaussianDistribution(0.0, stddev); + } +} + +// Find the center of mass of a range of atoms in the part. +static struct xyz +findCenterOfMass(struct part *p, struct xyz *position, int firstAtom, int lastAtom) +{ + struct xyz com; + struct xyz a; + double mass; + double totalMass = 0.0; + int i; + + vsetc(com, 0.0); + for (i=firstAtom; i<=lastAtom; i++) { + mass = p->atoms[i]->mass; + vmul2c(a, position[i], mass); + vadd(com, a); + totalMass += mass; + } + if (fabs(totalMass) > 1e-20) { + vmulc(com, 1.0/totalMass); + } + return com; +} + +static double +findTotalMass(struct part *p, int firstAtom, int lastAtom) +{ + double mass = 0.0; + int i; + + for (i=firstAtom; i<=lastAtom; i++) { + mass += p->atoms[i]->mass; + } + return mass; +} + +static struct xyz +findAngularMomentum(struct part *p, struct xyz center, struct xyz *position, struct xyz *velocity, int firstAtom, int lastAtom) +{ + int i; + struct xyz total_angular_momentum; + struct xyz ap; + struct xyz r; + double mass; + + vsetc(total_angular_momentum, 0.0); + for (i=firstAtom; i<=lastAtom; i++) { + mass = p->atoms[i]->mass; + vsub2(r, position[i], center); + v2x(ap, r, velocity[i]); // ap = r x (velocity * mass) + vmulc(ap, mass); + vadd(total_angular_momentum, ap); + } + return total_angular_momentum; +} + +static struct xyz +findLinearMomentum(struct part *p, struct xyz *velocity, int firstAtom, int lastAtom) +{ + int i; + struct xyz total_momentum; + struct xyz momentum; + double mass; + + vsetc(total_momentum, 0.0); + for (i=firstAtom; i<=lastAtom; i++) { + mass = p->atoms[i]->mass; + vmul2c(momentum, velocity[i], mass); + vadd(total_momentum, momentum); + } + return total_momentum; +} + +static double +findMomentOfInertiaTensorComponent(struct part *p, + struct xyz *position, + struct xyz com, + int axis1, + int axis2, + int firstAtom, + int lastAtom) +{ + int i; + struct xyza *com_a = (struct xyza *)(&com); + struct xyza *position_a = (struct xyza *)position; + double delta_axis1; + double delta_axis2; + double mass; + double ret = 0.0; + + if (axis1 == axis2) { + // I_xx = sum(m * (y^2 + z^2)) + axis1 = (axis1 + 1) % 3; + axis2 = (axis2 + 2) % 3; + for (i=firstAtom; i<=lastAtom; i++) { + mass = p->atoms[i]->mass; + delta_axis1 = position_a[i].a[axis1] - com_a->a[axis1]; + delta_axis2 = position_a[i].a[axis2] - com_a->a[axis2]; + ret += mass * (delta_axis1 * delta_axis1 + delta_axis2 * delta_axis2); + } + } else { + // I_xy = -sum(m * x * y) + for (i=firstAtom; i<=lastAtom; i++) { + mass = p->atoms[i]->mass; + delta_axis1 = position_a[i].a[axis1] - com_a->a[axis1]; + delta_axis2 = position_a[i].a[axis2] - com_a->a[axis2]; + ret -= mass * delta_axis1 * delta_axis2; + } + } + return ret; +} + + +static void +findMomentOfInertiaTensor(struct part *p, + struct xyz *position, + struct xyz com, + double *inertia_tensor, + int firstAtom, + int lastAtom) +{ + inertia_tensor[0] = findMomentOfInertiaTensorComponent(p, position, com, 0, 0, firstAtom, lastAtom); // xx + inertia_tensor[1] = findMomentOfInertiaTensorComponent(p, position, com, 0, 1, firstAtom, lastAtom); // xy + inertia_tensor[2] = findMomentOfInertiaTensorComponent(p, position, com, 0, 2, firstAtom, lastAtom); // xz + + inertia_tensor[3] = inertia_tensor[1]; // yx = xy + inertia_tensor[4] = findMomentOfInertiaTensorComponent(p, position, com, 1, 1, firstAtom, lastAtom); // yy + inertia_tensor[5] = findMomentOfInertiaTensorComponent(p, position, com, 1, 2, firstAtom, lastAtom); // yz + + inertia_tensor[6] = inertia_tensor[2]; // zx = xz + inertia_tensor[7] = inertia_tensor[5]; // zy = yz + inertia_tensor[8] = findMomentOfInertiaTensorComponent(p, position, com, 2, 2, firstAtom, lastAtom); // zz +} + +static void +addAngularVelocity(struct xyz center, + struct xyz dav, + struct xyz *position, + struct xyz *velocity, + int firstAtom, + int lastAtom) +{ + int i; + struct xyz r; + struct xyz davxr; + + for (i=firstAtom; i<=lastAtom; i++) { + vsub2(r, position[i], center); + v2x(davxr, dav, r); + vadd(velocity[i], davxr); + } +} + +static void +addLinearVelocity(struct xyz dv, + struct xyz *velocity, + int firstAtom, + int lastAtom) +{ + int i; + + for (i=firstAtom; i<=lastAtom; i++) { + vadd(velocity[i], dv); + } +} + +#if 0 +static void +printPositionVelocity(struct xyz *position, struct xyz *velocity, int firstAtom, int lastAtom) +{ + int i; + + for (i=firstAtom; i<=lastAtom; i++) { + printf("%d: (%7.3f, %7.3f, %7.3f) (%7.3f, %7.3f, %7.3f)\n", + i, + position[i].x, + position[i].y, + position[i].z, + velocity[i].x, + velocity[i].y, + velocity[i].z); + } + printf("\n"); +} + +static void +printMomenta(struct part *p, struct xyz *position, struct xyz *velocity, int firstAtom, int lastAtom) +{ + struct xyz com; + struct xyz total_linear_momentum; + struct xyz total_angular_momentum; + + com = findCenterOfMass(p, position, firstAtom, lastAtom); + printf("center of mass: (%f, %f, %f)\n", com.x, com.y, com.z); + total_linear_momentum = findLinearMomentum(p, velocity, firstAtom, lastAtom); + printf("total_linear_momentum: (%f, %f, %f)\n", total_linear_momentum.x, total_linear_momentum.y, total_linear_momentum.z); + + total_angular_momentum = findAngularMomentum(p, com, position, velocity, firstAtom, lastAtom); + printf("total_angular_momentum: (%f, %f, %f)\n", total_angular_momentum.x, total_angular_momentum.y, total_angular_momentum.z); + printPositionVelocity(position, velocity, firstAtom, lastAtom); +} +#endif + +// Alter the given velocities for a range of atoms to remove any +// translational motion, and any rotation around their center of mass. +static void +neutralizeMomentum(struct part *p, struct xyz *position, struct xyz *velocity, int firstAtom, int lastAtom) +{ + struct xyz total_linear_momentum; + struct xyz total_angular_momentum; + struct xyz com; + struct xyz dv; + struct xyz dav; + double inverseTotalMass; + double momentOfInertiaTensor[9]; + double momentOfInertiaTensorInverse[9]; + + com = findCenterOfMass(p, position, firstAtom, lastAtom); + inverseTotalMass = 1.0 / findTotalMass(p, firstAtom, lastAtom); + + total_angular_momentum = findAngularMomentum(p, com, position, velocity, firstAtom, lastAtom); + findMomentOfInertiaTensor(p, position, com, momentOfInertiaTensor, firstAtom, lastAtom); + if (matrixInvert3(momentOfInertiaTensorInverse, momentOfInertiaTensor)) { + matrixTransform(&dav, momentOfInertiaTensorInverse, &total_angular_momentum); + vmulc(dav, -1.0); + addAngularVelocity(com, dav, position, velocity, firstAtom, lastAtom); + } + + total_linear_momentum = findLinearMomentum(p, velocity, firstAtom, lastAtom); + vmul2c(dv, total_linear_momentum, -inverseTotalMass); + addLinearVelocity(dv, velocity, firstAtom, lastAtom); +} + +// Change the given velocities of a range of atoms so that their +// kinetic energies are scaled by the given factor. +static void +scaleKinetic(struct xyz *velocity, double factor, int firstAtom, int lastAtom) +{ + int i; + double velocity_factor = sqrt(factor); + + // ke_old = m v_old^2 / 2 + // ke_new = m v_new^2 / 2 = factor ke_old = factor (m v_old^2 / 2) + // m v_new^2 = factor m v_old^2 + // v_new^2 = factor v_old^2 + // v_new = sqrt(factor) v_old + + for (i=firstAtom; i<=lastAtom; i++) { + vmulc(velocity[i], velocity_factor); + } +} + +void +setThermalVelocities(struct part *p, double temperature) +{ + int firstAtom = 0; + int lastAtom = p->num_atoms-1; + int dof; // degrees of freedom + int i = 0; + double initial_temp; + + if (p->num_atoms == 1 || temperature < 1e-8) { + return; + } + // probably should be 3N-6, but the thermometer doesn't know that + // the linear and angular momentum have been cancelled. + dof = 3 * p->num_atoms; + if (dof < 1) { + dof = 1; + } + + initial_temp = 0.0; + while (fabs(initial_temp) < 1e-8) { + generateRandomVelocities(p, p->velocities, firstAtom, lastAtom); + neutralizeMomentum(p, p->positions, p->velocities, firstAtom, lastAtom); + + // kinetic = 3 k T / 2 + // T = kinetic 2 / 3 k + // calculateKinetic() returns aJ (1e-18 J), so we get Kelvins: + + initial_temp = calculateKinetic(p) * 2.0 * 1e-18 / (Boltz * ((double)dof)); + if (++i > 10) { + ERROR("unable to set initial temperature"); + return; + } + } + + // We scale to get to twice the target temperature, because we're + // assuming the part has been minimized, and the energy will be + // divided between kinetic and potential energy. + scaleKinetic(p->velocities, 2.0 * temperature / initial_temp, firstAtom, lastAtom); +} + + +// Add an atom to the part. ExternalID is the atom number as it +// appears in (for example) an mmp file. ElementType is the number of +// protons (XXX should really be an atomType). +void +makeAtom(struct part *p, int externalID, int elementType, struct xyz position) +{ + double mass; + double vdwRadius; + double absCharge; + struct atom *a; + + if (externalID < 0) { + ERROR1("atom ID %d must be >= 0", externalID); + p->parseError(p->stream); + return; + } + if (externalID > p->max_atom_id) { + p->max_atom_id = externalID; + p->atom_id_to_index_plus_one = (int *)accumulator(p->atom_id_to_index_plus_one, + sizeof(int) * (p->max_atom_id + 1), 1); + } + if (p->atom_id_to_index_plus_one[externalID]) { + ERROR2("atom ID %d already defined with index %d", externalID, p->atom_id_to_index_plus_one[externalID] - 1); + p->parseError(p->stream); + return; + } + p->atom_id_to_index_plus_one[externalID] = ++(p->num_atoms); + + p->atoms = (struct atom **)accumulator(p->atoms, sizeof(struct atom *) * p->num_atoms, 0); + p->positions = (struct xyz *)accumulator(p->positions, sizeof(struct xyz) * p->num_atoms, 0); + p->velocities = (struct xyz *)accumulator(p->velocities, sizeof(struct xyz) * p->num_atoms, 0); + + a = (struct atom *)allocate(sizeof(struct atom)); + memset(a, 0, sizeof(struct atom)); + p->atoms[p->num_atoms - 1] = a; + a->index = p->num_atoms - 1; + a->atomID = externalID; + + vset(p->positions[a->index], position); + vsetc(p->velocities[a->index], 0.0); + + if (!isAtomTypeValid(elementType)) { + ERROR1("Invalid element type: %d", elementType); + p->parseError(p->stream); + return; + } + a->type = getAtomTypeByIndex(elementType); + a->vdwBucketInvalid = 1; + + vdwRadius = a->type->vanDerWaalsRadius * 100.0; // convert from angstroms to pm + if (vdwRadius > p->maxVanDerWaalsRadius) { + p->maxVanDerWaalsRadius = vdwRadius; + } + absCharge = fabs(a->type->charge); + if (absCharge > p->maxParticleCharge) { + p->maxParticleCharge = absCharge; + } + + if (a->type->group == 3) { + a->hybridization = sp2; + } else { + a->hybridization = sp3; + } + + if (a->type->charge != 0.0) { + a->isCharged = 1; + p->num_charged_atoms++; + p->charged_atoms = (struct atom **)accumulator(p->charged_atoms, sizeof(struct atom *) * p->num_charged_atoms, 0); + p->charged_atoms[p->num_charged_atoms - 1] = a; + } + + mass = a->type->mass * 1e-27; + a->mass = a->type->mass; + a->inverseMass = Dt * Dt / mass; +} + +void +setAtomHybridization(struct part *p, int atomID, enum hybridization h) +{ + struct atom *a; + + if (atomID < 0 || atomID > p->max_atom_id || p->atom_id_to_index_plus_one[atomID] < 1) { + ERROR1("setAtomHybridization: atom ID %d not seen yet", atomID); + p->parseError(p->stream); + return; + } + a = p->atoms[p->atom_id_to_index_plus_one[atomID] - 1]; + a->hybridization = h; +} + +// Add a new bond to this part. The atomID's are the external atom +// numbers as found in an mmp file (for example). +void +makeBond(struct part *p, int atomID1, int atomID2, char order) +{ + struct bond *b; + + /*********************************************************************/ + // patch to pretend that carbomeric bonds are the same as double bonds + if (order == 'c') { + order = '2'; + } + /*********************************************************************/ + + p->num_bonds++; + p->bonds = (struct bond **)accumulator(p->bonds, sizeof(struct bond *) * p->num_bonds, 0); + b = (struct bond *)allocate(sizeof(struct bond)); + p->bonds[p->num_bonds - 1] = b; + b->a1 = translateAtomID(p, atomID1); BAIL(); + b->a2 = translateAtomID(p, atomID2); BAIL(); + CHECK_VALID_BOND(b); + // XXX should we reject unknown bond orders here? + b->order = order; + b->valid = -1; +} + +// Add a static van der Waals interaction between a pair of bonded +// atoms. Not needed unless you want the vDW on directly bonded +// atoms, as all other vDW interactions will be automatically found. +void +makeVanDerWaals(struct part *p, int atomID1, int atomID2) +{ + struct vanDerWaals *v; + + p->num_static_vanDerWaals++; + p->vanDerWaals = (struct vanDerWaals **)accumulator(p->vanDerWaals, sizeof(struct vanDerWaals *) * p->num_static_vanDerWaals, 0); + v = (struct vanDerWaals *)allocate(sizeof(struct vanDerWaals)); + p->vanDerWaals[p->num_static_vanDerWaals - 1] = v; + v->a1 = translateAtomID(p, atomID1); BAIL(); + v->a2 = translateAtomID(p, atomID2); BAIL(); + CHECK_VALID_BOND(v); + v->parameters = getVanDerWaalsTable(v->a1->type->protons, v->a2->type->protons); +} + +// Compute Sum(1/2*m*v**2) over all the atoms. This is valid ONLY if +// part->velocities has been updated in dynamicsMovie(). +double +calculateKinetic(struct part *p) +{ + struct xyz *velocities = p->velocities; + double total = 0.0; + int j; + for (j=0; j<p->num_atoms; j++) { + struct atom *a = p->atoms[j]; + // v in pm/Dt + double v = vlen(velocities[a->index]); + // mass in yg (1e-24 g) + // save the factor of 1/2 for later, to keep this loop fast + total += a->mass * v * v; + } + // We want energy in attojoules to be consistent with potential energy + // mass is in units of Dmass kilograms (Dmass = 1e-27, for mass in yg) + // velocity is in Dx meters per Dt seconds + // total is in units of (Dmass Dx^2/Dt^2) joules + // we want attojoules or 1e-18 joules, so we need to multiply by 1e18 + // and we need the factor of 1/2 that we left out of the atom loop + return total * 0.5 * 1e18 * Dmass * Dx * Dx / (Dt * Dt); +} + +// XXX we could turn this into a hashtable if we need the speed +// because of lots of bodies. +static int +findRigidBodyByName(struct part *p, char *name) +{ + int i; + + for (i=0; i<p->num_rigidBodies; i++) { + if (!strcmp(name, p->rigidBodies[i].name)) { + return i; + } + } + return -1; +} + +static int +findStationPointByName(struct part *p, int rigidBodyIndex, char *stationName) +{ + int i; + struct rigidBody *rb = &p->rigidBodies[rigidBodyIndex]; + + for (i=0; i<rb->num_stations; i++) { + if (!strcmp(stationName, rb->stationNames[i])) { + return i; + } + } + return -1; +} + +static int +findAxisByName(struct part *p, int rigidBodyIndex, char *axisName) +{ + int i; + struct rigidBody *rb = &p->rigidBodies[rigidBodyIndex]; + + for (i=0; i<rb->num_axes; i++) { + if (!strcmp(axisName, rb->axisNames[i])) { + return i; + } + } + return -1; +} + + +void +makeRigidBody(struct part *p, char *name, double mass, double *inertiaTensor, struct xyz position, struct quaternion orientation) +{ + struct rigidBody *rb; + int i; + + if (findRigidBodyByName(p, name) >= 0) { + ERROR1("duplicate rigidBody declaration: %s", name); + p->parseError(p->stream); + return; + } + + p->num_rigidBodies++; + p->rigidBodies = (struct rigidBody *)accumulator(p->rigidBodies, p->num_rigidBodies * sizeof(struct rigidBody), 0); + rb = &p->rigidBodies[p->num_rigidBodies - 1]; + rb->name = name; + rb->num_stations = 0; + rb->stations = NULL; + rb->stationNames = NULL; + rb->num_axes = 0; + rb->axes = NULL; + rb->axisNames = NULL; + rb->num_attachments = 0; + rb->attachmentLocations = NULL; + rb->attachmentAtomIndices = NULL; + for (i=0; i<6; i++) { + rb->inertiaTensor[i] = inertiaTensor[i]; + } + rb->mass = mass; + rb->position = position; + vsetc(rb->velocity, 0.0); + rb->orientation = orientation; + vsetc(rb->rotation, 0.0); +} + +void +makeStationPoint(struct part *p, char *bodyName, char *stationName, struct xyz position) +{ + int i; + struct rigidBody *rb; + + i = findRigidBodyByName(p, bodyName); + if (i < 0) { + ERROR1("rigidBody named (%s) not found", bodyName); + p->parseError(p->stream); + return; + } + + rb = &p->rigidBodies[i]; + if (findStationPointByName(p, i, stationName) >= 0) { + ERROR2("duplicate stationName: %s on rigidBody: %s", stationName, bodyName); + p->parseError(p->stream); + return; + } + + rb->num_stations++; + rb->stations = (struct xyz *)accumulator(rb->stations, rb->num_stations * sizeof (struct xyz), 0); + rb->stationNames = (char **)accumulator(rb->stationNames, rb->num_stations * sizeof (char *), 0); + rb->stations[rb->num_stations-1] = position; + rb->stationNames[rb->num_stations-1] = stationName; + return; +} + +void +makeBodyAxis(struct part *p, char *bodyName, char *axisName, struct xyz orientation) +{ + int i; + struct rigidBody *rb; + + i = findRigidBodyByName(p, bodyName); + if (i < 0) { + ERROR1("rigidBody named (%s) not found", bodyName); + p->parseError(p->stream); + return; + } + + rb = &p->rigidBodies[i]; + if (findAxisByName(p, i, axisName) >= 0) { + ERROR2("duplicate axisName: %s on rigidBody: %s", axisName, bodyName); + p->parseError(p->stream); + return; + } + + rb->num_axes++; + rb->axes = (struct xyz *)accumulator(rb->axes, rb->num_axes * sizeof (struct xyz), 0); + rb->axisNames = (char **)accumulator(rb->axisNames, rb->num_axes * sizeof (char *), 0); + rb->axes[rb->num_axes-1] = orientation; + rb->axisNames[rb->num_axes-1] = axisName; +} + +void +makeAtomAttachments(struct part *p, char *bodyName, int atomListLength, int *atomList) +{ + int i; + int j; + struct rigidBody *rb; + struct atom *a; + + i = findRigidBodyByName(p, bodyName); + if (i < 0) { + ERROR1("rigidBody named (%s) not found", bodyName); + p->parseError(p->stream); + return; + } + + rb = &p->rigidBodies[i]; + if (rb->num_attachments != 0) { + ERROR1("more than one attachAtoms for body %s", bodyName); + p->parseError(p->stream); + return; + } + rb->num_attachments = atomListLength; + rb->attachmentLocations = (struct xyz *)allocate(atomListLength * sizeof(struct xyz)); + rb->attachmentAtomIndices = (int *)allocate(atomListLength * sizeof(int)); + for (j=0; j<atomListLength; j++) { + a = translateAtomID(p, atomList[j]); BAIL(); + vsetc(rb->attachmentLocations[j], 0.0); + rb->attachmentAtomIndices[j] = a->index; + } +} + +static struct joint * +newJoint(struct part *p) +{ + struct joint *j; + + p->num_joints++; + p->joints = (struct joint *)accumulator(p->joints, p->num_joints * sizeof (struct joint), 0); + j = &p->joints[p->num_joints-1]; + + j->rigidBody1 = -1; + j->rigidBody2 = -1; + j->station1_1 = -1; + j->station2_1 = -1; + j->axis1_1 = -1; + j->axis2_1 = -1; + + return j; +} + +static int +requireRigidBody(struct part *p, char *name) +{ + int i = findRigidBodyByName(p, name); + if (i < 0) { + ERROR1("no rigid body named %s", name); + p->parseError(p->stream); + return 0; + } + return i; +} + +static int +requireStationPoint(struct part *p, char *bodyName, char *stationName) +{ + int i = findRigidBodyByName(p, bodyName); + int j; + + if (i < 0) { + ERROR1("no rigid body named %s", bodyName); + p->parseError(p->stream); + return 0; + } + j = findStationPointByName(p, i, stationName); + if (j < 0) { + ERROR2("no station named %s in rigid body %s", stationName, bodyName); + p->parseError(p->stream); + return 0; + } + return j; +} + +static int +requireAxis(struct part *p, char *bodyName, char *axisName) +{ + int i = findRigidBodyByName(p, bodyName); + int j; + + if (i < 0) { + ERROR1("no rigid body named %s", bodyName); + p->parseError(p->stream); + return 0; + } + j = findAxisByName(p, i, axisName); + if (j < 0) { + ERROR2("no axis named %s in rigid body %s", axisName, bodyName); + p->parseError(p->stream); + return 0; + } + return j; +} + +void +makeBallJoint(struct part *p, char *bodyName1, char *stationName1, char *bodyName2, char *stationName2) +{ + struct joint *j = newJoint(p); + + j->type = JointBall; + j->rigidBody1 = requireRigidBody(p, bodyName1); BAIL(); + j->station1_1 = requireStationPoint(p, bodyName1, stationName1); BAIL(); + j->rigidBody2 = requireRigidBody(p, bodyName2); BAIL(); + j->station2_1 = requireStationPoint(p, bodyName2, stationName2); BAIL(); +} + +void +makeHingeJoint(struct part *p, char *bodyName1, char *stationName1, char *axisName1, char *bodyName2, char *stationName2, char *axisName2) +{ + struct joint *j = newJoint(p); + + j->type = JointHinge; + j->rigidBody1 = requireRigidBody(p, bodyName1); BAIL(); + j->station1_1 = requireStationPoint(p, bodyName1, stationName1); BAIL(); + j->axis1_1 = requireAxis(p, bodyName1, axisName1); BAIL(); + j->rigidBody2 = requireRigidBody(p, bodyName2); BAIL(); + j->station2_1 = requireStationPoint(p, bodyName2, stationName2); BAIL(); + j->axis2_1 = requireAxis(p, bodyName2, axisName2); BAIL(); +} + +void +makeSliderJoint(struct part *p, char *bodyName1, char *axisName1, char *bodyName2, char *axisName2) +{ + struct joint *j = newJoint(p); + + j->type = JointSlider; + j->rigidBody1 = requireRigidBody(p, bodyName1); BAIL(); + j->axis1_1 = requireAxis(p, bodyName1, axisName1); BAIL(); + j->rigidBody2 = requireRigidBody(p, bodyName2); BAIL(); + j->axis2_1 = requireAxis(p, bodyName2, axisName2); BAIL(); +} + + +static struct jig * +newJig(struct part *p) +{ + struct jig *j; + + p->num_jigs++; + p->jigs = (struct jig **)accumulator(p->jigs, sizeof(struct jig *) * p->num_jigs, 0); + j = (struct jig *)allocate(sizeof(struct jig)); + p->jigs[p->num_jigs - 1] = j; + + j->name = NULL; + j->num_atoms = 0; + j->atoms = NULL; + j->degreesOfFreedom = 0; + j->coordinateIndex = 0; + j->data = 0.0; + j->data2 = 0.0; + j->xdata.x = 0.0; + j->xdata.y = 0.0; + j->xdata.z = 0.0; + + return j; +} + +// Turn an atomID list into an array of struct atom's inside a jig. +static void +jigAtomList(struct part *p, struct jig *j, int atomListLength, int *atomList) +{ + int i; + + j->atoms = (struct atom **)allocate(sizeof(struct atom *) * atomListLength); + j->num_atoms = atomListLength; + for (i=0; i<atomListLength; i++) { + j->atoms[i] = translateAtomID(p, atomList[i]); BAIL(); + } +} + +// Turn a pair of atomID's into an array of struct atom's inside a +// jig. All atoms between the given ID's (inclusive) are included in +// the jig. +static void +jigAtomRange(struct part *p, struct jig *j, int firstID, int lastID) +{ + int len = lastID < firstID ? 0 : 1 + lastID - firstID; + int id; + int i; + + j->atoms = (struct atom **)allocate(sizeof(struct atom *) * len); + j->num_atoms = len; + for (i=0, id=firstID; id<=lastID; i++, id++) { + j->atoms[i] = translateAtomID(p, id); BAIL(); + } +} + +// Create a ground jig in this part, given the jig name, and the list +// of atoms in the jig. Atoms in the ground jig will not move. +void +makeGround(struct part *p, char *name, int atomListLength, int *atomList) +{ + int i; + struct jig *j = newJig(p); + + j->type = Ground; + j->name = name; + jigAtomList(p, j, atomListLength, atomList); BAIL(); + for (i=0; i<atomListLength; i++) { + j->atoms[i]->isGrounded = 1; + // The following lines test energy conservation of systems + // with grounds. Do a dynamics run without these lines, + // saving the result. Then comment these lines in and rerun + // the dynamics run. Make sure the computed velocities at the + // beginning of the run are identical. It's simplest to just + // do the run at 0 K. Start with a slightly strained + // structure to get some motion. The results should be + // identical between the two runs. + + //j->atoms[i]->mass *= 100.0; + //j->atoms[i]->inverseMass = Dt * Dt / (j->atoms[i]->mass * 1e-27); + } +} + + +// Create a thermometer jig in this part, given the jig name, and the +// range of atoms to include in the jig. The Temperature of the atoms +// in the jig will be reported in the trace file. +void +makeThermometer(struct part *p, char *name, int firstAtomID, int lastAtomID) +{ + struct jig *j = newJig(p); + + j->type = Thermometer; + j->name = name; + jigAtomRange(p, j, firstAtomID, lastAtomID); +} + +// Create an dihedral meter jig in this part, given the jig name, and the +// three atoms to measure. The dihedral angle between the atoms will be +// reported in the trace file. +void +makeDihedralMeter(struct part *p, char *name, int atomID1, int atomID2, int atomID3, int atomID4) +{ + struct jig *j = newJig(p); + + j->type = DihedralMeter; + j->name = name; + j->atoms = (struct atom **)allocate(sizeof(struct atom *) * 4); + j->num_atoms = 4; + j->atoms[0] = translateAtomID(p, atomID1); BAIL(); + j->atoms[1] = translateAtomID(p, atomID2); BAIL(); + j->atoms[2] = translateAtomID(p, atomID3); BAIL(); + j->atoms[3] = translateAtomID(p, atomID4); BAIL(); +} + +// Create an angle meter jig in this part, given the jig name, and the +// three atoms to measure. The angle between the atoms will be +// reported in the trace file. +void +makeAngleMeter(struct part *p, char *name, int atomID1, int atomID2, int atomID3) +{ + struct jig *j = newJig(p); + + j->type = AngleMeter; + j->name = name; + j->atoms = (struct atom **)allocate(sizeof(struct atom *) * 3); + j->num_atoms = 3; + j->atoms[0] = translateAtomID(p, atomID1); BAIL(); + j->atoms[1] = translateAtomID(p, atomID2); BAIL(); + j->atoms[2] = translateAtomID(p, atomID3); BAIL(); +} + +// Create a radius jig in this part, given the jig name, and the two +// atoms to measure. The disance between the atoms will be reported +// in the trace file. +void +makeRadiusMeter(struct part *p, char *name, int atomID1, int atomID2) +{ + struct jig *j = newJig(p); + + j->type = RadiusMeter; + j->name = name; + j->atoms = (struct atom **)allocate(sizeof(struct atom *) * 2); + j->num_atoms = 2; + j->atoms[0] = translateAtomID(p, atomID1); BAIL(); + j->atoms[1] = translateAtomID(p, atomID2); BAIL(); +} + +// Create a thermostat jig in this part, given the name of the jig, +// the set point temperature, and the range of atoms to include. +// Kinetic energy will be added or removed from the given range of +// atoms to maintain the given temperature. +void +makeThermostat(struct part *p, char *name, double temperature, int firstAtomID, int lastAtomID) +{ + struct jig *j = newJig(p); + + j->type = Thermostat; + j->name = name; + j->j.thermostat.temperature = temperature; + jigAtomRange(p, j, firstAtomID, lastAtomID); +} + +// Empirically it looks like you don't want to go with a smaller +// flywheel than this. +#define MIN_MOMENT 5.0e-20 + +// Create a rotary motor jig in this part, given the name of the jig, +// parameters controlling the motor, and the list of atoms to include. +// The motor rotates around the center point, with the plane of +// rotation perpendicular to the direction of the axis vector. +// +// (XXX need good description of behavior of stall and speed) +// stall torque is in nN-nm +// speed is in GHz +struct jig * +makeRotaryMotor(struct part *p, char *name, + double stall, double speed, + struct xyz *center, struct xyz *axis, + int atomListLength, int *atomList) +{ + int i, k; + double mass; + struct jig *j = newJig(p); + + j->type = RotaryMotor; + j->name = name; + j->degreesOfFreedom = 1; // the angle the motor has rotated by in radians + + // Example uses 1 nN-nm -> 1e6 pN-pm + // Example uses 2 GHz -> 12.5664e9 radians/second + + // convert nN-nm to pN-pm (multiply by 1e6) + // torque's sign is meaningless, force it positive + j->j.rmotor.stall = fabs(stall) * (1e-9/Dx) * (1e-9/Dx); + + // this will do until we get a separate number in the mmp record + // minimizeTorque is in aN m (1e-18 N m, or 1e-9 N 1e-9 m, or nN nm) + j->j.rmotor.minimizeTorque = fabs(stall); + + // convert from gigahertz to radians per second + j->j.rmotor.speed = speed * 2.0e9 * Pi; + // critical damping gets us up to speed as quickly as possible + // http://hyperphysics.phy-astr.gsu.edu/hbase/oscda2.html + j->j.rmotor.dampingCoefficient = 0.7071; + j->j.rmotor.damping_enabled = 1; + j->j.rmotor.center = *center; + j->j.rmotor.axis = uvec(*axis); + // axis now has a length of one + jigAtomList(p, j, atomListLength, atomList); BAILR(NULL); + + j->j.rmotor.u = (struct xyz *)allocate(sizeof(struct xyz) * atomListLength); + j->j.rmotor.v = (struct xyz *)allocate(sizeof(struct xyz) * atomListLength); + j->j.rmotor.w = (struct xyz *)allocate(sizeof(struct xyz) * atomListLength); + j->j.rmotor.rPrevious = (struct xyz *)allocate(sizeof(struct xyz) * atomListLength); + j->j.rmotor.momentOfInertia = 0.0; + for (i = 0; i < j->num_atoms; i++) { + struct xyz r, v; + double lenv; + k = j->atoms[i]->index; + /* for each atom connected to the motor */ + mass = j->atoms[i]->mass * 1e-27; + + /* u, v, and w can be used to compute the new anchor position from + * theta. The new position is u + v cos(theta) + w sin(theta). u is + * parallel to the motor axis, v and w are perpendicular to the axis + * and perpendicular to each other and the same length. + */ + r = vdif(p->positions[k], j->j.rmotor.center); + vmul2c(j->j.rmotor.u[i], j->j.rmotor.axis, vdot(r, j->j.rmotor.axis)); + v = r; + vsub(v, j->j.rmotor.u[i]); + lenv = vlen(v); + j->j.rmotor.v[i] = v; + j->j.rmotor.w[i] = vx(j->j.rmotor.axis, v); + j->j.rmotor.momentOfInertia += mass * lenv * lenv; + vsetc(j->j.rmotor.rPrevious[i], 0.0); + } + + // Add a flywheel with many times the moment of inertia of the atoms + j->j.rmotor.momentOfInertia *= 11.0; + if (j->j.rmotor.momentOfInertia < MIN_MOMENT) + j->j.rmotor.momentOfInertia = MIN_MOMENT; + j->j.rmotor.theta = 0.0; + j->j.rmotor.omega = 0.0; + return j; +} + +// set initial speed of rotary motor +// initialSpeed in GHz +// rmotor.omega in radians per second +void +setInitialSpeed(struct jig *j, double initialSpeed) +{ + j->j.rmotor.omega = initialSpeed * 2.0e9 * Pi; + // maybe also set minimizeTorque +} + +void +setDampingCoefficient(struct jig *j, double dampingCoefficient) +{ + j->j.rmotor.dampingCoefficient = dampingCoefficient; +} + +void +setDampingEnabled(struct jig *j, int dampingEnabled) +{ + j->j.rmotor.damping_enabled = dampingEnabled; +} + +// Create a linear motor jig in this part, given the name of the jig, +// parameters controlling the motor, and the list of atoms to include. +// Atoms in the jig are constrained to move in the direction given by +// the axis vector. A constant force can be applied, or they can be +// connected to a spring of the given stiffness. +// +// Jig output is the change in the averge of the positions of all of +// the atoms in the motor from the input positions. +// +// When stiffness is zero, force is uniformly divided among the atoms. +// +// When stiffness is non-zero, it represents a spring connecting the +// center of the atoms to a point along the motor axis from that +// point. The force parameter is used to determine where the spring +// is attached. The spring attachment point is such that the initial +// force on the motor is the force parameter. The force from the +// spring is always evenly divided among the atoms. +void +makeLinearMotor(struct part *p, char *name, + double force, double stiffness, + struct xyz *center, struct xyz *axis, + int atomListLength, int *atomList) +{ + int i; + double x; + struct xyz centerOfAtoms; + struct jig *j = newJig(p); + + j->type = LinearMotor; + j->name = name; + // linear motor is not a distinct object which can move on its + // own, it's just a function of the average location of its atoms, + // so it has no independant degrees of freedom. + //j->degreesOfFreedom = 1; // distance motor has moved in pm. + + j->j.lmotor.force = force; // in pN + j->j.lmotor.stiffness = stiffness; // in N/m + j->j.lmotor.axis = uvec(*axis); + jigAtomList(p, j, atomListLength, atomList); BAIL(); + + centerOfAtoms = vcon(0.0); + for (i=0; i<atomListLength; i++) { + centerOfAtoms = vsum(centerOfAtoms, p->positions[j->atoms[i]->index]); + } + centerOfAtoms = vprodc(centerOfAtoms, 1.0 / atomListLength); + + // x is length of projection of centerOfAtoms onto axis (from + // origin, not center) + x = vdot(centerOfAtoms, j->j.lmotor.axis); + j->j.lmotor.motorPosition = x; + + if (stiffness == 0.0) { + j->j.lmotor.zeroPosition = x; + j->j.lmotor.constantForce = vprodc(j->j.lmotor.axis, force / atomListLength); + } else { + j->j.lmotor.zeroPosition = x + force / stiffness ; + vsetc(j->j.lmotor.constantForce, 0.0); + } +} + +void +printXYZ(FILE *f, struct xyz p) +{ + fprintf(f, "(%f, %f, %f)", p.x, p.y, p.z); +} + +void +printQuaternion(FILE *f, struct quaternion q) +{ + fprintf(f, "(%f i, %f j, %f k, %f)", q.x, q.y, q.z, q.a); +} + +void +printInertiaTensor(FILE *f, double *t) +{ + fprintf(f, "/ %14.7e %14.7e %14.7e \\\n", t[0], t[1], t[2]); + fprintf(f, "| %14s %14.7e %14.7e |\n", "", t[3], t[4]); + fprintf(f, "\\ %14s %14s %14.7e /\n", "", "", t[5]); +} + + +void +printAtomShort(FILE *f, struct atom *a) +{ + fprintf(f, "%s(%d)", a->type->symbol, a->atomID); +} + +char +printableBondOrder(struct bond *b) +{ + switch (b->order) { + case '1': + return '-' ; + break; + case '2': + return '=' ; + break; + case '3': + return '+' ; + break; + case 'a': + return '@' ; + break; + case 'g': + return '#' ; + break; + case 'c': + return '~' ; + break; + default: + return b->order; + break; + } +} + +char * +hybridizationString(enum hybridization h) +{ + switch (h) { + case sp: + return "sp"; + case sp2: + return "sp2"; + case sp2_g: + return "sp2_g"; + case sp3: + return "sp3"; + case sp3d: + return "sp3d"; + default: + return "???"; + } +} + +void +printAtom(FILE *f, struct part *p, struct atom *a) +{ + int i; + struct bond *b; + + fprintf(f, " atom "); + printAtomShort(f, a); + fprintf(f, ".%s ", hybridizationString(a->hybridization)); + printXYZ(f, p->positions[a->index]); + for (i=0; i<a->num_bonds; i++) { + fprintf(f, " "); + b = a->bonds[i]; + fprintf(f, "%c", printableBondOrder(b)); + CHECK_VALID_BOND(b); + if (b->a1 == a) { + printAtomShort(f, b->a2); + } else if (b->a2 == a) { + printAtomShort(f, b->a1); + } else { + fprintf(f, "!!! improper bond on atom: "); + printAtomShort(f, b->a1); + printAtomShort(f, b->a2); + } + } + fprintf(f, "\n"); +} + +void +printBond(FILE *f, struct part *p, struct bond *b) +{ + fprintf(f, " bond "); + CHECK_VALID_BOND(b); + printAtomShort(f, b->a1); + fprintf(f, "%c", printableBondOrder(b)); + printAtomShort(f, b->a2); + fprintf(f, "\n"); +} + +char * +printableJigType(struct jig *j) +{ + switch (j->type) { + case Ground: return "Ground"; + case Thermometer: return "Thermometer"; + case DihedralMeter: return "DihedralMeter"; + case AngleMeter: return "AngleMeter"; + case RadiusMeter: return "RadiusMeter"; + case Thermostat: return "Thermostat"; + case RotaryMotor: return "RotaryMotor"; + case LinearMotor: return "LinearMotor"; + default: return "unknown"; + } +} + +void +printJig(FILE *f, struct part *p, struct jig *j) +{ + int i; + + fprintf(f, " %s jig (%s)", printableJigType(j), j->name); + for (i=0; i<j->num_atoms; i++) { + fprintf(f, " "); + printAtomShort(f, j->atoms[i]); + } + fprintf(f, "\n"); + switch (j->type) { + case Thermostat: + fprintf(f, " temperature: %f\n", j->j.thermostat.temperature); + break; + case RotaryMotor: + fprintf(f, " stall torque: %13.10e pN-pm\n", j->j.rmotor.stall); + fprintf(f, " top speed: %13.10e radians per second\n", j->j.rmotor.speed); + fprintf(f, " current speed: %13.10e radians per second\n", j->j.rmotor.omega); + fprintf(f, " minimize torque: %13.10e pN-pm\n", j->j.rmotor.minimizeTorque * 1e6); + fprintf(f, " damping: %13.10e\n", j->j.rmotor.damping_enabled ? j->j.rmotor.dampingCoefficient : 0.0); + fprintf(f, " center: "); + printXYZ(f, j->j.rmotor.center); + fprintf(f, "\n"); + fprintf(f, " axis: "); + printXYZ(f, j->j.rmotor.axis); + fprintf(f, "\n"); + break; + case LinearMotor: + fprintf(f, " force: %f\n", j->j.lmotor.force); + fprintf(f, " stiffness: %f\n", j->j.lmotor.stiffness); + fprintf(f, " constantForce: "); + printXYZ(f, j->j.lmotor.constantForce); + fprintf(f, "\n"); + fprintf(f, " axis: "); + printXYZ(f, j->j.lmotor.axis); + fprintf(f, "\n"); + break; + default: + break; + } +} + +static void +printJointType(FILE *f, enum jointType type) +{ + switch (type) { + case JointBall: + fprintf(f, "Ball"); + break; + case JointHinge: + fprintf(f, "Hinge"); + break; + case JointSlider: + fprintf(f, "Slider"); + break; + default: + fprintf(f, "*Unknown*"); + break; + } +} + +void +printJoint(FILE *f, struct part *p, struct joint *j) +{ + printJointType(f, j->type); + fprintf(f, " joint between (%s) and (%s)\n", p->rigidBodies[j->rigidBody1].name, p->rigidBodies[j->rigidBody2].name); +} + +void +printRigidBody(FILE *f, struct part *p, struct rigidBody *rb) +{ + int i; + + fprintf(f, " rigidBody (%s)\n", rb->name); + fprintf(f, " position: "); + printXYZ(f, rb->position); + fprintf(f, "\n orientation: "); + printQuaternion(f, rb->orientation); + fprintf(f, "\n mass: %f\n inertiaTensor:\n", rb->mass); + printInertiaTensor(f, rb->inertiaTensor); + if (rb->num_stations > 0) { + fprintf(f, " stations:\n"); + for (i=0; i<rb->num_stations; i++) { + fprintf(f, " (%s) ", rb->stationNames[i]); + printXYZ(f, rb->stations[i]); + fprintf(f, "\n"); + } + } + if (rb->num_axes > 0) { + fprintf(f, " axes:\n"); + for (i=0; i<rb->num_axes; i++) { + fprintf(f, " (%s) ", rb->axisNames[i]); + printXYZ(f, rb->axes[i]); + fprintf(f, "\n"); + } + } + if (rb->num_attachments > 0) { + fprintf(f, " attached atoms: "); + for (i=0; i<rb->num_attachments; i++) { + printAtomShort(f, p->atoms[rb->attachmentAtomIndices[i]]); + fprintf(f, " "); + } + fprintf(f, "\n"); + } +} + +void +printVanDerWaals(FILE *f, struct part *p, struct vanDerWaals *v) +{ + double len; + double potential; + double gradient; + struct xyz p1; + struct xyz p2; + + if (v != NULL) { + fprintf(f, " vanDerWaals "); + CHECK_VALID_BOND(v); + printAtomShort(f, v->a1); + fprintf(f, " "); + printAtomShort(f, v->a2); + + p1 = p->positions[v->a1->index]; + p2 = p->positions[v->a2->index]; + vsub(p1, p2); + len = vlen(p1); + + + potential = vanDerWaalsPotential(NULL, NULL, v->parameters, len); + gradient = vanDerWaalsGradient(NULL, NULL, v->parameters, len); + fprintf(f, " r: %f r0: %f, V: %f, dV: %f\n", len, v->parameters->rvdW, potential, gradient); + } +} + +void +printElectrostatic(FILE *f, struct part *p, struct electrostatic *es) +{ + double len; + double potential; + double gradient; + struct xyz p1; + struct xyz p2; + + if (es != NULL) { + fprintf(f, " electrostatic "); + CHECK_VALID_BOND(es); + printAtomShort(f, es->a1); + fprintf(f, " "); + printAtomShort(f, es->a2); + + p1 = p->positions[es->a1->index]; + p2 = p->positions[es->a2->index]; + vsub(p1, p2); + len = vlen(p1); + + + potential = electrostaticPotential(NULL, NULL, es->parameters, len); + gradient = electrostaticGradient(NULL, NULL, es->parameters, len); + fprintf(f, " r: %f k: %f, V: %f, dV: %f\n", len, es->parameters->k, potential, gradient); + } +} + +void +printStretch(FILE *f, struct part *p, struct stretch *s) +{ + double len; + double potential; + double gradient; + struct xyz p1; + struct xyz p2; + + CHECK_VALID_BOND(s); + fprintf(f, " stretch "); + printAtomShort(f, s->a1); + fprintf(f, ", "); + printAtomShort(f, s->a2); + fprintf(f, ": %s ", s->stretchType->bondName); + + p1 = p->positions[s->a1->index]; + p2 = p->positions[s->a2->index]; + vsub(p1, p2); + len = vlen(p1); + + potential = stretchPotential(NULL, NULL, s->stretchType, len); + gradient = stretchGradient(NULL, NULL, s->stretchType, len); + fprintf(f, "r: %f r0: %f, V: %f, dV: %f\n", len, s->stretchType->r0, potential, gradient); +} + +void +printBend(FILE *f, struct part *p, struct bend *b) +{ + double invlen; + double costheta; + double theta; + double dTheta; + double potential; + //double z; + struct xyz p1; + struct xyz pc; + struct xyz p2; + + CHECK_VALID_BOND(b); + fprintf(f, " bend "); + printAtomShort(f, b->a1); + fprintf(f, ", "); + printAtomShort(f, b->ac); + fprintf(f, ", "); + printAtomShort(f, b->a2); + fprintf(f, ": %s ", b->bendType->bendName); + + p1 = p->positions[b->a1->index]; + pc = p->positions[b->ac->index]; + p2 = p->positions[b->a2->index]; + + vsub(p1, pc); + invlen = 1.0 / vlen(p1); + vmulc(p1, invlen); // p1 is now unit vector from ac to a1 + + vsub(p2, pc); + invlen = 1.0 / vlen(p2); + vmulc(p2, invlen); // p2 is now unit vector from ac to a2 + + costheta = vdot(p1, p2); + theta = acos(costheta); + fprintf(f, "theta: %f ", theta * 180.0 / Pi); + +#if 0 + z = vlen(vsum(p1, p2)); // z is length of cord between where bonds intersect unit sphere + +#define ACOS_POLY_A -0.0820599 +#define ACOS_POLY_B 0.142376 +#define ACOS_POLY_C -0.137239 +#define ACOS_POLY_D -0.969476 + + // this is the equivalent of theta=arccos(z); + theta = Pi + z * (ACOS_POLY_D + + z * (ACOS_POLY_C + + z * (ACOS_POLY_B + + z * ACOS_POLY_A ))); + + fprintf(f, "polytheta: %f ", theta * 180.0 / Pi); +#endif + + dTheta = (theta - b->bendType->theta0); + potential = 1e-6 * 0.5 * dTheta * dTheta * b->bendType->kb; + + fprintf(f, "theta0: %f dTheta: %f, V: %f\n", b->bendType->theta0 * 180.0 / Pi, dTheta * 180.0 / Pi, potential); +} + +void +printTorsion(FILE *f, struct part *p, struct torsion *t) +{ + NULLPTR(t); + NULLPTR(t->a1); + NULLPTR(t->aa); + NULLPTR(t->ab); + NULLPTR(t->a2); + fprintf(f, " torsion "); + printAtomShort(f, t->a1); + fprintf(f, " - "); + printAtomShort(f, t->aa); + fprintf(f, " = "); + printAtomShort(f, t->ab); + fprintf(f, " - "); + printAtomShort(f, t->a2); + fprintf(f, "\n"); +} + +void +printCumuleneTorsion(FILE *f, struct part *p, struct cumuleneTorsion *t) +{ + NULLPTR(t); + NULLPTR(t->a1); + NULLPTR(t->aa); + NULLPTR(t->ab); + NULLPTR(t->ay); + NULLPTR(t->az); + NULLPTR(t->a2); + fprintf(f, " cumuleneTorsion "); + printAtomShort(f, t->a1); + fprintf(f, " - "); + printAtomShort(f, t->aa); + fprintf(f, " = "); + printAtomShort(f, t->ab); + fprintf(f, " ... "); + printAtomShort(f, t->ay); + fprintf(f, " = "); + printAtomShort(f, t->az); + fprintf(f, " - "); + printAtomShort(f, t->a2); + fprintf(f, " chain length %d double bonds\n", t->numberOfDoubleBonds); +} + +void +printOutOfPlane(FILE *f, struct part *p, struct outOfPlane *o) +{ + NULLPTR(o); + NULLPTR(o->ac); + NULLPTR(o->a1); + NULLPTR(o->a2); + NULLPTR(o->a3); + fprintf(f, " outOfPlane "); + printAtomShort(f, o->ac); + fprintf(f, " - ("); + printAtomShort(f, o->a1); + fprintf(f, ", "); + printAtomShort(f, o->a2); + fprintf(f, ", "); + printAtomShort(f, o->a3); + fprintf(f, ")\n"); +} + +void +printPart(FILE *f, struct part *p) +{ + int i; + + fprintf(f, "part loaded from file %s\n", p->filename); + for (i=0; i<p->num_atoms; i++) { + printAtom(f, p, p->atoms[i]); + } + for (i=0; i<p->num_bonds; i++) { + printBond(f, p, p->bonds[i]); + } + for (i=0; i<p->num_jigs; i++) { + printJig(f, p, p->jigs[i]); + } + for (i=0; i<p->num_rigidBodies; i++) { + printRigidBody(f, p, &p->rigidBodies[i]); + } + for (i=0; i<p->num_vanDerWaals; i++) { + printVanDerWaals(f, p, p->vanDerWaals[i]); + } + for (i=0; i<p->num_electrostatic; i++) { + printElectrostatic(f, p, p->electrostatic[i]); + } + for (i=0; i<p->num_stretches; i++) { + printStretch(f, p, &p->stretches[i]); + } + for (i=0; i<p->num_bends; i++) { + printBend(f, p, &p->bends[i]); + } + for (i=0; i<p->num_torsions; i++) { + printTorsion(f, p, &p->torsions[i]); + } + for (i=0; i<p->num_cumuleneTorsions; i++) { + printCumuleneTorsion(f, p, &p->cumuleneTorsions[i]); + } + for (i=0; i<p->num_outOfPlanes; i++) { + printOutOfPlane(f, p, &p->outOfPlanes[i]); + } + for (i=0; i<p->num_joints; i++) { + printJoint(f, p, &p->joints[i]); + } +} + +/* + * Local Variables: + * c-basic-offset: 4 + * tab-width: 8 + * End: + */ diff --git a/sim/src/part.h b/sim/src/part.h new file mode 100755 index 000000000..53f5eb2bc --- /dev/null +++ b/sim/src/part.h @@ -0,0 +1,494 @@ +// Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. +#ifndef PART_H_INCLUDED +#define PART_H_INCLUDED + +#define RCSID_PART_H "$Id$" + +// See part.c for comment defining these values. Don't change any of +// them without deeply understanding the vdw search algorithm there. +#define GRID_SPACING 300 +#define GRID_OCCUPANCY 1 +#define GRID_SIZE 128 +#define GRID_MASK 127 +#define GRID_MASK_FUZZY 126 +#define GRID_FUZZY_BUCKET_WIDTH 2 +#define GRID_WRAP_COMPARE (GRID_SPACING * GRID_SIZE / 2) + +// Si has the highest vdw radius, 225 pm +#define MAX_VDW_RADIUS 225 + +// width of the whole vdw search grid is GRID_WRAP_COMPARE * 2 +// currently 38400 pm, or ~170 times Si vdw radius. + +// cutoff distance for DNA pseudo atom interactions should be in the +// several nm range, which still leaves the grid comparison useful. + +enum hybridization { + sp, + sp2, + sp2_g, // graphitic + sp3, + sp3d +}; + +struct atom +{ + struct atomType *type; + enum hybridization hybridization; + + unsigned char vdwBucketIndexX; + unsigned char vdwBucketIndexY; + unsigned char vdwBucketIndexZ; + unsigned char vdwBucketInvalid; + + // These are pointers along the bucket chain for vdw buckets. + // All atoms for which isCharged is set preceed all those + // for which it is not set. + struct atom *vdwPrev; + struct atom *vdwNext; + + double mass; // yg, or yoctograms, or 1e-24 g + double inverseMass; // Dt*Dt / (mass * 1e-27) + + // non-zero if this atom's type indicates a non-zero charge + unsigned char isCharged; + + // non-zero if this atom is in any ground jigs + unsigned char isGrounded; + + int index; + int atomID; + int num_bonds; + struct bond **bonds; +}; + +struct bond +{ + struct atom *a1; + struct atom *a2; + char order; + + // A serial number indicating when each of the following fields was + // last calculated. + int valid; + + // 1 / sqrt( a2-a1 dot a2-a1 ) + double inverseLength; + + // Unit vector from a1 towards a2 + struct xyz rUnit; +}; + +enum jointType { + JointBall, + JointHinge, + JointSlider +}; + +struct joint +{ + enum jointType type; + + int rigidBody1; + int rigidBody2; + + int station1_1; + int station2_1; + + int axis1_1; + int axis2_1; +}; + +struct rigidBody +{ + char *name; + + // StationPoints are named locations specified in body relative + // coordinates. Joints connect bodies together at their + // StationPoints. + int num_stations; + struct xyz *stations; + char **stationNames; + + // Axes are named orientations specified in body relative + // coordinates. Joints can maintain these orientations parallel + // to each other for a pair of bodies. + int num_axes; + struct xyz *axes; + char **axisNames; + + // Attachments link atoms to rigid bodies. attachmentLocations + // are in body relative coordinates, and are calculated from the + // initial positions of the attached atoms, and the initial + // position/orientation of the body. + int num_attachments; + struct xyz *attachmentLocations; + int *attachmentAtomIndices; + + double inertiaTensor[6]; + + double mass; + + struct xyz position; + struct xyz velocity; + + struct quaternion orientation; + struct xyz rotation; // Euler angle rotation rates +}; + +enum jigtype { + Ground, + Thermometer, + DihedralMeter, + AngleMeter, + RadiusMeter, + Thermostat, + RotaryMotor, + LinearMotor +}; + +struct jig +{ + char *name; + int num_atoms; + struct atom **atoms; + + // The minimizer will allocate this many coordinates to be + // minimized in addition to the atom positions. + int degreesOfFreedom; + + // If degreesOfFreedom is non-zero during a minimize, this gives + // the offset into the coordinate array that those degrees of + // freedom are represented at. + int coordinateIndex; + + double data; + double data2; + struct xyz xdata; + + enum jigtype type; + union { + struct { + double temperature; + } thermostat; + + struct { + double stall; // zero speed torque in pN-pm + double speed; // zero torque speed in radians per second + double minimizeTorque; // torque in nN-nm + double dampingCoefficient; // on springs between atoms and flywheel + + // A point on the motor axis + struct xyz center; + + // Vector along motor axis (from center) + struct xyz axis; + + // Position of each anchor relative to the motor. u is + // the location along the motor axis that each anchor + // rotates around. v and w are orthogonal to each other, + // and to the motor axis. Anchor position is: + // center + u + v cos(theta) + w sin(theta) + struct xyz *u, *v, *w; + + // Around axis. + double momentOfInertia; // formerly moment + + // variables below here are updated by the jig code. + + // How far the motor has turned in radians. + double theta; + + // current angular speed in radians per second. + double omega; + + // For each atom in motor, the previous displacement of the atom + // from its rotating anchor, used for damping oscillations + struct xyz *rPrevious; + + // A boolean to tell whether or not damping is switched on. + int damping_enabled; + } rmotor; + + struct { + double force; // formerly stall, in pN + double stiffness; // formerly speed, in N/m + struct xyz constantForce; // force to apply to each atom if stiffness is zero + struct xyz axis; // all atoms constrained to move along this axis + + // Project center of atoms in motor onto axis. Distance along + // axis from there to center of mass is motorPosition. + double motorPosition; // formerly theta + + // Position of motor when force is zero. + double zeroPosition; // formerly theta0 + } lmotor; + } j; +}; + +struct vanDerWaals +{ + struct atom *a1; + struct atom *a2; + struct vanDerWaalsParameters *parameters; +}; + +struct stretch +{ + struct atom *a1; + struct atom *a2; + struct bond *b; + struct bondStretch *stretchType; +}; + +struct bend +{ + struct atom *a1; + struct atom *ac; + struct atom *a2; + struct bond *b1; + struct bond *b2; + int dir1; + int dir2; + struct bendData *bendType; +}; + +struct torsion +{ + struct atom *a1; + struct atom *aa; + struct atom *ab; + struct atom *a2; + //params; + double A; // aJ/rad^2 +}; + +struct cumuleneTorsion +{ + struct atom *a1; + struct atom *aa; + struct atom *ab; + struct atom *ay; + struct atom *az; + struct atom *a2; + //params; + int numberOfDoubleBonds; + double A; // aJ/rad^2 +}; + +struct outOfPlane +{ + struct atom *ac; + struct atom *a1; + struct atom *a2; + struct atom *a3; + //params; + double A; // aJ/pm^2 +}; + +struct electrostatic +{ + struct atom *a1; + struct atom *a2; + struct electrostaticParameters *parameters; +}; + +struct part +{ + // Where this part was loaded from + char *filename; + + // Function to call to signal an error while loading + int (*parseError)(void *); + + // Argument for parseError call + void *stream; + + // What is the highest atom id number to be defined for this part so + // far? Defines length of atom_id_to_index_plus_one array. + int max_atom_id; + + // Maps atom ids (as defined in an mmp file, for example) into + // sequentially allocated index numbers. The index number plus one + // is stored here, so that zero filling of the accumulator (see + // allocate.c) will generate invalid indexes. + int *atom_id_to_index_plus_one; + + int num_atoms; + struct atom **atoms; + + int num_charged_atoms; + struct atom **charged_atoms; + + int num_bonds; + struct bond **bonds; + + int num_jigs; + struct jig **jigs; + + int num_rigidBodies; + struct rigidBody *rigidBodies; + + int num_joints; + struct joint *joints; + + // pointer to a data structure that holds data which is specific + // to the particular rigid body library in use. rigid.c selects + // the library to use and calls into rigid-*.c as appropriate. + void *rigid_body_info; + + int num_vanDerWaals; + int num_static_vanDerWaals; + int start_vanDerWaals_free_scan; + struct vanDerWaals **vanDerWaals; + void *vanDerWaals_validity; + + // The largest vdW radius of any atom actually present in the + // part, in pm. + double maxVanDerWaalsRadius; + + // Absolute value of the greatest charge on any particle in the + // part in multiples of the proton charge. + double maxParticleCharge; + + int num_electrostatic; + int start_electrostatic_free_scan; + struct electrostatic **electrostatic; + + int num_stretches; + struct stretch *stretches; + + int num_bends; + struct bend *bends; + + int num_torsions; + struct torsion *torsions; + + int num_cumuleneTorsions; + struct cumuleneTorsion *cumuleneTorsions; + + int num_outOfPlanes; + struct outOfPlane *outOfPlanes; + + struct xyz *positions; + struct xyz *velocities; + + struct atom *vdwHash[GRID_SIZE][GRID_SIZE][GRID_SIZE]; +}; + +extern struct part *makePart(char *filename, int (*parseError)(void *), void *stream); + +extern void destroyPart(struct part *p); + +extern struct part *endPart(struct part *p); + +extern void initializePart(struct part *p); + +extern void generateStretches(struct part *p); + +extern void generateBends(struct part *p); + +extern void generateTorsions(struct part *p); + +extern void generateOutOfPlanes(struct part *p); + +extern void updateVanDerWaals(struct part *p, void *validity, struct xyz *positions); + +extern void setThermalVelocities(struct part *p, double temperature); + +extern void makeAtom(struct part *p, int externalID, int elementType, struct xyz position); + +extern void setAtomHybridization(struct part *p, int atomID, enum hybridization h); + +extern void makeBond(struct part *p, int atomID1, int atomID2, char order); + +extern void makeVanDerWaals(struct part *p, int atomID1, int atomID2); + +extern double calculateKinetic(struct part *p); + +extern void makeRigidBody(struct part *p, char *name, double mass, double *inertiaTensor, struct xyz position, struct quaternion orientation); + +extern void makeStationPoint(struct part *p, char *bodyName, char *stationName, struct xyz position); + +extern void makeBodyAxis(struct part *p, char *bodyName, char *axisName, struct xyz orientation); + +extern void makeAtomAttachments(struct part *p, char *bodyName, int atomListLength, int *atomList); + +extern void makeBallJoint(struct part *p, char *bodyName1, char *stationName1, char *bodyName2, char *stationName2); + +extern void makeHingeJoint(struct part *p, char *bodyName1, char *stationName1, char *axisName1, char *bodyName2, char *stationName2, char *axisName2); + +extern void makeSliderJoint(struct part *p, char *bodyName1, char *axisName1, char *bodyName2, char *axisName2); + +extern void makeGround(struct part *p, char *name, int atomListLength, int *atomList); + +extern void makeThermometer(struct part *p, char *name, int firstAtomID, int lastAtomID); + +extern void makeDihedralMeter(struct part *p, char *name, int atomID1, int atomID2, int atomID3, int atomID4); + +extern void makeAngleMeter(struct part *p, char *name, int atomID1, int atomID2, int atomID3); + +extern void makeRadiusMeter(struct part *p, char *name, int atomID1, int atomID2); + +extern void makeThermostat(struct part *p, char *name, double temperature, int firstAtomID, int lastAtomID); + +extern struct jig * makeRotaryMotor(struct part *p, char *name, double stall, double speed, struct xyz *center, struct xyz *axis, int atomListLength, int *atomList); + +extern void setInitialSpeed(struct jig *j, double initialSpeed); + +extern void setDampingCoefficient(struct jig *j, double dampingCoefficient); + +extern void setDampingEnabled(struct jig *j, int dampingEnabled); + +extern void makeLinearMotor(struct part *p, char *name, double force, double stiffness, struct xyz *center, struct xyz *axis, int atomListLength, int *atomList); + +extern void printXYZ(FILE *f, struct xyz p); + +extern void printQuaternion(FILE *f, struct quaternion q); + +extern void printInertiaTensor(FILE *f, double *t); + +extern void printAtomShort(FILE *f, struct atom *a); + +extern char printableBondOrder(struct bond *b); + +extern char *hybridizationString(enum hybridization h); + +extern void printAtom(FILE *f, struct part *p, struct atom *a); + +extern void printBond(FILE *f, struct part *p, struct bond *b); + +extern char *printableJigType(struct jig *j); + +extern void printJig(FILE *f, struct part *p, struct jig *j); + +extern void printJoint(FILE *f, struct part *p, struct joint *j); + +extern void printRigidBody(FILE *f, struct part *p, struct rigidBody *rb); + +extern void printVanDerWaals(FILE *f, struct part *p, struct vanDerWaals *v); + +extern void printElectrostatic(FILE *f, struct part *p, struct electrostatic *es); + +extern void printStretch(FILE *f, struct part *p, struct stretch *s); + +extern void printBend(FILE *f, struct part *p, struct bend *b); + +extern void printTorsion(FILE *f, struct part *p, struct torsion *t); + +extern void printCumuleneTorsion(FILE *f, struct part *p, struct cumuleneTorsion *t); + +extern void printOutOfPlane(FILE *f, struct part *p, struct outOfPlane *o); + +extern void printPart(FILE *f, struct part *p); + +extern void deallocate_part(struct part *p); + +#endif + +/* + * Local Variables: + * c-basic-offset: 4 + * tab-width: 8 + * End: + */ diff --git a/sim/src/potential.c b/sim/src/potential.c new file mode 100755 index 000000000..6e42fb140 --- /dev/null +++ b/sim/src/potential.c @@ -0,0 +1,1288 @@ +// Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. + +#include "simulator.h" + +#define ALMOST_ZERO 0.0001 + +static char const rcsid[] = "$Id$"; + +#if 0 +/* Be able to turn off CHECK* when we need performance */ +#undef CHECKNAN +#undef CHECKNANR +#undef CHECKVEC +#define CHECKNAN(x) +#define CHECKNANR(x,y) +#define CHECKVEC(x) +#endif + +// incremented each time either the potential or gradient is +// calculated. Used to match values in bond->valid to determine the +// need to recalculate bond->inverseLength and bond->rUnit. +// +// This is the same as setting bond->valid to 0 for each bond, +// checking for non-zero, and setting to non-zero when calculated. It +// doesn't require the reset loop at the start of each calculation, +// though. +// +// Probably should allow the use of the same serial number for back to +// back calls to potential and gradient using the same positions. But +// then we'd have to save r and rSquared as well. +static int validSerial = 0; + +// presumes that updateVanDerWaals() has been called already. +static void +setRUnit(struct xyz *position, struct bond *b, double *pr) +{ + struct xyz rv; + double r; + double rSquared; + + // rv points from a1 to a2 + vsub2(rv, position[b->a2->index], position[b->a1->index]); + rSquared = vdot(rv, rv); + r = sqrt(rSquared); + if (r < 0.001) { + // atoms are on top of each other + b->inverseLength = 1000; + vsetc(b->rUnit, 1.0); + } else { + b->inverseLength = 1.0 / r; + vmul2c(b->rUnit, rv, b->inverseLength); /* unit vector along r from a1 to a2 */ + } + CHECKVEC(b->rUnit); + if (pr) { + *pr = r; + } + b->valid = validSerial; +} + + +// note: the first two parameters are only used for error processing... +// result in aJ (1e-18 J) +double +stretchPotential(struct part *p, struct stretch *stretch, struct bondStretch *stretchType, double r) +{ + int k; + double potential; + + /* interpolation */ + double *a; + double *b; + double *c; + double *d; + double start; + double scale; + + struct interpolationTable *iTable; + + if (QuadraticStretchPotential || stretchType->quadratic) { + potential = stretchType->ks * 5e-7 * (r - stretchType->r0) * (r - stretchType->r0); + return potential; + } + + // table lookup equivalent to: potential = potentialLippincottMorse(rSquared); + iTable = &stretchType->LippincottMorse; + start = iTable->start; + scale = iTable->scale; + a = iTable->a; + b = iTable->b; + c = iTable->c; + d = iTable->d; + k = (int)((r - start) / scale); + if (k < 0) { + if (DEBUG(D_TABLE_BOUNDS) && stretch) { // -D0 + fprintf(stderr, "stretch: low --"); + printStretch(stderr, p, stretch); + } + potential = ((a[0] * r + b[0]) * r + c[0]) * r + d[0]; + } else if (k >= TABLEN) { + if (ToMinimize) { // extend past end of table using a polynomial + potential = + ((stretchType->potentialExtensionD * r + + stretchType->potentialExtensionC) * r + + stretchType->potentialExtensionB) * r + + stretchType->potentialExtensionA; + } else { + potential=0.0; + } + if (DEBUG(D_TABLE_BOUNDS) && stretch) { // -D0 + fprintf(stderr, "stretch: high --"); + printStretch(stderr, p, stretch); + } + } else if (DirectEvaluate) { + potential = potentialLippincottMorse(r, stretchType); + } else { + potential = ((a[k] * r + b[k]) * r + c[k]) * r + d[k]; + } + return potential; +} + +static double +stretchPotentialPart(struct part *p, struct xyz *position) +{ + int j; + struct stretch *stretch; + struct bond *bond; + double r; + double potential = 0.0; + + for (j=0; j<p->num_stretches; j++) { + stretch = &p->stretches[j]; + bond = stretch->b; + + // we presume here that rUnit is invalid, and we need r + // anyway. + setRUnit(position, bond, &r); + BAILR(0.0); + potential += stretchPotential(p, stretch, stretch->stretchType, r); + CHECKNANR(potential, 0.0); + } + return potential; +} + +// result in pN (1e-12 J/m) +double +stretchGradient(struct part *p, struct stretch *stretch, struct bondStretch *stretchType, double r) +{ + int k; + double gradient; // in uN, converted to pN on return + + /* interpolation */ + double *a; + double *b; + double *c; + double start; + double scale; + + struct interpolationTable *iTable; + + if (QuadraticStretchPotential || stretchType->quadratic) { + gradient = stretchType->ks * (r - stretchType->r0); + return gradient; + } + + // table lookup equivalent to: gradient = gradientLippincottMorse(r); + // Note: this points uphill, toward higher potential values. + iTable = &stretchType->LippincottMorse; + start = iTable->start; + scale = iTable->scale; + a = iTable->a; + b = iTable->b; + c = iTable->c; + k = (int)((r - start) / scale); + if (!ToMinimize && + !ExcessiveEnergyWarning && + (k < stretchType->minPhysicalTableIndex || + k > stretchType->maxPhysicalTableIndex)) + { + WARNING2("excessive energy on %s bond at iteration %d -- further warnings suppressed", stretchType->bondName, Iteration); + ExcessiveEnergyWarningThisFrame++; + } + if (k < 0) { + if (DEBUG(D_TABLE_BOUNDS) && stretch) { // -D0 + fprintf(stderr, "stretch: low --"); + printStretch(stderr, p, stretch); + } + gradient = (3.0 * a[0] * r + 2.0 * b[0]) * r + c[0]; + } else if (k >= TABLEN) { + if (ToMinimize) { // extend past end of table using a polynomial + gradient = + (stretchType->potentialExtensionD * r * 3.0 + + stretchType->potentialExtensionC * 2.0) * r + + stretchType->potentialExtensionB; + } else { + gradient=0.0; + } + if (DEBUG(D_TABLE_BOUNDS) && stretch) { // -D0 + fprintf(stderr, "stretch: high --"); + printStretch(stderr, p, stretch); + } + } else if (DirectEvaluate) { + gradient = gradientLippincottMorse(r, stretchType); + } else { + gradient = (3.0 * a[k] * r + 2.0 * b[k]) * r + c[k]; + } + return gradient * 1e6; +} + +static void +stretchGradientPart(struct part *p, struct xyz *position, struct xyz *force) +{ + int j; + double gradient; + struct stretch *stretch; + struct bond *bond; + struct xyz f; + double r; + + for (j=0; j<p->num_stretches; j++) { + stretch = &p->stretches[j]; + bond = stretch->b; + + // we presume here that rUnit is invalid, and we need r anyway + setRUnit(position, bond, &r); + BAIL(); + + gradient = stretchGradient(p, stretch, stretch->stretchType, r); + CHECKNAN(gradient); + // rUnit points from a1 to a2; F = -gradient + vmul2c(f, bond->rUnit, gradient); + vadd(force[bond->a1->index], f); + vsub(force[bond->a2->index], f); + if (DEBUG(D_STRESS_MOVIE)) { // -D12 + writeSimpleStressVector(position, bond->a1->index, bond->a2->index, -1, gradient, 1000.0, 10000.0); + } + if (0 && DEBUG(D_MINIMIZE_GRADIENT_MOVIE_DETAIL)) { // -D5 + writeSimpleForceVector(position, bond->a1->index, &f, 1, 1.0); // red + vmulc(f, -1.0); + writeSimpleForceVector(position, bond->a2->index, &f, 1, 1.0); // red + } + } +} + +static double +bendPotentialPart(struct part *p, struct xyz *position) +{ + int j; + struct bend *bend; + struct bond *bond1; + struct bond *bond2; + struct xyz v1; + struct xyz v2; + double theta; + double dTheta; + struct bendData *bType; + double ff; + double potential = 0.0; + + for (j=0; j<p->num_bends; j++) { + bend = &p->bends[j]; + + bond1 = bend->b1; + bond2 = bend->b2; + + // Update rUnit for both bonds, if necessary. Note that we + // don't need r or rSquared here. + if (bond1->valid != validSerial) { + setRUnit(position, bond1, NULL); + BAILR(0.0); + } + if (bond2->valid != validSerial) { + setRUnit(position, bond2, NULL); + BAILR(0.0); + } + + // v1, v2 are the unit vectors FROM the central atom TO the + // neighbors. Reverse them if we have to. + if (bend->dir1) { + vsetn(v1, bond1->rUnit); + } else { + vset(v1, bond1->rUnit); + } + if (bend->dir2) { + vsetn(v2, bond2->rUnit); + } else { + vset(v2, bond2->rUnit); + } + + theta = (Pi / 180.0) * angleBetween(v1, v2); + BAILR(0.0); + +#if 0 +#define ACOS_POLY_A -0.0820599 +#define ACOS_POLY_B 0.142376 +#define ACOS_POLY_C -0.137239 +#define ACOS_POLY_D -0.969476 + + z = vlen(vsum(v1, v2)); + // this is the equivalent of theta=arccos(z); + theta = Pi + z * (ACOS_POLY_D + + z * (ACOS_POLY_C + + z * (ACOS_POLY_B + + z * ACOS_POLY_A ))); +#endif + + // bType->kb in yJ/rad^2 (1e-24 J/rad^2) + bType = bend->bendType; + dTheta = (theta - bType->theta0); + ff = 0.5 * dTheta * dTheta * bType->kb; + // ff is in yJ (1e-24 J), potential in aJ (1e-18 J) + potential += ff * 1e-6; + CHECKNANR(potential, 0.0); + } + return potential; +} + +static void +bendGradientPart(struct part *p, struct xyz *position, struct xyz *force) +{ + int j; + struct xyz v1; + struct xyz v2; + double theta; + double ff; + struct bond *bond1; + struct bond *bond2; + struct bend *bend; + struct bendData *bType; + double torque; + struct xyz q1; + struct xyz q2; + struct xyz foo; + struct xyz axis; + + /* now the forces for each bend */ + for (j=0; j<p->num_bends; j++) { + bend = &p->bends[j]; + + bond1 = bend->b1; + bond2 = bend->b2; + + // Update rUnit for both bonds, if necessary. Note that we + // don't need r or rSquared here. + if (bond1->valid != validSerial) { + setRUnit(position, bond1, NULL); + BAIL(); + } + if (bond2->valid != validSerial) { + setRUnit(position, bond2, NULL); + BAIL(); + } + + // v1, v2 are the unit vectors FROM the central atom TO the + // neighbors. Reverse them if we have to. + if (bend->dir1) { + vsetn(v1, bond1->rUnit); + } else { + vset(v1, bond1->rUnit); + } + if (bend->dir2) { + vsetn(v2, bond2->rUnit); + } else { + vset(v2, bond2->rUnit); + } + + // XXX figure out how close we can get / need to get + // apply no force if v1 and v2 are close to being linear +#define COLINEAR 1e-8 + + theta = (Pi / 180.0) * angleBetween(v1, v2); + +#if 0 + z = vlen(vsum(v1, v2)); + // this is the equivalent of theta=arccos(z); + theta = Pi + z * (ACOS_POLY_D + + z * (ACOS_POLY_C + + z * (ACOS_POLY_B + + z * ACOS_POLY_A ))); +#endif + + v2x(foo, v1, v2); // foo = v1 cross v2 + if (vlen(foo) < COLINEAR) { + // v1 and v2 are very close to colinear. We can pick any + // vector orthogonal to either one. First we try v1 x (1, 0, + // 0). If v1 is colinear with the x axis, then it can't be + // colinear with the y axis too, so we use v1 x (0, 1, 0) in + // that case. + axis.x = 1; + axis.y = 0; + axis.z = 0; + v2x(foo, v1, axis); + if (vlen(foo) < COLINEAR) { + axis.x = 0; + axis.y = 1; + v2x(foo, v1, axis); + } + } + + //foo = uvec(foo); // hmmm... not sure why this has to be a unit vector. + q1 = uvec(vx(v1, foo)); // unit vector perpendicular to v1 in plane of v1 and v2 + q2 = uvec(vx(foo, v2)); // unit vector perpendicular to v2 in plane of v1 and v2 + + // bType->kb in yJ/rad^2 (1e-24 J/rad^2) + bType = bend->bendType; + // torque in yJ/rad + torque = (theta - bType->theta0) * bType->kb; + // inverseLength is rad/pm + // ff is yJ/pm (1e-24 J / 1e-12 m) or 1e-12 J/m or pN + ff = torque * bond1->inverseLength; + vmulc(q1, ff); + ff = torque * bond2->inverseLength; + vmulc(q2, ff); + + vsub(force[bend->ac->index], q1); + vadd(force[bend->a1->index], q1); + vsub(force[bend->ac->index], q2); + vadd(force[bend->a2->index], q2); + if (DEBUG(D_STRESS_MOVIE)) { // -D12 + writeSimpleStressVector(position, bend->a1->index, bend->a2->index, bend->ac->index, torque, 500000.0, 1000000.0); + } + if (0 && DEBUG(D_MINIMIZE_GRADIENT_MOVIE_DETAIL)) { // -D5 + writeSimpleForceVector(position, bend->a1->index, &q1, 3, 1.0); // blue + vmulc(q1, -1.0); + writeSimpleForceVector(position, bend->ac->index, &q1, 2, 1.0); // green + writeSimpleForceVector(position, bend->a2->index, &q2, 3, 1.0); // blue + vmulc(q2, -1.0); + writeSimpleForceVector(position, bend->ac->index, &q2, 2, 1.0); // green + } + } +} + +static double +torsionPotentialPart(struct part *p, struct xyz *position) +{ + int j; + struct torsion *torsion; + struct xyz va; + struct xyz vb; + struct xyz vc; + struct xyz bxc; + double b; + double num; + double denom; + double theta; + double potential = 0.0; + + for (j=0; j<p->num_torsions; j++) { + torsion = &p->torsions[j]; + + vsub2(va, position[torsion->aa->index], position[torsion->a1->index]); + vsub2(vb, position[torsion->ab->index], position[torsion->aa->index]); + vsub2(vc, position[torsion->ab->index], position[torsion->a2->index]); + b = vlen(vb); + if (b < 1e-8) { + // This probably shouldn't happen anyway, as the aa-ab repulsion + // would be excessive. We avoid division by zero later by just + // ignoring this torsion. + continue; + } + + v2x(bxc, vb, vc); + num = vdot(va, bxc) / b; + denom = vdot(va, vc) - (vdot(va, vb) * vdot(vb, vc) / (b * b)); + theta = -atan2(num, denom); + + // cos(2 * theta) goes like theta^2 for small theta + // so A is in aJ/rad^2 + potential += torsion->A * (1 - cos(2 * theta)); + CHECKNANR(potential, 0.0); + } + return potential; +} + +static void +torsionGradientPart(struct part *p, struct xyz *position, struct xyz *force) +{ + int d; + int i; + int j; + struct xyz va; + struct xyz vb; + struct xyz vc; + double a; + double b; + double bb; + double c; + struct xyz bxc; + double F; + double G; + double H; + double J; + double K; + double L; + double M; + double Q; + double R; + double num; + double denom; + double theta; + double twoksintwotheta; + struct xyz a_p; + struct xyz b_p; + struct xyz c_p; + struct xyz va_p; + struct xyz vb_p; + struct xyz vc_p; + struct xyz bxc_p; + struct xyz bxc_p_tmp; + double F_p; + double G_p; + double H_p; + double J_p; + double K_p; + double bb_p; + double L_p; + double M_p; + double num_p; + double Q_p; + double R_p; + double theta_p; + struct torsion *torsion; + struct xyza gradients[4]; + struct xyza *gradient; + struct xyz *grad; + + for (j=0; j<p->num_torsions; j++) { + torsion = &p->torsions[j]; + + vsub2(va, position[torsion->aa->index], position[torsion->a1->index]); + vsub2(vb, position[torsion->ab->index], position[torsion->aa->index]); + vsub2(vc, position[torsion->ab->index], position[torsion->a2->index]); + a = vlen(va); + bb = vdot(vb, vb); + b = sqrt(bb); + c = vlen(vc); + if (a < 1e-8 || b < 1e-8 || c < 1e-8) { + // This probably shouldn't happen anyway, as the repulsion would + // be excessive. We avoid division by zero later by just + // ignoring this torsion. + continue; + } + + v2x(bxc, vb, vc); + F = vdot(va, bxc); + L = 1.0 / b; + num = F * L; + G = vdot(va, vb); + H = vdot(vb, vc); + J = G * H; + K = vdot(va, vc); + M = 1.0 / bb; + Q = M * J; + denom = K - Q; + if (fabs(denom) < 1e-8) { + continue; + } + R = num / denom; + theta = -atan2(num, denom); + twoksintwotheta = -2.0 * 1e6 * torsion->A * sin(2.0 * theta); + + for (i=0; i<4; i++) { + // XXX There's a lot of simplification that can go on in here if + // we unroll the loops. Not sure if gcc will do it + // automatically. + gradient = gradients + i; + switch (i) { + case 0: + // derivatives with respect to a1 + vmul2c(a_p, va, -1.0/a); + vsetc(b_p, 0.0); + vsetc(c_p, 0.0); + break; + case 1: + // derivatives with respect to aa + vmul2c(a_p, va, 1.0/a); + vmul2c(b_p, va, -1.0/b); + vsetc(c_p, 0.0); + break; + case 2: + // derivatives with respect to ab + vsetc(a_p, 0.0); + vmul2c(b_p, va, 1.0/b); + vmul2c(c_p, va, -1.0/c); + break; + case 3: + // derivatives with respect to a2 + vsetc(a_p, 0.0); + vsetc(b_p, 0.0); + vmul2c(c_p, va, 1.0/c); + break; + } + for (d=0; d<3; d++) { + vsetc(va_p, 0.0); + vsetc(vb_p, 0.0); + vsetc(vc_p, 0.0); + switch (i) { + case 0: + // derivatives with respect to a1 + ((struct xyza *)&va_p)->a[d] = -1.0; + break; + case 1: + // derivatives with respect to aa + ((struct xyza *)&va_p)->a[d] = 1.0; + ((struct xyza *)&vb_p)->a[d] = -1.0; + break; + case 2: + // derivatives with respect to ab + ((struct xyza *)&vb_p)->a[d] = 1.0; + ((struct xyza *)&vc_p)->a[d] = 1.0; + break; + case 3: + // derivatives with respect to a2 + ((struct xyza *)&vc_p)->a[d] = -1.0; + break; + } + + // bxc = vb x vc + // bxc_p = vb x vc_p + vb_p x vc + v2x(bxc_p, vb, vc_p); + v2x(bxc_p_tmp, vb_p, vc); + vadd(bxc_p, bxc_p_tmp); + + // F = va . bxc + // F_p = va . bxc_p + va_p . bxc + F_p = vdot(va, bxc_p) + vdot(va_p, bxc); + + // G = va . vb + // G_p = va . vb_p + va_p . vb + G_p = vdot(va, vb_p) + vdot(va_p, vb); + + // H = vb . vc + // H_p = vb . vc_p + vb_p . vc + H_p = vdot(vb, vc_p) + vdot(vb_p, vc); + + // J = G H + // J_p = G H_p + G_p H + J_p = G * H_p + G_p * H; + + // K = va . vc + // K_p = va . vc_p + va_p . vc + K_p = vdot(va, vc_p) + vdot(va_p, vc); + + // bb = vb . vb + // b = sqrt(bb) + // bb_p = 2 vb . vb_p + bb_p = 2.0 * vdot(vb, vb_p); + + // L = 1/b + // = bb^(-1/2) + // L_p = (-1/2)bb^(-3/2)bb_p + // L_p = -bb_p / (2 b^3) + L_p = -(bb_p / (2.0 * bb * b)); + + // b_p = (1/2)bb^(-1/2)bb_p + // = (vb . vb_p) b^(-1) + // M = b^(-2) + // M_p = (-2)b^(-3)b_p + // = (-2)(vb . vb_p)b^(-4) + M_p = (-bb_p / (bb * bb)); + + // num = L F + num_p = L * F_p + L_p * F; + + // Q = M J + Q_p = M * J_p + M_p * J; + + // denom = K - Q + // R = num denom^-1 + // R_p = num (-1) (K-Q)^-2 (K_p - Q_p) + num_p denom^-1 + R_p = (-num * (K_p - Q_p) / (denom * denom)) + (num_p / denom); + + // theta = -atan(R) + // theta_p = -R_p / (1 + R^2) + theta_p = -R_p / (1 + R * R); + + // potential = k (1 - cos(2 theta) + // gradient = 2 k sin(2 theta) theta_p + gradient->a[d] = twoksintwotheta * theta_p; + } + } + + grad = (struct xyz *)(gradients+0); + vadd(force[torsion->a1->index], *grad); + grad = (struct xyz *)(gradients+1); + vadd(force[torsion->aa->index], *grad); + grad = (struct xyz *)(gradients+2); + vadd(force[torsion->ab->index], *grad); + grad = (struct xyz *)(gradients+3); + vadd(force[torsion->a2->index], *grad); + + if (DEBUG(D_MINIMIZE_GRADIENT_MOVIE_DETAIL)) { // -D5 + writeSimpleForceVector(position, torsion->a1->index, (struct xyz *)(gradients+0), 3, 1.0); // blue + writeSimpleForceVector(position, torsion->aa->index, (struct xyz *)(gradients+1), 2, 1.0); // green + writeSimpleForceVector(position, torsion->ab->index, (struct xyz *)(gradients+2), 2, 1.0); // green + writeSimpleForceVector(position, torsion->a2->index, (struct xyz *)(gradients+3), 3, 1.0); // blue + } + } +} + +static double +outOfPlanePotentialPart(struct part *p, struct xyz *position) +{ + int j; + double rSquared; + double normalLength; + struct xyz v1_2; + struct xyz v1_3; + struct xyz v1_c; + struct xyz normal; + struct xyz unitNormal; + double outOfPlaneDistance; + struct outOfPlane *outOfPlane; + double potential = 0.0; + + for (j=0; j<p->num_outOfPlanes; j++) { + outOfPlane = &p->outOfPlanes[j]; + + // v1_2 and v1_3 are vectors in the plane of the outer triangle (1-2-3) + // v1_c is a vector from somewhere on that plane (actually point 1) + // to the outOfPlane point. + vsub2(v1_2, position[outOfPlane->a2->index], position[outOfPlane->a1->index]); + vsub2(v1_3, position[outOfPlane->a3->index], position[outOfPlane->a1->index]); + vsub2(v1_c, position[outOfPlane->ac->index], position[outOfPlane->a1->index]); + + v2x(normal, v1_2, v1_3); + rSquared = vdot(normal, normal); + if (rSquared < 1e-8) { + // If normal is very short, then 1-2-3 must be nearly co-linear. + // We can draw any plane we want which passes through that line, + // so we choose the one passing through point c. That means + // outOfPlaneDistance = 0. + continue; + } + + // At this point, we know that 1, 2, and 3 are all distinct points + + // distance = v1_c dot unit(normal) + normalLength = 1.0 / sqrt(rSquared); + vmul2c(unitNormal, normal, normalLength); + outOfPlaneDistance = vdot(unitNormal, v1_c); + + // A is aJ/pm^2 + potential += 0.5 * outOfPlane->A * outOfPlaneDistance * outOfPlaneDistance; + CHECKNANR(potential, 0.0); + } + return potential; +} + +#define BALANCED_OOP_GRADIENT + +static void +outOfPlaneGradientPart(struct part *p, struct xyz *position, struct xyz *force) +{ + int j; + double rSquared; + double normalLength; + struct xyz v1_2; + struct xyz v1_3; + struct xyz v1_c; + struct xyz normal; + struct xyz unitNormal; + struct xyz projection_ac; // point in plane which is closest to ac + struct xyz f; + struct xyz f1; + double ff; + double outOfPlaneDistance; + struct outOfPlane *outOfPlane; + double factor1; + double factor2; + double factor3; +#ifdef BALANCED_OOP_GRADIENT + double parameter; + struct xyz axis; + struct xyz axis_mobilePlanePoint; + struct xyz axis_projectionAc; +#ifdef CHECK_RESIDUAL + struct xyz v2_3; + struct xyz v2_1; + double factor1a; +#endif +#endif + + for (j=0; j<p->num_outOfPlanes; j++) { + outOfPlane = &p->outOfPlanes[j]; + + // v1_2 and v1_3 are vectors in the plane of the outer triangle (1-2-3) + // v1_c is a vector from somewhere on that plane (actually point 1) + // to the outOfPlane point. + vsub2(v1_2, position[outOfPlane->a2->index], position[outOfPlane->a1->index]); + vsub2(v1_3, position[outOfPlane->a3->index], position[outOfPlane->a1->index]); + vsub2(v1_c, position[outOfPlane->ac->index], position[outOfPlane->a1->index]); + + v2x(normal, v1_2, v1_3); + rSquared = vdot(normal, normal); + if (rSquared < 1e-8) { + // If normal is very short, then 1-2-3 must be nearly co-linear. + // We can draw any plane we want which passes through that line, + // so we choose the one passing through point c. That means + // outOfPlaneDistance = 0. + continue; + } + + // At this point, we know that 1, 2, and 3 are all distinct points + + // distance = v1_c dot unit(normal) + normalLength = 1.0 / sqrt(rSquared); + vmul2c(unitNormal, normal, normalLength); + outOfPlaneDistance = vdot(unitNormal, v1_c); + + if (fabs(outOfPlaneDistance) < 1e-8) { + continue; + } + // Now, ac must be distinct from 1, 2, 3 as well. + +#ifdef BALANCED_OOP_GRADIENT + +#define closePointParameter(line, point) (vdot(point, line) / vdot(line, line)) + + vmul2c(projection_ac, unitNormal, -outOfPlaneDistance); + vadd(projection_ac, position[outOfPlane->ac->index]); + + parameter = closePointParameter(v1_2, v1_3); + vmul2c(axis, v1_2, parameter); + vadd(axis, position[outOfPlane->a1->index]); + vsub2(axis_mobilePlanePoint, position[outOfPlane->a3->index], axis); + vsub2(axis_projectionAc, projection_ac, axis); + factor3 = -closePointParameter(axis_mobilePlanePoint, axis_projectionAc); + + parameter = closePointParameter(v1_3, v1_2); + vmul2c(axis, v1_3, parameter); + vadd(axis, position[outOfPlane->a1->index]); + vsub2(axis_mobilePlanePoint, position[outOfPlane->a2->index], axis); + vsub2(axis_projectionAc, projection_ac, axis); + factor2 = -closePointParameter(axis_mobilePlanePoint, axis_projectionAc); + + factor1 = -1.0 - factor2 - factor3; + +#ifdef CHECK_RESIDUAL + vsub2(v2_3, position[outOfPlane->a3->index], position[outOfPlane->a2->index]); + vsub2(v2_1, position[outOfPlane->a1->index], position[outOfPlane->a2->index]); + parameter = closePointParameter(v2_3, v2_1); + vmul2c(axis, v2_3, parameter); + vadd(axis, position[outOfPlane->a2->index]); + vsub2(axis_mobilePlanePoint, position[outOfPlane->a1->index], axis); + vsub2(axis_projectionAc, projection_ac, axis); + factor1a = -closePointParameter(axis_mobilePlanePoint, axis_projectionAc); + + if (fabs(factor1 - factor1a) > 1e-12) { + fprintf(stderr, "residual: %e\n", factor1 - factor1a); + } +#endif + +#else + factor1 = factor2 = factor3 = -1.0 / 3.0 ; +#endif + + // A is aJ/pm^2; ff is yJ/pm or pN + ff = -1e3 * outOfPlane->A * outOfPlaneDistance; + ff *= 1e3; + vmul2c(f, unitNormal, ff); + + vadd(force[outOfPlane->ac->index], f); + vmul2c(f1, f, factor1); + vadd(force[outOfPlane->a1->index], f1); + vmul2c(f1, f, factor2); + vadd(force[outOfPlane->a2->index], f1); + vmul2c(f1, f, factor3); + vadd(force[outOfPlane->a3->index], f1); + + if (DEBUG(D_MINIMIZE_GRADIENT_MOVIE_DETAIL)) { // -D5 + writeSimpleForceVector(position, outOfPlane->ac->index, &f, 8, 100.0); // blue + + vmul2c(f1, f, factor1); + writeSimpleForceVector(position, outOfPlane->a1->index, &f1, 7, 100.0); // green + vmul2c(f1, f, factor2); + writeSimpleForceVector(position, outOfPlane->a2->index, &f1, 7, 100.0); // green + vmul2c(f1, f, factor3); + writeSimpleForceVector(position, outOfPlane->a3->index, &f1, 8, 100.0); // green + } + } +} + +// result in aJ (1e-18 J) +double +vanDerWaalsPotential(struct part *p, struct vanDerWaals *vdw, struct vanDerWaalsParameters *parameters, double r) +{ + double potential; + int k; + double *a; + double *b; + double *c; + double *d; + double start; + double scale; + struct interpolationTable *iTable; + + /* table setup */ + iTable = ¶meters->Buckingham; + start = iTable->start; + scale = iTable->scale; + a = iTable->a; + b = iTable->b; + c = iTable->c; + d = iTable->d; + + k=(int)((r - start) / scale); + if (k < 0) { + if (!ToMinimize && DEBUG(D_TABLE_BOUNDS)) { //linear + fprintf(stderr, "vdW: off table low -- r=%.2f \n", r); + printVanDerWaals(stderr, p, vdw); + } + potential = ((a[0] * r + b[0]) * r + c[0]) * r + d[0]; + } else if (k>=TABLEN) { + potential = 0.0; + } else if (DirectEvaluate) { + potential = potentialBuckingham(r, parameters); + } else { + potential = ((a[k] * r + b[k]) * r + c[k]) * r + d[k]; + } + return potential; +} + +static double +vdwPotentialPart(struct part *p, struct xyz *position) +{ + int j; + struct vanDerWaals *vdw; + struct xyz rv; + double rSquared; + double r; + double potential = 0.0; + + /* do the van der Waals/London forces */ + for (j=0; j<p->num_vanDerWaals; j++) { + vdw = p->vanDerWaals[j]; + + // The vanDerWaals array changes over time, and might have + // NULL's in it as entries are deleted. + if (vdw == NULL) { + continue; + } + + vsub2(rv, position[vdw->a1->index], position[vdw->a2->index]); + rSquared = vdot(rv, rv); + r = sqrt(rSquared); + potential += vanDerWaalsPotential(p, vdw, vdw->parameters, r); + CHECKNANR(potential, 0.0); + } + return potential; +} + +// result in pN (1e-12 J/m) +double +vanDerWaalsGradient(struct part *p, struct vanDerWaals *vdw, struct vanDerWaalsParameters *parameters, double r) +{ + double gradient; // in uN, converted to pN at return + int k; + double *a; + double *b; + double *c; + double start; + double scale; + struct interpolationTable *iTable; + + /* table setup */ + iTable = ¶meters->Buckingham; + start = iTable->start; + scale = iTable->scale; + a = iTable->a; + b = iTable->b; + c = iTable->c; + + k=(int)((r - start) / scale); + + if (!ToMinimize && + !ExcessiveEnergyWarning && + k < parameters->minPhysicalTableIndex) + { + WARNING2("excessive energy in %s vdw at iteration %d -- further warnings suppressed", parameters->vdwName, Iteration); + ExcessiveEnergyWarningThisFrame++; + } + + if (k < 0) { + if (!ToMinimize && DEBUG(D_TABLE_BOUNDS)) { //linear + fprintf(stderr, "vdW: off table low -- r=%.2f \n", r); + printVanDerWaals(stderr, p, vdw); + } + gradient = (3.0 * a[0] * r + 2.0 * b[0]) * r + c[0]; + } else if (DirectEvaluate) { + gradient = gradientBuckingham(r, parameters); + } else if (k>=TABLEN) { + gradient = 0.0; + } else { + gradient = (3.0 * a[k] * r + 2.0 * b[k]) * r + c[k]; + } + return gradient * 1e6; +} + +static void +vdwGradientPart(struct part *p, struct xyz *position, struct xyz *force) +{ + int j; + double rSquared; + double gradient; + struct vanDerWaals *vdw; + struct xyz rv; + struct xyz f; + double r; + + /* do the van der Waals/London forces */ + for (j=0; j<p->num_vanDerWaals; j++) { + vdw = p->vanDerWaals[j]; + + // The vanDerWaals array changes over time, and might have + // NULL's in it as entries are deleted. + if (vdw == NULL) { + continue; + } + + vsub2(rv, position[vdw->a1->index], position[vdw->a2->index]); + rSquared = vdot(rv, rv); + r = sqrt(rSquared); + + if (r > ALMOST_ZERO) { + gradient = vanDerWaalsGradient(p, vdw, vdw->parameters, r) / r; + + vmul2c(f, rv, gradient); + vsub(force[vdw->a1->index], f); + vadd(force[vdw->a2->index], f); + } else { + gradient = 0.0; + } + if (DEBUG(D_STRESS_MOVIE)) { // -D12 + writeSimpleStressVector(position, vdw->a1->index, vdw->a2->index, -1, gradient, 10.0, 100.0); + } + if (DEBUG(D_MINIMIZE_GRADIENT_MOVIE_DETAIL) && r > ALMOST_ZERO) { // -D5 + writeSimpleForceVector(position, vdw->a2->index, &f, 4, 1.0); // cyan + vmulc(f, -1.0); + writeSimpleForceVector(position, vdw->a1->index, &f, 4, 1.0); // cyan + } + } +} + +// result in aJ (1e-18 J) +double +electrostaticPotential(struct part *p, struct electrostatic *es, struct electrostaticParameters *parameters, double r) +{ + double potential; + int k; + double *a; + double *b; + double *c; + double *d; + double start; + double scale; + struct interpolationTable *iTable; + + /* table setup */ + iTable = ¶meters->Coulomb; + start = iTable->start; + scale = iTable->scale; + a = iTable->a; + b = iTable->b; + c = iTable->c; + d = iTable->d; + + k=(int)((r - start) / scale); + if (k < 0) { + if (!ToMinimize && DEBUG(D_TABLE_BOUNDS)) { //linear + fprintf(stderr, "es: off table low -- r=%.2f \n", r); + printElectrostatic(stderr, p, es); + } + potential = ((a[0] * r + b[0]) * r + c[0]) * r + d[0]; + } else if (k>=TABLEN) { + potential = 0.0; + } else if (DirectEvaluate) { + potential = potentialCoulomb(r, parameters); + } else { + potential = ((a[k] * r + b[k]) * r + c[k]) * r + d[k]; + } + return potential; +} + +static double +electrostaticPotentialPart(struct part *p, struct xyz *position) +{ + int j; + struct electrostatic *es; + struct xyz rv; + double rSquared; + double r; + double potential = 0.0; + + /* do the Coulomb forces */ + for (j=0; j<p->num_electrostatic; j++) { + es = p->electrostatic[j]; + + // The electrostatic array changes over time, and might have + // NULL's in it as entries are deleted. + if (es == NULL) { + continue; + } + + vsub2(rv, position[es->a1->index], position[es->a2->index]); + rSquared = vdot(rv, rv); + r = sqrt(rSquared); + potential += electrostaticPotential(p, es, es->parameters, r); + CHECKNANR(potential, 0.0); + } + return potential; +} + +// result in pN (1e-12 J/m) +double +electrostaticGradient(struct part *p, struct electrostatic *es, struct electrostaticParameters *parameters, double r) +{ + double gradient; // in uN, converted to pN at return + int k; + double *a; + double *b; + double *c; + double start; + double scale; + struct interpolationTable *iTable; + + /* table setup */ + iTable = ¶meters->Coulomb; + start = iTable->start; + scale = iTable->scale; + a = iTable->a; + b = iTable->b; + c = iTable->c; + + k=(int)((r - start) / scale); + + if (!ToMinimize && + !ExcessiveEnergyWarning && + k < parameters->minPhysicalTableIndex) + { + WARNING2("excessive energy in %s es at iteration %d -- further warnings suppressed", parameters->electrostaticName, Iteration); + ExcessiveEnergyWarningThisFrame++; + } + + if (k < 0) { + if (!ToMinimize && DEBUG(D_TABLE_BOUNDS)) { //linear + fprintf(stderr, "es: off table low -- r=%.2f \n", r); + printElectrostatic(stderr, p, es); + } + gradient = (3.0 * a[0] * r + 2.0 * b[0]) * r + c[0]; + } else if (DirectEvaluate) { + gradient = gradientCoulomb(r, parameters); + } else if (k>=TABLEN) { + gradient = 0.0; + } else { + gradient = (3.0 * a[k] * r + 2.0 * b[k]) * r + c[k]; + } + return gradient * 1e6; +} + +static void +electrostaticGradientPart(struct part *p, struct xyz *position, struct xyz *force) +{ + int j; + double rSquared; + double gradient; + struct electrostatic *es; + struct xyz rv; + struct xyz f; + double r; + + /* do the Coulomb forces */ + for (j=0; j<p->num_electrostatic; j++) { + es = p->electrostatic[j]; + + // The electrostatic array changes over time, and might have + // NULL's in it as entries are deleted. + if (es == NULL) { + continue; + } + + vsub2(rv, position[es->a1->index], position[es->a2->index]); + rSquared = vdot(rv, rv); + r = sqrt(rSquared); + + if (r > ALMOST_ZERO) { + gradient = electrostaticGradient(p, es, es->parameters, r) / r; + + vmul2c(f, rv, gradient); + vsub(force[es->a1->index], f); + vadd(force[es->a2->index], f); + } else { + gradient = 0.0; + } + if (DEBUG(D_STRESS_MOVIE)) { // -D12 + writeSimpleStressVector(position, es->a1->index, es->a2->index, -1, gradient, 10.0, 100.0); + } + if (DEBUG(D_MINIMIZE_GRADIENT_MOVIE_DETAIL) && r > ALMOST_ZERO) { // -D5 + writeSimpleForceVector(position, es->a2->index, &f, 4, 1.0); // cyan + vmulc(f, -1.0); + writeSimpleForceVector(position, es->a1->index, &f, 4, 1.0); // cyan + } + } +} + +// result in aJ (1e-18 J) +double +calculatePotential(struct part *p, struct xyz *position) +{ + double potential = 0.0; + + validSerial++; + + if (!DEBUG(D_SKIP_STRETCH)) { // -D6 + potential += stretchPotentialPart(p, position); + CHECKNANR(potential, 0.0); + } + + if (!DEBUG(D_SKIP_BEND)) { // -D7 + potential += bendPotentialPart(p, position); + CHECKNANR(potential, 0.0); + } + + if (!DEBUG(D_SKIP_TORSION)) { // -D16 + potential += torsionPotentialPart(p, position); + CHECKNANR(potential, 0.0); + } + + if (!DEBUG(D_SKIP_OUT_OF_PLANE)) { // -D17 + potential += outOfPlanePotentialPart(p, position); + CHECKNANR(potential, 0.0); + } + + if (!DEBUG(D_SKIP_VDW)) { // -D9 + potential += vdwPotentialPart(p, position); + CHECKNANR(potential, 0.0); + } + + if (!DEBUG(D_SKIP_ELECTROSTATIC)) { // -D9 + potential += electrostaticPotentialPart(p, position); + CHECKNANR(potential, 0.0); + } + + return potential; +} + +// result placed in force is in pN (1e-12 J/m) +void +calculateGradient(struct part *p, struct xyz *position, struct xyz *force) +{ + int j; + + validSerial++; + + /* clear force vectors */ + for (j=0; j<p->num_atoms; j++) { + vsetc(force[j], 0.0); + } + + if (!DEBUG(D_SKIP_STRETCH)) { // -D6 + stretchGradientPart(p, position, force); + BAIL(); + } + + if (!DEBUG(D_SKIP_BEND)) { // -D7 + bendGradientPart(p, position, force); + BAIL(); + } + + if (!DEBUG(D_SKIP_TORSION)) { // -D16 + torsionGradientPart(p, position, force); + BAIL(); + } + + if (!DEBUG(D_SKIP_OUT_OF_PLANE)) { // -D17 + outOfPlaneGradientPart(p, position, force); + BAIL(); + } + + if (!DEBUG(D_SKIP_VDW)) { // -D9 + vdwGradientPart(p, position, force); + BAIL(); + } + + if (!DEBUG(D_SKIP_ELECTROSTATIC)) { // -D9 + electrostaticGradientPart(p, position, force); + BAIL(); + } +} diff --git a/sim/src/potential.h b/sim/src/potential.h new file mode 100755 index 000000000..46ae2dc21 --- /dev/null +++ b/sim/src/potential.h @@ -0,0 +1,22 @@ +// Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. +#ifndef POTENTIAL_H_INCLUDED +#define POTENTIAL_H_INCLUDED + +#define RCSID_POTENTIAL_H "$Id$" + +extern double stretchPotential(struct part *p, struct stretch *stretch, struct bondStretch *stretchType, double rSquared); + +extern double stretchGradient(struct part *p, struct stretch *stretch, struct bondStretch *stretchType, double rSquared); + +extern double vanDerWaalsPotential(struct part *p, struct vanDerWaals *vdw, struct vanDerWaalsParameters *parameters, double rSquared); + +extern double vanDerWaalsGradient(struct part *p, struct vanDerWaals *vdw, struct vanDerWaalsParameters *parameters, double rSquared); +extern double electrostaticPotential(struct part *p, struct electrostatic *es, struct electrostaticParameters *parameters, double r); + +extern double electrostaticGradient(struct part *p, struct electrostatic *es, struct electrostaticParameters *parameters, double r); + +extern double calculatePotential(struct part *p, struct xyz *position); + +extern void calculateGradient(struct part *p, struct xyz *position, struct xyz *force); + +#endif diff --git a/sim/src/printers.c b/sim/src/printers.c new file mode 100755 index 000000000..d7bdfe11f --- /dev/null +++ b/sim/src/printers.c @@ -0,0 +1,364 @@ +// Copyright 2004-2007 Nanorex, Inc. See LICENSE file for details. +/* + * Routines to handle printing to the trace file. + * + * CHANGES (reverse chronological order, use CVS log for details) + * + * wware 060102 - Eliminated a large chunk of code that was if-0-ed off anyway. + * Use write_traceline() function to replace direct writes to trace file. Add + * doneNoExit() function, behaves like doneExit() but doesn't exit. + * + */ + +#include "simulator.h" + +static char const rcsid[] = "$Id$"; + +static char __line[2000], *__p; + +static int +countOutputColumns(struct jig *j) +{ + switch (j->type) { + case RotaryMotor: + return 2; + case Ground: + case Thermometer: + case DihedralMeter: + case AngleMeter: + case RadiusMeter: + case Thermostat: + case LinearMotor: + return 1; + default: + return 0; + } +} + +void +traceFileVersion() +{ + write_traceline("# NanoEngineer-1.com Simulator Trace File, Version 050310\n"); + write_traceline("#\n"); +} + +void traceHeader(struct part *part) +{ + int i, ncols; + struct jig *j; + struct tm *ptr; + time_t tm; + tm = time(NULL); + ptr = localtime(&tm); + + if (CommandLine != NULL && CommandLine[0] != '\0') { + write_traceline("# Command Line: %s\n", CommandLine); + } + printGlobals(); + + // asctime provides '\n' so we needn't add one + write_traceline("# Date and Time: %s", asctime(ptr)); + if (InputFileName != NULL && InputFileName[0] != '\0') { + write_traceline("# Input File: %s\n", InputFileName); + } + if (OutputFileName != NULL && OutputFileName[0] != '\0') { + write_traceline("# Output File: %s\n", OutputFileName); + } + if (TraceFileName != NULL && TraceFileName[0] != '\0') { + write_traceline("# Trace File: %s\n", TraceFileName); + } + if (IDKey != NULL && IDKey[0] != '\0') { + write_traceline("# IDKey: %s\n", IDKey); + } + if (ToMinimize) { + write_traceline("#\n"); + write_traceline("# Run type: Energy Minimization.\n"); + write_traceline("#\n"); + write_traceline("# iteration RMS force (pN) maximum force (pN)\n"); + write_traceline("#\n"); + return; + } + + write_traceline("# \n"); + write_traceline("# Run type: Dynamics.\n"); + write_traceline("# \n"); + write_traceline("# Number of Frames: %d\n", NumFrames); + write_traceline("# Steps per Frame: %d\n", IterPerFrame); + write_traceline("# Temperature: %.1f\n", Temperature); + + if (part == NULL) { + write_traceline("# Warning: no part supplied.\n"); + return; + } + + write_traceline("# Number of Atoms: %d\n", part->num_atoms); + write_traceline("# \n"); + + for (i=0; i<part->num_jigs; i++) { + j = part->jigs[i]; + switch (j->type) { + + case Thermostat: + write_traceline("# %s Temperature setting: %f K\n", j->name, j->j.thermostat.temperature); + break; + + case LinearMotor: + write_traceline("# %s Force: %f pN\n", j->name, j->j.lmotor.force); + write_traceline("# %s Stiffness: %f N/m\n", j->name, j->j.lmotor.stiffness); + break; + + case RotaryMotor: + write_traceline("# %s Zero Speed Torque: %f nN-nm\n", j->name, j->j.rmotor.stall / 1e6); + write_traceline("# %s Zero Torque Speed: %f Ghz\n", j->name, j->j.rmotor.speed / (2.0e9 * Pi)); + write_traceline("# %s Initial Speed: %f Ghz\n", j->name, j->j.rmotor.omega / (2.0e9 * Pi)); + write_traceline("# %s Damping coefficient: %f\n", j->name, j->j.rmotor.damping_enabled ? j->j.rmotor.dampingCoefficient : 0.0); + break; + + default: + break; + } + } + write_traceline("#\n"); + + ncols = 0; + if (PrintPotentialEnergy) { + ncols += 3; + } + + for (i=0; i<part->num_jigs; i++) { + ncols += countOutputColumns(part->jigs[i]); + } + + // Column count does not include the time column. Cad uses this + // to configure plotting interface. + write_traceline("# %d columns:\n", ncols); + + for (i=0; i<part->num_jigs; i++) { + j = part->jigs[i]; + switch (j->type) { + + case DihedralMeter: + write_traceline("# %s: dihedral (degrees)\n", j->name); + break; + + case AngleMeter: + write_traceline("# %s: angle (degrees)\n", j->name); + break; + + case RadiusMeter: + write_traceline("# %s: distance (angstroms)\n", j->name); + break; + + case Ground: + write_traceline("# %s: torque (nn-nm)\n", j->name); + break; + + case Thermometer: + write_traceline("# %s: temperature (K)\n", j->name); + break; + + case Thermostat: + write_traceline("# %s: energy added (zJ)\n", j->name); + break; + + case LinearMotor: + write_traceline("# %s: displacement (angstroms)\n", j->name); + break; + + case RotaryMotor: + write_traceline("# %s: speed (GHz)\n", j->name); + write_traceline("# %s: torque (nn-nm)\n", j->name); + break; + } + } + if (PrintPotentialEnergy) { + write_traceline("# Structure: potential energy (attojoules)\n"); + write_traceline("# Structure: kinetic energy (attojoules)\n"); + write_traceline("# Structure: total energy (attojoules)\n"); + } + write_traceline("#\n"); +} + +void traceJigHeader(struct part *part) { + struct jig *j; + int i; + int ncol; + + __p = __line; + __p += sprintf(__p, "# Time "); + for (i=0; i<part->num_jigs; i++) { + j = part->jigs[i]; + + j->data=0.0; + j->data2=0.0; + vsetc(j->xdata,0.0); + + switch (j->type) { + case Ground: __p += sprintf(__p, "Anchor "); break; + case Thermometer: __p += sprintf(__p, "T.meter "); break; + case DihedralMeter: __p += sprintf(__p, "Dihedral "); break; + case AngleMeter: __p += sprintf(__p, "Angle "); break; + case RadiusMeter: __p += sprintf(__p, "Distance "); break; + case Thermostat: __p += sprintf(__p, "T.stat "); break; + case LinearMotor: __p += sprintf(__p, "Lmotor "); break; + case RotaryMotor: __p += sprintf(__p, "speed torque "); + } + } + sprintf(__p, "\n"); + write_traceline(__line); + __p = __line; + __p += sprintf(__p, "# picosec "); + + for (i=0; i<part->num_jigs; i++) { + j = part->jigs[i]; + ncol = countOutputColumns(j); + if (ncol > 0) { + __p += sprintf(__p, " %-15.15s", j->name); + while (ncol-- > 1) + // 16 spaces + __p += sprintf(__p, " %-15.15s", " "); + } + } + if (PrintPotentialEnergy) { + __p += sprintf(__p, " %-15.15s", "P.Energy"); + __p += sprintf(__p, " %-15.15s", "K.Energy"); + __p += sprintf(__p, " %-15.15s", "T.Energy"); + } + sprintf(__p, "\n"); + write_traceline(__line); + __p = __line; + sprintf(__p, "#\n"); + write_traceline(__line); +} + + +void traceJigData(struct part *part, struct xyz *positions) { + double x; + int i; + struct jig *j; + + __p = __line; + __p += sprintf(__p, "%10.4f ", Iteration * Dt / PICOSEC); + + for (i=0; i<part->num_jigs; i++) { + j = part->jigs[i]; + switch (j->type) { + case DihedralMeter: + case AngleMeter: + __p += sprintf(__p, " %15.5f", j->data); + break; + case Ground: + x=vlen(j->xdata)/1e4; + __p += sprintf(__p, " %15.2f", x / j->data); + j->data=0.0; + vsetc(j->xdata, 0.0); + break; + case RadiusMeter: + case LinearMotor: + // convert from picometers to angstroms + __p += sprintf(__p, " %15.4f", 0.01 * j->data); + j->data = 0.0; + break; + case Thermometer: + case Thermostat: + __p += sprintf(__p, " %15.2f", j->data); + j->data = 0.0; + break; + case RotaryMotor: + __p += sprintf(__p, " %15.3f %15.3f", j->data, j->data2); + j->data = 0.0; + j->data2 = 0.0; + break; + } + } + if (PrintPotentialEnergy) { + double potential_energy = calculatePotential(part, positions); + double kinetic_energy = calculateKinetic(part); + + __p += sprintf(__p, " %15.6f", potential_energy); + __p += sprintf(__p, " %15.6f", kinetic_energy); + __p += sprintf(__p, " %15.6f", potential_energy + kinetic_energy); + } + sprintf(__p, "\n"); // each snapshot is one line + write_traceline(__line); +} + +void +printError(const char *file, int line, int error_type, + int doPerror, const char *format, ...) +{ + va_list args; + char *errorType; + int toStderr = 0; + + switch (error_type) { + case TYPE_ERROR: + errorType = "Error"; + toStderr = 1; + break; + case TYPE_WARNING: + errorType = "Warning"; + break; + default: + errorType = "Info"; + break; + } + + __p = __line; + __p += sprintf(__p, "# %s: ", errorType); + va_start(args, format); + __p += vsprintf(__p, format, args); + va_end(args); + if (doPerror) { + sprintf(__p, ": %s\n", strerror(errno)); + } else { + sprintf(__p, "\n"); + } + write_traceline(__line); + if (toStderr) { + fprintf(stderr, "%s", __line); + } +} + +static FILE *testAlertFile = NULL; + +void +testAlert(const char *format, ...) +{ + va_list args; + + if (testAlertFile == NULL) { + testAlertFile = fopen("/tmp/simTestAlerts", "a"); + if (testAlertFile == NULL) { + ERROR("failed to open /tmp/simTestAlerts"); + testAlertFile = stderr; + } else { + fprintf(testAlertFile, "----------------------------------------------\nInputFile: %s\n", InputFileName); + } + } + va_start(args, format); + vfprintf(testAlertFile, format, args); + va_end(args); + fflush(testAlertFile); +} + +void +done(const char *format, ...) +{ + va_list args; + + __p = __line; + __p += sprintf(__p, "# Done: "); + va_start(args, format); + __p += vsprintf(__p, format, args); + va_end(args); + sprintf(__p, "\n"); + write_traceline(__line); +} + +/* + * Local Variables: + * c-basic-offset: 4 + * tab-width: 8 + * End: + */ diff --git a/sim/src/printers.h b/sim/src/printers.h new file mode 100755 index 000000000..d532d06c0 --- /dev/null +++ b/sim/src/printers.h @@ -0,0 +1,22 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#ifndef PRINTERS_H_INCLUDED +#define PRINTERS_H_INCLUDED + +#define RCSID_PRINTERS_H "$Id$" + +extern void traceFileVersion(void); + +extern void traceHeader(struct part *part); + +extern void traceJigHeader(struct part *part); + +extern void traceJigData(struct part *part, struct xyz *positions); + +extern void printError(const char *file, int line, int error_type, + int doPerror, const char *format, ...); + +extern void testAlert(const char *format, ...); + +extern void done(const char *format, ...); + +#endif diff --git a/sim/src/readers.c b/sim/src/readers.c new file mode 100755 index 000000000..5560e0479 --- /dev/null +++ b/sim/src/readers.c @@ -0,0 +1,718 @@ +// Copyright 2004-2006 Nanorex, Inc. See LICENSE file for details. + +#include "simulator.h" + +static char const rcsid[] = "$Id$"; + +/* creating atoms, bonds, etc */ + +/** uses global Nexatom, atom, element, positions, old_positions, Dt, Dx, Boltz, and + Temperature */ +// posn in pm or 1e-12 m +void +makatom(int elem, struct xyz posn) { + struct xyz foo, v, p; + double mass, therm; + + /* create the data structures */ + atom[Nexatom].elt=elem; + atom[Nexatom].nbonds=0; + //atom[Nexatom].part = PartNo; + //atom[Nexatom].disp = DisplayStyle; + atom[Nexatom].next = NULL; + atom[Nexatom].bucket = &Space[0][0][0]; + + mass=periodicTable[elem].mass * 1e-27; + atom[Nexatom].massacc= Dt*Dt / mass; + + /* set position and initialize thermal velocity */ + Positions[Nexatom]=posn; + OldPositions[Nexatom]=posn; + AveragePositions[Nexatom]=posn; + // assuming the structure is minimized, half of this will + // disappear into Pe on average + therm = sqrt(2.0*(Boltz*Temperature)/mass)*Dt/Dx; + v=gxyz(therm); + vsub(OldPositions[Nexatom],v); + + /* thermostat trigger stays high, since slower motions shouldn't + reach the unstable simulation regions of phase space + {not currently used} + + therm = sqrt((2.0*Boltz*300.0)/mass)*Dt/Dx; + atom[Nexatom].vlim=(3*therm)*(3*therm); + */ + + TotalKE += Boltz*Temperature*1.5; + atom[Nexatom].energ = (mass*Dx*Dx)/(Dt*Dt); + + /* add contribution to overall mass center, momentum */ + totMass += mass; + + vmul2c(foo,posn,mass); + vadd(Cog,foo); + + vmul2c(p,v,mass); + vadd(P,p); + + /* + v=vdif(positions[Nexatom],old_positions[Nexatom]); + printf("makatom(%d) V=%.2f ", Nexatom, vlen(v)); + pv(positions[Nexatom]); pvt(old_positions[Nexatom]); + */ + Nexatom++; + +} + + + +/** an actual bond is ordered so it has a positive type, + e.g. atom[a].elt <= atom[b].elt */ +/* file format now guarantees no bond before its atoms */ +void +makbond(int a, int b, char ord) { + int n, t, typ, ta, tb, a1, a2; + double bl, sbl; + + /*****************************************************************************************************/ + /* Patch to insure that multiple bonds get treated as single bonds until we do the right thing. */ + //ord='1'; + /*****************************************************************************************************/ + + /*****************************************************************************************************/ + // patch to pretend that carbomeric bonds are double bonds + if (ord=='c') { + ord = '2'; + } + /*****************************************************************************************************/ + + DPRINT(D_READER, "making bond %d--%d\n",a,b); + bond[Nexbon].an1=a; + bond[Nexbon].an2=b; + bond[Nexbon].order=ord; + + n = Nexbon++; + + a=bond[n].an1; + b=bond[n].an2; + + ta=atom[a].elt; + tb=atom[b].elt; + if (tb<ta) {t=a; a=b; b=t; t=ta; ta=tb; tb=t;} + + typ=bontyp(bond[n].order,ta,tb); + bond[n].an1=a; + bond[n].an2=b; + + bond[n].type=getBondStretch(ta, tb, ord); + + a1=bond[n].an1; + atom[a1].bonds[atom[a1].nbonds++]=n; + a2=bond[n].an2; + atom[a2].bonds[atom[a2].nbonds++]=n; + + + bl = vlen(vdif(Positions[a], Positions[b])); + sbl = bond[n].type->r0; + /* + if (bl> 1.11*sbl || bl<0.89*sbl) + printf("Strained bond: %2f vs %2f (%s%d-%s%d)\n",bl,sbl, + periodicTable[atom[a].elt].symbol, a, periodicTable[atom[b].elt].symbol, b); + */ +} + +/** torqs are ordered so the bonds match those in bendata */ +void +maktorq(int center, int a, int b) +{ + // center is index into atom[] + // a and b are indexes into bond[] + int element_center; + int element_1; + int element_2; + + element_center = atom[center].elt; + torq[Nextorq].ac = center; + + if (bond[a].an1 == center) { + element_1 = atom[bond[a].an2].elt; + torq[Nextorq].dir1=1; + torq[Nextorq].a1=bond[a].an2; + } else if (bond[a].an2 == center) { + element_1 = atom[bond[a].an1].elt; + torq[Nextorq].dir1=0; + torq[Nextorq].a1=bond[a].an1; + } else { + // print a better error if it ever happens... + fprintf(stderr, "neither end of bond on center!"); + } + + if (bond[b].an1 == center) { + element_2 = atom[bond[b].an2].elt; + torq[Nextorq].dir2=1; + torq[Nextorq].a2=bond[b].an2; + } else if (bond[b].an2 == center) { + element_2 = atom[bond[b].an1].elt; + torq[Nextorq].dir2=0; + torq[Nextorq].a2=bond[b].an1; + } else { + // print a better error if it ever happens... + fprintf(stderr, "neither end of bond on center!"); + } + + torq[Nextorq].b1=bond+a; + torq[Nextorq].b2=bond+b; + torq[Nextorq].type = getBendData(element_center, + element_1, bond[a].order, + element_2, bond[b].order); + + Nextorq++; +} + +/** make a vdw in one go, in calc loop */ +void makvdw(int a1, int a2) { + struct vdWbuf *newbuf; + int i, j; + + if (Nexvanbuf->fill >= VANBUFSIZ) { + if (Nexvanbuf->next) { + Nexvanbuf = Nexvanbuf->next; + Nexvanbuf->fill = 0; + } + else { + newbuf=allocate(sizeof(struct vdWbuf)); + Nexvanbuf->next = newbuf; + Nexvanbuf = newbuf; + Nexvanbuf->fill = 0; + Nexvanbuf->next = NULL; + } + } + + Nexvanbuf->item[Nexvanbuf->fill].a1 = a1; + Nexvanbuf->item[Nexvanbuf->fill].a2 = a2; + + i = min(atom[a1].elt,atom[a2].elt); + j = max(atom[a2].elt,atom[a2].elt); + Nexvanbuf->item[Nexvanbuf->fill].table = getVanDerWaalsTable(i, j); + + Nexvanbuf->fill++; +} + + +int +makcon(int typ, struct MOT *mot, int n, int *atnos) { + int i; + + Constraint[Nexcon].type = typ; + Constraint[Nexcon].natoms=n; + Constraint[Nexcon].motor=mot; + Constraint[Nexcon].atoms = (int *)allocate(n * sizeof(int)); + for (i=0; i<n; i++) Constraint[Nexcon].atoms[i]=atnos[i]; + return Nexcon++; +} + +/** input torque in nN*nm, speed in gigahertz + store in pN*pm, rad/Dt +*/ + +struct MOT * +makmot(double stall, double speed, struct xyz vec1, struct xyz vec2) +{ + int i; + + Motor[Nexmot].center=vec1; + Motor[Nexmot].axis=uvec(vec2); + Motor[Nexmot].stall=stall*(1e-9/Dx)*(1e-9/Dx); + Motor[Nexmot].speed=speed*1e9*2.0*Pi* Dt; + + return Motor+Nexmot++; +} + +void +makmot2(int i) { + struct MOT *mot; + struct xyz r, q, vrmax; + int j, *atlis; + double x, mass, rmax=0.0, mominert=0.0; + + if (Constraint[i].type != CODEmotor) return; + + atlis = Constraint[i].atoms; + mot = Constraint[i].motor; + + for (j=0;j<Constraint[i].natoms;j++) { + /* for each atom connected to the "shaft" */ + mass = periodicTable[atom[atlis[j]].elt].mass * 1e-27; + + /* find its projection onto the rotation vector */ + r=vdif(Positions[atlis[j]],mot->center); + x=vdot(r,mot->axis); + vmul2c(q,mot->axis,x); + vadd2(mot->atocent[j],q,mot->center); + + /* and orthogonal distance */ + r=vdif(Positions[atlis[j]],mot->atocent[j]); + mot->ator[j] = r; + mot->radius[j]=vlen(r); + if (mot->radius[j] > rmax) vrmax=r; + + mominert += mot->radius[j]*mass; + } + // mot->moment = (Dt*Dt)/mominert; + // give the motor a flywheel w/ Tc about a picosecond + mot->moment = (Dt*Dt)/(mot->stall*1e8*1e-27/(1e-9/Dx)); + DPRINT(D_READER, "moment %e\n", mot->moment); + mot->theta = 0.0; + mot->theta0 = 0.0; + + /* set up coordinate system for rotations */ + mot->roty = uvec(vrmax); + mot->rotz = vx(mot->axis, mot->roty); + /* the idea is that an atom at (radius, atang) can be rotated theta + by putting it at radius*(roty*cos(nt)+rotz*sin(nt)) + where nt is theta + atang + */ + for (j=0;j<Constraint[i].natoms;j++) { /* now find the angles */ + r=uvec(mot->ator[j]); + mot->atang[j] = atan2(vdot(r,mot->rotz),vdot(r,mot->roty)); + } + if (mot->speed==0.0) mot->theta = mot->atang[0]; +} + +/** input force in pN, stiffness in N/m + internal units are pN and pm, so no translation necessary +*/ + +struct MOT * +maklmot(double force, double stiff, struct xyz vec1, struct xyz vec2) +{ + int i; + + Motor[Nexmot].axis=uvec(vec2); + Motor[Nexmot].stall=force; + Motor[Nexmot].speed=stiff; + + return Motor+Nexmot++; +} + +void +maklmot2(int i) { + struct MOT *mot; + struct xyz r, q, vrmax; + int j, *atlis; + double x, c; + + if (Constraint[i].type != CODElmotor) return; + + atlis = Constraint[i].atoms; + mot = Constraint[i].motor; + + // r is average shaft-atom position + + r = vcon(0.0); + + for (j=0;j<Constraint[i].natoms;j++) + /* for each atom connected to the "shaft" */ + r=vsum(r,Positions[atlis[j]]); + + r=vprodc(r, 1.0/Constraint[i].natoms); + + // x is length of projection of r onto axis + x=vdot(r,mot->axis); + // save it -- the initial position + mot->theta = x; + + // note .stall is force and .speed is stiffness + // .theta0 will be projection dist of r onto axis for 0 force + if (mot->speed == 0.0) { + mot->theta0 = x; + } else { + mot->theta0 = x + mot->stall/mot->speed; + } + + // if constant force, just use this force vector + if (mot->speed == 0.0) + mot->center = vprodc(mot->axis,mot->stall/Constraint[i].natoms); + + +} + +static int readname(char *buf, char **ret) { + + char b1[128]; + int j; + sscanf(buf, "(%[^)])%n", b1, &j); + DPRINT(D_READER, "got name (%s)\n", b1); + *ret = allocate(strlen(b1)+1); + strcpy(*ret, b1); + return j; + +} + +static int readshaft(char *buf, int *iv, int *atnotab) { + + int i, j; + + DPRINT(D_READER, "from <%s> ", buf); + j=sscanf(buf, "%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d", + iv, iv+1, iv+2, iv+3, iv+4, iv+5, iv+6, iv+7, iv+8, iv+9, + iv+10, iv+11, iv+12, iv+13, iv+14, iv+15, iv+16, iv+17, + iv+18, iv+19, iv+20, iv+21, iv+22, iv+23, iv+24, iv+25, + iv+26, iv+27, iv+28, iv+29); + DPRINT(D_READER, "got shaft of %d atoms\n",j); + for (i=0; i<j; i++) iv[i]=atnotab[iv[i]]; + return j; +} + + +/** file reading */ + +void filred(char *filnam) { + + FILE *file; + char buf[256]; + char ord; + int i, j, n, m, b, c, lastatom; + double stall, speed, force, stiff; + struct xyz vec1,vec2; + int a1, a2, ie, ix, iy, iz, ix1, iy1, iz1, iv[NJATOMS]; + int firstatom=1, offset; + int atnum, atnotab[2*NATOMS]; + struct vdWbuf *nvb; + char nambuf[128],nambuf2[128], *strg, *junk; + int colr[3]; + + file=fopen(filnam,"r"); + if (file==NULL) { + perror(filnam); + exit(1); + } + + while (fgets(buf,255,file)) { + /* atom number (element) (posx, posy, posz) */ + /* position vectors are integral 0.1pm */ + if (0==strncasecmp("atom",buf,4)) { + sscanf(buf+4, "%d (%d) (%d,%d,%d", &atnum, &ie, &ix, &iy, &iz); + + DPRINT(D_READER, "in filred: %s %d (%d) (%d,%d,%d) \n","atom", + lastatom,ie, ix, iy, iz ); + + // hack: change singlets to hydrogen + // if (ie == 0) ie=1; + + atnotab[atnum]=Nexatom; + lastatom = Nexatom; + + vec1.x=(double)ix *0.1; + vec1.y=(double)iy *0.1; + vec1.z=(double)iz *0.1; + makatom(ie,vec1); + } + + + /* bondO atno atno atno ... (where O is order) */ + else if (0==strncasecmp("bond",buf,4)) { + DPRINT(D_READER, "%s\n",buf); + ord = buf[4]; + j=readshaft(buf+5, iv, atnotab); + DPRINT(D_READER, "j=%d\n",j); + for (i=0; i<j; i++) makbond(lastatom, iv[i], ord); + } + + /* [vander]Waals atno atno atno ... (for atoms on same part) */ + else if (0==strncasecmp("waals",buf,5)) { + + j=readshaft(buf+5, iv, atnotab); + + for (i=0; i<j; i++) makvdw(lastatom,iv[i]); + } + + /* constraints */ + /* welded to space: */ + // ground (<name>) <atoms> + // accept "anchor" as synonym for "ground" wware 051213 + else if (0==strncasecmp("ground",buf,6) || + 0==strncasecmp("anchor",buf,6)) { + j=readname(buf+7,&strg); + i=readname(buf+7+j+1, &junk); + j=readshaft(buf+7+j+i+1, iv, atnotab); + i=makcon(CODEground, NULL, j, iv); + Constraint[i].name = strg; + } + + // thermometer + // thermo (name) (r, g, b) <atom1> <atom2> + else if (0==strncasecmp("thermo",buf,6)) { + i=readname(buf+7,&strg); + sscanf(buf+7+i, " (%[0-9, ]) %n", nambuf, &j); + + j=readshaft(buf+7+i+j, iv, atnotab); + + DPRINT(D_READER, "got thermometer (%s) @%d\n", strg, j); + DPRINT(D_READER, "got shaft of %d atoms\n",j); + + i=makcon(CODEtemp, NULL, j, iv); + Constraint[i].name = strg; + } + + // angle meter + // angle (name) <atoms> + else if (0==strncasecmp("angle",buf,5)) { + + j=readname(buf+6,&strg); + DPRINT(D_READER, "got angle meter (%s) @%d\n", strg, j); + j=readshaft(buf+6+j, iv, atnotab); + i=makcon(CODEangle, NULL, j, iv); + Constraint[i].name = strg; + } + + // radius meter + // radius (name) <atoms> + else if (0==strncasecmp("radius",buf,6)) { + + j=readname(buf+7,&strg); + DPRINT(D_READER, "got radius meter (%s) @%d\n", strg, j); + j=readshaft(buf+7+j, iv, atnotab); + i=makcon(CODEradius, NULL, j, iv); + Constraint[i].name = strg; + } + + // Langevin thermostat + // stat (name) (r, g, b) (temp) atom1 atom2 + else if (0==strncasecmp("stat",buf,4)) { + i=readname(buf+5,&strg); + sscanf(buf+5+i, " (%[0-9, ]) (%d)%n", nambuf, &ix, &j); + DPRINT(D_READER, "%s%sgot stat (%s) %d @%d\n", buf+5+i, buf+5+i+j, strg, ix, j); + j=readshaft(buf+5+i+j, iv, atnotab); + i=makcon(CODEstat, NULL, j, iv); + Constraint[i].temp = ix; + Constraint[i].name = strg; + } + + // motor + /* rmotor (name) (r,g,b) <torque> <speed> (<center>) (<axis>) */ + /* torque in nN*nm speed in gigahertz */ + else if (0==strncasecmp("rmotor",buf,6)) { + j=readname(buf+7,&strg); + sscanf(buf+j+7, " (%[0-9, ]) %lf %lf (%d, %d, %d) (%d, %d, %d", + nambuf, &stall, &speed, &ix, &iy, &iz, &ix1, &iy1, &iz1); + DPRINT(D_READER, "%s\ngot motor (%s) %lf %lf (%d, %d, %d) (%d, %d, %d) \n", + buf,strg,stall,speed, ix, iy, iz, ix1, iy1, iz1); + vec1.x=(double)ix *0.1; + vec1.y=(double)iy *0.1; + vec1.z=(double)iz *0.1; + vec2.x=(double)ix1 *0.1; + vec2.y=(double)iy1 *0.1; + vec2.z=(double)iz1 *0.1; + fgets(buf,127,file); + if (strncasecmp("shaft",buf,5)) { + fprintf(stderr, "motor needs a shaft: %d\n", j); + } else { + j=readshaft(buf+5, iv, atnotab); + + i=makcon(CODEmotor, makmot(stall, speed, vec1, vec2), j, iv); + makmot2(i); + } + Constraint[i].name = strg; + } + + // bearing + /* bearing (name) (r,g,b) (<center>) (<axis>) */ + else if (0==strncasecmp("bearing",buf,7)) { + for (i=2,j=8;i;j++) if (buf[j]==')') i--; + sscanf(buf+j+1, " (%d, %d, %d) (%d, %d, %d", + &ix, &iy, &iz, &ix1, &iy1, &iz1); + DPRINT(D_READER, "%s\ngot bearing (%d) (%d, %d, %d) (%d, %d, %d) \n", + buf,j, ix, iy, iz, ix1, iy1, iz1); + vec1.x=(double)ix *0.1; + vec1.y=(double)iy *0.1; + vec1.z=(double)iz *0.1; + vec2.x=(double)ix1 *0.1; + vec2.y=(double)iy1 *0.1; + vec2.z=(double)iz1 *0.1; + fgets(buf,127,file); + if (strncasecmp("shaft",buf,5)) { + fprintf(stderr, "bearing needs a shaft: %d\n", j); + } else { + j=readshaft(buf+5, iv, atnotab); + + i=makcon(CODEbearing, makmot(stall, speed, vec1, vec2), j, iv); + makmot2(i); + Constraint[i].name = strg; + } + } + + // linear motor + /* lmotor (name) (r,g,b) <force> <stiff> (<center>) (<axis>) */ + else if (0==strncasecmp("lmotor",buf,6)) { + j=readname(buf+7,&strg); + sscanf(buf+j+7, " (%[0-9, ]) %lf %lf (%d, %d, %d) (%d, %d, %d", + nambuf, &force, &stiff, &ix, &iy, &iz, &ix1, &iy1, &iz1); + printf( "%s\ngot motor (%s) %lf %lf (%d, %d, %d) (%d, %d, %d) \n", + buf,strg,force,stiff, ix, iy, iz, ix1, iy1, iz1); + vec1.x=(double)ix *0.1; + vec1.y=(double)iy *0.1; + vec1.z=(double)iz *0.1; + vec2.x=(double)ix1 *0.1; + vec2.y=(double)iy1 *0.1; + vec2.z=(double)iz1 *0.1; + fgets(buf,127,file); + if (strncasecmp("shaft",buf,5)) { + fprintf(stderr, "lmotor needs a shaft\n"); + } else { + j=readshaft(buf+5, iv, atnotab); + i=makcon(CODElmotor, maklmot(force, stiff, vec1, vec2), j, iv); + maklmot2(i); + Constraint[i].name = strg; + } + } + + // spring + /* spring <stiffness>, (<center1>) (<center2>) */ + else if (0==strncasecmp("spring",buf,6)) { + for (i=2,j=7;i;j++) if (buf[j]==')') i--; + sscanf(buf+5, " (%d, %d, %d) %lf, %lf, (%d, %d, %d) (%d, %d, %d", + nambuf, colr, colr+1, colr+2, + &stall, &speed, &ix, &iy, &iz, &ix1, &iy1, &iz1); + + vec1.x=(double)ix *0.1; + vec1.y=(double)iy *0.1; + vec1.z=(double)iz *0.1; + vec2.x=(double)ix1 *0.1; + vec2.y=(double)iy1 *0.1; + vec2.z=(double)iz1 *0.1; + fgets(buf,127,file); + if (strncasecmp("shaft",buf,5)) { + fprintf(stderr, "spring needs a shaft\n"); + } else { + j=readshaft(buf+5, iv, atnotab); + i=makcon(CODEspring, makmot(stall, speed, vec1, vec2), j, iv); + makmot2(i); + } + } + + // slider + /* slider (<center>) (<axis>) */ + /* torque in nN*nm speed in gigahertz */ + else if (0==strncasecmp("slider",buf,6)) { + for (i=2,j=7;i;j++) if (buf[j]==')') i--; + sscanf(buf+5, " (%d, %d, %d) %lf, %lf, (%d, %d, %d) (%d, %d, %d", + nambuf, colr, colr+1, colr+2, + &stall, &speed, &ix, &iy, &iz, &ix1, &iy1, &iz1); + + vec1.x=(double)ix *0.1; + vec1.y=(double)iy *0.1; + vec1.z=(double)iz *0.1; + vec2.x=(double)ix1 *0.1; + vec2.y=(double)iy1 *0.1; + vec2.z=(double)iz1 *0.1; + fgets(buf,127,file); + if (strncasecmp("shaft",buf,5)) { + fprintf(stderr, "slider needs a shaft\n"); + } else { + j=readshaft(buf+5, iv, atnotab); + i=makcon(CODEslider, makmot(stall, speed, vec1, vec2), j, iv); + makmot2(i); + } + } + + // kelvin <temperature> + else if (0==strncasecmp("kelvin",buf,6)) { + sscanf(buf+6, "%d", &ix); + // Temperature = (double)ix; + // printf("Temperature set to %f\n",Temperature); + } + + else if (0==strncasecmp("end",buf,3)) { + break; + } + + DPRINT(D_READER, "??? %s\n", buf); + + } + fclose(file); + + + /* got all the static vdW bonds we'll see */ + Dynobuf = Nexvanbuf; + Dynoix = Nexvanbuf->fill; + + + /* + for (i=0; i<Nexatom; i++) pa(i); + for (i=0; i<Nexbon; i++) pb(i); + */ + + /* create bending bonds */ + for (i=0; i<Nexatom; i++) { + for (m=0; m<atom[i].nbonds-1; m++) { + for (n=m+1; n<atom[i].nbonds; n++) { + checkatom(stderr, i); // move outside of m loop? + maktorq(i, atom[i].bonds[m], atom[i].bonds[n]); + } + } + } + + /* find bounding box */ + + vset(vec1, Positions[0]); + vset(vec2, Positions[0]); + + for (i=1; i<Nexatom; i++) { + vmin(vec1,Positions[i]); + vmax(vec2,Positions[i]); + } + vadd2(Center, vec1, vec2); + vmulc(Center, 0.5); + + vset(Bbox[0], vsum(vec1, vcon(-100.0))); + vset(Bbox[1], vsum(vec2, vcon(100.0))); + + // center of gravity + vmulc(Cog,1.0/totMass); + + // total velocity + + vmul2c(vec1,P,1.0/totMass); + for (i=1; i<Nexatom; i++) { + vadd(OldPositions[i],vec1); + } + + +} + +// reads atom positions from an XYZ file into Positions[] +// returns the number of atoms read, or -1 for an error. +struct xyz * +readXYZ(char *filename, int *natoms) +{ + int i; + float x, y, z; + char symbol[12]; + struct xyz *positions; + + FILE *f = fopen(filename, "r"); + if (f == NULL) { + perror(filename); + return NULL; + } + if (fscanf(f, "%d\n", natoms) != 1 || *natoms < 1 || *natoms > NATOMS) { + fprintf(stderr, "error reading atom count from xyz file: %s\n", filename); + fclose(f); + return NULL; + } + positions= (struct xyz *)allocate(sizeof(struct xyz) * *natoms); + fscanf(f, "%*s\n"); // skip the RMS=xxx.xx line + for (i=0; i<*natoms; i++) { + if (fscanf(f, "%10s %f %f %f\n", symbol, &x, &y, &z) != 4) { + fprintf(stderr, "error reading atom %d from %s\n", i, filename); + fclose(f); + free(positions); + return NULL; + } + positions[i].x = x; + positions[i].y = y; + positions[i].z = z; + } + return positions; +} diff --git a/sim/src/readers.h b/sim/src/readers.h new file mode 100755 index 000000000..cd21c018e --- /dev/null +++ b/sim/src/readers.h @@ -0,0 +1,29 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#ifndef READERS_H_INCLUDED +#define READERS_H_INCLUDED + +#define RCSID_READERS_H "$Id$" + +extern void makatom(int elem, struct xyz posn); + +extern void makbond(int a, int b, char ord); + +extern void maktorq(int center, int a, int b); + +extern void makvdw(int a1, int a2); + +extern int makcon(int typ, struct MOT *mot, int n, int *atnos); + +extern struct MOT *makmot(double stall, double speed, struct xyz vec1, struct xyz vec2); + +extern void makmot2(int i); + +extern struct MOT *maklmot(double force, double stiff, struct xyz vec1, struct xyz vec2); + +extern void maklmot2(int i); + +extern void filred(char *filnam); + +extern struct xyz *readXYZ(char *filename, int *natoms); + +#endif diff --git a/sim/src/readmmp.c b/sim/src/readmmp.c new file mode 100755 index 000000000..36b42edc2 --- /dev/null +++ b/sim/src/readmmp.c @@ -0,0 +1,874 @@ +// Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. + +#include <limits.h> +#include "simulator.h" + +static char const rcsid[] = "$Id$"; + +struct mmpStream +{ + FILE *f; + char *fileName; + int lineNumber; + int charPosition; +}; + +// should be preceded by a call to ERROR() giving details +static int +mmpParseError(void *stream) +{ + // We cast from void * here so that the part routines can take a + // generic error handler and user data pointer. + struct mmpStream *mmp = (struct mmpStream *)stream; + + ERROR3("In mmp file %s, line %d, col %d", mmp->fileName, mmp->lineNumber, mmp->charPosition); + done("Failed to parse mmp file"); + RAISER("Failed to parse mmp file", 0); +} + + +static char tokenBuffer[256]; + +// Read the next token from the given stream. Possible return values +// are: +// +// NULL when EOF or an error has been encountered +// "" a zero length string for each '\0' (treated as a delimiter) +// delim a one char length string for each delimiter encountered +// token a string for each sequence of non-delimiter characters +// +// See the switch statement for the list of delimiters. +// +// Any sequence of more than 255 non-delimiter characters is broken +// into tokens every 255 characters. +static char * +readToken(struct mmpStream *mmp, int allowNULL) +{ + char *s = tokenBuffer; + char c; + + if (feof(mmp->f) || ferror(mmp->f)) { + if (allowNULL) { + return NULL; + } else { + ERROR("Unexpected EOF"); + mmpParseError(mmp); + return "EOF"; + } + } + while ((*s = fgetc(mmp->f)) != EOF) { + mmp->charPosition++; + switch (*s) { + case ' ': + case '(': + case ')': + case ',': + case ';': + case '=': + case '\r': + case '\n': + case '\0': + if (s == tokenBuffer) { + if (*s == '\n' || *s == '\r') { + c = fgetc(mmp->f); + if (c == '\n' || c == '\r') { + if (c == *s) { + ungetc(c, mmp->f); + } + *s = '\n'; + } else { + ungetc(c, mmp->f); + } + mmp->lineNumber++; + mmp->charPosition = 1; + } + s++; + } else { + ungetc(*s, mmp->f); + mmp->charPosition--; + } + *s = '\0'; + return tokenBuffer; + default: + s++; + if (s >= &tokenBuffer[255]) { + *s = '\0'; + return tokenBuffer; + } + } + } + if (s == tokenBuffer) { + if (allowNULL) { + return NULL; + } else { + ERROR("Unexpected EOF"); + mmpParseError(mmp); + return "EOF"; + } + } + *s = '\0'; + return tokenBuffer; +} + +// Skip zero or more whitespace characters (space or tab). Newline is +// not considered whitespace. The next token will start with the +// first non-whitespace character found. +static void +consumeWhitespace(struct mmpStream *mmp) +{ + int c; + + if (feof(mmp->f) || ferror(mmp->f)) { + return; + } + while ((c = fgetc(mmp->f)) != EOF) { + mmp->charPosition++; + switch (c) { + case ' ': + case '\t': + break; + default: + ungetc(c, mmp->f); + mmp->charPosition--; + return; + } + } +} + +// Ignores the remainder of this line. +static void +consumeRestOfLine(struct mmpStream *mmp) +{ + char *tok; + + while (1) { + tok = readToken(mmp, 1); + if (tok == NULL || *tok == '\n' || *tok == '\r') { + return; + } + } +} + +// Complains and dies if the next token is not the expected token. +// Pass in NULL to expect EOF. +static int +expectToken(struct mmpStream *mmp, char *expected) +{ + char *tok; + int ret; + + tok = readToken(mmp, 1); + if (tok == NULL) { + ret = expected == NULL; + } else if (expected == NULL) { + ret = tok == NULL; + } else { + ret = !strcmp(tok, expected); + } + if (!ret) { + ERROR2("expected %s, got %s", expected ? expected : "EOF", tok ? tok : "EOF"); + mmpParseError(mmp); + } + return ret; +} + +// Parse an integer. Returns 1 if value was successfully filled in +// with an integer value. If checkForNewline is true, and a newline +// was encountered instead of an integer the newline is consumed and 0 +// is returned. +// +// Any whitespace before and after the integer is consumed. +static int +expectInt(struct mmpStream *mmp, int *value, int checkForNewline) +{ + char *tok; + char *end; + long int val; + + consumeWhitespace(mmp); + tok = readToken(mmp, 1); + if (value == NULL) { + ERROR("internal error, value==NULL"); + return mmpParseError(mmp); + } + if (tok != NULL) { + if ((*tok == '\n' || *tok == '\r') && checkForNewline) { + return 0; + } + if (*tok == '\0') { + ERROR("expected int, got \\0"); + return mmpParseError(mmp); + } + errno = 0; + val = strtol(tok, &end, 0); + if (errno != 0) { + ERROR1("integer value out of range: %s", tok); + return mmpParseError(mmp); + } + if (*end != '\0') { + ERROR1("expected int, got %s", tok); + return mmpParseError(mmp); + } + if (val > INT_MAX || val < INT_MIN) { + ERROR1("integer value out of range: %s", tok); + return mmpParseError(mmp); + } + *value = val; + consumeWhitespace(mmp); + return 1; + } + ERROR("expected int, got EOF"); + return mmpParseError(mmp); +} + +// Parse a double. Returns 1 if value was successfully filled in +// with a double value. If checkForNewline is true, and a newline +// was encountered instead of a double the newline is consumed and 0 +// is returned. +// +// Any whitespace before and after the double is consumed. +static int +expectDouble(struct mmpStream *mmp, double *value, int checkForNewline) +{ + char *tok; + char *end; + double val; + + consumeWhitespace(mmp); + tok = readToken(mmp, 1); + if (value == NULL) { + ERROR("internal error, value==NULL"); + return mmpParseError(mmp); + } + if (tok != NULL) { + if ((*tok == '\n' || *tok == '\r') && checkForNewline) { + return 0; + } + if (*tok == '\0') { + ERROR("expected double, got \\0"); + return mmpParseError(mmp); + } + errno = 0; + val = strtod(tok, &end); + if (errno != 0) { + ERROR1("double value out of range: %s", tok); + return mmpParseError(mmp); + } + if (*end != '\0') { + ERROR1("expected double, got %s", tok); + return mmpParseError(mmp); + } + *value = val; + consumeWhitespace(mmp); + return 1; + } + ERROR("expected double, got EOF"); + return mmpParseError(mmp); +} + +// Parses: +// +// ( <double> [, <double>]* ) +// +// where each space between the parenthesis can be zero or more +// whitespace characters. If p is non-null, the doubles are +// stored in successive array elements. +// +// Any whitespace before and after the parenthesis is consumed. +static void +expectNDoubles(struct mmpStream *mmp, int n, double *p) +{ + int i; + double d; + + consumeWhitespace(mmp); + expectToken(mmp, "("); BAIL(); + for (i=0; i<n; i++) { + expectDouble(mmp, &d, 0); BAIL(); + if (i < n-1) { + expectToken(mmp, ","); BAIL(); + } + if (p != NULL) { + p[i] = d; + } + } + consumeWhitespace(mmp); // only needed if n==0 + expectToken(mmp, ")"); BAIL(); + consumeWhitespace(mmp); +} + +// Parses: +// +// ( <int>, <int>, <int> ) +// +// where each space between the parenthesis can be zero or more +// whitespace characters. If p is non-null, the three ints are +// multiplied by 0.1 and placed in the x, y, and z fields. +// +// Any whitespace before and after the triple is consumed. +static void +expectXYZInts(struct mmpStream *mmp, struct xyz *p) +{ + int x; + int y; + int z; + + consumeWhitespace(mmp); + expectToken(mmp, "("); BAIL(); + expectInt(mmp, &x, 0); BAIL(); + expectToken(mmp, ","); BAIL(); + expectInt(mmp, &y, 0); BAIL(); + expectToken(mmp, ","); BAIL(); + expectInt(mmp, &z, 0); BAIL(); + expectToken(mmp, ")"); BAIL(); + consumeWhitespace(mmp); + + if (p != NULL) { + p->x = x * 0.1; + p->y = y * 0.1; + p->z = z * 0.1; + } +} + +static void *tempBuffer = NULL; + +// Names in mmp files are delimited by ()'s. () are encoded using +// %xx, and so are disallowed from appearing in the encoded form that +// we're reading here. This reads an arbitrary length name (up to +// half the size of available memory) and returns an allocated copy of +// it. Individual tokens are read and concatenated together to form +// the resulting name. A \0 may be included, and will be encoded as +// %00. The closing parenthesis must occur before a newline or end of +// file. +// +// Any whitespace before and after the name is consumed. +static char * +expectName(struct mmpStream *mmp) +{ + char *tok; + char *buf; + int len; + + consumeWhitespace(mmp); + expectToken(mmp, "("); BAILR(""); + len = 0; + tempBuffer = accumulator(tempBuffer, len + 1, 0); + buf = (char *)tempBuffer; + buf[len] = '\0'; + while ((tok = readToken(mmp, 1)) != NULL) { + if (!strcmp(tok, ")")) { + consumeWhitespace(mmp); + return copy_string(buf); + } + if (*tok == '\0') { + tok = "%00"; + } + if (*tok == '\n' || *tok == '\r') { + ERROR("reading name, expected ), got newline"); + mmpParseError(mmp); + return ""; + } + len += strlen(tok); + tempBuffer = accumulator(tempBuffer, len + 1, 0); + buf = (char *)tempBuffer; + strcat(buf, tok); + } + ERROR("reading name, expected ), got EOF"); + mmpParseError(mmp); + return ""; +} + +// Parses a list of integers terminated by a newline. An arbitrary +// number of integers can be parsed, and the accumulator they are +// stored in is placed in listPtr, with the length stored in length. If +// expectedLength is non-zero, complains and dies if the actual length +// is not expectedLength. Also complains and dies for zero length +// lists. +static void +expectIntList(struct mmpStream *mmp, int **listPtr, int *length, int expectedLength) +{ + int *buf; + int index; + int len; + int listElement; + + len = 0; + tempBuffer = accumulator(tempBuffer, len, 0); + buf = (int *)tempBuffer; + index = 0; + while (expectInt(mmp, &listElement, 1)) { + len += sizeof(int); + tempBuffer = accumulator(tempBuffer, len, 0); + buf = (int *)tempBuffer; + buf[index++] = listElement; + } + BAIL(); + if (index == 0) { + ERROR("zero length list of atoms"); + mmpParseError(mmp); + return; + } + if (expectedLength != 0 && expectedLength != index) { + ERROR2("expected exactly %d atoms, got %d", expectedLength, index); + mmpParseError(mmp); + return; + } + *length = index; + *listPtr = buf; +} + +#define BAILP() if (EXCEPTION) { destroyPart(p); return NULL; } + +// Note that this must be called AFTER simulation parameters (like Dt) +// have been set. makeAtom() uses Dt to set inverseMass for each +// atom. +struct part * +readMMP(char *filename) +{ + struct part *p; + struct mmpStream thisMMPStream, *mmp; + char *tok; + char bondOrder; + char *name, *fontname, *junk; + char *bodyName1; + char *bodyName2; + char *stationName1; + char *stationName2; + char *axisName1; + char *axisName2; + int fontsize; + int elementType; + int previousAtomID = -1; // ID of atom just defined, so we can back-reference to it in later lines + struct jig *previousRotaryMotor = NULL; // for back-reference of info line setting initial_speed + double initialSpeed; + double dampingCoefficient; + int dampingEnabled; + double stall; + double speed; + double force; + double stiffness; + double temperature; + double mass; + double inertiaTensor[6]; + double quat[4]; + struct quaternion orientation; + struct xyz position; + struct xyz center; + struct xyz axis; + int atomListLength; + int *atomList; + int atomID; // atom number in mmp file + + mmp = &thisMMPStream; + mmp->fileName = filename; + mmp->lineNumber = 1; + mmp->charPosition = 1; + mmp->f = fopen(filename, "r"); + if (mmp->f == NULL) { + ERROR_ERRNO1("Could not open %s", mmp->fileName); + mmp->lineNumber = 0; + mmp->charPosition = 0; + mmpParseError(mmp); + return NULL; + } + + p = makePart(filename, &mmpParseError, mmp); + + while ((tok = readToken(mmp, 1)) != NULL) { + + // atom atomNumber (element) (posx, posy, posz) + // Identifies a new atom with the given element type and position. + // Position vectors are integers with units of 0.1pm. + if (!strcmp(tok, "atom")) { + expectInt(mmp, &atomID, 0); BAILP(); + expectToken(mmp, "("); BAILP(); + expectInt(mmp, &elementType, 0); BAILP(); + expectToken(mmp, ")"); BAILP(); + expectXYZInts(mmp, &position); BAILP(); + consumeRestOfLine(mmp); + + // hack: change singlets to hydrogen + // if (elementType == 0) elementType=1; + previousAtomID = atomID; + + makeAtom(p, atomID, elementType, position); BAILP(); + } + + // after an atom: + // info atom atomtype = sp2 + // after an rmotor: + // info leaf initial_speed = 20.0 + else if (!strcmp(tok, "info")) { + consumeWhitespace(mmp); + tok = readToken(mmp, 0); + if (!strcmp(tok, "atom")) { + consumeWhitespace(mmp); + tok = readToken(mmp, 0); + if (!strcmp(tok, "atomtype")) { + enum hybridization hybridization = sp3; + + consumeWhitespace(mmp); + expectToken(mmp, "="); BAILP(); + consumeWhitespace(mmp); + tok = readToken(mmp, 0); + + if (!strcmp(tok, "sp3d")) { + hybridization = sp3d; + } else if (!strcmp(tok, "sp3")) { + hybridization = sp3; + } else if (!strcmp(tok, "sp2(graphitic)")) { + hybridization = sp2_g; + } else if (!strcmp(tok, "sp2")) { + hybridization = sp2; + } else if (!strcmp(tok, "sp")) { + hybridization = sp; + } else { + ERROR1("unknown hybridization: %s", tok); + mmpParseError(mmp); + BAILP(); + } + + consumeRestOfLine(mmp); + + setAtomHybridization(p, previousAtomID, hybridization); BAILP(); + } + } else if (!strcmp(tok, "leaf")) { + consumeWhitespace(mmp); + tok = readToken(mmp, 0); + if (!strcmp(tok, "initial_speed")) { + consumeWhitespace(mmp); + expectToken(mmp, "="); BAILP(); + expectDouble(mmp, &initialSpeed, 0); BAILP(); + consumeRestOfLine(mmp); + + if (previousRotaryMotor == NULL) { + ERROR("setting initial_speed without previous rotary motor"); + mmpParseError(mmp); + BAILP(); + } + setInitialSpeed(previousRotaryMotor, initialSpeed); + } else if (!strcmp(tok, "damping_coefficient")) { + consumeWhitespace(mmp); + expectToken(mmp, "="); BAILP(); + expectDouble(mmp, &dampingCoefficient, 0); BAILP(); + consumeRestOfLine(mmp); + + if (previousRotaryMotor == NULL) { + ERROR("setting damping_coefficient without previous rotary motor"); + mmpParseError(mmp); + BAILP(); + } + setDampingCoefficient(previousRotaryMotor, dampingCoefficient); + } else if (!strcmp(tok, "dampers_enabled")) { + // info leaf dampers_enabled = False + consumeWhitespace(mmp); + expectToken(mmp, "="); BAILP(); + consumeWhitespace(mmp); + tok = readToken(mmp, 0); + dampingEnabled = strcmp(tok, "False") ? 1 : 0; + consumeRestOfLine(mmp); + + if (previousRotaryMotor == NULL) { + ERROR("setting dampers_enabled without previous rotary motor"); + mmpParseError(mmp); + BAILP(); + } + setDampingEnabled(previousRotaryMotor, dampingEnabled); + } + } + } + + // bondO atno atno atno ... + // Indicates bonds of order O between previous atom and listed + // atoms. + else if (!strncmp(tok, "bond", 4) && strlen(tok) == 5) { + bondOrder = tok[4]; + // XXX should we accept zero length bond list? + // XXX should we reject unknown bond orders? + while (expectInt(mmp, &atomID, 1)) { + makeBond(p, previousAtomID, atomID, bondOrder); BAILP(); + } + } + + // waals atno atno atno ... + // Asks for van der Waals interactions between previous atom and + // listed atoms. Only needed if the given atoms are bonded. + else if (!strcmp(tok, "waals")) { + // XXX should we accept zero length vdw list? + while (expectInt(mmp, &atomID, 1)) { + makeVanDerWaals(p, previousAtomID, atomID); BAILP(); + } + } + + // ground (<name>) (r, g, b) <atoms> + // accept "anchor" as synonym for "ground" wware 051213 + else if (!strcmp(tok, "ground") || + !strcmp(tok, "anchor")) { + name = expectName(mmp); BAILP(); + expectXYZInts(mmp, NULL); BAILP(); // ignore (rgb) triplet + expectIntList(mmp, &atomList, &atomListLength, 0); BAILP(); + makeGround(p, name, atomListLength, atomList); BAILP(); + } + + // thermo (name) (r, g, b) <atom1> <atom2> + // thermometer for atoms in range [atom1..atom2] + else if (!strcmp(tok, "thermo")) { + name = expectName(mmp); BAILP(); + expectXYZInts(mmp, NULL); BAILP(); // ignore (rgb) triplet + expectIntList(mmp, &atomList, &atomListLength, 3); BAILP(); // only interested in first two + makeThermometer(p, name, atomList[0], atomList[1]); BAILP(); + } + + // mdihedral (name) (Fontname) <fontsize> <atom1> <atom2> <atom3> <atom4> + // dihedral meter + else if (!strcmp(tok, "mdihedral")) { + name = expectName(mmp); BAILP(); + junk = expectName(mmp); BAILP(); // center of jig + fontname = expectName(mmp); BAILP(); + free(junk); + free(fontname); + expectInt(mmp, &fontsize, 0); BAILP(); + expectIntList(mmp, &atomList, &atomListLength, 4); BAILP(); + makeDihedralMeter(p, name, atomList[0], atomList[1], + atomList[2], atomList[3]); BAILP(); + } + + // mangle (name) (Fontname) <fontsize> <atom1> <atom2> <atom3> + // angle meter + else if (!strcmp(tok, "mangle")) { + name = expectName(mmp); BAILP(); + junk = expectName(mmp); BAILP(); // center of jig + fontname = expectName(mmp); BAILP(); + free(junk); + free(fontname); + expectInt(mmp, &fontsize, 0); BAILP(); + expectIntList(mmp, &atomList, &atomListLength, 3); BAILP(); + makeAngleMeter(p, name, atomList[0], atomList[1], atomList[2]); BAILP(); + } + + // mdistance (name) (Fontname) <fontsize> <atom1> <atom2> + // radius meter + else if (!strcmp(tok, "mdistance")) { + name = expectName(mmp); BAILP(); + junk = expectName(mmp); BAILP(); // center of jig + fontname = expectName(mmp); BAILP(); + free(junk); + free(fontname); + expectInt(mmp, &fontsize, 0); BAILP(); + expectIntList(mmp, &atomList, &atomListLength, 2); BAILP(); + makeRadiusMeter(p, name, atomList[0], atomList[1]); BAILP(); + } + + // stat (name) (r, g, b) (temp) <atom1> <atom2> + // Langevin thermostat for atoms in range [atom1..atom2] + else if (!strcmp(tok, "stat")) { + name = expectName(mmp); BAILP(); + expectXYZInts(mmp, NULL); BAILP(); // ignore (rgb) triplet + expectToken(mmp, "("); BAILP(); + expectDouble(mmp, &temperature, 0); BAILP(); + expectToken(mmp, ")"); BAILP(); + expectIntList(mmp, &atomList, &atomListLength, 3); BAILP(); // only interested in first two + makeThermostat(p, name, temperature, atomList[0], atomList[1]); BAILP(); + } + + // rmotor (name) (r,g,b) <torque> <speed> (<center>) (<axis>) + // shaft atom... + // rotary motor + // stall torque in nN*nm + // speed in gigahertz + else if (!strcmp(tok, "rmotor")) { + name = expectName(mmp); BAILP(); + expectXYZInts(mmp, NULL); BAILP(); // ignore (rgb) triplet + expectDouble(mmp, &stall, 0); BAILP(); + expectDouble(mmp, &speed, 0); BAILP(); + expectXYZInts(mmp, ¢er); BAILP(); + expectXYZInts(mmp, &axis); BAILP(); + consumeRestOfLine(mmp); + expectToken(mmp, "shaft"); BAILP(); + expectIntList(mmp, &atomList, &atomListLength, 0); BAILP(); + previousRotaryMotor = makeRotaryMotor(p, name, stall, speed, ¢er, &axis, atomListLength, atomList); BAILP(); + } + + /* lmotor (name) (r,g,b) <force> <stiff> (<center>) (<axis>) */ + // shaft atom... + // linear motor + // force in pN + // stiffness in N/m + else if (0==strcmp(tok, "lmotor")) { + name = expectName(mmp); BAILP(); + expectXYZInts(mmp, NULL); BAILP(); // ignore (rgb) triplet + expectDouble(mmp, &force, 0); BAILP(); + expectDouble(mmp, &stiffness, 0); BAILP(); + expectXYZInts(mmp, ¢er); BAILP(); + expectXYZInts(mmp, &axis); BAILP(); + consumeRestOfLine(mmp); + expectToken(mmp, "shaft"); BAILP(); + expectIntList(mmp, &atomList, &atomListLength, 0); BAILP(); + makeLinearMotor(p, name, force, stiffness, ¢er, &axis, atomListLength, atomList); BAILP(); + } + + else if (!strcmp(tok, "end")) { + consumeRestOfLine(mmp); + break; + } + + // rigidBody (bodyName) (<position 3vector>) (<orientation quaternion>) <mass> (<inertia matrix 6 elements>) + else if (0==strcmp(tok, "rigidBody")) { + bodyName1 = expectName(mmp); BAILP(); + expectXYZInts(mmp, ¢er); BAILP(); // position + expectNDoubles(mmp, 4, quat); BAILP(); // quaternion, orientation + orientation.x = quat[0]; + orientation.y = quat[1]; + orientation.z = quat[2]; + orientation.a = quat[3]; + expectDouble(mmp, &mass, 0); BAILP(); + expectNDoubles(mmp, 6, inertiaTensor); BAILP(); // inertia matrix + consumeRestOfLine(mmp); + makeRigidBody(p, bodyName1, mass, inertiaTensor, center, orientation); BAILP(); + } + + // stationPoint (bodyName) (stationName) (<position 3vector>) + else if (0==strcmp(tok, "stationPoint")) { + bodyName1 = expectName(mmp); BAILP(); + stationName1 = expectName(mmp); BAILP(); + expectXYZInts(mmp, ¢er); BAILP(); + makeStationPoint(p, bodyName1, stationName1, center); BAILP(); + free(bodyName1); + } + + // bodyAxis (bodyName) (axisName) (<axis 3vector>) + else if (0==strcmp(tok, "bodyAxis")) { + bodyName1 = expectName(mmp); BAILP(); + axisName1 = expectName(mmp); BAILP(); + expectXYZInts(mmp, ¢er); BAILP(); + makeBodyAxis(p, bodyName1, axisName1, center); BAILP(); + free(bodyName1); + } + + // attachAtoms (bodyName) atomset... + else if (0==strcmp(tok, "attachAtoms")) { + bodyName1 = expectName(mmp); BAILP(); + expectIntList(mmp, &atomList, &atomListLength, 0); BAILP(); + makeAtomAttachments(p, bodyName1, atomListLength, atomList); BAILP(); + free(bodyName1); + } + + else if (0==strcmp(tok, "joint")) { + consumeWhitespace(mmp); + tok = readToken(mmp, 0); + // joint Ball (bodyName1) (stationName1) (bodyName2) (stationName2) + if (0==strcmp(tok, "Ball")) { + bodyName1 = expectName(mmp); BAILP(); + stationName1 = expectName(mmp); BAILP(); + bodyName2 = expectName(mmp); BAILP(); + stationName2 = expectName(mmp); BAILP(); + consumeRestOfLine(mmp); + makeBallJoint(p, bodyName1, stationName1, bodyName2, stationName2); BAILP(); + free(bodyName1); + free(stationName1); + free(bodyName2); + free(stationName2); + } + // joint Hinge (bodyName1) (stationName1) (axisName1) (bodyName2) (stationName2) (axisName2) + else if (0==strcmp(tok, "Hinge")) { + bodyName1 = expectName(mmp); BAILP(); + stationName1 = expectName(mmp); BAILP(); + axisName1 = expectName(mmp); BAILP(); + bodyName2 = expectName(mmp); BAILP(); + stationName2 = expectName(mmp); BAILP(); + axisName2 = expectName(mmp); BAILP(); + consumeRestOfLine(mmp); + makeHingeJoint(p, bodyName1, stationName1, axisName1, bodyName2, stationName2, axisName2); BAILP(); + free(bodyName1); + free(stationName1); + free(axisName1); + free(bodyName2); + free(stationName2); + free(axisName2); + } + // joint Slider (bodyName1) (axisName1) (bodyName2) (axisName2) + else if (0==strcmp(tok, "Slider")) { + bodyName1 = expectName(mmp); BAILP(); + axisName1 = expectName(mmp); BAILP(); + bodyName2 = expectName(mmp); BAILP(); + axisName2 = expectName(mmp); BAILP(); + consumeRestOfLine(mmp); + makeSliderJoint(p, bodyName1, axisName1, bodyName2, axisName2); BAILP(); + free(bodyName1); + free(axisName1); + free(bodyName2); + free(axisName2); + } + + else { + ERROR1("Unrecognized joint type: %s", tok); + mmpParseError(mmp); + BAILP(); + } + } + +#if 0 + // XXX it looks like there isn't any code to implement this behavior + // bearing + /* bearing (name) (r,g,b) (<center>) (<axis>) */ + else if (0==strcasecmp(tok, "bearing")) { + name = expectName(mmp); BAILP(); + expectXYZInts(mmp, NULL); BAILP(); // ignore (rgb) triplet + expectXYZInts(mmp, ¢er); BAILP(); + expectXYZInts(mmp, &axis); BAILP(); + consumeRestOfLine(mmp); + expectToken(mmp, "shaft"); BAILP(); + expectIntList(mmp, &atomList, &atomListLength, 0); BAILP(); + makeBearing(p, name, ¢er, &axis, atomListLength, atomList); BAILP(); + } + + // spring + /* spring <stiffness>, (<center1>) (<center2>) */ + else if (0==strcasecmp(tok, "spring")) { + name = expectName(mmp); BAILP(); + expectXYZInts(mmp, NULL); BAILP(); // ignore (rgb) triplet + expectInt(mmp, &stiffness, 0); BAILP(); + expectXYZInts(mmp, &position); BAILP(); + expectXYZInts(mmp, &position2); BAILP(); + consumeRestOfLine(mmp); + expectToken(mmp, "shaft"); BAILP(); + expectIntList(mmp, &atomList, &atomListLength, 0); BAILP(); + makeSpring(p, name, stiffness, &position, &position2, atomListLength, atomList); BAILP(); + } + + // slider + /* slider (<center>) (<axis>) */ + /* torque in nN*nm speed in gigahertz */ + else if (0==strcasecmp(tok, "slider")) { + name = expectName(mmp); BAILP(); + expectXYZInts(mmp, NULL); BAILP(); // ignore (rgb) triplet + expectXYZInts(mmp, ¢er); BAILP(); + expectXYZInts(mmp, &axis); BAILP(); + consumeRestOfLine(mmp); + expectToken(mmp, "shaft"); BAILP(); + expectIntList(mmp, &atomList, &atomListLength, 0); BAILP(); + makeSlider(p, name, ¢er, &axis, atomListLength, atomList); BAILP(); + } + + // kelvin <temperature> + else if (0==strcasecmp(tok, "kelvin")) { + consumeRestOfLine(mmp); + // Temperature = (double)ix; + // printf("Temperature set to %f\n",Temperature); + } +#endif + + else if (tok[0] == '\r' || tok[0] == '\n') { + // blank line, or second char of \r\n combo + ; + } else { + DPRINT1(D_READER, "??? %s\n", tok); + consumeRestOfLine(mmp); + } + } + fclose(mmp->f); + destroyAccumulator(tempBuffer); + tempBuffer = NULL; + + return endPart(p); +} diff --git a/sim/src/readmmp.h b/sim/src/readmmp.h new file mode 100755 index 000000000..a9821e1f3 --- /dev/null +++ b/sim/src/readmmp.h @@ -0,0 +1,9 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#ifndef READMMP_H_INCLUDED +#define READMMP_H_INCLUDED + +#define RCSID_READMMP_H "$Id$" + +extern struct part *readMMP(char *filename); + +#endif diff --git a/sim/src/readxyz.c b/sim/src/readxyz.c new file mode 100755 index 000000000..dd867c589 --- /dev/null +++ b/sim/src/readxyz.c @@ -0,0 +1,41 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. + +#include "simulator.h" + +static char const rcsid[] = "$Id$"; + +// reads atom positions from an XYZ file into Positions[] +// returns the number of atoms read, or -1 for an error. +struct xyz * +readXYZ(char *filename, int *natoms) +{ + int i; + float x, y, z; + char symbol[12]; + struct xyz *positions; + + FILE *f = fopen(filename, "r"); + if (f == NULL) { + perror(filename); + return NULL; + } + if (fscanf(f, "%d\n", natoms) != 1 || *natoms < 1) { + fprintf(stderr, "error reading atom count from xyz file: %s\n", filename); + fclose(f); + return NULL; + } + positions= (struct xyz *)allocate(sizeof(struct xyz) * *natoms); + fscanf(f, "%*s\n"); // skip the RMS=xxx.xx line + for (i=0; i<*natoms; i++) { + if (fscanf(f, "%10s %f %f %f\n", symbol, &x, &y, &z) != 4) { + fprintf(stderr, "error reading atom %d from %s\n", i, filename); + fclose(f); + free(positions); + return NULL; + } + positions[i].x = x; + positions[i].y = y; + positions[i].z = z; + } + return positions; +} diff --git a/sim/src/readxyz.h b/sim/src/readxyz.h new file mode 100755 index 000000000..b76cfe809 --- /dev/null +++ b/sim/src/readxyz.h @@ -0,0 +1,9 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#ifndef READXYZ_H_INCLUDED +#define READXYZ_H_INCLUDED + +#define RCSID_READXYZ_H "$Id$" + +extern struct xyz *readXYZ(char *filename, int *natoms); + +#endif diff --git a/sim/src/regression.py b/sim/src/regression.py new file mode 100755 index 000000000..90f65e6ed --- /dev/null +++ b/sim/src/regression.py @@ -0,0 +1,84 @@ +#!/usr/bin/python +# Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. + +"""run regression tests + +how to make a regression test: + +Inside one of the directories listed below, you need to create three files. +I'm going to call them test_000X.* here. Just number them sequentially +although that doesn't really matter. + +The first file is the input data file for the test run. It will +usually be called test_000X.mmp. If it's called something else, or +there are more than one of them (or zero of them), you can specify +that using the INPUT directive in the .test file. + +The second file is the test description file: test_000X.test. +This file describes the inputs, outputs, and program arguments +for the test. The default values should be fine for minimizer tests. +For dynamics runs you'll need to specify the program arguments: + +PROGRAM simulator -f900 -x test_000X.mmp + +See runtest.sh for a complete description. + +The third file is the expected output. Generate this using +runtest.sh like this (in the test directory): + +../../runtest.sh test_000X.test > test_000X.out + +You can change the list of output files to be included +using the OUTPUT directive in the .test file. + +Check this file to make sure the output looks reasonable, then +rerun regression.sh before checking in the test_000X.* files. +""" + +import os +import sys +import filecmp +from shutil import copy +from os.path import join, basename, exists +from glob import glob +import runtest + +testDirs = ["tests/minimize", "tests/dynamics", "tests/rigid_organics"] + +exitStatus = 0 +generate = False + +try: + if sys.argv[1] == "--generate": + generate = True +except IndexError: + pass + +if exists("/tmp/testsimulator"): + os.remove("/tmp/testsimulator") +# Windows doesn't have symbolic links, so copy the file. +copy("simulator", "/tmp/testsimulator") + +for dir in testDirs: + for testFile in glob(join(dir, "*.test")): + print "Running " + testFile + base = basename(testFile[:-5]) + out = join(dir, base + ".out") + # Why do we not pass "--generate" to runtest??? + outf = open(out + ".new", "w") + #runtest.main((testFile,), myStdout=outf, generate=generate) + runtest.main((testFile,), myStdout=outf) + outf.close() + + if generate and not exists(out): + copy(out + ".new", out) + print "Generated new " + out + + if filecmp.cmp(out, out + ".new"): + os.remove(out + ".new") + else: + print >> sys.__stderr__, "Test failed: " + testFile + os.system("diff %s %s.new > %s.diff" % (out, out, out)) + exitStatus = 1 + +os.remove("/tmp/testsimulator") diff --git a/sim/src/regression.sh b/sim/src/regression.sh new file mode 100755 index 000000000..7e045ddb1 --- /dev/null +++ b/sim/src/regression.sh @@ -0,0 +1,70 @@ +#!/bin/sh +# Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. + +# run regression tests +# +# how to make a regression test: +# +# Inside one of the directories listed below, you need to create three files. +# I'm going to call them test_000X.* here. Just number them sequentially +# although that doesn't really matter. +# +# The first file is the input data file for the test run. It will +# usually be called test_000X.mmp. If it's called something else, or +# there are more than one of them (or zero of them), you can specify +# that using the INPUT directive in the .test file. +# +# The second file is the test description file: test_000X.test. +# This file describes the inputs, outputs, and program arguments +# for the test. The default values should be fine for minimizer tests. +# For dynamics runs you'll need to specify the program arguments: +# +# PROGRAM simulator -f900 -x test_000X.mmp +# +# See runtest.sh for a complete description. +# +# The third file is the expected output. Generate this using +# runtest.sh like this (in the test directory): +# +# ../../runtest.sh test_000X.test > test_000X.out +# +# You can change the list of output files to be included +# using the OUTPUT directive in the .test file. +# +# Check this file to make sure the output looks reasonable, then +# rerun regression.sh before checking in the test_000X.* files. + +TESTDIRS="tests/minimize tests/dynamics tests/rigid_organics" + +RET=0 +GEN=0 +if [ "x$1" = "x--generate" ]; then + GEN=1 +fi + +rm -f /tmp/testsimulator +ln -s $PWD/simulator /tmp/testsimulator + +for dir in $TESTDIRS; do + for i in $dir/*.test; do + echo Running $i + base=`basename $i .test` + out=$dir/$base.out + ./runtest.sh $i > $out.new + if [ ! -f $out -a $GEN -ne 0 ]; then + echo Generated new $out + cp $out.new $out + fi + if cmp -s $out $out.new ; then + rm $out.new + else + echo Test failed: $i 1>&2 + diff $out $out.new > $out.diff + RET=1 + fi + done +done + +rm -f /tmp/testsimulator + +exit $RET diff --git a/sim/src/rigid-ode.c b/sim/src/rigid-ode.c new file mode 100755 index 000000000..368288566 --- /dev/null +++ b/sim/src/rigid-ode.c @@ -0,0 +1,228 @@ + +// Copyright 2006-2007 Nanorex, Inc. See LICENSE file for details. +#include "simulator.h" +#include "rigid-ode.h" + +#ifdef USE_ODE + +#include <ode/ode.h> + +// There is a sphere centered on a station point on body1, whose +// radius is the square root of this value (in pm). The corrosponding +// station point on body2 must be inside that sphere. +#define STATION_TOLERANCE 0.04 + +// similar for axes +#define AXIS_TOLERANCE 0.04 + +struct ode_info +{ + dWorldID world; + dBodyID *bodies; + dJointID *joints; +}; + +static void +findStationPoint(struct part *p, + int jointNumber, + char *jointType, + int body1index, + int body2index, + dBodyID body1, + dBodyID body2, + int station1index, + int station2index, + dVector3 station1) +{ + struct xyz s1; + struct xyz s2; + dVector3 station2; + dReal deltax; + dReal deltay; + dReal deltaz; + + s1 = p->rigidBodies[body1index].stations[station1index]; + s2 = p->rigidBodies[body2index].stations[station2index]; + dBodyGetRelPointPos(body1, (dReal)s1.x, (dReal)s1.y, (dReal)s1.z, station1); + dBodyGetRelPointPos(body2, (dReal)s2.x, (dReal)s2.y, (dReal)s2.z, station2); + deltax = station1[0] - station2[0]; + deltay = station1[1] - station2[1]; + deltaz = station1[2] - station2[2]; + if (deltax * deltax + deltay * deltay + deltaz * deltaz > STATION_TOLERANCE) { + ERROR5("joint %d, a %s, StationPoint mismatch: (%f, %f, %f)", jointNumber, jointType, deltax, deltay, deltaz); + dBodyGetPosRelPoint(body2, station1[0], station1[1], station1[2], station2); + ERROR3("StationPoint on body2 would be (%f, %f, %f) to match body1", station2[0], station2[1], station2[2]); + p->parseError(p->stream); + } +} + +static void +findAxis(struct part *p, + int jointNumber, + char *jointType, + int body1index, + int body2index, + dBodyID body1, + dBodyID body2, + int axis1index, + int axis2index, + dVector3 axis1) +{ + struct xyz a1; + struct xyz a2; + dVector3 axis2; + dReal deltax; + dReal deltay; + dReal deltaz; + + a1 = p->rigidBodies[body1index].axes[axis1index]; + a2 = p->rigidBodies[body2index].axes[axis2index]; + dBodyVectorToWorld(body1, (dReal)a1.x, (dReal)a1.y, (dReal)a1.z, axis1); + dBodyVectorToWorld(body2, (dReal)a2.x, (dReal)a2.y, (dReal)a2.z, axis2); + deltax = axis1[0] - axis2[0]; + deltay = axis1[1] - axis2[1]; + deltaz = axis1[2] - axis2[2]; + if (deltax * deltax + deltay * deltay + deltaz * deltaz > AXIS_TOLERANCE) { + ERROR5("joint %d, a %s, Axis mismatch: (%f, %f, %f)", jointNumber, jointType, deltax, deltay, deltaz); + dBodyVectorFromWorld(body2, axis1[0], axis1[1], axis1[2], axis2); + ERROR3("AxisPoint on body2 would be (%f, %f, %f) to match body1", axis2[0], axis2[1], axis2[2]); + p->parseError(p->stream); + } +} + + +void +rigid_ode_init(struct part *p) +{ + int i; + int k; + struct xyz attachAtomLocation; + struct rigidBody *rb; + struct joint *j; + struct ode_info *ode; + dWorldID world; + dBodyID body; + dJointID joint; + dQuaternion q; + int b1; + int b2; + dBodyID body1; + dBodyID body2; + dVector3 station1; + dVector3 axis1; + + if (p->num_rigidBodies < 2) { + return; + } + + ode = (struct ode_info *)allocate(sizeof(struct ode_info)); + p->rigid_body_info = (void *)ode; + + ode->world = world = dWorldCreate(); + ode->bodies = (dBodyID *)allocate((p->num_rigidBodies) * sizeof(dBodyID)); + ode->bodies[0] = 0; + ode->joints = (dJointID *)allocate((p->num_joints) * sizeof(dJointID)); + + for (i=1; i<p->num_rigidBodies; i++) { + rb = &p->rigidBodies[i]; + ode->bodies[i] = body = dBodyCreate(world); + dBodySetPosition(body, (dReal)rb->position.x, (dReal)rb->position.y, (dReal)rb->position.z); + + // XXX check the ordering of these, they're not defined in ode docs. + q[0] = (dReal)rb->orientation.x; + q[1] = (dReal)rb->orientation.y; + q[2] = (dReal)rb->orientation.z; + q[3] = (dReal)rb->orientation.a; + dBodySetQuaternion(body, q); + for (k=0; k<rb->num_attachments; k++) { + attachAtomLocation = p->positions[rb->attachmentAtomIndices[k]]; + dBodyGetPosRelPoint(body, + (dReal)attachAtomLocation.x, + (dReal)attachAtomLocation.y, + (dReal)attachAtomLocation.z, + station1); + rb->attachmentLocations[k].x = (double)station1[0]; + rb->attachmentLocations[k].y = (double)station1[1]; + rb->attachmentLocations[k].z = (double)station1[2]; + } + } + + for (i=0; i<p->num_joints; i++) { + j = &p->joints[i]; + b1 = j->rigidBody1; + b2 = j->rigidBody2; + body1 = ode->bodies[b1]; + body2 = ode->bodies[b2]; + switch (j->type) { + case JointBall: + ode->joints[i] = joint = dJointCreateBall(world, 0); + dJointAttach(joint, body1, body2); + findStationPoint(p, i, "Ball", b1, b2, body1, body2, j->station1_1, j->station2_1, station1); + dJointSetBallAnchor(joint, station1[0], station1[1], station1[2]); + break; + case JointHinge: + ode->joints[i] = joint = dJointCreateHinge(world, 0); + dJointAttach(joint, body1, body2); + findStationPoint(p, i, "Hinge", b1, b2, body1, body2, j->station1_1, j->station2_1, station1); + dJointSetHingeAnchor(joint, station1[0], station1[1], station1[2]); + findAxis(p, i, "Hinge", b1, b2, body1, body2, j->axis1_1, j->axis2_1, axis1); + dJointSetHingeAxis(joint, axis1[0], axis1[1], axis1[2]); + break; + case JointSlider: + ode->joints[i] = joint = dJointCreateSlider(world, 0); + dJointAttach(joint, body1, body2); + findAxis(p, i, "Slider", b1, b2, body1, body2, j->axis1_1, j->axis2_1, axis1); + dJointSetSliderAxis(joint, axis1[0], axis1[1], axis1[2]); + break; + default: + ERROR1("unknown joint type for joint %d", i); + p->parseError(p->stream); + } + } +} + +void +rigid_ode_destroy(struct part *p) +{ + int i; + struct ode_info *ode; + + if (p->num_rigidBodies < 2) { + return; + } + + ode = (struct ode_info *)p->rigid_body_info; + NULLPTR(ode); + NULLPTR(ode->bodies); + + for (i=1; i<p->num_rigidBodies; i++) { + dBodyDestroy(ode->bodies[i]); + } + free(ode->bodies); + ode->bodies = NULL; + + for (i=0; i<p->num_joints; i++) { + dJointDestroy(ode->joints[i]); + } + free(ode->joints); + ode->joints = NULL; + + dWorldDestroy(ode->world); + free(ode); + // XXX we may want to call this somewhere. + //dCloseODE(); +} + +void +rigid_ode_relative_to_absolute(struct part *p, int bodyIndex, struct xyz relative, struct xyz *absolute) +{ + ERROR("rigid_ode_relative_to_absolute not implemented"); +} + +void +rigid_ode_apply_force_relative(struct part *p, int bodyIndex, struct xyz force_location_relative, struct xyz force_direction_absolute) +{ + ERROR("rigid_ode_apply_force_relative not implemented"); +} + +#endif diff --git a/sim/src/rigid-ode.h b/sim/src/rigid-ode.h new file mode 100755 index 000000000..25a88aa12 --- /dev/null +++ b/sim/src/rigid-ode.h @@ -0,0 +1,11 @@ + +// Copyright 2006 Nanorex, Inc. See LICENSE file for details. +extern void rigid_ode_init(struct part *p); + +extern void rigid_ode_destroy(struct part *p); + +extern void rigid_ode_relative_to_absolute(struct part *p, int bodyIndex, struct xyz relative, struct xyz *absolute); + +extern void rigid_ode_apply_force_relative(struct part *p, int bodyIndex, struct xyz force_location_relative, struct xyz force_direction_absolute); + + diff --git a/sim/src/rigid.c b/sim/src/rigid.c new file mode 100755 index 000000000..685f6a108 --- /dev/null +++ b/sim/src/rigid.c @@ -0,0 +1,87 @@ + +// Copyright 2006-2007 Nanorex, Inc. See LICENSE file for details. +#include "simulator.h" +#include "rigid-ode.h" + +#ifndef USE_ODE +static void +check_rigid_support(struct part *p) +{ + struct rigidBody *rb; + + if (p->num_rigidBodies < 1) { + return; + } + rb = &p->rigidBodies[0]; + if (p->num_rigidBodies > 1 || rb->num_attachments > 0) { + ERROR("no rigid body support"); + } +} +#endif + +void +rigid_init(struct part *p) +{ +#ifdef USE_ODE + rigid_ode_init(p); +#else + check_rigid_support(p); +#endif +} + +void +rigid_destroy(struct part *p) +{ +#ifdef USE_ODE + rigid_ode_destroy(p); +#else + check_rigid_support(p); +#endif +} + +void +rigid_relative_to_absolute(struct part *p, int bodyIndex, struct xyz relative, struct xyz *absolute) +{ +#ifdef USE_ODE + rigid_ode_relative_to_absolute(p, bodyIndex, relative, absolute); +#else + ERROR("no rigid body support"); +#endif +} + +void +rigid_apply_force_relative(struct part *p, int bodyIndex, struct xyz force_location_relative, struct xyz force_direction_absolute) +{ +#ifdef USE_ODE + rigid_ode_apply_force_relative(p, bodyIndex, force_location_relative, force_direction_absolute); +#else + ERROR("no rigid body support"); +#endif +} + +void +rigid_forces(struct part *p, struct xyz *positions, struct xyz *forces) +{ + int i; + int j; + int atomIndex; + double f; + struct rigidBody *rb; + struct xyz absolute; + struct xyz delta; + struct xyz force; + + // XXX also need to compute thermal transfer to body. + for (i=0; i<p->num_rigidBodies; i++) { + rb = &p->rigidBodies[i]; + for (j=0; j<rb->num_attachments; j++) { + rigid_relative_to_absolute(p, i, rb->attachmentLocations[j], &absolute); + atomIndex = rb->attachmentAtomIndices[j]; + vsub2(delta, positions[atomIndex], absolute); + f = vdot(delta, delta) * 1; // XXX unit conversion, spring force constant + vmul2c(force, delta, f); + vsub(forces[atomIndex], force); + rigid_apply_force_relative(p, i, rb->attachmentLocations[j], force); + } + } +} diff --git a/sim/src/rigid.h b/sim/src/rigid.h new file mode 100755 index 000000000..a19f60721 --- /dev/null +++ b/sim/src/rigid.h @@ -0,0 +1,14 @@ + +// Copyright 2006 Nanorex, Inc. See LICENSE file for details. +extern void rigid_init(struct part *p); + +extern void rigid_destroy(struct part *p); + +extern void rigid_relative_to_absolute(struct part *p, int bodyIndex, struct xyz relative, struct xyz *absolute); + +extern void rigid_apply_force_relative(struct part *p, int bodyIndex, struct xyz force_location_relative, struct xyz force_direction_absolute); + +extern void rigid_forces(struct part *p, struct xyz *positions, struct xyz *forces); + + + diff --git a/sim/src/runtest.py b/sim/src/runtest.py new file mode 100755 index 000000000..809756831 --- /dev/null +++ b/sim/src/runtest.py @@ -0,0 +1,331 @@ +#!/usr/bin/python +# Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. + +"""runtest.py description.test [--generate] + +runs the described test and concatenates the results +to stdout (after removing lines which vary inconsequentially (e.g. dates) + +if --generate is given, the results are written to $base.out, and +the end structure is written to $base.xyzcmp (if the test type +is "struct"). + +a description.test file looks like: + +comment lines, which start with a #, and are ignored +blank lines, which are ignored +lines containing one of the following directives: + +TYPE [ min | struct | dyn | fail ] + Choose one of the given types of tests. The test type controls + the defaults for the other directives. Test type "min" performs + a minimization, and checks the program outputs, including the + trace file and xyz file are identical. Test type "struct" also + performs a minimization, but relies on a structure comparison + to test for success, rather than the exact program output. + Test type "dyn" performs a dynamics run, and requires that output + be identical, as for "min". Default value for TYPE is "min". + +INPUT files... + The listed files are copied to the temporary directory before + the test is run. Defaults to the name of the description file + with the .test replaced by .mmp ($base.mmp). + +OUTPUT files... + The listed files contain significant data to be compared. + They are concatenated together, run through a sed script to + remove inconsequential lines, and the result goes to stdout. + In addition to files explicitly generated by the program + stdout and stderr are available. The file exitvalue contains + the shell exit code $? resulting from executing the command. + Defaults to "exitvalue stderr stdout $base.trc $base.xyz" for + test types "min" and "dyn". Defaults to "exitvalue structurematch stderr" + for test type "struct". + +PROGRAM command... + This is the complete command line to run (excluding io redirection). + Defaults to "/tmp/testsimulator -m -x $base.mmp" for test types "min" and + "struct". Defaults to "/tmp/testsimulator -f100 -t300 -i10 -x $base.mmp" + for test type "dyn". + +STRUCT file + The listed file is compared against the $base.xyz file generated + by PROGRAM. Defaults to "" for test types "min" and "dyn", and + no structure comparison is performed. Defaults to "$base.xyzcmp" + for test type "struct". + + # runtest.sh description.test [--generate] + +runs the described test and concatenates the results +to stdout (after removing lines which vary inconsequentially (e.g. dates) + +if --generate is given, the results are written to $base.out, and + the end structure is written to $base.xyzcmp (if the test type + is "struct"). + +a description.test file looks like: + +comment lines, which start with a #, and are ignored +blank lines, which are ignored +lines containing one of the following directives: + +TYPE [ min | struct | dyn ] + Choose one of the given types of tests. The test type controls + the defaults for the other directives. Test type "min" performs + a minimization, and checks the program outputs, including the + trace file and xyz file are identical. Test type "struct" also + performs a minimization, but relies on a structure comparison + to test for success, rather than the exact program output. + Test type "dyn" performs a dynamics run, and requires that output + be identical, as for "min". Default value for TYPE is "min". + +INPUT files... + The listed files are copied to the temporary directory before + the test is run. Defaults to the name of the description file + with the .test replaced by .mmp ($base.mmp). + +OUTPUT files... + The listed files contain significant data to be compared. + They are concatenated together, run through a sed script to + remove inconsequential lines, and the result goes to stdout. + In addition to files explicitly generated by the program + stdout and stderr are available. The file exitvalue contains + the shell exit code $? resulting from executing the command. + Defaults to "exitvalue stderr stdout $base.trc $base.xyz" for + test types "min" and "dyn". Defaults to "exitvalue structurematch stderr" + for test type "struct". + +PROGRAM command... + This is the complete command line to run (excluding io redirection). + Defaults to "/tmp/testsimulator -m -x $base.mmp" for test types "min" and + "struct". Defaults to "/tmp/testsimulator -f100 -t300 -i10 -x $base.mmp" + for test type "dyn". + +STRUCT file + The listed file is compared against the $base.xyz file generated + by PROGRAM. Defaults to "" for test types "min" and "dyn", and + no structure comparison is performed. Defaults to "$base.xyzcmp" + for test type "struct". + + +################################################## + +NOTE: make sure you specify -x to generate a text + file. Otherwise you'll end up with binary data + in your output file for comparison, which is + probably not what you wanted. + +################################################## + +A minimizer test using the default command line and results +can be performed with an empty description file. The other +test types can often be performed with just a TYPE directive. +""" + +import sys +import os +import re +from os.path import join, dirname, basename, exists +from shutil import copy, rmtree + +# I need this because I don't see a better way to get to findterms.py. +sys.path.append("tests/scripts") +import findterms + +# I've used os.linesep several places, assuming it would be the right +# way to get cross-platform compatibility. When the time comes, we'll +# need to check that I got that right. + +def appendFiles(flist, outfile, + dtregexp = re.compile("Date and Time: ")): + """for f in $flist; do + echo ======= $f ======= + cat $f + done | sed '/Date and Time: /d' >> outfile""" + outf = open(outfile, "a") + for f in flist: + outf.write("======= " + f + " =======" + os.linesep) + for line in open(f).readlines(): + if dtregexp.match(line) == None: + line = line.rstrip() + outf.write(line + os.linesep) + outf.close() + +def run(prog, resultFile=None): + # Redirect standard ouput to "stdout", appending + # Redirect standard error to "stderr", appending + # Will this work on Windows? + prog += " >> stdout 2>> stderr" + rc = os.system(prog) + if resultFile != None: + outf = open(resultFile, "w") + # Exit status is shifted 8 bits left + # http://www.python.org/search/hypermail/python-1994q2/0407.html + # Does this apply to Windows? + outf.write(repr(rc >> 8)) + outf.close() + +def main(argv, myStdout=sys.stdout, generate=False): + home = os.getcwd() + testSpecFile = argv[0] + assert testSpecFile[-5:] == ".test" + + if not exists("/tmp/testsimulator"): + raise Exception, "Can't find /tmp/testsimulator" + + tmpDir = "/tmp/runtest%d" % os.getpid() + rmtree(tmpDir, ignore_errors=True) + os.mkdir(tmpDir) + + base = basename(testSpecFile[:-5]) + here = os.getcwd() + dir = dirname(testSpecFile) + hereDir = join(here, dir) + + altoutFile = join(hereDir, base + ".altout") + + DEFAULT_INPUT = ["%s.mmp" % base] + DEFAULT_OUTPUT_MIN = ["exitvalue", "stderr", "stdout", + base+".trc", base + ".xyz"] + DEFAULT_OUTPUT_STRUCT = ["exitvalue", "structurematch", + "lengthsangles", "stderr"] + DEFAULT_PROGRAM_MIN = "/tmp/testsimulator --minimize " + \ + "--dump-as-text " + base + ".mmp" + DEFAULT_PROGRAM_DYN = "/tmp/testsimulator --num-frames=100" + \ + "--temperature=300 --iters-per-frame=10 " + \ + "--dump-as-text " + base + ".mmp" + DEFAULT_STRUCT_MIN = "" + DEFAULT_STRUCT_STRUCT = base + ".xyzcmp" + + ALT_OUTPUT_FOR_STRUCT = ["exitvalue", "structurematch", "stderr", "stdout", + base + ".trc", base + ".xyz"] + + userType = "min" + userInput = [ ] + userOutput = [ ] + userProgram = "" + userStruct = "" + + inf = open(testSpecFile) + for line in inf.read().split(os.linesep): + if line[:4] == "TYPE": + userType = line[4:].strip() + elif line[:5] == "INPUT": + # This is a list, not a string + userInput = line[5:].split() + elif line[:6] == "OUTPUT": + # This is a list, not a string + userOutput = line[6:].split() + elif line[:7] == "PROGRAM": + userProgram = line[7:].strip() + elif line[:6] == "STRUCT": + userStruct = line[6:].strip() + elif line[:1] == '#': + pass + elif len(line) > 0: + raise Exception, \ + "%s has unrecognied line:\n%s" % (testSpecFile, line) + inf.close() + + if userType == "min": + input = userInput or DEFAULT_INPUT + output = userOutput or DEFAULT_OUTPUT_MIN + program = userProgram or DEFAULT_PROGRAM_MIN + struct = userStruct or DEFAULT_STRUCT_MIN + elif userType == "struct": + input = userInput or DEFAULT_INPUT + output = userOutput or DEFAULT_OUTPUT_STRUCT + program = userProgram or DEFAULT_PROGRAM_MIN + struct = userStruct or DEFAULT_STRUCT_STRUCT + elif userType == "dyn": + input = userInput or DEFAULT_INPUT + output = userOutput or DEFAULT_OUTPUT_MIN + program = userProgram or DEFAULT_PROGRAM_DYN + struct = userStruct or DEFAULT_STRUCT_MIN + elif userType == "fail": + input = userInput # might be None + output = userOutput + # will this work in Windows? + program = userProgram or "echo fail" + struct = userStruct + else: + raise Exception, \ + "%s has unrecognied type:\n%s" % (testSpecFile, userType) + + + if generate: + outxyz = join(hereDir, struct) + outstd = join(hereDir, base + ".out") + outba = join(hereDir, base + ".ba") + + structCompare = (struct != "") + + for inputFile in input: + copy(join(dir, inputFile), tmpDir) + + if structCompare and not generate: + copy(join(dir, struct), tmpDir) + copy(join(dir, base + ".ba"), tmpDir) + + results = open(join(tmpDir, "results"), "w") + results.write("======= " + base + ".test =======" + os.linesep) + results.write(open(testSpecFile).read()) + results.close() + + os.chdir(tmpDir) + + run(program, "exitvalue") + + if structCompare: + + stdout = open("stdout", "a") + stderr = open("stderr", "a") + str = "== structure comparison ==" + os.linesep + stdout.write(str) + stderr.write(str) + stdout.close() + stderr.close() + + mmpFile = base + ".mmp" + bondAngleFile = base + ".ba" + if generate: + # when generating a test case, assume the structure + # comparison will succeed, therefore zero exit status + sm = open("structurematch", "w") + sm.write("0") + sm.close() + la = open("lengthsangles", "w") + la.write("OK") + la.close() + findterms.main(mmpFile, + outf=bondAngleFile, + generateFlag=True) + else: + run("/tmp/testsimulator " + \ + "--base-file=" + base + ".xyzcmp " + \ + base + ".xyz", "structurematch") + findterms.main(mmpFile, + outf=open("lengthsangles", "w"), + referenceInputFile=bondAngleFile) + + copy("results", altoutFile) + appendFiles(ALT_OUTPUT_FOR_STRUCT, altoutFile) + + appendFiles(output, "results") + + if generate: + copy("results", outstd) + if structCompare: + copy(base + ".xyz", outxyz) + copy(base + ".ba", outba) + else: + myStdout.write(open("results").read()) + + os.chdir(home) + return 0 + +if __name__ == "__main__": + generate = False + if len(sys.argv) > 2 and sys.argv[2] == "--generate": + generate = True + main(sys.argv[1:], generate=generate) diff --git a/sim/src/runtest.sh b/sim/src/runtest.sh new file mode 100755 index 000000000..811173d34 --- /dev/null +++ b/sim/src/runtest.sh @@ -0,0 +1,228 @@ +#!/bin/sh +# Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. + +# runtest.sh description.test [--generate] +# +# runs the described test and concatenates the results +# to stdout (after removing lines which vary inconsequentially (e.g. dates) +# +# if --generate is given, the results are written to $base.out, and +# the end structure is written to $base.xyzcmp (if the test type +# is "struct"). +# +# a description.test file looks like: +# +# comment lines, which start with a #, and are ignored +# blank lines, which are ignored +# lines containing one of the following directives: +# +# TYPE [ min | struct | dyn ] +# Choose one of the given types of tests. The test type controls +# the defaults for the other directives. Test type "min" performs +# a minimization, and checks the program outputs, including the +# trace file and xyz file are identical. Test type "struct" also +# performs a minimization, but relies on a structure comparison +# to test for success, rather than the exact program output. +# Test type "dyn" performs a dynamics run, and requires that output +# be identical, as for "min". Default value for TYPE is "min". +# +# INPUT files... +# The listed files are copied to the temporary directory before +# the test is run. Defaults to the name of the description file +# with the .test replaced by .mmp ($base.mmp). +# +# OUTPUT files... +# The listed files contain significant data to be compared. +# They are concatenated together, run through a sed script to +# remove inconsequential lines, and the result goes to stdout. +# In addition to files explicitly generated by the program +# stdout and stderr are available. The file exitvalue contains +# the shell exit code $? resulting from executing the command. +# Defaults to "exitvalue stderr stdout $base.trc $base.xyz" for +# test types "min" and "dyn". Defaults to "exitvalue structurematch stderr" +# for test type "struct". +# +# PROGRAM command... +# This is the complete command line to run (excluding io redirection). +# Defaults to "/tmp/testsimulator -m -x $base.mmp" for test types "min" and +# "struct". Defaults to "/tmp/testsimulator -f100 -t300 -i10 -x $base.mmp" +# for test type "dyn". +# +# STRUCT file +# The listed file is compared against the $base.xyz file generated +# by PROGRAM. Defaults to "" for test types "min" and "dyn", and +# no structure comparison is performed. Defaults to "$base.xyzcmp" +# for test type "struct". + +# +################################################### +# +# NOTE: make sure you specify -x to generate a text +# file. Otherwise you'll end up with binary data +# in your output file for comparison, which is +# probably not what you wanted. +# +################################################### +# +# A minimizer test using the default command line and results +# can be performed with an empty description file. The other +# test types can often be performed with just a TYPE directive. +# + +TMPDIR=/tmp/runtest$$ +DESC=$1 +base=`basename $DESC .test` +dir=`dirname $DESC` +here=`pwd` + +altout=$here/$dir/$base.altout + +DEFAULT_INPUT="$base.mmp" +DEFAULT_OUTPUT_MIN="exitvalue stderr stdout $base.trc $base.xyz" +DEFAULT_OUTPUT_STRUCT="exitvalue structurematch stderr" +DEFAULT_PROGRAM_MIN="/tmp/testsimulator -m -x $base.mmp" +DEFAULT_PROGRAM_DYN="/tmp/testsimulator -f100 -t300 -i10 -x $base.mmp" +DEFAULT_STRUCT_MIN="" +DEFAULT_STRUCT_STRUCT="$base.xyzcmp" + +ALT_OUTPUT_FOR_STRUCT="exitvalue structurematch stderr stdout $base.trc $base.xyz" + +trap 'rm -rf $TMPDIR' 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + +USER_TYPE="min" +while read key value; do + if [ x$key != x ]; then + case $key in + TYPE) + USER_TYPE=$value + ;; + INPUT) + USER_INPUT=$value + ;; + OUTPUT) + USER_OUTPUT=$value + ;; + PROGRAM) + USER_PROGRAM=$value + ;; + STRUCT) + USER_STRUCT=$value + ;; + \#*) ;; + *) + echo in $DESC: unrecognized line: $key $value + exit 1 + esac; + fi +done < $DESC + +# Note: this type of processing may not allow the user to set a directive +# to a null value. Revisit if we need that. +case $USER_TYPE in + min) + INPUT=${USER_INPUT:-$DEFAULT_INPUT} + OUTPUT=${USER_OUTPUT:-$DEFAULT_OUTPUT_MIN} + PROGRAM=${USER_PROGRAM:-$DEFAULT_PROGRAM_MIN} + STRUCT=${USER_STRUCT:-$DEFAULT_STRUCT_MIN} + ;; + struct) + INPUT=${USER_INPUT:-$DEFAULT_INPUT} + OUTPUT=${USER_OUTPUT:-$DEFAULT_OUTPUT_STRUCT} + PROGRAM=${USER_PROGRAM:-$DEFAULT_PROGRAM_MIN} + STRUCT=${USER_STRUCT:-$DEFAULT_STRUCT_STRUCT} + ;; + dyn) + INPUT=${USER_INPUT:-$DEFAULT_INPUT} + OUTPUT=${USER_OUTPUT:-$DEFAULT_OUTPUT_MIN} + PROGRAM=${USER_PROGRAM:-$DEFAULT_PROGRAM_DYN} + STRUCT=${USER_STRUCT:-$DEFAULT_STRUCT_MIN} + ;; + fail) + INPUT="" + OUTPUT="" + PROGRAM="echo fail" + STRUCT="" + ;; + *) + echo in $DESC: unrecognized TYPE: $TYPE + exit 1 + ;; +esac + +DO_GENERATE=false +if [ x$2 = x--generate ]; then + outxyz=$here/$dir/$STRUCT + outstd=$here/$dir/$base.out + DO_GENERATE=true +fi + +if [ x$STRUCT != x ]; then + DO_STRUCT_COMPARE=true +else + DO_STRUCT_COMPARE=false +fi + +rm -rf $TMPDIR +mkdir $TMPDIR +for i in $INPUT; do + if cp $dir/$i $TMPDIR; then + true; + else + echo failed to copy $dir/$i to $TMPDIR 1>&2; + exit 1 + fi +done + +if $DO_STRUCT_COMPARE; then + if $DO_GENERATE; then + true; + else + if cp $dir/$STRUCT $TMPDIR; then + true; + else + echo failed to copy $dir/$STRUCT to $TMPDIR 1>&2; + exit 1 + fi + fi +fi + +echo ======= $base.test ======= > $TMPDIR/results +cat $DESC >> $TMPDIR/results + +cd $TMPDIR + +$PROGRAM > stdout 2> stderr +echo $? > exitvalue + +if $DO_STRUCT_COMPARE; then + echo == structure comparison == >> stdout + echo == structure comparison == >> stderr + if $DO_GENERATE; then + echo 0 > structurematch + else + /tmp/testsimulator -B$base.xyzcmp $base.xyz >> stdout 2>> stderr + echo $? >> structurematch + fi + cp results altoutput + for i in $ALT_OUTPUT_FOR_STRUCT; do + echo ======= $i ======= + cat $i + done | sed '/Date and Time: /d' >> altoutput + cp altoutput $altout +fi + +for i in $OUTPUT; do + echo ======= $i ======= + cat $i +done | sed '/Date and Time: /d' >> results + +if $DO_GENERATE; then + cp results $outstd + if $DO_STRUCT_COMPARE; then + cp $base.xyz $outxyz + fi +else + cat results +fi + +exit 0 diff --git a/sim/src/setup.py b/sim/src/setup.py new file mode 100755 index 000000000..a516d6e36 --- /dev/null +++ b/sim/src/setup.py @@ -0,0 +1,86 @@ +# Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +''' +setup.py (for sim code) + +Distutils setup file -- tells distutils how to rebuild our custom extension modules. + +NOTE: very similar to cad/src/setup.py in the cad cvs module. +Some comments and docstrings (more relevant to cad than to sim) +appear only in that file; others occur in both files. + +$Id$ + +One way to run this might be "make extensions" or "make pyx"; see Makefile in this directory. +A more direct way is to ask your shell to do + + python setup.py build_ext --inplace + +For up to date info about how to do this (especially for Windows), see the wiki. + +Running this makes some output files and subdirectories, and prints lots of output. +I think it only recompiles what needs to be recompiled (based on modtimes), but I\'m not sure. +(I\'ve had a hard time finding any documentation about the internal workings of distutils, +though it\'s easy to find basic instructions about how to use it.) + +This is based on the Pyrex example file Pyrex-0.9.3/Demos/Setup.py. +''' +__author__ = ['bruce', 'will'] + +import sys + +from distutils.core import setup +from distutils.extension import Extension +try: + from Pyrex.Distutils import build_ext +except: + print "Problem importing Pyrex. You need to install Pyrex before it makes sense to run this." + print "For more info see cad/src/README-Pyrex and/or " + print " http://www.nanoengineer-1.net/mediawiki/index.php?title=Integrating_Pyrex_into_the_Build_System" + print "(If you already installed Pyrex, there's a bug in your Pyrex installation or in setup.py, " + print " since the import should have worked.)" + sys.exit(1) + +# Work around Mac compiler hang for -O3 with newtables.c +# (and perhaps other files, though problem didn't occur for the ones compiled before newtables). +# Ideally we'd do this only for that one file, but we don't yet know a non-klugy way to do that. +# If we can't find one, we can always build newtables.o separately (perhaps also using distutils) +# and then link newtables.o here by using the extra_objects distutils keyword, +# which was used for most .o files in a prior cvs revision of this file. +# [change by Will, commented by Bruce, 051230.] +# Oops, now we've seen this on Linux, so back off optimization on all platforms +# wware 060327, bug 1758 +extra_compile_args = [ "-DDISTUTILS", "-O" ] + +setup(name = 'Simulator', + ext_modules=[Extension("sim", ["sim.pyx", + "allocate.c", + "dynamics.c", + "globals.c", + "hashtable.c", + "interpolate.c", + "jigs.c", + "lin-alg.c", + "minimize.c", + "minstructure.c", + "newtables.c", + "part.c", + "potential.c", + "printers.c", + "readmmp.c", + "readxyz.c", + "structcompare.c", + "writemovie.c"], + depends = ["simhelp.c", + "version.h", + "bends.gen", + "bonds.gen"], + extra_compile_args = extra_compile_args + ), + ], + cmdclass = {'build_ext': build_ext}) + +# this exit reminds people not to "import setup" from nE-1 itself! +print "setup.py finished; exiting." +sys.exit(0) + +#end diff --git a/sim/src/sim-params.txt b/sim/src/sim-params.txt new file mode 100755 index 000000000..44ca37061 --- /dev/null +++ b/sim/src/sim-params.txt @@ -0,0 +1,213 @@ +# +# Copyright 2007 Nanorex, Inc. See LICENSE file for details. +# $Id$ +# + +# This file should be placed in your ~/Nanorex directory. It is read +# by the simulator before each simulation or minimization run. You +# should be able to edit and save it between runs and see the new +# results in later runs. + +# The element, stretch, and bend lines define new force field +# parameters which override or extend the force field compiled into +# the simulator. + + +# format for element lines +# +# Z (int) number of protons, or atomType index +# grp (int) group number in periodic table (not currently used) +# groups 9-22 are lanthanides +# groups 8-31 are transition metals +# per (int) period in periodic table (not currently used) +# sym (string) abbreviated symbol name (one-three characters) +# sym values are used in stretch and bend records +# name (string) full name, for printing +# mass (double) in yg (yoctograms, or 1e-24 g) +# rvdW (double) van der Waals radius, in 1e-10 m or angstroms or 0.1 nm +# evdW (double) van der Waals stiffness, in zJ (zepto Joules, or milli atto Joules, or 1e-21 J) +# NOTE: specifing an evdW value < .1 will cause the value to be calculated based on number of protons +# rcov (double) covalent radius in pm (1e-12 m) +# used to generate unspecified bond parameters +# chrg (double) charge in mulitples of proton charge +# +# Z grp per sym name mass rvdW evdW bnds rcov chrg + +element 200 0 0 Ax DNA-Pseudo-Axis 167.0 0.0 0.0 4 100 0 700 +element 201 0 0 Ss DNA-Pseudo-Sugar 167.0 0.0 0.0 3 170 0 800 +element 202 0 0 Pl DNA-Pseudo-Phosphate 167.0 3.6 10.0 2 170 -1 900 +element 203 0 0 Sj DNA-Pseudo-Sugar-Junction 167.0 0.0 10.0 3 170 0 810 +element 204 0 0 Ae DNA-Pseudo-Axis-End 167.0 0.0 0.0 1 100 0 701 +element 205 0 0 Pe DNA-Pseudo-Phosphate-End 167.0 3.6 10.0 1 170 -2 901 +element 206 0 0 Sh DNA-Pseudo-Sugar-End 167.0 0.0 0.0 1 170 0 902 +element 207 0 0 Hp DNA-Pseudo-Hairpin 167.0 0.0 0.0 2 100 0 820 + +# format for vdw lines +# +# rvdW (double) van der Waals radius in pm or 1e-12 m +# evdW (double) van der Waals energy in zJ or 1e-21 J +# cutoffRadiusStart (double) start of smooth transition in pm +# cutoffRadiusEnd (double) end of smooth transition in pm +# name (string) symbol-v-symbol +# The atomType (number of protons) of the first symbol must be <= the second. +# +# The vdw potential is multiplied by a smooth transition function +# between cutoffRadiusStart and cutoffRadiusEnd. Beyond +# cutoffRadiusEnd the vdw potential is identically zero. If +# cutoffRadiusEnd < cutoffRadiusStart, this transition is disabled, +# and the potential is shifted so that it is zero at cutoffRadiusEnd. +# If cutoffRadiusStart < 0, it is set to rvdW. If cutoffRadiusEnd < +# 0, it is set to rvdW * VanDerWaalsCutoffFactor (specified by +# --vdw-cutoff-factor). Setting cutoffRadiusEnd to rvdW, and +# cutoffRadiusStart to any larger value selects only the repulsive +# interaction. +# +# rvdW evdW start end name + +vdw 7.2 10.0 100.0 7.2 Pl-v-Pl +vdw 7.2 10.0 100.0 7.2 Pl-v-Pe +vdw 7.2 10.0 100.0 7.2 Pe-v-Pe + +# format for stretch lines +# +# ks (double) in N/m +# r0 (double) equilibrium distance, in pm, or 1e-12 m +# de (double) in aJ, or 1e-18 J +# beta (double) in 1e10 m^-1 +# set to sqrt(ks / (2.0 * de)) / 10.0 if value here is less than zero +# inflectionR (double) r value in pm where d^2(Lippincott(r)) / dr^2 == 0 +# inflectionR is end of interpolation table during minimization +# set to r0*1.5 if value here is less than zero +# qual (int) quality of parameter (use of a parameter with quality < 5 produces a warning) +# quad (int) flag, non-zero if this stretch should be quadratic instead of Lippincott/Morse +# currently ignored +# bondName (string) symbol-bondOrder-symbol +# bondOrders are: (1, a, g, 2, 3) a is aromatic, g is graphitic +# The atomType (number of protons) of the first symbol must be <= the second. +# +# ks r0 de beta inflectionR qual quad bondName + +stretch 4.00 318.00 1.0000 -1 -1 9 1 Ax-1-Ax +stretch 50.00 676.00 1.0000 -1 -1 9 1 Ax-1-Ss +stretch 50.00 676.00 1.0000 -1 -1 9 1 Ax-1-Sj +stretch 4.00 364.00 1.0000 -1 -1 9 1 Ss-1-Pl +stretch 4.00 400.00 1.0000 -1 -1 9 1 Pl-1-Sj +stretch 4.00 180.00 1.0000 -1 -1 9 1 H-1-Ax +stretch 4.00 200.00 1.0000 -1 -1 9 1 H-1-Ss +stretch 4.00 200.00 1.0000 -1 -1 9 1 H-1-Pl +stretch 4.00 180.00 1.0000 -1 -1 9 1 Ax-1-Ae +stretch 4.00 200.00 1.0000 -1 -1 9 1 Ss-1-Sh +stretch 4.00 364.00 1.0000 -1 -1 9 1 Ss-1-Pe +stretch 4.00 357.00 1.0000 -1 -1 9 1 Pl-1-Hp +stretch 4.00 357.00 1.0000 -1 -1 9 1 Pe-1-Hp +stretch 4.00 200.00 1.0000 -1 -1 9 1 Sh-1-Hp +stretch 4.00 200.00 1.0000 -1 -1 9 1 H-1-Hp + +# format for bend lines +# +# ktheta (double) in aJ / rad^2 (1e-18 J/rad^2) +# theta0 (double) in radians +# qual (int) quality of parameter (use of a parameter with quality < 5 produces a warning) +# name (string) symbol-bondOrder-symbol.hybridization-bondOrder-symbol +# bondOrders are: (1, a, g, 2, 3) a is aromatic, g is graphitic +# atoms in group 3 have a default hybridization of sp2 +# other atoms have a default hybridization of sp3 +# an info line in the mmp file can change the hybridization +# possible values are: (sp, sp2, sp2_g, sp3, sp3d) +# sp2_g is graphitic, sp3d is not supported yet +# +# ktheta theta0 qual bondName + +# 180 degree along Axis +bend 0.18 3.14159265359 9 Ax-1-Ax.sp3-1-Ax +bend 0.18 3.14159265359 9 H-1-Ax.sp3-1-Ax +bend 0.18 3.14159265359 9 H-1-Ax.sp3-1-Ae +bend 0.18 3.14159265359 9 Ax-1-Ax.sp3-1-Ae +bend 0.18 3.14159265359 9 Ae-1-Ax.sp3-1-Ae + +# 90 degree Axis to Sugar +bend 1.0 1.57079632679 9 Ax-1-Ax.sp3-1-Ss +bend 1.0 1.57079632679 9 Ax-1-Ax.sp3-1-Sj +bend 1.0 1.57079632679 9 H-1-Ax.sp3-1-Ss +bend 1.0 1.57079632679 9 Ss-1-Ax.sp3-1-Ae +bend 1.0 1.57079632679 9 H-1-Ax.sp3-1-Ax +bend 1.0 1.57079632679 9 H-1-Ax.sp3-1-Ae +bend 1.0 1.57079632679 9 H-1-Ax.sp3-1-H + +# 133 degree minor groove +bend 1.0 2.3212879025 9 Ss-1-Ax.sp3-1-Ss +bend 1.0 2.3212879025 9 Ss-1-Ax.sp3-1-Sj +bend 1.0 2.3212879025 9 Sj-1-Ax.sp3-1-Sj +bend 1.0 2.3212879025 9 H-1-Ax.sp3-1-Ss +bend 1.0 2.3212879025 9 H-1-Ax.sp3-1-Sj + +# 121 degree Axis Sugar Phosphate +bend 0.04 2.1118483925 9 Ax-1-Ss.sp3-1-Pl +bend 0.04 2.1118483925 9 Ax-1-Ss.sp3-1-Pe +bend 0.04 2.1118483925 9 Ax-1-Ss.sp3-1-Sh +bend 0.04 2.1118483925 9 H-1-Ss.sp3-1-Ax + +# 127 degree Phosphate Sugar Phosphate +bend 0.04 2.2165681475 9 Pl-1-Ss.sp3-1-Pl +bend 0.04 2.2165681475 9 Pl-1-Ss.sp3-1-Pe +bend 0.04 2.2165681475 9 Pl-1-Ss.sp3-1-Sh +bend 0.04 2.2165681475 9 Pe-1-Ss.sp3-1-Pe +bend 0.04 2.2165681475 9 Pe-1-Ss.sp3-1-Sh +bend 0.04 2.2165681475 9 Sh-1-Ss.sp3-1-Sh +bend 0.04 2.2165681475 9 H-1-Ss.sp3-1-Pl +bend 0.04 2.2165681475 9 H-1-Ss.sp3-1-Pe +bend 0.04 2.2165681475 9 H-1-Ss.sp3-1-Sh +bend 0.04 2.2165681475 9 H-1-Ss.sp3-1-H + +# 127 degree Phosphate Hairpin Phosphate +bend 0.04 2.2165681475 9 Pl-1-Hp.sp3-1-Pl +bend 0.04 2.2165681475 9 Pl-1-Hp.sp3-1-Pe +bend 0.04 2.2165681475 9 Pl-1-Hp.sp3-1-Sh +bend 0.04 2.2165681475 9 Pe-1-Hp.sp3-1-Pe +bend 0.04 2.2165681475 9 Pe-1-Hp.sp3-1-Sh +bend 0.04 2.2165681475 9 Sh-1-Hp.sp3-1-Sh +bend 0.04 2.2165681475 9 H-1-Hp.sp3-1-Pl +bend 0.04 2.2165681475 9 H-1-Hp.sp3-1-Pe +bend 0.04 2.2165681475 9 H-1-Hp.sp3-1-Sh +bend 0.04 2.2165681475 9 H-1-Hp.sp3-1-H + +# 115 degree Axis JunctionSugar Phosphate +bend 0.04 2.0071286375 9 Ax-1-Sj.sp3-1-Pl +bend 0.04 2.0071286375 9 Ax-1-Sj.sp3-1-Pe +bend 0.04 2.0071286375 9 Ax-1-Sj.sp3-1-Sh +bend 0.04 2.0071286375 9 H-1-Sj.sp3-1-Ax + +# 110 degree Phosphate JunctionSugar Phosphate +bend 0.04 1.919862175 9 Pl-1-Sj.sp3-1-Pl +bend 0.04 1.919862175 9 Pl-1-Sj.sp3-1-Pe +bend 0.04 1.919862175 9 H-1-Sj.sp3-1-Pl +bend 0.04 1.919862175 9 H-1-Sj.sp3-1-H +bend 0.04 1.919862175 9 H-1-Sj.sp3-1-Pe +bend 0.04 1.919862175 9 Pe-1-Sj.sp3-1-Pe + +# 127 degree Phosphate JunctionSugar end +bend 0.04 2.2165681475 9 Pl-1-Sj.sp3-1-Sh +bend 0.04 2.2165681475 9 Pe-1-Sj.sp3-1-Sh +bend 0.04 2.2165681475 9 Sh-1-Sj.sp3-1-Sh +bend 0.04 2.2165681475 9 H-1-Sj.sp3-1-Sh + +# 92.5 degree Sugar Phosphate Sugar +bend 0.04 1.61442955625 9 Ss-1-Pl.sp3-1-Ss +bend 0.04 1.61442955625 9 Ss-1-Pl.sp3-1-Sh +bend 0.04 1.61442955625 9 Ss-1-Pl.sp3-1-Hp +bend 0.04 1.61442955625 9 Sh-1-Pl.sp3-1-Sh +bend 0.04 1.61442955625 9 Sh-1-Pl.sp3-1-Hp +bend 0.04 1.61442955625 9 Hp-1-Pl.sp3-1-Hp +bend 0.04 1.61442955625 9 H-1-Pl.sp3-1-Ss +bend 0.04 1.61442955625 9 H-1-Pl.sp3-1-Sh +bend 0.04 1.61442955625 9 H-1-Pl.sp3-1-Hp +bend 0.04 1.61442955625 9 H-1-Pl.sp3-1-H + +# 92.5 degree Sugar Phosphate JunctionSugar +bend 0.04 1.61442955625 9 Ss-1-Pl.sp3-1-Sj +bend 0.04 1.61442955625 9 Sj-1-Pl.sp3-1-Sh +bend 0.04 1.61442955625 9 Sj-1-Pl.sp3-1-Hp +bend 0.04 1.61442955625 9 H-1-Pl.sp3-1-Sj + +# 115.8 degree JunctionSugar Phosphate JunctionSugar +bend 0.04 2.0210912715 9 Sj-1-Pl.sp3-1-Sj diff --git a/sim/src/sim.pyx b/sim/src/sim.pyx new file mode 100755 index 000000000..ab4f4c8e8 --- /dev/null +++ b/sim/src/sim.pyx @@ -0,0 +1,495 @@ +# Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. +""" +sim.pyx + +$Id$ + +Note: this file is processed by Pyrex to produce sim.c in this directory +(not in the build subdirectory). [bruce 060101] + +Example usage script: + make clean; make pyx && python -c "import sim; sim.test()" +""" +__author__ = "Will" + +## import threading #bruce 060101 removed this since I think it's not used now + +try: + import Numeric +except ImportError: + import numpy as Numeric +import unittest + +cdef extern from "simhelp.c": + # note: this produces '#include "simhelp.c"' in generated sim.c file, + # but distutils fails to realize there's a dependency on simhelp.c, + # so Will added a setup.py dependency to fix that. [bruce 060101] + + # stuff from globals.c + int debug_flags + int Iteration + int ToMinimize + int IterPerFrame + int NumFrames + int DumpAsText + int DumpIntermediateText + int PrintFrameNums + int OutputFormat + int KeyRecordInterval + int DirectEvaluate + int PrintPotentialEnergy + int Interrupted + double MinimizeThresholdCutoverRMS + double MinimizeThresholdCutoverMax + double MinimizeThresholdEndRMS + double MinimizeThresholdEndMax + double VanDerWaalsCutoffFactor + int EnableElectrostatic + double ThermostatGamma + char *IDKey + char *BaseFileName + char *InputFileName + char *OutputFileName + char *TraceFileName + double Dt + double Dx + double Dmass + double Temperature + # end of globals.c stuff + char *errString + + setWriteTraceCallbackFunc(PyObject) + setFrameCallbackFunc(PyObject) + getFrame_c() + initsimhelp() + void dumpPart() + everythingElse() + everythingDone() + cdef char *structCompareHelp() + + void strcpy(char *, char *) #bruce 051230 guess + + void reinitSimGlobals(PyObject) + verifySimObject(PyObject) + specialExceptionIs(PyObject) + + #void dynamicsMovie_start() + #void dynamicsMovie_step() + #void dynamicsMovie_finish() + void initializeBondTable() + double getBondEquilibriumDistance(int element1, int element2, char bondOrder) + +cdef extern from "string.h": + int strcmp(char *s1, char *s2) + +cdef extern from "stdlib.h": + void srand(unsigned int) + +# wware 060111 a special exception for simulator interruptions +class SimulatorInterrupted(Exception): + pass + +specialExceptionIs(SimulatorInterrupted) + +cdef class BaseSimulator: + """Pyrex permits access to doc strings""" + + # cdef double *data + + # bruce 060103 comments: BaseSimulator needs an __init__ method which resets all globals + # to their desired initial values, in order to make this correct for successive + # uses of one of these objects in one session. ###@@@ + # Current code does not support more than one of these objects being active + # at one time (trying this will crash); but it's ok to use several in succession + # except for the issue of the globals not being reset to their initial values. + + def __getattr__(self, char *key): + verifySimObject(self) + if key.startswith('_'): + # important optimization (when Python asks for __xxx__) [bruce 060102] + raise AttributeError, key + if strcmp(key, "debug_flags") == 0: + return debug_flags + elif strcmp(key, "Iteration") == 0: + return Iteration + elif strcmp(key, "ToMinimize") == 0: + return ToMinimize + elif strcmp(key, "IterPerFrame") == 0: + return IterPerFrame + elif strcmp(key, "NumFrames") == 0: + return NumFrames + elif strcmp(key, "DumpAsText") == 0: + return DumpAsText + elif strcmp(key, "DumpIntermediateText") == 0: + return DumpIntermediateText + elif strcmp(key, "PrintFrameNums") == 0: + return PrintFrameNums + elif strcmp(key, "OutputFormat") == 0: + return OutputFormat + elif strcmp(key, "KeyRecordInterval") == 0: + return KeyRecordInterval + elif strcmp(key, "DirectEvaluate") == 0: + return DirectEvaluate + elif strcmp(key, "PrintPotentialEnergy") == 0: + return PrintPotentialEnergy + elif strcmp(key, "Interrupted") == 0: + return Interrupted + elif strcmp(key, "MinimizeThresholdCutoverRMS") == 0: + return MinimizeThresholdCutoverRMS + elif strcmp(key, "MinimizeThresholdCutoverMax") == 0: + return MinimizeThresholdCutoverMax + elif strcmp(key, "MinimizeThresholdEndRMS") == 0: + return MinimizeThresholdEndRMS + elif strcmp(key, "MinimizeThresholdEndMax") == 0: + return MinimizeThresholdEndMax + elif strcmp(key, "VanDerWaalsCutoffFactor") == 0: + return VanDerWaalsCutoffFactor + elif strcmp(key, "EnableElectrostatic") == 0: + return EnableElectrostatic + elif strcmp(key, "ThermostatGamma") == 0: + return ThermostatGamma + elif strcmp(key, "IDKey") == 0: + return IDKey + elif strcmp(key, "baseFilename") == 0: + #bruce 051230 prevent exception when this is NULL (its default value) + if BaseFileName == NULL: + # not sure if None would be permitted here + # probably it would, but this is better anyway + return "" + return BaseFileName + elif strcmp(key, "OutFileName") == 0: + if OutputFileName == NULL: + # should we raise an AttributeError here? + return "" + return OutputFileName + elif strcmp(key, "TraceFileName") == 0: + if TraceFileName == NULL: + # should we raise an AttributeError here? + return "" + return TraceFileName + elif strcmp(key, "Dt") == 0: + return Dt + elif strcmp(key, "Dx") == 0: + return Dx + elif strcmp(key, "Dmass") == 0: + return Dmass + elif strcmp(key, "Temperature") == 0: + return Temperature + else: + raise AttributeError, key + + def __setattr__(self, char *key, value): + verifySimObject(self) + if strcmp(key, "debug_flags") == 0: + global debug_flags + debug_flags = value + elif strcmp(key, "Iteration") == 0: + global Iteration + Iteration = value + elif strcmp(key, "ToMinimize") == 0: + global ToMinimize + ToMinimize = value + elif strcmp(key, "IterPerFrame") == 0: + global IterPerFrame + IterPerFrame = value + elif strcmp(key, "NumFrames") == 0: + global NumFrames + NumFrames = value + elif strcmp(key, "DumpAsText") == 0: + global DumpAsText + DumpAsText = value + elif strcmp(key, "DumpIntermediateText") == 0: + global DumpIntermediateText + DumpIntermediateText = value + elif strcmp(key, "PrintFrameNums") == 0: + global PrintFrameNums + PrintFrameNums = value + elif strcmp(key, "OutputFormat") == 0: + global OutputFormat + OutputFormat = value + elif strcmp(key, "KeyRecordInterval") == 0: + global KeyRecordInterval + KeyRecordInterval = value + elif strcmp(key, "DirectEvaluate") == 0: + global DirectEvaluate + DirectEvaluate = value + elif strcmp(key, "PrintPotentialEnergy") == 0: + global PrintPotentialEnergy + PrintPotentialEnergy = value + elif strcmp(key, "Interrupted") == 0: + global Interrupted + Interrupted = value + elif strcmp(key, "MinimizeThresholdCutoverRMS") == 0: + global MinimizeThresholdCutoverRMS + MinimizeThresholdCutoverRMS = value + elif strcmp(key, "MinimizeThresholdCutoverMax") == 0: + global MinimizeThresholdCutoverMax + MinimizeThresholdCutoverMax = value + elif strcmp(key, "MinimizeThresholdEndRMS") == 0: + global MinimizeThresholdEndRMS + MinimizeThresholdEndRMS = value + elif strcmp(key, "MinimizeThresholdEndMax") == 0: + global MinimizeThresholdEndMax + MinimizeThresholdEndMax = value + elif strcmp(key, "VanDerWaalsCutoffFactor") == 0: + global VanDerWaalsCutoffFactor + VanDerWaalsCutoffFactor = value + elif strcmp(key, "EnableElectrostatic") == 0: + global EnableElectrostatic + EnableElectrostatic = value + elif strcmp(key, "ThermostatGamma") == 0: + global ThermostatGamma + ThermostatGamma = value + elif strcmp(key, "IDKey") == 0: + global IDKey + IDKey = value + elif strcmp(key, "baseFilename") == 0: + global BaseFileName + BaseFileName = value + elif strcmp(key, "OutFileName") == 0: + global OutputFileName + OutputFileName = value + elif strcmp(key, "TraceFileName") == 0: + global TraceFileName + TraceFileName = value + elif strcmp(key, "Dt") == 0: + global Dt + Dt = value + elif strcmp(key, "Dx") == 0: + global Dx + Dx = value + elif strcmp(key, "Dmass") == 0: + global Dmass + Dmass = value + elif strcmp(key, "Temperature") == 0: + global Temperature + Temperature = value + else: + raise AttributeError, key + + def go(self, frame_callback=None, trace_callback=None): + "run the simulator loop; optional frame_callback should be None or a callable object" + + #e if there's an exception in the callback, maybe that should abort the sim run + # (requiring change to callback-call-helper in simhelp.c, I think) + # and reraise that exception or some other one from this method + #bruce 060103 + + verifySimObject(self) + setFrameCallbackFunc(frame_callback) + setWriteTraceCallbackFunc(trace_callback) + srand(0) + everythingElse() + # I don't want to bother saving/restoring an old frame_callback, + # since I think having a permanent one should be deprecated [bruce 060102] + # framebacks are cleared in everythingDone + everythingDone() + return + + def structCompare(self): + verifySimObject(self) + r = structCompare() + if r: + raise Exception, r + +class Minimize(BaseSimulator): + def __init__(self, fname): + global InputFileName + reinitSimGlobals(self) + self.ToMinimize = 1 + self.DumpAsText = 1 + self.PrintFrameNums = 0 + InputFileName = fname + initsimhelp() + +class Dynamics(BaseSimulator): #bruce 060101 changed superclass from Minimize to BaseSimulator + def __init__(self, fname): + global InputFileName + reinitSimGlobals(self) + self.ToMinimize = 0 + self.DumpAsText = 0 + self.PrintFrameNums = 0 + InputFileName = fname + initsimhelp() + +def setErrorString(str): + errString = str + +def getEquilibriumDistanceForBond(element1, element2, order): + # element1 and element2 are python ints + # order is a python string + cdef int int_el1, int_el2 + cdef char *c_order + int_el1 = element1 + int_el2 = element2 + c_order = order + # initializeBondTable should not require a tracefile, so can be called + # at any time. It must have been called before either parsing an mmp + # file, or calling getBondEquilibriumDistance(). It checks to see if + # it's been called already, so it's cheap if that's the case. It + # shouldn't affect the saved warning flags in any way. Warnings are + # only printed when bond information is retrieved, and + # getBondEquilibriumDistance() avoids the warning code. + initializeBondTable() + return getBondEquilibriumDistance(int_el1, int_el2, c_order[0]) + +##################################################### +# Per-frame callbacks to Python, wware 060101 + +def getFrame(): + frm = getFrame_c() + num_atoms = len(frm) / (3 * 8) + array = Numeric.fromstring(frm, Numeric.Float64) + return Numeric.resize(array, [num_atoms, 3]) + +# # # # # # # # # # # # # # # # # # + +# conventional globals for callback -- they don't have to be used +frameNumber = 0 +frameFreq = 1 + +callbackCounter = 0 + +def myCallback(last_frame): + global frameNumber + frameNumber = frameNumber + 1 + if (frameNumber % frameFreq) == 0: + #print "frame %d:" % frameNumber, getFrame() + global callbackCounter + callbackCounter = callbackCounter + 1 + +#bruce 060101 made testsetup a function so it only happens when asked for, +# not on every import and sim run (for example, runSim.py doesn't want it) + +def testsetup(freq=1): + "conventional setup for test functions; returns frame_callback argument for .go method" + global frameNumber, frameFreq, callbackCounter + callbackCounter = 0 + frameNumber = 0 + frameFreq = max(1, freq) + return myCallback + +tracefile = [ ] + +def tracecallback(str): + global tracefile + tracefile.append(str) +def badcallback(str): + raise RuntimeError, "This is a bad callback" +def badcallback2(): + "This callback should really take an argument" + pass + +##################################################### + +def isFileAscii(filename): + from string import printable + inf = open(filename) + R = inf.read(1000) + inf.close() + nonascii = 0 + for x in R: + if x not in printable: + nonascii = nonascii + 1 + return nonascii < 20 + +class Tests(unittest.TestCase): + + def setUp(self): + global tracefile + tracefile = [ ] + + def test_getEquilibriumDistance(self): + # try C-C single bond; prints 154.88 + assert (getEquilibriumDistanceForBond(6, 6, '1') - 154.88) ** 2 < 0.1 + + def test_framecallback(self): + func = testsetup(2) + m = Minimize("tests/minimize/test_h2.mmp") + m.go(frame_callback=func) + assert callbackCounter == 3, "Callback counter is %d, not 3" %(callbackCounter) + + def test_frameAndTraceCallback(self): + func = testsetup(10) + d = Dynamics("tests/rigid_organics/test_C6H10.mmp") + d.go(frame_callback=func, trace_callback=tracecallback) + assert callbackCounter == 10 + + def test_traceCallbackWithMotor(self): + d = Dynamics("tests/dynamics/test_0001.mmp") + d.go(trace_callback=tracecallback) + # Make sure there is motor information being printed + assert len(tracefile[-5].split()) == 3, \ + "Motor info not appearing in trace file:" + tracefile[18] + + def test_dpbFileShouldBeBinary(self): + d = Dynamics("tests/dynamics/test_0001.mmp") + d.go() + # Make sure that the DPB file is really binary + assert not isFileAscii("tests/dynamics/test_0001.dpb") + + def test_dpbFileShouldBeBinaryAfterMinimize(self): + # bruce 060103 added this; it presently fails, but I hope to fix it in same commit + m = Minimize("tests/minimize/test_h2.mmp") + m.go() + d = Dynamics("tests/dynamics/test_0001.mmp") + d.go() + # Make sure that the DPB file is really binary, even after Minimize is run + assert not isFileAscii("tests/dynamics/test_0001.dpb") + +## def test_dynamicsStepStuff(self): +## Dynamics("tests/rigid_organics/test_C6H10.mmp") +## dynamicsMovie_start() +## j = 0 +## for i in range(10000): +## dynamicsMovie_step() +## if (i % 500) == 0: +## #print "Here is frame", i +## #print getFrame() +## j = j + 1 +## dynamicsMovie_finish() +## assert j == 20 + + ######### Tests that should be expected to fail + + def test_badCallback1(self): + try: + d = Dynamics("tests/dynamics/test_0001.mmp") + d.go(trace_callback=badcallback) + assert False, "This test should have failed" + except RuntimeError, e: + assert e.args[0] == "This is a bad callback" + + def test_badCallback2(self): + try: + d = Dynamics("tests/dynamics/test_0001.mmp") + d.go(trace_callback=badcallback2) + assert False, "This test should have failed" + except TypeError: + pass + + def test_badCallback3(self): + try: + d = Dynamics("tests/dynamics/test_0001.mmp") + d.go(trace_callback=42) + assert False, "This test should have failed" + except RuntimeError, e: + assert e.args[0] == "callback is not callable" + + def test_callWrongSimulatorObject(self): + try: + m = Minimize("tests/dynamics/test_0001.mmp") + d = Dynamics("tests/dynamics/test_0001.mmp") + m.go(trace_callback=42) + assert False, "This test should have failed" + except AssertionError, e: + assert e.args[0] == "not the most recent simulator object" + +# +# make pyx && python -c "import sim; sim.test()" +# + +def test(): + suite = unittest.makeSuite(Tests, 'test') + runner = unittest.TextTestRunner() + runner.run(suite) diff --git a/sim/src/simhelp.c b/sim/src/simhelp.c new file mode 100755 index 000000000..a5942221f --- /dev/null +++ b/sim/src/simhelp.c @@ -0,0 +1,554 @@ +// Copyright 2005-2007 Nanorex, Inc. See LICENSE file for details. +/** + * C helper file for sim.pyx + * + * $Id$ + * + * CHANGES (reverse chronological order, use CVS log for details) + * + * wware 060111 - Be more careful with error checking in do_python_callback. + * + * wware 060109 - Made several changes to facilitate passing Python + * exceptions upstream from deep inside C function call stacks. + * + * wware 060102 - Added a callback for Python to pick up trace file info. + * + * WARNING: This file is not compiled separately -- it's #included in sim.c + * due to the "cdef extern" declaration in sim.pyx which names it. + * For some reason distutils doesn't realize this means there's a dependency, + * so Will added one in setup.py to fix this. + * [bruce 060101] + * + */ + +char __author__[] = "Will"; + +#include <stdlib.h> +#include "Python.h" +#include "Numeric/arrayobject.h" +#include "simulator.h" +#include "version.h" + +// #define WWDEBUG + +static char const rcsid[] = "$Id$"; +/* rcsid strings for several *.h files */ +static char const rcsid2[] = MULTIPLE_RCSID_STRING; + +#ifdef DISTUTILS +static char tracePrefix[] = TRACE_PREFIX TRACE_PREFIX_DISTUTILS; +#else +static char tracePrefix[] = TRACE_PREFIX TRACE_PREFIX_NON_DISTUTILS; +#endif + +static char retval[100]; +static struct part *part; +static struct xyz *pos; +static char buf[1024]; +static int callback_exception = 0; + +static void *mostRecentSimObject = NULL; + +// Python exception stuff, wware 010609 +char *py_exc_str = NULL; +static char py_exc_strbuf[1024]; +PyObject *simulatorInterruptedException; + +#ifdef WWDEBUG +#define WHERE_ARE_WE() DPRINT2(D_PYREX_SIM, "%s: %d\n", __FILE__, __LINE__) +#else +#define WHERE_ARE_WE() +#endif + +// wware 060109 python exception handling +#define PYBAIL() \ + if (py_exc_str != NULL) { \ + raiseExceptionIfNoneEarlier(PyExc_RuntimeError, py_exc_str); \ + WHERE_ARE_WE(); \ + fcloseIfNonNull(&TraceFile); \ + fcloseIfNonNull(&OutputFile); \ + return NULL; \ + } + +PyObject *specialExceptionIs(PyObject *specialExcep); +char * structCompareHelp(void); +void set_interrupted_flag(int value); + +static void +fcloseIfNonNull(FILE **f) +{ + if (*f != NULL) { + fclose(*f); + *f = NULL; + } +} + +/* + * Raise this exception with this string, UNLESS THIS PYTHON THREAD + * ALREADY HAD AN EXCEPTION. Never replace an earlier exception, + * because you'll be overwriting more significant diagnostic + * information. + * + * In the Python source code, see Python/errors.c, the following + * functions: PyErr_SetString, PyErr_SetObject, PyErr_Restore, + * PyErr_Occurred + */ +static int raiseExceptionIfNoneEarlier(PyObject *exception, const char *str) +{ + if (PyErr_Occurred()) { + // the exception already had a string, don't change it + // let the caller know there was already a string + WHERE_ARE_WE(); + return 1; + } + PyErr_SetString(exception, str); + WHERE_ARE_WE(); + return 0; +} + +PyObject * +specialExceptionIs(PyObject *specialExcep) +{ + if (!(PyType_Check(specialExcep) || PyClass_Check(specialExcep))) { + raiseExceptionIfNoneEarlier(PyExc_SystemError, + "argument must be a PyClass"); + return NULL; + } + simulatorInterruptedException = specialExcep; + Py_INCREF(Py_None); + return Py_None; +} + +static void +start_python_call(void) +{ + py_exc_str = NULL; + callback_exception = 0; +} + +static PyObject * +finish_python_call(PyObject *retval) +{ + if (callback_exception) { + WHERE_ARE_WE(); + return NULL; + } else if (py_exc_str != NULL) { + WHERE_ARE_WE(); + // wware 060109 python exception handling + raiseExceptionIfNoneEarlier(PyExc_RuntimeError, py_exc_str); + return NULL; + } else if (Interrupted) { + raiseExceptionIfNoneEarlier(simulatorInterruptedException, + "simulator was interrupted"); + WHERE_ARE_WE(); + return NULL; + } + if (retval == Py_None) { + WHERE_ARE_WE(); + Py_INCREF(Py_None); + } + WHERE_ARE_WE(); + return retval; +} + +static void +reinitSimGlobals(PyObject *sim) +{ + reinit_globals(); + mostRecentSimObject = sim; +} + +static PyObject * +verifySimObject(PyObject *sim) +{ + start_python_call(); + if (sim != mostRecentSimObject) { + raiseExceptionIfNoneEarlier(PyExc_AssertionError, + "not the most recent simulator object"); + WHERE_ARE_WE(); + return NULL; + } + WHERE_ARE_WE(); + return finish_python_call(Py_None); +} + +static PyObject *writeTraceCallbackFunc = NULL; +static PyObject *frameCallbackFunc = NULL; + +static PyObject * +setCallbackFunc(PyObject *f, PyObject **cb) +{ + if (*cb != NULL) { + Py_DECREF(*cb); + } + if (f == Py_None) { + *cb = NULL; + Py_INCREF(Py_None); + return Py_None; + } else if (f == NULL) { + *cb = NULL; + raiseExceptionIfNoneEarlier(PyExc_RuntimeError, "null callback"); + return NULL; + } else if (PyCallable_Check(f)) { + Py_INCREF(f); + *cb = f; + Py_INCREF(Py_None); + return Py_None; + } else { + *cb = NULL; + raiseExceptionIfNoneEarlier(PyExc_RuntimeError, "callback is not callable"); + return NULL; + } +} + +static PyObject * +setWriteTraceCallbackFunc(PyObject *f) +{ + start_python_call(); + return setCallbackFunc(f, &writeTraceCallbackFunc); +} + +static PyObject * +setFrameCallbackFunc(PyObject *f) +{ + start_python_call(); + return setCallbackFunc(f, &frameCallbackFunc); +} + + +// wware 060102 callback for getting info from C to python +static void +do_python_callback(PyObject *callbackFunc, PyObject* args) +{ + PyObject *pValue = NULL; + if (PyErr_Occurred()) { + // there was already a Python error when we got here + callback_exception = 1; + goto fini; + } + if (callbackFunc == NULL || !PyCallable_Check(callbackFunc)) { + callback_exception = 1; + raiseExceptionIfNoneEarlier(PyExc_RuntimeError, "callback not callable"); + goto fini; + } + pValue = PyObject_CallObject(callbackFunc, args); + if (PyErr_Occurred()) { + callback_exception = 1; + goto fini; + } + if (pValue == NULL) { + /* If we didn't get PyErr_Occurred(), did we get PyErr_SetString?? + * Looking at Python/errors.c, I don't think that should happen, + * but let's be paranoid. + */ + raiseExceptionIfNoneEarlier(PyExc_RuntimeError, + "callback returned NULL, PyErr_Occurred() not set"); + callback_exception = 1; + } + /* + * Theoretically we could compare the value of Interrupted at this + * point with its value before the callback was called, and then + * raise a SimulatorInterrupted exception if it had been set + * during the callback. We don't do that, because the + * SimulatorInterrupted exception is raised in + * finish_python_call(), and any pathway to get us to this point + * will return to Python through that routine. + */ + fini: ; + Py_XDECREF(args); + Py_XDECREF(pValue); +} + +// wware 060102 callback for trace file +void +write_traceline(const char *format, ...) +{ + va_list args; + + if (writeTraceCallbackFunc != NULL || TraceFile != NULL) { + va_start(args, format); + vsnprintf(buf, 1024, format, args); + va_end(args); + if (writeTraceCallbackFunc != NULL) + do_python_callback(writeTraceCallbackFunc, Py_BuildValue("(s)", buf)); + if (TraceFile != NULL) + fprintf(TraceFile, "%s", buf); + } +} + +// wware 060101 callback for getting frame info in pyrex +void +callback_writeFrame(struct part *part1, struct xyz *pos1, int lastFrame) +{ + if (part != part1) { + // assert part is <previous value for part> + // we haven't seen this yet, but it would be important to know about + // wware 060109 python exception handling + set_py_exc_str(__FILE__, __LINE__, "the part has changed"); + return; + } + pos = pos1; + if (frameCallbackFunc != NULL) + do_python_callback(frameCallbackFunc, Py_BuildValue("(i)", lastFrame)); +} + +// wware 060101 make frame info available in pyrex +static PyObject * +getFrame_c(void) +{ + // .xyz files are in angstroms (1e-10 m) +#define XYZ (1.0e-2) + PyObject *retval; + double *data; + int i, n; + + start_python_call(); + if (part == NULL) { + raiseExceptionIfNoneEarlier(PyExc_MemoryError, + "part is null"); + return NULL; + } + if (part->num_atoms == 0) { + return PyString_FromString(""); + } + n = 3 * part->num_atoms * sizeof(double); + data = (double *) malloc(n); + if (data == NULL) { + raiseExceptionIfNoneEarlier(PyExc_MemoryError, + "out of memory"); + return NULL; + } + for (i = 0; i < part->num_atoms; i++) { + data[i * 3 + 0] = pos[i].x * XYZ; + data[i * 3 + 1] = pos[i].y * XYZ; + data[i * 3 + 2] = pos[i].z * XYZ; + } + retval = PyString_FromStringAndSize((char*) data, n); + free(data); + return finish_python_call(retval); +} + +/* + * A good goal would be to eliminate all the filename-twiddling in this + * function, and only set up the bond tables. + */ +static PyObject * +initsimhelp(void) // WARNING: this duplicates some code from simulator.c +{ +#ifdef WWDEBUG + debug_flags |= D_PYREX_SIM; +#endif + + start_python_call(); + + if (DumpAsText) { + OutputFormat = 0; + } else { + // bruce 060103 part of bugfix for Dynamics output format after Minimize + // (to complete the fix it would be necessary for every change by sim.pyx of either + // OutputFormat or DumpAsText to make sure the other one changed to fit, + // either at the time of the change or before the next .go method + // (or if changed during that method, before their next use by any C code); + // this is not needed by the present client code, so I'll put it off for now + // and hope we can more extensively clean up this option later.) + OutputFormat = 1; // sim.pyx only tries to support "old" dpb format for now + } + InputFileName = copy_string(InputFileName); + OutputFileName = replaceExtension(InputFileName, DumpAsText ? "xyz" : "dpb"); + + // bruce 060101 moved the rest of this function into the start of everythingElse + // since it depends on parameters set by the client code after this init method runs, + // but then had to move initializeBondTable back here to fix a bug (since mmp reading + // depends on it) + initializeBondTable(); + return finish_python_call(Py_None); +} + +static PyObject * +dumpPart(void) +{ + start_python_call(); + printPart(stdout, part); + return finish_python_call(Py_None); +} + +static PyObject * +everythingElse(void) // WARNING: this duplicates some code from simulator.c +{ + // wware 060109 python exception handling + start_python_call(); + // bruce 060101 moved this section here, from the end of initsimhelp, + // since it depends on parameters set by the client code after that init method runs + + if (TraceFileName != NULL) { + TraceFile = fopen(TraceFileName, "w"); + if (TraceFile == NULL) { + snprintf(buf, 1024, "can't open tracefile for writing: %s", TraceFileName); + raiseExceptionIfNoneEarlier(PyExc_IOError, buf); + return NULL; + } + traceFileVersion(); // call this before any other writes to trace file. + // tell where and how the pyrex sim was built, whether with or without distutils. + fprintf(TraceFile, "%s", tracePrefix); + CommandLine = "run from pyrex interface"; + } + + // this has to happen after opening the trace file and setting up + // trace callbacks, since we might emit warnings when we do this. + initializeBondTable(); + + part = readMMP(InputFileName); + PYBAIL(); + if (part == NULL) { + set_py_exc_str(__FILE__, __LINE__, "part is null"); + PYBAIL(); + } + initializePart(part); + PYBAIL(); + + // ##e should print options set before run, but it's too early to do that in this code + + if (IterPerFrame <= 0) IterPerFrame = 1; + // initializeBondTable(); // this had to be done in initsimhelp instead [bruce 060101] + // end of section moved by bruce 060101 + + constrainGlobals(); + traceHeader(part); + + if (ToMinimize) { + NumFrames = max(NumFrames,(int)sqrt((double)part->num_atoms)); + Temperature = 0.0; + } else { + traceJigHeader(part); + } + + OutputFile = fopen(OutputFileName, DumpAsText ? "w" : "wb"); + if (OutputFile == NULL) { + snprintf(buf, 1024, "bad output filename: %s", OutputFileName); + raiseExceptionIfNoneEarlier(PyExc_IOError, buf); + return NULL; + } + writeOutputHeader(OutputFile, part); + + if (ToMinimize) { + minimizeStructure(part); + } + else { + dynamicsMovie(part); + } + + fcloseIfNonNull(&OutputFile); + if (py_exc_str != NULL) { + ERROR(py_exc_str); + } + if (callback_exception) { + WHERE_ARE_WE(); SAY("closing tracefile\n"); + fcloseIfNonNull(&TraceFile); + return NULL; + } else if (py_exc_str != NULL) { + WHERE_ARE_WE(); SAY("closing tracefile\n"); + fcloseIfNonNull(&TraceFile); + raiseExceptionIfNoneEarlier(PyExc_RuntimeError, py_exc_str); + return NULL; + } else if (Interrupted) { + WHERE_ARE_WE(); SAY("closing tracefile\n"); + fcloseIfNonNull(&TraceFile); + raiseExceptionIfNoneEarlier(simulatorInterruptedException, + "simulator was interrupted"); + return NULL; + } + return finish_python_call(Py_None); +} + +static PyObject * +everythingDone(void) +{ + start_python_call(); + done(""); + WHERE_ARE_WE(); SAY("closing tracefile\n"); + fcloseIfNonNull(&TraceFile); + if (writeTraceCallbackFunc != NULL) { + Py_DECREF(writeTraceCallbackFunc); + } + if (frameCallbackFunc != NULL) { + Py_DECREF(frameCallbackFunc); + } + writeTraceCallbackFunc = NULL; + frameCallbackFunc = NULL; + destroyPart(part); + part = NULL; + return finish_python_call(Py_None); +} + + +/** + * If we return a non-empty string, it's an error message. + */ +char * structCompareHelp(void) { + int i1; + int i2; + struct xyz *basePositions; + struct xyz *initialPositions; + + if (BaseFileName == NULL || strlen(BaseFileName) == 0) { + sprintf(retval, "No BaseFileName"); + return retval; + } + basePositions = readXYZ(BaseFileName, &i1); + if (basePositions == NULL) { + sprintf(retval, + "could not read base positions file from \"%s\"", + BaseFileName); + return retval; + } + initialPositions = readXYZ(InputFileName, &i2); + if (initialPositions == NULL) { + sprintf(retval, + "could not read comparison positions file \"%s\"", + InputFileName); + return retval; + } + if (i1 != i2) { + sprintf(retval, + "structures to compare must have same number of atoms"); + return retval; + } + if (doStructureCompare(i1, basePositions, initialPositions, + NumFrames, 1e-8, 1e-4, 1.0+1e-4)) { + sprintf(retval, "structure comparison failed"); + return retval; + } + retval[0] = '\0'; + return retval; +} + +void +set_interrupted_flag(int value) +{ + // used in sim.pyx by __setattr__, which has already set Interrupted + // so our only job here is to set py_exc_str + if (py_exc_str != NULL) return; + sprintf(py_exc_strbuf, "simulator has been interrupted"); + py_exc_str = py_exc_strbuf; +} + +void +set_py_exc_str(const char *filename, + const int linenum, const char *format, ...) +{ + va_list args; + int n; + if (py_exc_str != NULL) return; + n = sprintf(py_exc_strbuf, "\n%s:%d ", filename, linenum); + va_start(args, format); + vsnprintf(py_exc_strbuf + n, 1024 - n, format, args); + va_end(args); + py_exc_str = py_exc_strbuf; +} + +/* + * Local Variables: + * c-basic-offset: 4 + * tab-width: 8 + * End: + */ diff --git a/sim/src/simulator.c b/sim/src/simulator.c new file mode 100755 index 000000000..a35a5f3d7 --- /dev/null +++ b/sim/src/simulator.c @@ -0,0 +1,506 @@ +// Copyright 2004-2007 Nanorex, Inc. See LICENSE file for details. +#include <getopt.h> +#include "simulator.h" +#include "version.h" + +static char const rcsid[] = "$Id$"; + +/* rcsid strings for several *.h files */ +static char const rcsid2[] = MULTIPLE_RCSID_STRING; + +static char tracePrefix[] = TRACE_PREFIX TRACE_PREFIX_NON_DISTUTILS; + +static void +SIGTERMhandler(int sig) +{ + Interrupted = 1; +} + +static void +usage(void) +{ + + fprintf(stderr, "\ncommand line parameters:\n\ + --dump-part\n\ + write out internal representation of .mmp file, then exit\n\ + --print-potential-function=<bond>\n\ + print the values of the potential and gradient for the given bond.\n\ + <bond> should be one of:\n\ + bond:C-1-H\n\ + bend:C-1-C-1-H\n\ + vdw:C-v-H\n\ + es:Pl-e-Pl\n\ + you may also want to change the defaults for --initial, --increment, and --limit\n\ + --initial=<r> lowest r value in the potential function table printed above (in pm)\n\ + --increment=<dr> spacing of r values for above table (in pm)\n\ + --limit=<r> highest r value in table above (in pm)\n\ + --direct-evaluate\n\ + call potential and gradient functions directly instead of using\n\ + any form of interpolation of approximation. (VERY SLOW!)\n\ + --interpolate\n\ + use interpolation tables for potential and gradient functions\n\ + [[current default is --direct-evaluate, should change to --interpolate]]\n\ + --simple-movie-force-scale=<float>\n\ + used with -D4 and -D5 to scale length of force vectors.\n\ + -n<int>, --num-atoms=<int>\n\ + expect this many atoms (ignored)\n\ + --thermostat-gamma=<float>\n\ + control time constant for thermostat coupling, default=0.01\n\ + -m, --minimize\n\ + minimize the structure\n\ + --min-threshold-cutover-rms=<float>\n\ + rms force value in pN at which to switch from steepest descent to conjugate gradients.\n\ + --min-threshold-cutover-max=<float>\n\ + maximum force in pN must be less than this before switching to C-G.\n\ + --min-threshold-end-rms=<float>\n\ + terminate minimization when rms force falls below this level and...\n\ + --min-threshold-end-max=<float>\n\ + ...when max force is below this level.\n\ + --vdw-cutoff-factor=<float>\n\ + maximum range of vdw force, as multiple of rvdW.\n\ + --enable-electrostatic=<flag>\n\ + specify 0 to disable electrostatic interactions, default is non-zero.\n\ + -E, --print-structure-energy\n\ + print structure potential energy\n\ + --print-energies\n\ + print potential, kinetic, and total energies for each dynamics frame\n\ + --time-reversal\n\ + Run dynamics forward, then backwards, to check for conservation of energy\n\ + -i<int>, --iters-per-frame=<num>\n\ + number of iterations per frame\n\ + -f<int>, --num-frames=<int>\n\ + number of frames\n\ + -s<float>, --time-step=<float>\n\ + time step in seconds, default 1e-16\n\ + -t<float>, --temperature=<float>\n\ + temperature\n\ + -x, --dump-as-text\n\ + write positions as (text) .xyz file(s)\n\ + -X, --dump-intermediate-text\n\ + write intermediate minimize positions to .xyz (need -x)\n\ + -O, --output-format-1\n\ + write old format .dpb files (default)\n\ + -N, --output-format-2\n\ + write new format .dpb files\n\ + -I<string>, --id-key=<string>\n\ + specify IDKey\n\ + -K<int>, --key-record-interval=<int>\n\ + number of delta frames between key frames\n\ + -r, --repress-frame-numbers\n\ + repress the printing of frame numbers\n\ + -o<string>, --output-file=<string>\n\ + output file name (otherwise same as input)\n\ + -q<string>, --trace-file=<string>\n\ + trace file name (default=stdout)\n\ + -D<int>, --debug=<int>\n\ + turn on a debugging flag (see debug.h)\n\ + -B<filename>, --base-file=<filename>\n\ + base XYZ file for position comparison (compared to following file)\n\ + filename if no file extension, add .mmp to read, .dpb to write\n"); + exit(1); +} + +// wware 060101 callback for pyrex, no-op in standalone simulator +void +callback_writeFrame(struct part *part, struct xyz *pos, int last_frame) +{ +} +// wware 060102 callback for trace file +void +write_traceline(const char *format, ...) +{ + va_list args; + + va_start(args, format); + vfprintf(TraceFile, format, args); + va_end(args); + fflush(stdout); +} + +// Python exception stuff, wware 060109 +char *py_exc_str = NULL; + +void +set_py_exc_str(const char *filename, + const int linenum, const char *format, ...) +{ + va_list args; + fprintf(stderr, "\n%s:%d ", filename, linenum); + va_start(args, format); + vfprintf(stderr, format, args); + va_end(args); + fprintf(stderr, "\n"); + exit(1); +} + +#define LONG_OPT(n) ((n) + 128) /* This is used to mark options with no short value. */ +#define OPT_HELP LONG_OPT (0) +#define OPT_DUMP_PART LONG_OPT (1) +#define OPT_PRINT_POTENTIAL LONG_OPT (2) +#define OPT_INITIAL LONG_OPT (3) +#define OPT_INCREMENT LONG_OPT (4) +#define OPT_LIMIT LONG_OPT (5) +#define OPT_DIRECT_EVALUATE LONG_OPT (6) +#define OPT_INTERPOLATE LONG_OPT (7) +#define OPT_SIMPLE_MOVIE_FORCE_SCALE LONG_OPT (8) +#define OPT_MIN_THRESH_CUT_RMS LONG_OPT (9) +#define OPT_MIN_THRESH_CUT_MAX LONG_OPT (10) +#define OPT_MIN_THRESH_END_RMS LONG_OPT (11) +#define OPT_MIN_THRESH_END_MAX LONG_OPT (12) +#define OPT_VDW_CUTOFF_FACTOR LONG_OPT (13) +#define OPT_TIME_REVERSAL LONG_OPT (14) +#define OPT_THERMOSTAT_GAMMA LONG_OPT (15) +#define OPT_PRINT_ENERGIES LONG_OPT (16) +#define OPT_ENABLE_ELECTROSTATIC LONG_OPT (17) + +static const struct option option_vec[] = { + { "help", no_argument, NULL, 'h' }, + { "dump-part", no_argument, NULL, OPT_DUMP_PART }, + { "print-potential-function", required_argument, NULL, OPT_PRINT_POTENTIAL}, + { "initial", required_argument, NULL, OPT_INITIAL}, + { "increment", required_argument, NULL, OPT_INCREMENT}, + { "limit", required_argument, NULL, OPT_LIMIT}, + { "direct-evaluate", no_argument, NULL, OPT_DIRECT_EVALUATE}, + { "interpolate", no_argument, NULL, OPT_INTERPOLATE}, + { "simple-movie-force-scale", required_argument, NULL, OPT_SIMPLE_MOVIE_FORCE_SCALE}, + { "min-threshold-cutover-rms", required_argument, NULL, OPT_MIN_THRESH_CUT_RMS}, + { "min-threshold-cutover-max", required_argument, NULL, OPT_MIN_THRESH_CUT_MAX}, + { "min-threshold-end-rms", required_argument, NULL, OPT_MIN_THRESH_END_RMS}, + { "min-threshold-end-max", required_argument, NULL, OPT_MIN_THRESH_END_MAX}, + { "vdw-cutoff-factor", required_argument, NULL, OPT_VDW_CUTOFF_FACTOR}, + { "enable-electrostatic", required_argument, NULL, OPT_ENABLE_ELECTROSTATIC}, + { "time-reversal", no_argument, NULL, OPT_TIME_REVERSAL}, + { "thermostat-gamma", required_argument, NULL, OPT_THERMOSTAT_GAMMA}, + { "print-energies", no_argument, NULL, OPT_PRINT_ENERGIES}, + { "num-atoms", required_argument, NULL, 'n' }, + { "minimize", no_argument, NULL, 'm' }, + { "print-structure-energy", no_argument, NULL, 'E' }, + { "iters-per-frame", required_argument, NULL, 'i' }, + { "num-frames", required_argument, NULL, 'f' }, + { "time-step", required_argument, NULL, 's' }, + { "temperature", required_argument, NULL, 't' }, + { "dump-as-text", no_argument, NULL, 'x' }, + { "dump-intermediate-text", no_argument, NULL, 'X' }, + { "output-format-1", no_argument, NULL, 'O' }, + { "output-format-2", no_argument, NULL, 'N' }, + { "id-key", required_argument, NULL, 'I' }, + { "key-record-interval", required_argument, NULL, 'K' }, + { "repress-frame-numbers", no_argument, NULL, 'r' }, + { "debug", required_argument, NULL, 'D' }, + { "output-file", required_argument, NULL, 'o' }, + { "trace-file", required_argument, NULL, 'q' }, + { "base-file", required_argument, NULL, 'B' }, + { NULL, no_argument, NULL, 0 } +}; + +static char * +assembleCommandLine(int argc, char **argv) +{ + int len = 0; + int len1; + char *arg; + char *s = NULL; + + while (argc-- > 0) { + arg = *argv++; + len1 = len + strlen(arg); + s = (char *)accumulator(s, len1, 0); + while (len < len1) { + s[len++] = *arg++; + } + s[len++] = ' '; + } + s[len] = '\0'; + return s; +} + +int +main(int argc, char **argv) +{ + struct part *part; + int opt, n; + int dump_part = 0; + int printStructurePotentialEnergy = 0; + char *printPotential = NULL; + double printPotentialInitial = -1; // pm + double printPotentialIncrement = -1; // pm + double printPotentialLimit = -1; // pm + char *fileNameTemplate = NULL; + char *outputFilename = NULL; + + reinit_globals(); + + if (signal(SIGTERM, &SIGTERMhandler) == SIG_ERR) { + perror("signal(SIGTERM)"); + exit(1); + } + + CommandLine = assembleCommandLine(argc, argv); + while ((opt = getopt_long(argc, argv, + "hnmEi:f:s:t:xXONI:K:rD:o:q:B:", + option_vec, NULL)) != -1) { + switch(opt) { + case 'h': + usage(); + case OPT_DUMP_PART: + dump_part = 1; + break; + case OPT_PRINT_POTENTIAL: + printPotential = optarg; + break; + case OPT_INITIAL: + printPotentialInitial = atof(optarg); + break; + case OPT_INCREMENT: + printPotentialIncrement = atof(optarg); + break; + case OPT_LIMIT: + printPotentialLimit = atof(optarg); + break; + case OPT_DIRECT_EVALUATE: + DirectEvaluate = 1; + break; + case OPT_INTERPOLATE: + DirectEvaluate = 0; + break; + case OPT_SIMPLE_MOVIE_FORCE_SCALE: + SimpleMovieForceScale = atof(optarg); + break; + case OPT_MIN_THRESH_CUT_RMS: + MinimizeThresholdCutoverRMS = atof(optarg); + break; + case OPT_MIN_THRESH_CUT_MAX: + MinimizeThresholdCutoverMax = atof(optarg); + break; + case OPT_MIN_THRESH_END_RMS: + MinimizeThresholdEndRMS = atof(optarg); + break; + case OPT_MIN_THRESH_END_MAX: + MinimizeThresholdEndMax = atof(optarg); + break; + case OPT_VDW_CUTOFF_FACTOR: + VanDerWaalsCutoffFactor = atof(optarg); + break; + case OPT_ENABLE_ELECTROSTATIC: + EnableElectrostatic = atoi(optarg); + break; + case OPT_TIME_REVERSAL: + TimeReversal = 1; + break; + case OPT_THERMOSTAT_GAMMA: + ThermostatGamma = atof(optarg); + break; + case OPT_PRINT_ENERGIES: + PrintPotentialEnergy = 1; + break; + case 'n': + // ignored + break; + case 'm': + ToMinimize=1; + break; + case 'E': + printStructurePotentialEnergy=1; + break; + case 'i': + IterPerFrame = atoi(optarg); + break; + case 'f': + NumFrames = atoi(optarg); + break; + case 's': + Dt = atof(optarg); + break; + case 't': + Temperature = atof(optarg); + break; + case 'x': + DumpAsText = 1; + break; + case 'X': + DumpIntermediateText = 1; + break; + case 'O': + OutputFormat = 1; + break; + case 'N': + OutputFormat = 2; + break; + case 'I': + IDKey = optarg; + break; + case 'K': + KeyRecordInterval = atoi(optarg); + break; + case 'r': + PrintFrameNums = 0; + break; + case 'D': + n = atoi(optarg); + if (n < 32 && n >= 0) { + debug_flags |= 1 << n; + } + break; + case 'o': + outputFilename = optarg; + break; + case 'q': + TraceFileName = optarg; + break; + case 'B': + BaseFileName = optarg; + break; + case ':': + case '?': + default: + usage(); + exit(1); + } + } + if (optind + 1 == argc) { // (optind < argc) if not paranoid + fileNameTemplate = argv[optind]; + } + + if (DEBUG(D_PRINT_BEND_STRETCH)) { // -D8 + initializeBondTable(); + printBendStretch(); + exit(0); + } + + if (DumpAsText) { + OutputFormat = 0; + } + + if (!fileNameTemplate) { + usage(); + } + InputFileName = replaceExtension(fileNameTemplate, "mmp"); + + if (BaseFileName != NULL) { + int i1; + int i2; + struct xyz *basePositions; + struct xyz *initialPositions; + + basePositions = readXYZ(BaseFileName, &i1); + if (basePositions == NULL) { + fprintf(stderr, "could not read base positions file from -B<filename>\n"); + exit(1); + } + initialPositions = readXYZ(InputFileName, &i2); + if (initialPositions == NULL) { + fprintf(stderr, "could not read comparison positions file\n"); + exit(1); + } + if (i1 != i2) { + fprintf(stderr, "structures to compare must have same number of atoms\n"); + exit(1); + } + exit(doStructureCompare(i1, basePositions, initialPositions, + NumFrames, 1e-8, 1e-4, 1.0+1e-4)); + } + + if (outputFilename) { + OutputFileName = copy_string(outputFilename); + } else { + OutputFileName = replaceExtension(fileNameTemplate, DumpAsText ? "xyz" : "dpb"); + } + + if (TraceFileName) { + TraceFile = fopen(TraceFileName, "w"); + if (TraceFile == NULL) { + perror(TraceFileName); + exit(1); + } + } else { + TraceFile = fdopen(1, "w"); + if (TraceFile == NULL) { + perror("fdopen stdout as TraceFile"); + exit(1); + } + } + traceFileVersion(); // call this before any other writes to trace file. + // tell where and how the simulator was built. We never build the + // standalone simulator with distutils. + fprintf(TraceFile, "%s", tracePrefix); + + initializeBondTable(); + + if (IterPerFrame <= 0) IterPerFrame = 1; + + if (printPotential) { + printPotentialAndGradientFunctions(printPotential, + printPotentialInitial, + printPotentialIncrement, + printPotentialLimit); + exit(0); + } + + part = readMMP(InputFileName); + if (EXCEPTION) { + exit(1); + } + initializePart(part); + + if (printStructurePotentialEnergy) { + struct xyz *force = (struct xyz *)allocate(sizeof(struct xyz) * part->num_atoms); + double potentialEnergy = calculatePotential(part, part->positions); + calculateGradient(part, part->positions, force); + printf("%e %e %e %e (Potential energy in aJ, gradient of atom 1)\n", potentialEnergy, force[1].x, force[1].y, force[1].z); + exit(0); + } + + if (dump_part) { + // + // this segment is convenient to run valgrind on to test the + // part and bond table destructors. By the time we reach the + // exit() there should be no malloc'd blocks remaining. + // + // valgrind -v --leak-check=full --leak-resolution=high --show-reachable=yes simulator --dump-part part.mmp + // + printPart(stdout, part); + destroyPart(part); + part = NULL; + destroyBondTable(); + fclose(TraceFile); + destroyAccumulator(CommandLine); + free(InputFileName); + free(OutputFileName); + exit(0); + } + + constrainGlobals(); + traceHeader(part); + + if (ToMinimize) { + NumFrames = max(NumFrames,(int)sqrt((double)part->num_atoms)); + Temperature = 0.0; + } else { + traceJigHeader(part); + } + + OutputFile = fopen(OutputFileName, DumpAsText ? "w" : "wb"); + if (OutputFile == NULL) { + perror(OutputFileName); + exit(1); + } + writeOutputHeader(OutputFile, part); + + if (ToMinimize) { + minimizeStructure(part); + exit(0); + } + else { + dynamicsMovie(part); + } + + done(""); + return 0; +} + +/* + * Local Variables: + * c-basic-offset: 4 + * tab-width: 8 + * End: + */ diff --git a/sim/src/simulator.dev b/sim/src/simulator.dev new file mode 100755 index 000000000..08ef27184 --- /dev/null +++ b/sim/src/simulator.dev @@ -0,0 +1,169 @@ +[Project] +FileName=simulator.dev +Name=Simulator +UnitCount=12 +Type=1 +Ver=1 +ObjFiles= +Includes= +Libs= +PrivateResource= +ResourceIncludes= +MakeIncludes= +Compiler= +CppCompiler= +Linker= +IsCpp=0 +Icon= +ExeOutput= +ObjectOutput= +OverrideOutput=0 +OverrideOutputName= +HostApplication= +Folders= +CommandLine= +UseCustomMakefile=0 +CustomMakefile= +IncludeVersionInfo=0 +SupportXPThemes=0 +CompilerSet=0 +CompilerSettings= + +[Unit1] +FileName=simulator.h +CompileCpp=0 +Folder=Simulator +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit4] +FileName=readers.c +CompileCpp=0 +Folder=Simulator +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit5] +FileName=simulator.c +CompileCpp=0 +Folder=Simulator +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit6] +FileName=hashtable.c +CompileCpp=0 +Folder=Simulator +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit7] +FileName=newtables.c +CompileCpp=0 +Folder=Simulator +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit8] +FileName=interpolate.c +CompileCpp=0 +Folder=Simulator +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[VersionInfo] +Major=0 +Minor=1 +Release=1 +Build=1 +LanguageID=1033 +CharsetID=1252 +CompanyName= +FileVersion= +FileDescription=Developed using the Dev-C++ IDE +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion= +AutoIncBuildNr=0 + +[Unit3] +FileName=printers.c +CompileCpp=0 +Folder=Simulator +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit2] +FileName=lin-alg.c +CompileCpp=0 +Folder=Simulator +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit9] +FileName=allocate.c +CompileCpp=0 +Folder=Simulator +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit10] +FileName=structcompare.c +CompileCpp=0 +Folder=Simulator +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit11] +FileName=bends.h +CompileCpp=0 +Folder=Simulator +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit12] +FileName=bonds.h +CompileCpp=0 +Folder=Simulator +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + diff --git a/sim/src/simulator.h b/sim/src/simulator.h new file mode 100755 index 000000000..f36f4fe36 --- /dev/null +++ b/sim/src/simulator.h @@ -0,0 +1,199 @@ +// Copyright 2004-2007 Nanorex, Inc. See LICENSE file for details. + +#ifndef SIMULATOR_H_INCLUDED +#define SIMULATOR_H_INCLUDED + +#define RCSID_SIMULATOR_H "$Id$" + +#define MULTIPLE_RCSID_STRING \ + RCSID_SIMULATOR_H \ + RCSID_DEBUG_H \ + RCSID_LIN_ALG_H \ + RCSID_ALLOCATE_H \ + RCSID_HASHTABLE_H \ + RCSID_MINIMIZE_H \ + RCSID_STRUCTCOMPARE_H \ + RCSID_PART_H \ + RCSID_NEWTABLES_H \ + RCSID_INTERPOLATE_H \ + RCSID_READMMP_H \ + RCSID_READXYZ_H \ + RCSID_PRINTERS_H \ + RCSID_DYNAMICS_H \ + RCSID_JIGS_H \ + RCSID_POTENTIAL_H \ + RCSID_MINSTRUCTURE_H \ + RCSID_WRITEMOVIE_H \ + RCSID_GLOBALS_H + +// SI prefixes: +// +// 1e+24 Y yotta +// 1e+21 Z zetta +// 1e+18 E exa +// 1e+15 P peta +// 1e+11 T tera +// 1e+9 G giga +// 1e+6 M mega +// 1e+3 k kilo +// 1e+2 h hecto +// 1e+1 da deca +// +// 1e-1 d deci +// 1e-2 c centi +// 1e-3 m milli +// 1e-6 u micro +// 1e-9 n nano +// 1e-12 p pico +// 1e-15 f femto +// 1e-18 a atto +// 1e-21 z zepto +// 1e-24 y yocto + +// one Angstrom is 0.1 nm or 1e-10 m + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <signal.h> +#include <sys/time.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +#include <time.h> +#include <stdarg.h> +#include <errno.h> +#include <string.h> + +// XXX the mac build environment doesn't seem to include a values.h, +// and since the windows version doesn't define MAXDOUBLE (which is +// the only reason we need it), it seems it's only useful on linux. +// Commenting it out until we know the right way of finding MAXDOUBLE +// on all platforms. +//#include <values.h> + +// it's possible that includeing float.h and using DBL_MAX is the +// right way to go. It should be tested first, though. +//#include <float.h> + +// for some reason, values.h on windows doesn't include this. we put +// it here until someone can find the right way to get it defined, or +// until M$ decides to comply with standards instead of trying to +// squash them. +#ifndef MAXDOUBLE +#define MAXDOUBLE 1.79769313486231570e+308 +#endif + +#include "debug.h" + +#include "lin-alg.h" +#include "allocate.h" +#include "hashtable.h" + +#include "minimize.h" +#include "structcompare.h" + +#ifdef WWDEBUG +// handy little debug macros +#define SAY(fmt) { FILE *outf = fopen("/home/wware/FOO", "a"); \ + fprintf(outf, "%s:%d(%s) ", __FILE__, __LINE__, __FUNCTION__); \ + fprintf(outf, fmt); fclose(outf); } +#define SAY1(fmt,a) { FILE *outf = fopen("/home/wware/FOO", "a"); \ + fprintf(outf, "%s:%d(%s) ", __FILE__, __LINE__, __FUNCTION__); \ + fprintf(outf, fmt, a); fclose(outf); } +#define SAY2(fmt,a,b) { FILE *outf = fopen("/home/wware/FOO", "a"); \ + fprintf(outf, "%s:%d(%s) ", __FILE__, __LINE__, __FUNCTION__); \ + fprintf(outf, fmt, a, b); fclose(outf); } +#define SAY3(fmt,a,b,c) { FILE *outf = fopen("/home/wware/FOO", "a"); \ + fprintf(outf, "%s:%d(%s) ", __FILE__, __LINE__, __FUNCTION__); \ + fprintf(outf, fmt, a, b, c); fclose(outf); } +#define SAY4(fmt,a,b,c,d) { FILE *outf = fopen("/home/wware/FOO", "a"); \ + fprintf(outf, "%s:%d(%s) ", __FILE__, __LINE__, __FUNCTION__); \ + fprintf(outf, fmt, a, b, c, d); fclose(outf); } +#else +#define SAY(fmt) +#define SAY1(fmt,a) +#define SAY2(fmt,a,b) +#define SAY3(fmt,a,b,c) +#define SAY4(fmt,a,b,c,d) +#endif + +#define MARK() SAY("\n") +#define SAY_INT(x) SAY2("%s=%d\n", #x, x) +#define SAY_DBL(x) SAY2("%s=%lg\n", #x, x) +#define SAY_XYZ(s) SAY4("%s={%lf,%lf,%lf)\n", #s, (s).x, (s).y, (s).z) +#define SAY_PTR(x) SAY2("%s=%p\n", #x, x) + +#define iabs(x) (x<0 ? -(x) : x) +#ifndef min +#define min(x,y) ((x) < (y) ? (x) : (y)) +#endif +#ifndef max +#define max(x,y) ((x) > (y) ? (x) : (y)) +#endif + +#define PICOSEC (1e-12) + +/* van der Waals forces */ + +#include "part.h" +#include "newtables.h" +#include "interpolate.h" + +#include "readmmp.h" +#include "readxyz.h" +#include "printers.h" +#include "dynamics.h" +#include "jigs.h" +#include "potential.h" +#include "minstructure.h" +#include "writemovie.h" +#include "rigid.h" + +#include "globals.h" + +/* + * Callbacks for use with Pyrex, do-nothing functions in the stand-alone + * simulator. wware 060101 + */ + +extern void callback_writeFrame(struct part *part, struct xyz *pos, int last_frame); + +// wware 060102 callback for trace file +extern void write_traceline(const char *format, ...); + +// Python exception stuff, wware 060109 +extern char *py_exc_str; +extern void set_py_exc_str(const char *filename, + const int linenum, const char *format, ...); + +#define CHECKNAN(x) ASSERT(!isnan(x)) +#define CHECKNANR(x, y) ASSERTR(!isnan(x), y) +#define CHECKVEC(v) CHECKNAN(v.x); CHECKNAN(v.y); CHECKNAN(v.z) +#define CHECKVECR(v,r) CHECKNANR(v.x,r); CHECKNANR(v.y,r); CHECKNANR(v.z,r) + +#define ASSERT(c) BAIL(); \ + if (!(c)) { set_py_exc_str(__FILE__, __LINE__, \ + "assert failed: %s", #c); return; } +#define ASSERTR(c, x) BAILR(x); \ + if (!(c)) { set_py_exc_str(__FILE__, __LINE__, \ + "assert failed: %s", #c); return (x); } +#define NULLPTR(p) ASSERT((p) != NULL) +#define NULLPTRR(p,x) ASSERTR((p) != NULL, x) +#define EXCEPTION (py_exc_str != NULL) +#define BAIL() \ + if (EXCEPTION) { SAY("BAIL\n"); return; } +#define BAILR(x) \ + if (EXCEPTION) { SAY("BAILR\n"); return x; } + +#define RAISE(except) { set_py_exc_str(__FILE__, __LINE__, except); return; } +#define RAISER(except, retval) { set_py_exc_str(__FILE__, __LINE__, except); return (retval); } + +#endif + +/* + * Local Variables: + * c-basic-offset: 4 + * tab-width: 8 + * End: + */ diff --git a/sim/src/stretch.parms b/sim/src/stretch.parms new file mode 100755 index 000000000..83942f104 --- /dev/null +++ b/sim/src/stretch.parms @@ -0,0 +1,103 @@ +# Copyright (c) 2006 Nanorex, Inc. All rights reserved. + +# $Id$ + +Cl-Cl Ks= 274.70 R0= 2.0454 De= 0.3145 +Cl-H Ks= 502.46 R0= 1.2872 De= 0.7163 +Cl-F Ks= 437.46 R0= 1.6696 De= 0.3873 +Cl-C Ks= 352.51 R0= 1.7961 De= 0.6352 +Cl-N Ks= 344.38 R0= 1.7579 De= 0.3575 +### Cl-O -- no energy zero +Cl-O Ks= 365.06 R0= 1.7226 De= 0.4910 +Cl-B Ks= 376.69 R0= 1.7490 De= 0.8529 +Cl-S Ks= 247.76 R0= 2.0945 De= 0.3779 +Cl-P Ks= 249.95 R0= 2.0709 De= 0.4061 +H-H Ks= 599.55 R0= 0.7432 De= 0.7763 +H-F Ks= 930.16 R0= 0.9282 De= 0.9595 +H-C Ks= 540.39 R0= 1.0875 De= 0.8397 +H-N Ks= 716.72 R0= 1.0163 De= 0.7920 +H-O Ks= 838.19 R0= 0.9653 De= 0.8485 +H-B Ks= 385.25 R0= 1.1938 De= 0.7747 +H-S Ks= 415.75 R0= 1.3493 De= 0.6438 +H-P Ks= 363.28 R0= 1.4033 De= 0.5327 +F-F Ks= 599.55 R0= 1.4111 De= 0.2414 +F-C Ks= 573.94 R0= 1.4183 De= 0.8204 +F-N Ks= 524.14 R0= 1.4138 De= 0.4805 +F-O Ks= 524.82 R0= 1.4284 De= 0.3222 +F-B Ks= 674.89 R0= 1.3298 De= 1.1693 +### F-S -- no energy zero +F-S Ks= 414.90 R0= 1.6726 De= 0.5560 +F-P Ks= 464.48 R0= 1.6298 De= 0.6214 +C+C Ks=1730.61 R0= 1.2085 De= 1.8689 +C-C Ks= 437.82 R0= 1.5488 De= 0.7578 +C-N Ks= 497.22 R0= 1.5036 De= 0.6519 +C-O Ks= 538.53 R0= 1.4570 De= 0.6953 +C-B Ks= 374.86 R0= 1.5709 De= 0.7836 +C-S Ks= 310.12 R0= 1.8444 De= 0.5671 +C-P Ks= 299.57 R0= 1.8514 De= 0.4918 +N-N Ks= 506.79 R0= 1.4608 De= 0.4548 +N-O Ks= 533.13 R0= 1.4246 De= 0.4571 +N-B Ks= 592.16 R0= 1.4282 De= 0.9424 +N-S Ks= 342.60 R0= 1.7715 De= 0.4387 +N-P Ks= 352.72 R0= 1.7607 De= 0.3841 +O-O Ks= 495.90 R0= 1.4427 De= 0.3277 +O-B Ks= 596.39 R0= 1.3882 De= 0.9424 +### O-S -- no energy zero +O-S Ks= 349.25 R0= 1.7332 De= 0.4774 +O-P Ks= 439.50 R0= 1.6698 De= 0.5014 +B-B Ks= 255.71 R0= 1.7579 De= 0.6481 +B-S Ks= 280.54 R0= 1.8715 De= 0.6401 +B-P Ks= 321.32 R0= 1.8405 De= 0.6418 +S-S Ks= 215.90 R0= 2.1596 De= 0.3505 +S-P Ks= 242.40 R0= 2.1221 De= 0.3651 +P-P Ks= 207.05 R0= 2.2003 De= 0.2030 +Cl-Si Ks= 275.90 R0= 2.0824 De= 0.7021 +H-Si Ks= 290.41 R0= 1.4873 De= 0.6601 +F-Si Ks= 507.97 R0= 1.6332 De= 0.9925 +Si-Si Ks= 165.22 R0= 2.3609 De= 0.5095 +Si-C Ks= 272.66 R0= 1.8880 De= 0.6522 +Si-N Ks= 359.22 R0= 1.7806 De= 0.6579 +Si-O Ks= 434.29 R0= 1.6951 De= 0.7898 +Si-B Ks= 204.42 R0= 2.0340 De= 0.5867 +Si-S Ks= 231.15 R0= 2.1730 De= 0.5644 +Si-P Ks= 201.44 R0= 2.2526 De= 0.4227 +C+N Ks=2004.91 R0= 1.1580 De= 1.6892 +### O=O -- no energy zero +O=O Ks=1257.24 R0= 1.2159 De= 0.2724 +O=C Ks=1359.14 R0= 1.2118 De= 1.2578 +C=C Ks= 988.51 R0= 1.3344 De= 1.2708 +N+N Ks=2477.70 R0= 1.1054 De= 1.5347 +N=N Ks=1278.37 R0= 1.2315 De= 0.8346 +N=O Ks=1320.74 R0= 1.2056 De= 0.7920 +N=C Ks=1167.02 R0= 1.2701 De= 1.1232 + +Al-Br Ks=175.9190892 R0= 2.2781336 De= 0.709115347 +Al-Cl Ks=214.4881701 R0= 2.1199365 De= 0.795504990 +Al-F Ks=399.7831302 R0= 1.6758284 De= 1.076786784 +Al-H Ks=204.4469933 R0= 1.5868836 De= 0.605784512 +Al-Al Ks=80.76877352 R0= 2.5944099 De= 0.413513223 +Al-As Ks=174.6263023 R0= 2.3180295 De= 0.377967218 +Al-B Ks=147.2176206 R0= 2.1239956 De= 0.537679507 +Al-Ga Ks=91.73760049 R0= 2.5248600 De= 0.425077319 +Al-N Ks=365.8205385 R0= 1.7887079 De= 0.749805742 +Al-P Ks=191.2725667 R0= 2.2386585 De= 0.443040731 +Al-C Ks=214.1190768 R0= 1.9655508 De= 0.618140294 +Al-Ge Ks=100.2809470 R0= 2.4924882 De= 0.464126686 +Al-Si Ks=114.1044830 R0= 2.4685277 De= 0.470117242 +Al-O Ks=336.4211025 R0= 1.7185156 De= 0.870500818 +Al-S Ks=189.2307685 R0= 2.2027478 De= 0.642759248 +Al-Se Ks=159.9422154 R0= 2.3372936 De= 0.591520680 + +C@C Ks=806.0014 R0= 1.39859 De= 1.2 + +# graphite bond length is from experimental data, stiffness unknown +#C#C Ks=806.0014 R0= 1.415 De= 1.2 Quality=7 + +# this number is better for nanotubes, also experimental +C#C Ks=806.0014 R0= 1.421 De= 1.2 Quality=7 + +# These are copies of the H-C parameters, since we could get one of +# these by ignoring valence errors on the edges of a graphite sheet, for +# example. +H@C Ks= 540.39 R0= 1.0875 De= 0.8397 +H#C Ks= 540.39 R0= 1.0875 De= 0.8397 diff --git a/sim/src/stretch.py b/sim/src/stretch.py new file mode 100755 index 000000000..f6132fa15 --- /dev/null +++ b/sim/src/stretch.py @@ -0,0 +1,142 @@ +#! /usr/bin/python +# Copyright 2006-2007 Nanorex, Inc. See LICENSE file for details. + +from string import * +import re +import os +import sys +from math import sqrt + +findBondNamePattern = re.compile(r"^(\S+)\s+(.*)$") +bondNamePattern = re.compile(r"(.*)([-=+@#])(.*)$") +parameterPattern = re.compile(r"^([^=]+)\s*\=\s*(\S+)\s*(.*)") +idPattern = re.compile(r"(\$Id\:.*\$)") +commentPattern = re.compile("#") +leadingWhitespacePattern = re.compile(r"^\s*") +trailingWhitespacePattern = re.compile(r"\s*$") + + +elmnts=[("H", 1, 1.6737), + ("He", 2, 6.646), + ("Li", 3, 11.525), + ("Be", 4, 14.964), + ("B", 5, 17.949), + ("C", 6, 19.925), + ("N", 7, 23.257), + ("O", 8, 26.565), + ("F", 9, 31.545), + ("Ne", 10, 33.49), + + ("Na", 11, 38.1726), + ("Mg", 12, 40.356), + ("Al", 13, 44.7997), + ("Si", 14, 46.6245), + ("P", 15, 51.429), + ("S", 16, 53.233), + ("Cl", 17, 58.867), + ("Ar", 18, 66.33), + + ("K", 19, 64.9256), + ("Ca", 20, 66.5495), + ("Sc", 21, 74.646), + ("Ti", 22, 79.534), + ("V", 23, 84.584), + ("Cr", 24, 86.335), + ("Mn", 25, 91.22), + ("Fe", 26, 92.729), + ("Co", 27, 97.854), + ("Ni", 28, 97.483), + ("Cu", 29, 105.513), + ("Zn", 30, 108.541), + ("Ga", 31, 115.764), + ("Ge", 32, 120.53), + ("As", 33, 124.401), + ("Se", 34, 131.106), + ("Br", 35, 132.674), + ("Kr", 36, 134.429), + + ("Ax", 200, 0.000), + ("Ss", 201, 0.000), + ("Sp", 202, 0.000), + ] + + +sym2num={} + +for (sym, num, mass) in elmnts: + sym2num[sym] = num + +bontyp = {'-':'1', '=':'2', '+':'3','@':'a', '#':'g'} + +def printBond(a1, bond, a2, parameters): + ks = float(parameters['Ks']) + r0 = float(parameters['R0']) + de = float(parameters['De']) + quality = int(parameters['Quality']) + quadratic = int(parameters['Quadratic']) + + bt=sqrt(ks/(2.0*de))/10.0 + r0=r0*100.0 + + r=r0; + b = -1; + while b < 0: + a = (r * r - r0 * r0) + b = a * a / r - 4000000 * de * r0 / ks + r = r + 0.01 + if sym2num[a1] > sym2num[a2]: + e2 = a1 + e1 = a2 + else: + e1 = a1 + e2 = a2 + print ' addInitialBondStretch(%7.2f,%7.2f,%7.4f,%7.4f,%7.2f,'%(ks,r0,de,bt,r), + print '%5d, %3d, "%s-%s-%s");'%(quality, quadratic, e1, bontyp[bond], e2) + + +if __name__ == "__main__": + f=open(sys.argv[1]) + headerPrinted = False + for lin in f.readlines(): + # remove leading and trailing whitespace + lin = leadingWhitespacePattern.sub('', lin) + lin = trailingWhitespacePattern.sub('', lin) + + # find RCSID + m = idPattern.search(lin) + if m: + print '#define RCSID_BONDS_H "Generated from: ' + m.group(1) + '"' + continue + + # ignore comments and blank lines + if commentPattern.match(lin): continue + if len(lin) == 0: continue + + m = findBondNamePattern.match(lin) + if (m): + bond = m.group(1) + rest = m.group(2) + parameters = {} + parameters['bond'] = bond + # default values for particular parameters: + parameters['Quality'] = 9 + parameters['Quadratic'] = 0 + # extract parameters from rest of line into dictionary + m = parameterPattern.match(rest) + while m: + key = m.group(1) + value = m.group(2) + rest = m.group(3) + parameters[key] = value + m = parameterPattern.match(rest) + m = bondNamePattern.match(bond) + if m: + if not headerPrinted: + headerPrinted = True + print '// ks r0 de beta inflectionR qual quad bondName' + printBond(m.group(1), m.group(2), m.group(3), parameters) + else: + print >> sys.stderr, 'malformed bond: ' + bond + continue + else: + print >> sys.stderr, 'unrecognized line: "' + lin + '"' diff --git a/sim/src/structcompare.c b/sim/src/structcompare.c new file mode 100755 index 000000000..14e5e0440 --- /dev/null +++ b/sim/src/structcompare.c @@ -0,0 +1,330 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. + +#include "simulator.h" + +static char const rcsid[] = "$Id$"; + +#define COARSE_TOLERANCE 1e-3 +#define FINE_TOLERANCE 1e-8 + +static int atomCount; +static int allowScaling; // non-zero if a scale difference will be allowed + +static struct xyz *BasePositions; +static struct xyz *InitialPositions; + +// The "extra" field in this case is the array of coordinates of the +// atom positions. The position and orientation of the structure as a +// whole is stored in the coordinate array, and it is that position +// which is minimized. The set of atom positions is a temporary value +// used by the potential function. This is the routine that defines +// the meaning of the transformations described by the coordinates +// being minimized. +static void +structCompareSetExtra(struct configuration *p) +{ + int i; + struct xyz translate; + struct xyz t; + double rotation[9]; + double scale = 1.0; + + if (p->extra != NULL) { + return; + } + p->extra = allocate(sizeof(struct xyz) * atomCount); + + translate.x = p->coordinate[0]; + translate.y = p->coordinate[1]; + translate.z = p->coordinate[2]; + if (allowScaling) { + scale = p->coordinate[6]; + } + + matrixRotateXYZ(rotation, p->coordinate[3], p->coordinate[4], p->coordinate[5]); + + for (i=0; i<atomCount; i++) { + vadd2(t, InitialPositions[i], translate); + if (allowScaling) { + vmulc(t, scale); + } + matrixTransform(&((struct xyz *)p->extra)[i], rotation, &t); + } +} + +static void +structCompareFreeExtra(struct configuration *p) +{ + if (p->extra != NULL) { + free(p->extra); + p->extra = NULL; + } +} + +#ifndef isnormal +int +isnormal(double a) +{ + return (a > 0.0 || a <= 0.0); +} +#endif + +// Handle the final result for a structure compare. Pass in an upper +// limit for the standard deviation of atom positions between the two +// structures, and an upper limit for the maximum distance that any +// single atom has moved between the two structures, and an upper +// limit to the scale difference between the structures. Returns +// non-zero if the configuration exceeds any of these limits. +// +// May want to do a Chi-Squared test here, but I'm not sure of the +// applicability. Besides, generating Chi-Square values for large +// numbers of degrees of freedom is non-trivial. +static int +structCompareResult(struct configuration *p, + double deviationLimit, + double maxDeltaLimit, + double maxScale) +{ + int i; + int ret = 0; + struct xyz delta; + double squareSum = 0.0; + double deltaLenSquared; + double maxDeltaLenSquared = 0.0; + double maxDeltaLen; + double standardDeviation; + double scale = 1.0; + + structCompareSetExtra(p); + for (i=0; i<atomCount; i++) { + delta = vdif(BasePositions[i], ((struct xyz *)p->extra)[i]); + deltaLenSquared = vdot(delta, delta); + squareSum += deltaLenSquared; + if (maxDeltaLenSquared < deltaLenSquared) { + maxDeltaLenSquared = deltaLenSquared; + } + } + if (atomCount < 2) { + standardDeviation = 0.0; + } else { + standardDeviation = squareSum / (atomCount - 1); + } + maxDeltaLen = sqrt(maxDeltaLenSquared); + if (allowScaling) { + scale = fabs(p->coordinate[6]); + if (scale < 1.0) { + if (scale > 0.0) { + scale = 1.0 / scale; + } // shouldn't ever be zero! + } + } + + printf("at: translate (%f %f %f)\n rotate (%f %f %f)\n scale %f,\nstandard deviation = %e, max delta = %e\n", + p->coordinate[0], p->coordinate[1], p->coordinate[2], + p->coordinate[3], p->coordinate[4], p->coordinate[5], + scale, standardDeviation, maxDeltaLen); + + if (standardDeviation != 0.0 && !isnormal(standardDeviation)) { + printf("standard deviation not defined\n"); + ret = 1; + } + if (standardDeviation > deviationLimit) { + printf("standard deviation exeeded deviationLimit of %e\n", deviationLimit); + ret = 1; + } + if (maxDeltaLen != 0.0 && !isnormal(maxDeltaLen)) { + printf("maximum delta not defined\n"); + ret = 1; + } + if (maxDeltaLen > maxDeltaLimit) { + printf("maximum delta exceeded max delta limit of %e\n", maxDeltaLimit); + ret = 1; + } + if (scale != 0.0 && !isnormal(scale)) { + printf("scale not defined\n"); + ret = 1; + } + if (scale > maxScale) { + printf("scale exceeded limit of %e\n", maxScale); + ret = 1; + } + return ret; +} + +// This is the potential function which is being minimized. We're +// basically doing a least-squares fit for the coordinates of the +// structure as a whole. +static void +structComparePotential(struct configuration *p) +{ + int i; + struct xyz delta; + double squareSum = 0.0; + + structCompareSetExtra(p); + for (i=0; i<atomCount; i++) { + delta = vdif(BasePositions[i], ((struct xyz *)p->extra)[i]); + squareSum += vdot(delta, delta); + } + p->functionValue = squareSum / atomCount; + /* + printf("at: (%f %f %f) (%f %f %f) == %e\n", + p->coordinate[0], p->coordinate[1], p->coordinate[2], + p->coordinate[3], p->coordinate[4], p->coordinate[5], + p->functionValue); + */ +} + +// Before starting to rotate the structures, we translate both of them +// to their respective centers of mass. We're taking each atom as a +// unit mass, ignoring element type. +static void +translateToCenterOfMass(struct xyz *pos, int atomCount) +{ + struct xyz centerOfMass; + int i; + + vsetc(centerOfMass, 0.0); + for (i=0; i<atomCount; i++) { + vadd(centerOfMass, pos[i]); + } + vdivc(centerOfMass, -atomCount); + for (i=0; i<atomCount; i++) { + vadd(pos[i], centerOfMass); + } +} + +static int +structCompareTermination(struct functionDefinition *fd, + struct configuration *previous, + struct configuration *current) +{ + int ret = defaultTermination(fd, previous, current); + + if (ret && fd->tolerance == COARSE_TOLERANCE) { + fd->tolerance = FINE_TOLERANCE; + fd->algorithm = PolakRibiereConjugateGradient; + fd->linear_algorithm = LinearMinimize; + return 0; + } + return ret; +} + +static struct functionDefinition structCompareFunctions; + +// Compare two structures to see if they are the same. The atom +// positions must have been pre-loaded into BasePositions and +// InitialPositions. The structures are translated to their +// respective centers of mass. Then, the InitialPositions structure +// is rotated, translated, and optionally scaled (if maxScale > 1.0) +// to minimize the least-square distance between corresponding atoms +// in the two structures. At most iterLimit iterations of the +// minimize routine are performed. +// +// Prints the final coordinates reached. +// +// Pass in an upper limit for the standard deviation of atom positions +// between the two structures, and an upper limit for the maximum +// distance that any single atom has moved between the two +// structures, and an upper limit to the scale difference between the +// structures. Returns non-zero if the configuration exceeds any of +// these limits. +int +doStructureCompare(int numberOfAtoms, + struct xyz *basePositions, + struct xyz *initialPositions, + int iterLimit, + double deviationLimit, + double maxDeltaLimit, + double maxScale) +{ + int iter; + int ret; + struct configuration *initial = NULL; + struct configuration *final = NULL; + + atomCount = numberOfAtoms; + BasePositions = basePositions; + InitialPositions = initialPositions; + allowScaling = maxScale > 1.0; + + translateToCenterOfMass(BasePositions, atomCount); + translateToCenterOfMass(InitialPositions, atomCount); + + initializeFunctionDefinition(&structCompareFunctions, + structComparePotential, + allowScaling ? 7 : 6, + 0); + + structCompareFunctions.gradient_delta = 1e-8; + structCompareFunctions.freeExtra = structCompareFreeExtra; + structCompareFunctions.termination = structCompareTermination; + structCompareFunctions.tolerance = COARSE_TOLERANCE; + structCompareFunctions.algorithm = SteepestDescent; + structCompareFunctions.linear_algorithm = LinearBracket; + structCompareFunctions.initial_parameter_guess = 0.001; + + initial = makeConfiguration(&structCompareFunctions); + initial->coordinate[0] = 0.0; + initial->coordinate[1] = 0.0; + initial->coordinate[2] = 0.0; + initial->coordinate[3] = 0.0; + initial->coordinate[4] = 0.0; + initial->coordinate[5] = 0.0; + if (allowScaling) { + initial->coordinate[6] = 1.0; + } + + final = minimize(initial, &iter, iterLimit); + ret = structCompareResult(final, deviationLimit, maxDeltaLimit, maxScale); + SetConfiguration(&initial, NULL); + SetConfiguration(&final, NULL); + return ret; +} + + + +#ifdef TEST + +static void +testStructureCompare() +{ + int numberOfAtoms; + struct xyz *basePositions; + struct xyz *InitialPositions; + + numberOfAtoms = 3; + basePositions = (struct xyz *)allocate(sizeof(struct xyz) * numberOfAtoms); + InitialPositions = (struct xyz *)allocate(sizeof(struct xyz) * numberOfAtoms); + + basePositions[0].x = 30.0; + basePositions[0].y = 0.0; + basePositions[0].z = 0.0; + basePositions[1].x = - 30.0; + basePositions[1].y = 0.0; + basePositions[1].z = 10.0; + basePositions[2].x = - 30.0; + basePositions[2].y = 0.0; + basePositions[2].z = -10.0; + + initialPositions[0].x = 0.0; + initialPositions[0].y = 30.0; + initialPositions[0].z = 0.0; + initialPositions[1].x = 10.0; + initialPositions[1].y = - 30.0; + initialPositions[1].z = 0.0; + initialPositions[2].x = -10.0; + initialPositions[2].y = - 30.0; + initialPositions[2].z = 0.0; + + doStructureCompare(numberOfAtoms, basePositions, initialPositions, 400, 1e-2, 1e-1, 0.0); +} + +int +main(int argc, char **argv) +{ + testStructureCompare(); + exit(0); +} + +#endif diff --git a/sim/src/structcompare.h b/sim/src/structcompare.h new file mode 100755 index 000000000..40c3aa71e --- /dev/null +++ b/sim/src/structcompare.h @@ -0,0 +1,16 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#ifndef STRUCTCOMPARE_H_INCLUDED +#define STRUCTCOMPARE_H_INCLUDED + +#define RCSID_STRUCTCOMPARE_H "$Id$" + +extern int doStructureCompare(int numberOfAtoms, + struct xyz *basePositions, + struct xyz *initialPositions, + int iterLimit, + double deviationLimit, + double maxDeltaLimit, + double maxScale); + + +#endif diff --git a/sim/src/tests.py b/sim/src/tests.py new file mode 100755 index 000000000..4931d5643 --- /dev/null +++ b/sim/src/tests.py @@ -0,0 +1,2182 @@ +#!/usr/bin/python +# Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. + +"""Regression and QA test script for the simulator + +$Id$ + +Test cases will generally arrive as MMP files with QM-minimized atom +positions (or for QM dynamics simulations, sequences of atom +positions). These should be translated into *.xyzcmp files, which are +the references that the minimizer should be trying to approach. + +The positions from the QM data can be perturbed to provide starting +points for minimization tests. For instance, from the QM-minimized +file tests/rigid_organics/C3H6.mmp provided by Damian, we generate +test_C3H6.xyzcmp as described above, then generate test_C3H6.mmp by +perturbing those positions. Then we use test_C3H6.xyzcmp and +test_C3H6.mmp for testing. +""" + +__author__ = "Will" + +try: + import Numeric +except ImportError: + import numpy as Numeric +import math +import md5 +import os +import os.path +import random +import re +import shutil +import string +import sys +import time +import traceback +import types +import unittest + +if sys.platform == "win32": + simulatorCmd = "simulator.exe" +else: + simulatorCmd = "simulator" + +if __name__ == "__main__": + if not os.path.exists(simulatorCmd): + print "simulator needs rebuilding" + if not os.path.exists("sim.so"): + print "sim.so needs rebuilding" + +# Global flags and variables set from command lines +DEBUG = 0 +MD5_CHECKS = False +TIME_ONLY = False +TIME_LIMIT = 1.e9 +LENGTH_ANGLE_TEST, STRUCTCOMPARE_C_TEST = range(2) +STRUCTURE_COMPARISON_TYPE = LENGTH_ANGLE_TEST +GENERATE = False +KEEP_RESULTS = False +SHOW_TODO = False +VERBOSE_FAILURES = False +LOOSE_TOLERANCES = False +MEDIUM_TOLERANCES = False +TIGHT_TOLERANCES = False +TEST_DIR = None +LIST_EVERYTHING = False + +class Unimplemented(AssertionError): + pass + +def todo(str): + if SHOW_TODO: + raise Unimplemented(str) + +def readlines(filename): + return map(lambda x: x.rstrip(), + open(filename).readlines()) + +testTimes = { } +testsSkipped = 0 + +################################################################## + +# How much variation do we permit in bond lengths and bond +# angles before we think it's a problem? For now these are +# wild guesses, to be later scrutinized by smart people. + +# default values, overridden by loose, medium, and tight options +LENGTH_TOLERANCE = 0.138 # angstroms +ANGLE_TOLERANCE = 14.1 # degrees +#LENGTH_TOLERANCE = 0.05 # angstroms +#ANGLE_TOLERANCE = 5 # degrees + +class WrongNumberOfAtoms(AssertionError): + pass + +class PositionMismatch(AssertionError): + pass + +class LengthAngleMismatch(AssertionError): + pass + +def V(*v): + return Numeric.array(v, Numeric.Float) + +def vlen(v1): + return math.sqrt(Numeric.dot(v1, v1)) + +def angleBetween(vec1, vec2): + TEENY = 1.0e-10 + lensq1 = Numeric.dot(vec1, vec1) + if lensq1 < TEENY: + return 0.0 + lensq2 = Numeric.dot(vec2, vec2) + if lensq2 < TEENY: + return 0.0 + dprod = Numeric.dot(vec1 / lensq1**.5, vec2 / lensq2**.5) + if dprod >= 1.0: + return 0.0 + if dprod <= -1.0: + return 180.0 + return (180/math.pi) * math.acos(dprod) + +def measureLength(xyz, first, second): + """Returns the angle between two atoms (nuclei)""" + p0 = apply(V, xyz[first]) + p1 = apply(V, xyz[second]) + return vlen(p0 - p1) + +def measureAngle(xyz, first, second, third): + """Returns the angle between two atoms (nuclei)""" + p0 = apply(V, xyz[first]) + p1 = apply(V, xyz[second]) + p2 = apply(V, xyz[third]) + v01, v21 = p0 - p1, p2 - p1 + return angleBetween(v01, v21) + +_PeriodicTable = [ + "X", # our singlet has element number zero + "H", "He", + "Li", "Be", "B", "C", "N", "O", "F", "Ne", + "Na", "Mg", "Al", "Si", "P", "S", "Cl", "Ar", + "K", "Ca" #Sc,Ti,V,Cr,Mn,Fe.... + ] + +_MmpAtomPattern = re.compile("^atom (\d+) \((\d+)\) " + + "\((\-?\d+), (\-?\d+), (\-?\d+)\)") + +class Atom: + def __init__(self): + self.elem = 0 + self.x = self.y = self.z = 0.0 + self.bonds = [ ] + def clone(self): + "permit deep cloning of structure files" + a = Atom() + for key in self.__dict__.keys(): + setattr(a, key, getattr(self, key)) + return a + def __repr__(self): + element = _PeriodicTable[self.elem] + return "%s %f %f %f" % (element, self.x, self.y, self.z) + +class XyzFile: + """Python class to contain information from an XYZ file""" + def __init__(self): + self.atoms = [ ] + def clone(self): + other = XyzFile() + other.atoms = [ ] + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + lines = lines.split("\n") + numAtoms = string.atoi(lines[0].strip()) + lines = lines[2:] + for i in range(numAtoms): + a = Atom() + element, x, y, z = lines[i].split() + a.elem = _PeriodicTable.index(element) + a.x, a.y, a.z = map(string.atof, (x, y, z)) + self.atoms.append(a) + def readFromList(self, lst): + assert type(lst) == types.ListType + for atminfo in lst: + a = Atom() + element, x, y, z = atminfo + a.elem = _PeriodicTable.index(element) + a.x, a.y, a.z = map(string.atof, (x, y, z)) + self.atoms.append(a) + def write(self, title, outf=None): + if outf == None: + outf = sys.stdout + outf.write("%d\n%s\n" % (len(self.atoms), title)) + for atm in self.atoms: + element = _PeriodicTable[self.elem] + outf.write("%s %f %f %f\n" % + (element, self.x, self.y, self.z)) + +class MmpFile: + """This is meant to be a Python class representing a MMP file. It + is not intended to represent ALL the information in a MMP file, + although it might do that in some distant-future version.""" + class _AtomHolder: + """Atom holders are indices into the MmpFile.atoms list, + and that's done so that MmpFiles are easier to clone. + """ + def __init__(self, owner, match, rest): + a = Atom() + groups = match.groups() + a.elem = elem = string.atoi(groups[1]) + str = "atom %s" % groups[0] + str += " (%s)" % groups[1] + str += " (%d, %d, %d)" + str += rest + a._mmpstr = str + a.x = 0.001 * string.atoi(groups[2]) + a.y = 0.001 * string.atoi(groups[3]) + a.z = 0.001 * string.atoi(groups[4]) + self._owner = owner + self._index = len(owner.atoms) + owner.atoms.append(a) + def mmpBonds(self, line): + if hasattr(self, "_str") or not line.startswith("bond"): + return False + a = self._owner.atoms[self._index] + for b in line.split()[1:]: + a.bonds.append(string.atoi(b)) + return True + def __str__(self): + if hasattr(self, "_str"): return self._str + a = self._owner.atoms[self._index] + return a._mmpstr % (int(a.x * 1000), + int(a.y * 1000), + int(a.z * 1000)) + def __init__(self): + self.atoms = [ ] + self.lines = [ ] + def clone(self): + other = MmpFile() + other.lines = self.lines[:] + other.atoms = [ ] + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + lines = lines.split("\n") + i, n = 0, len(lines) + while i < n: + line = lines[i] + m = _MmpAtomPattern.match(line) + if m == None: + self.lines.append(line) + else: + rest = line[m.span()[1]:] # anything after position + atm = MmpFile._AtomHolder(self, m, rest) + self.lines.append(atm) + line = lines[i+1] + if line.startswith("info atom"): + self.lines.append(line) + i += 1 + elif atm.mmpBonds(line): + self.lines.append(line) + i += 1 + i += 1 + def write(self, outf=None): + if outf == None: + outf = sys.stdout + for ln in self.lines: + outf.write(str(ln) + "\n") + def convertToXyz(self): + import XyzFile + xyz = XyzFile.XyzFile() + for a in self.atoms: + xyz.atoms.append(a) + return xyz + def perturb(self): + """WARNING: Using this method will put some atoms in the + dangerous high-Morse-potential region. + """ + A = 0.5 # some small number of angstroms + A = A / (3 ** .5) # amount in one dimension + for i in range(len(self)): + x, y, z = self[i] + x += random.normalvariate(0.0, A) + y += random.normalvariate(0.0, A) + z += random.normalvariate(0.0, A) + self[i] = (x, y, z) + +def simplifiedMMP(mmp_in, mmp_out): + # translate from a complete MMP file to one the simulator can + # understand + groups = [ ] + lines = readlines(mmp_in) + outf = open(mmp_out, "w") + while True: + L = lines.pop(0) + if L.startswith("group "): + lines.insert(0, L) + break + outf.write(L + "\n") + # identify groups and put them into the groups list + gotFirstGoodGroup = False + while True: + nextGroup = [ ] + # we are either at the start of a group, or something that's + # not a group + L = lines.pop(0) + if L.startswith("end1"): + # throw this line away, and look for more groups + L = lines.pop(0) + if not L.startswith("group ("): + lines.insert(0, L) + break + goodGroup = not (L.startswith("group (View") or + L.startswith("group (Clipboard")) + if goodGroup and not gotFirstGoodGroup: + while True: + if L.endswith(" def"): + L = L[:-4] + " -" + outf.write(L + "\n") + L = lines.pop(0) + if L.startswith("egroup "): + outf.write(L + "\n") + break + gotFirstGoodGroup = True + else: + while True: + L = lines.pop(0) + if L.startswith("egroup "): + break + # whatever comes after the last group is still in 'lines' + for L in lines: + outf.write(L + "\n") + outf.close() + +class LengthAngleComparison: + def __init__(self, mmpFilename): + self.bondLengthTerms = bondLengthTerms = { } + self.bondAngleTerms = bondAngleTerms = { } + + def addBondLength(atm1, atm2): + if atm1 == atm2: + raise AssertionError("bond from atom to itself?") + if atm2 < atm1: + atm1, atm2 = atm2, atm1 + if bondLengthTerms.has_key(atm1): + if atm2 not in bondLengthTerms[atm1]: + bondLengthTerms[atm1].append(atm2) + else: + bondLengthTerms[atm1] = [ atm2 ] + + def getBonds(atm1): + lst = [ ] + if bondLengthTerms.has_key(atm1): + for x in bondLengthTerms[atm1]: + lst.append(x) + for key in bondLengthTerms.keys(): + if atm1 in bondLengthTerms[key]: + if key not in lst: + lst.append(key) + lst.sort() + return lst + + def addBondAngle(atm1, atm2, atm3): + if atm1 == atm3: + return + if atm3 < atm1: + atm1, atm3 = atm3, atm1 + value = (atm2, atm3) + if bondAngleTerms.has_key(atm1): + if value not in bondAngleTerms[atm1]: + bondAngleTerms[atm1].append(value) + else: + bondAngleTerms[atm1] = [ value ] + + self.mmp = mmp = MmpFile() + mmp.read(mmpFilename) + + # store all the bonds in bondLengthTerms + for i in range(len(mmp)): + a = mmp.atoms[i] + for b in a.bonds: + addBondLength(i, b - 1) + + # generate angles from chains of two bonds + for first in range(len(mmp)): + for second in getBonds(first): + for third in getBonds(second): + addBondAngle(first, second, third) + + self.numAtoms = len(mmp) + + class LengthMeasurement: + def __init__(self, first, second, mmp, xyz): + self.measure = length = measureLength(xyz, first, second) + self.atoms = (first, second) + # In MMP and PDB files, we count from 1, where Python list + # elements start indexing at zero. + e1 = _PeriodicTable[mmp.atoms[first].elem] + e2 = _PeriodicTable[mmp.atoms[second].elem] + self.reprstr = ("<Length %s%d %s%d %g>" + % (e1, first + 1, e2, second + 1, length)) + + def __repr__(self): + return self.reprstr + + def closeEnough(self, other): + if self.__class__ != other.__class__: + return 1e20 + if self.atoms != other.atoms: + return 1e20 + return abs(self.measure - other.measure) + + class AngleMeasurement(LengthMeasurement): + def __init__(self, first, second, third, mmp, xyz): + self.measure = angle = measureAngle(xyz, first, second, third) + self.atoms = (first, second, third) + # In MMP and PDB files, we count from 1, where Python list + # elements start indexing at zero. + e1 = _PeriodicTable[mmp.atoms[first].elem] + e2 = _PeriodicTable[mmp.atoms[second].elem] + e3 = _PeriodicTable[mmp.atoms[third].elem] + self.reprstr = ("<Angle %s%d %s%d %s%d %g>" + % (e1, first + 1, e2, second + 1, + e3, third + 1, angle)) + + def getLAfromXYZ(self, xyz): + if len(xyz) != self.numAtoms: + raise WrongNumberOfAtoms, \ + "%d, expected %d" % (len(xyz), self.numAtoms) + + lengthList = [ ] + for first in self.bondLengthTerms.keys(): + for second in self.bondLengthTerms[first]: + lengthList.append(self.LengthMeasurement(first, second, + self.mmp, xyz)) + angleList = [ ] + for first in self.bondAngleTerms.keys(): + for second, third in self.bondAngleTerms[first]: + angleList.append(self.AngleMeasurement(first, second, third, + self.mmp, xyz)) + + return (lengthList, angleList) + + def compare(self, questionableXyz, knownGoodXyzFile, + lengthTolerance, angleTolerance): + todo("handle multiple-frame xyz files from animations") + xyz = XyzFile() + if type(questionableXyz) == types.StringType: + xyz.read(questionableXyz) + elif type(questionableXyz) == types.ListType: + xyz.readFromList(questionableXyz) + else: + raise Exception, type(questionableXyz) + L1, A1 = self.getLAfromXYZ(xyz) + xyz = XyzFile() + xyz.read(knownGoodXyzFile) + L2, A2 = self.getLAfromXYZ(xyz) + mismatches="" + maxangle=0 + maxlen=0 + for len1, len2 in map(None, L1, L2): + diff = len1.closeEnough(len2) + if diff > lengthTolerance: + mismatches += "got %s\nexpected %s diff %f\n" %(repr(len1), repr(len2), diff) + if diff > maxlen: + maxlen = diff + for ang1, ang2 in map(None, A1, A2): + diff = ang1.closeEnough(ang2) + if diff > angleTolerance: + mismatches += "got %s\nexpected %s diff %f\n" %(repr(ang1), repr(ang2), diff) + if diff > maxangle: + maxangle = diff + + if mismatches: + if maxlen > 0: + mismatches += "max length difference: %f > %f\n" %(maxlen, lengthTolerance) + if maxangle > 0: + mismatches += "max angle difference: %f > %f\n" %(maxangle, angleTolerance) + raise LengthAngleMismatch("\n" + mismatches) + +################################################################## + +class EarlyTermination(Exception): + pass + +def rmtreeSafe(dir): + # platform-independent 'rm -rf' + try: shutil.rmtree(dir) + except OSError, e: pass + +lastRecordedTime = testStartTime = time.time() + +class TimedTest: + + def start(self): + global testsSkipped + if (not TIME_ONLY and not GENERATE and + time.time() > testStartTime + TIME_LIMIT): + testsSkipped += 1 + raise EarlyTermination + + def finish(self): + if TIME_ONLY: + global testTimes, lastRecordedTime + previous = lastRecordedTime + lastRecordedTime = t = time.time() + testTimes[self.methodname] = t - previous + raise EarlyTermination + +class SandboxTest(TimedTest): + DEFAULT_INPUTS = ( ) # in addition to xxx.mmp + DEFAULT_SIMOPTS = ( ) + DEFAULT_OUTPUTS = ( ) # in addition to stdout, stderr + + def md5sum(self, filename): + hash = md5.new() + inf = open(filename) + for line in open(filename).readlines(): + try: + line.index("Date and Time") + pass + except ValueError: + hash.update(line) + inf.close() + def hex2(ch): + return "%02X" % ord(ch) + return "".join(map(hex2, hash.digest())) + + class MD5SumMismatch(AssertionError): + pass + + def __init__(self, dir=None, test=None, + simopts=None, inputs=None, outputs=None, + expectedExitStatus=0): + + global Tests + + self.dirname = dir # rigid_organics + self.shortname = test # C2H4 + self.testname = testname = "test_" + test # test_C2H4 + # midname = tests/rigid_organics/test_C2H4 + self.midname = midname = os.path.join("tests", dir, testname) + # methodname = test_rigid_organics_C2H4 + self.methodname = methodname = "_".join(["test", dir, test]) + # basename = .../sim/src/tests/rigid_organics/test_C2H4 + self.basename = os.path.join(os.getcwd(), midname) + self.expectedExitStatus = expectedExitStatus + + try: + TimedTest.start(self) + except EarlyTermination: + return + + if inputs == None: + inputs = self.DEFAULT_INPUTS + if simopts == None: + simopts = self.DEFAULT_SIMOPTS + if outputs == None: + outputs = self.DEFAULT_OUTPUTS + self.inputs = inputs + self.simopts = simopts + self.outputs = outputs + if LIST_EVERYTHING: + print + print dir, testname + self.runInSandbox() + + def runInSandbox(self): + # Run the simulator in sim/src/tmp. + here = os.getcwd() + tmpdir = "tmp_" + self.dirname + "_" + self.shortname + try: + rmtreeSafe(tmpdir) + os.mkdir(tmpdir) + # Copy the input files into the tmp directory. + shutil.copy(simulatorCmd, tmpdir) + # We always have a .mmp file + shutil.copy(self.basename + ".mmp", tmpdir) + if not GENERATE: + for ext in self.inputs: + shutil.copy(self.basename + "." + ext, tmpdir) + # Go into the tmp directory and run the simulator. + os.chdir(tmpdir) + exitStatus = self.runCommand(self.simopts) + if self.expectedExitStatus != None: + if exitStatus != self.expectedExitStatus: + inf = open("stderr") + sys.stderr.write(inf.read()) + inf.close() + str = ("simulator exit status was %d, expected %d" % + (exitStatus, self.expectedExitStatus)) + raise AssertionError(str) + if GENERATE: + self.generateOutputFiles() + else: + if DEBUG > 0: + print os.listdir(".") + if DEBUG > 2: + print ("******** " + self.basename + " ********") + for f in os.listdir("."): + if f != simulatorCmd: + # assume everything else is a text file + print "---- " + f + " ----" + sys.stdout.write(open(f).read()) + try: + self.finish() + except EarlyTermination: + return + self.checkOutputFiles() + return + finally: + os.chdir(here) + if not KEEP_RESULTS: + rmtreeSafe(tmpdir) + + def runCommandQt(self, opts): + import qt + def substFOO(str): + if str.startswith("FOO"): + return self.testname + str[3:] + return str + cmdline = [ "./" + simulatorCmd ] + map(substFOO, opts) + if DEBUG > 0: + print self.basename + print cmdline + simProcess = qt.QProcess() + stdout = open("stdout", "a") + stderr = open("stderr", "a") + def blabout(): + r = str(simProcess.readStdout()) + if DEBUG > 1: + print "STDOUT", r + stdout.write(str(simProcess.readStdout())) + def blaberr(): + r = str(simProcess.readStderr()) + if DEBUG > 1: + print "STDERR", r + stderr.write(str(simProcess.readStderr())) + qt.QObject.connect(simProcess, qt.SIGNAL("readyReadStdout()"), blabout) + qt.QObject.connect(simProcess, qt.SIGNAL("readyReadStderr()"), blaberr) + args = qt.QStringList() + for arg in cmdline: + args.append(arg) + simProcess.setArguments(args) + simProcess.start() + while simProcess.isRunning(): + time.sleep(0.1) + stdout.close() + stderr.close() + return simProcess.exitStatus() + + def runCommandSubprocess(self, opts): + import subprocess + def substFOO(str): + if str.startswith("FOO"): + return self.testname + str[3:] + return str + cmdline = [ "./" + simulatorCmd ] + map(substFOO, opts) + stdout = open("stdout", "w") + stderr = open("stderr", "w") + p = subprocess.Popen(cmdline) + r = p.wait() + stdout.close() + stderr.close() + return r + + def runCommand(self, opts): + usingQt = True + try: + import qt + except ImportError: + usingQt = False + if usingQt: + return self.runCommandQt(opts) + else: + return self.runCommandSubprocess(opts) + + def checkOutputFiles(self): + if MD5_CHECKS: + self.checkMd5Sums() + else: + if "xyzcmp" in self.inputs: + if STRUCTURE_COMPARISON_TYPE == STRUCTCOMPARE_C_TEST: + if self.runCommand(("--base-file", "FOO.xyzcmp", + "FOO.xyz")) != 0: + raise AssertionError("bad structure match") + else: + self.structureComparisonBondlengthsBondangles() + todo("anything else we should be checking here?") + + # Generate MD5 checksums for all output files, store in + # tests/rigid_organics/test_C4H8.md5sums (for example) + def generateOutputFiles(self): + outf = open(self.basename + ".md5sums", "w") + outf.write("stdout %s\n" % self.md5sum("stdout")) + outf.write("stderr %s\n" % self.md5sum("stderr")) + for ext in self.outputs: + fname = self.testname + "." + ext + outf.write("%s %s\n" % (fname, self.md5sum(fname))) + outf.close() + + def checkMd5Sums(self): + inf = open(self.basename + ".md5sums") + for line in inf.readlines(): + fname, sum = line.split() + realsum = self.md5sum(fname) + if realsum != sum: + raise self.MD5SumMismatch(self.midname + " " + fname) + inf.close() + + def structureComparisonBondlengthsBondangles(self, lengthtol=None, angletol=None): + if lengthtol == None: lengthtol = LENGTH_TOLERANCE + if angletol == None: angletol = ANGLE_TOLERANCE + todo("handle multiple-frame xyz files from animations") + lac = LengthAngleComparison(self.testname + ".mmp") + lac.compare(self.testname + ".xyz", self.testname + ".xyzcmp", + lengthtol, angletol) + +######################################### + +class TraceFile: + def __init__(self, filename): + f = open(filename) + lines = [ ] + for L in f.readlines(): + lines.append(L.rstrip()) + f.close() + description = "" + Ncolumns = re.compile('^(\d+) columns') + i = 0 + self.columnNames = [ ] + while True: + if lines[i][:1] != '#': + break + line = lines[i][2:] + description += line + '\n' + if line.startswith('uname -a: '): + self.platform = line[10:] + elif line.startswith('CFLAGS: '): + self.cflags = line[8:] + elif line.startswith('LDFLAGS: '): + self.ldflags = line[9:] + elif line.startswith('Command Line: '): + self.commandLine = line[14:] + elif line.startswith('Date and Time: '): + self.dateAndTime = line[15:] + elif line.startswith('Input File: '): + self.inputFile = line[12:] + elif line.startswith('Output File: '): + self.outputFile = line[13:] + elif line.startswith('Trace File: '): + self.traceFile = line[12:] + elif line.startswith('Number of Frames: '): + self.numFrames = string.atoi(line[18:]) + elif line.startswith('Steps per Frame: '): + self.stepsPerFrame = string.atoi(line[17:]) + elif line.startswith('Temperature: '): + self.temperature = string.atof(line[13:]) + elif line.startswith('Number of Atoms: '): + self.numAtoms = string.atoi(line[17:]) + else: + m = Ncolumns.search(line) + if m != None: + N = string.atoi(m.group(1)) + for j in range(N): + self.columnNames.append(lines[i][2:]) + i += 1 + while i < len(lines) and lines[i][:1] == '#': + i += 1 + break + i += 1 + self.data = data = [ ] + while i < len(lines) and lines[i][:1] != '#': + data.append(map(string.atof, + lines[i].split())) + i += 1 + + def fuzzyMatch(self, other): + def substr(haystack, needle): + try: haystack.index(needle) + except ValueError: return False + return True + assert self.columnNames == other.columnNames, "different column names" + assert len(self.data) == len(other.data), "wrong number of data lines" + tests = [ ] + for name in self.columnNames: + # here we can customize tests by the types of jigs + if name.startswith('Thermo'): + # ignore thermometers, they are way too noisy + def alwaysPass(x, y): + assert x == x, "not-a-number values in reference results" + assert y == y, "not-a-number values in test results" + tests.append(alwaysPass) + elif name.startswith('Rotary Motor') and substr(name, "speed"): + # rotary motor speeds seem to get a lot of variation + def checkSpeed(x, y, name=name): + assert x == x, "not-a-number values in reference results" + assert y == y, "not-a-number values in test results" + xdif = abs(x - y) + assert xdif < 10.0 or (xdif / abs(x)) < 0.2, \ + ("%s: expected %g, got %g" % (name, x, y)) + tests.append(checkSpeed) + elif name.startswith('Angle'): + # angles seem to get a lot of variation + def checkAngle(x, y, name=name): + assert x == x, "not-a-number values in reference results" + assert y == y, "not-a-number values in test results" + xdif = abs(x - y) + assert xdif < 10.0 or (xdif / abs(x)) < 0.2, \ + ("%s: expected %g, got %g" % (name, x, y)) + tests.append(checkAngle) + elif name.startswith('Dihedral'): + # dihedral angles vary a lot, and they flip sign if they + # pass through 180 or -180 + def checkDihedral(x, y, name=name): + assert x == x, "not-a-number values in reference results" + assert y == y, "not-a-number values in test results" + # handle sign flips when angles jump -180 <-> +180 + xdif = min(abs(x - y), + min(abs(x + 360 - y), abs(x - y - 360))) + assert xdif < 50.0 or (xdif / abs(x)) < 0.4, \ + ("%s: expected %g, got %g" % (name, x, y)) + tests.append(checkDihedral) + else: + def check(x, y, name=name): + assert x == x, "not-a-number values in reference results" + assert y == y, "not-a-number values in test results" + xdif = abs(x - y) + assert xdif < 1.0 or (xdif / abs(x)) < 0.1, \ + ("%s: expected %g, got %g" % (name, x, y)) + tests.append(check) + n = len(self.columnNames) + for d1, d2 in map(None, self.data, other.data): + for i in range(n): + tests[i](d1[i], d2[i]) + +######################################### + +class NullTest(SandboxTest): + def runInSandbox(self): + global testTimes + testTimes[self.methodname] = 0.0 + +class FailureExpectedTest(NullTest): + """By default, the input for this kind of test is a MMP file, + the command line is given explicitly in the test methods, and the + outputs are stdout, stderr, and the exit value. We expect a failure + here but I'm not sure exactly what kind of failure. + + Until I know exactly what kind of failure Eric wants here, + just make it pass all the time. + """ + DEFAULT_SIMOPTS = None # force an explicit choice + +class MinimizeTest(SandboxTest): + """Perform a minimization, starting with a MMP file. The results + should be stdout, stderr, exit value, and an XYZ file. All these + are checked for correctness. + """ + DEFAULT_SIMOPTS = ("--minimize", "--dump-as-text", "--trace-file", "FOO.trc", "FOO.mmp") + DEFAULT_OUTPUTS = ("xyz",) + +class StructureTest(MinimizeTest): + """Perform a minimization, starting with a MMP file. The results + should be stdout, stderr, exit value, a TRC file, and an XYZ file. + All these are checked for correctness. The XYZ file can be + compared to an XYZCMP file for closeness of fit. + """ + DEFAULT_INPUTS = ("xyzcmp",) + DEFAULT_SIMOPTS = ("--minimize", "--dump-as-text", "--trace-file", "FOO.trc", "FOO.mmp") + DEFAULT_OUTPUTS = ( ) + +class DynamicsTest(MinimizeTest): + """Make a dynamics movie, starting with a MMP file. The results + should be stdout, stderr, exit value, a TRC file, and an XYZ file + with multiple frames. All these are checked for correctness. + """ + DEFAULT_INPUTS = ( ) + DEFAULT_SIMOPTS = ("--dump-as-text", "--trace-file", "FOO.trc", "FOO.mmp") + DEFAULT_OUTPUTS = ("trc", "xyz") + +class PyrexTest(TimedTest): + + def __init__(self, methodname, base=None): + self.methodname = methodname + self.base = base + try: + self.start() + except EarlyTermination: + return + self.run() + try: + self.finish() + except EarlyTermination: + pass + + def run(self): + import sim + lac = LengthAngleComparison(self.base + ".mmp") + s = sim.Minimize(self.base + ".mmp") + s.Temperature = 300 + s.go() + lac.compare(self.base + ".xyz", self.base + ".xyzcmp", + LENGTH_TOLERANCE, ANGLE_TOLERANCE) + + +class JigTest(SandboxTest): + + DEFAULT_INPUTS = ("trc", "xyzcmp") + DEFAULT_SIMOPTS = ("-i100", "-f1", "--dump-as-text", "--trace-file", "FOO.trc", "FOO.mmp") + DEFAULT_OUTPUTS = ("trc", "xyz") + + def generateOutputFiles(self): + shutil.copy(self.testname + ".trc", self.basename + ".trc") + shutil.copy(self.testname + ".xyz", self.basename + ".xyzcmp") + + def runInSandbox(self): + if GENERATE: + # If the simplified MMP doesn't already exist, generate it now + mmpfile = self.midname + ".mmp" + if not os.path.exists(mmpfile): + mmp_orig = os.path.join("tests", self.dirname, self.shortname + ".mmp") + simplifiedMMP(mmp_orig, mmpfile) + SandboxTest.runInSandbox(self) + + def checkOutputFiles(self): + # Given a trace file with several frames, and columns for various + # jigs, make sure the jigs all have roughly the same numbers as they + # had during a known-good run. + def lastLineOfReadings(f): + lines = readlines(f) + n = None + for i in range(len(lines)): + if lines[i].startswith("# Done:"): + n = i - 1 + break + if n == None: return None + return map(string.atof, lines[n].split()) + # add the following line to regenerate trace files when they fail to match? + # shutil.copy(self.testname + ".trc", self.basename + ".trcnew") + goodT = TraceFile(self.basename + ".trc") + iffyT = TraceFile(self.testname + ".trc") + goodT.fuzzyMatch(iffyT) + # loosen up angles a little extra + self.structureComparisonBondlengthsBondangles(LENGTH_TOLERANCE, + 1.5 * ANGLE_TOLERANCE) + +#################################################### + +# Re-generate this with "python tests.py time_only" +RANKED_BY_RUNTIME = [ + 'test_dynamics_0001', + 'test_minimize_0002', + 'test_minimize_0003', + 'test_minimize_0004', + 'test_minimize_0006', + 'test_minimize_0007', + 'test_badCallback3', + 'test_framecallback', + 'test_badCallback1', + 'test_pyrex_minH2', + 'test_badCallback2', + 'test_minimize_h2', + 'test_temperature_tests_003_thermostat_test_3', + 'test_singlebond_stretch_H_SH', + 'test_singlebond_stretch_F_NH2', + 'test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_7', + 'test_singlebond_stretch_H_H', + 'test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_6', + 'test_rigid_organics_CH4', + 'test_reordering_jigs_or_chunks_01_thermo_anchor_reordering_1', + 'test_singlebond_stretch_Cl_F', + 'test_reordering_jigs_or_chunks_03_thermo_anchor_reordering', + 'test_enabled_disabled_jigs_003_one_thermometer_enabled_other_disabled', + 'test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_8', + 'test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_5', + 'test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_2', + 'test_singlebond_stretch_H_Cl', + 'test_temperature_tests_003_thermostat_test_5', + 'test_singlebond_stretch_Cl_OH', + 'test_singlebond_stretch_H_NH2', + 'test_singlebond_stretch_F_SH', + 'test_singlebond_stretch_F_PH2', + 'test_minimize_0013', + 'test_singlebond_stretch_H_PH2', + 'test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_1', + 'test_motors_009_linearmotor_Methane_Molecule', + 'test_singlebond_stretch_Cl_CH3', + 'test_singlebond_stretch_HS_OH', + 'test_enabled_disabled_jigs_001_disabled_anchors', + 'test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_3', + 'test_temperature_tests_003_thermostat_test_4', + 'test_singlebond_stretch_Cl_PH2', + 'test_reordering_jigs_or_chunks_01_thermo_anchor_reordering_2', + 'test_temperature_tests_003_thermostat_test_2', + 'test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_4', + 'test_reordering_jigs_or_chunks_01_thermo_anchor_reordering_5', + 'test_singlebond_stretch_Cl_NH2', + 'test_singlebond_stretch_H_CH3', + 'test_singlebond_stretch_F_SiH3', + 'test_singlebond_stretch_Cl_AlH2', + 'test_enabled_disabled_jigs_004_one_thermostat_enabled_other_disabled', + 'test_singlebond_stretch_Cl_SH', + 'test_reordering_jigs_or_chunks_01_thermo_anchor_reordering_4', + 'test_temperature_tests_003_thermostat_test_1', + 'test_singlebond_stretch_H_SiH3', + 'test_singlebond_stretch_HS_NH2', + 'test_singlebond_stretch_H_F', + 'test_singlebond_stretch_HS_SH', + 'test_singlebond_stretch_H_OH', + 'test_floppy_organics_CH4', + 'test_singlebond_stretch_F_CH3', + 'test_singlebond_stretch_F_OH', + 'test_reordering_jigs_or_chunks_01_thermo_anchor_reordering_3', + 'test_singlebond_stretch_F_AlH2', + 'test_singlebond_stretch_Cl_Cl', + 'test_singlebond_stretch_HO_AlH2', + 'test_singlebond_stretch_F_F', + 'test_singlebond_stretch_Cl_SiH3', + 'test_singlebond_stretch_H2N_PH2', + 'test_singlebond_stretch_H3C_CH3', + 'test_temperature_tests_003_thermostat_test', + 'test_singlebond_stretch_HS_PH2', + 'test_singlebond_stretch_H2P_CH3', + 'test_singlebond_stretch_H2P_PH2', + 'test_singlebond_stretch_H2P_AlH2', + 'test_temperature_tests_002_two_methanes_10A_apart_vdw_6', + 'test_singlebond_stretch_H2Al_SiH3', + 'test_singlebond_stretch_HS_AlH2', + 'test_singlebond_stretch_HS_CH3', + 'test_singlebond_stretch_F_BH2', + 'test_singlebond_stretch_HO_PH2', + 'test_singlebond_stretch_H3C_SiH3', + 'test_singlebond_stretch_H_BH2', + 'test_singlebond_stretch_H2P_SiH3', + 'test_singlebond_stretch_H3Si_SiH3', + 'test_singlebond_stretch_H_AlH2', + 'test_singlebond_stretch_HO_SiH3', + 'test_singlebond_stretch_Cl_BH2', + 'test_singlebond_stretch_H2N_AlH2', + 'test_motors_014_rotarymotor_negative_torque_and_negative_speed', + 'test_motors_013_rotarymotor_0_torque_and_positive_speed', + 'test_singlebond_stretch_H2Al_AlH2', + 'test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_5', + 'test_enabled_disabled_jigs_002_one_anchor_enabled_other_disabled', + 'test_motors_018_rotarymotor_positive_torque_and_0_speed', + 'test_singlebond_stretch_H2B_BH2', + 'test_enabled_disabled_jigs_005_disabled_measure_distance_jig', + 'test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_4', + 'test_enabled_disabled_jigs_007_one_linearmotor_enabled_and_other_disabled', + 'test_motors_025_two_linearmotors_applying_equal_forces_normal_to_each_other', + 'test_motors_028_bug1306_test2', + 'test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_2', + 'test_heteroatom_organics_C3H6O', + 'test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_6', + 'test_motors_019_rotarymotor_medium_torque_and_speed', + 'test_motors_011_rotarymotor_0_torque_and_0_speed', + 'test_temperature_tests_001_two_methanes_9A_apart_vdw_5', + 'test_motors_015_rotarymotor_negative_torque_and_positive_speed', + 'test_enabled_disabled_jigs_006_one_rotarymotor_enabled_and_other_disabled', + 'test_motors_012_rotarymotor_0_torque_and_negative_speed', + 'test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_1', + 'test_motors_and_anchors_005_rotorymotor_against_anchor_3', + 'test_singlebond_stretch_H2N_SiH3', + 'test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_7', + 'test_singlebond_stretch_H2B_SiH3', + 'test_heteroatom_organics_C3H6NH', + 'test_singlebond_stretch_H2B_CH3', + 'test_singlebond_stretch_HO_CH3', + 'test_motors_020_rotarymotor_high_torque_and_speed', + 'test_motors_016_rotarymotor_negative_torque_and_0_speed', + 'test_singlebond_stretch_H2B_AlH2', + 'test_motors_017_rotarymotor_positive_torque_and_negative_speed', + 'test_rigid_organics_C3H6', + 'test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_8', + 'test_minimize_0010', + 'test_heteroatom_organics_CH3OH', + 'test_heteroatom_organics_C3H6S', + 'test_motors_026_two_linearmotors_applying_equal_and_opposite_forces', + 'test_floppy_organics_C2H6', + 'test_singlebond_stretch_H2Al_CH3', + 'test_heteroatom_organics_C3H6BH', + 'test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_4', + 'test_heteroatom_organics_C3H6PH', + 'test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_7', + 'test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_8', + 'test_heteroatom_organics_CH3AlH2', + 'test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_4', + 'test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_3', + 'test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_2', + 'test_callWrongSimulatorObject', + 'test_motors_030_rotarymotor_and_linear_motor_attached_to_same_atoms', + 'test_floppy_organics_C4H8', + 'test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_6', + 'test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_1', + 'test_singlebond_stretch_HO_NH2', + 'test_heteroatom_organics_CH3BH2', + 'test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_6', + 'test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_2', + 'test_motors_003_linearmotor_0_force_and_positive_stiffness', + 'test_rigid_organics_C8H8', + 'test_motors_004_linearmotor_negative_force_and_negative_stiffness', + 'test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_3', + 'test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_8', + 'test_motors_006_linearmotor_negative_force_and_0_stiffness', + 'test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_1', + 'test_singlebond_stretch_H2B_PH2', + 'test_motors_007_linearmotor_positive_force_and_0_stiffness', + 'test_frameAndTraceCallback', + 'test_minimize_0009', + 'test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_3', + 'test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_7', + 'test_motors_001_linearmotor_0_force_and_0_stiffness', + 'test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_5', + 'test_heteroatom_organics_C3H6SiH2', + 'test_heteroatom_organics_CH3OCH3', + 'test_motors_021_rotarymotor_dyno_jig_test_to_same_chunk', + 'test_rigid_organics_C4H8', + 'test_singlebond_stretch_HO_OH', + 'test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_5', + 'test_motors_023_rotarymotor_two_planet_gears', + 'test_motors_002_linearmotor_0_force_and_negative_stiffness', + 'test_motors_and_anchors_003_rotorymotor_against_anchor_1', + 'test_floppy_organics_C6H12b', + 'test_jigs_to_several_atoms_003_linearmotor_to_50_atoms', + 'test_heteroatom_organics_ADAMframe_O_Cs', + 'test_amino_acids_tyr_l_aminoacid', + 'test_heteroatom_organics_ADAMframe_S_Cs', + 'test_heteroatom_organics_ADAMframe_PH_Cs', + 'test_heteroatom_organics_ADAM_Cl_c3v', + 'test_rigid_organics_C10H12', + 'test_motors_and_anchors_004_rotorymotor_against_anchor_2', + 'test_floppy_organics_C4H10c', + 'test_rigid_organics_C10H14', + 'test_heteroatom_organics_C5H10PH', + 'test_heteroatom_organics_CH3SH', + 'test_motors_024_linearmotor_two_dodecahedranes', + 'test_heteroatom_organics_CH3AlHCH3', + 'test_heteroatom_organics_B_ADAM_C3v', + 'test_heteroatom_organics_C5H10O', + 'test_motors_and_anchors_002_linearmotor_pulling_against_anchor_2', + 'test_heteroatom_organics_ADAMframe_SiH2_c2v', + 'test_motors_027_two_rotarymotors_applying_equal_and_opposite_torque', + 'test_heteroatom_organics_CH3NH2', + 'test_heteroatom_organics_C5H10S', + 'test_motors_and_anchors_001_linearmotor_pulling_against_anchor_1', + 'test_floppy_organics_C6H12a', + 'test_rigid_organics_C2H6', + 'test_heteroatom_organics_ADAMframe_BH_Cs', + 'test_heteroatom_organics_SiH_ADAM_C3v', + 'test_rigid_organics_C3H8', + 'test_heteroatom_organics_ADAM_SH_Cs', + 'test_dpbFileShouldBeBinary', + 'test_pyrex_dynamics', + 'test_heteroatom_organics_ADAMframe_NH_Cs', + 'test_motors_008_linearmotor_positive_force_and_positive_stiffness', + 'test_traceCallbackWithMotor', + 'test_heteroatom_organics_ADAM_F_c3v', + 'test_heteroatom_organics_C4H8S', + 'test_singlebond_stretch_H2N_NH2', + 'test_heteroatom_organics_CH3PHCH3', + 'test_heteroatom_organics_P_ADAM_C3v', + 'test_singlebond_stretch_HO_BH2', + 'test_heteroatom_organics_C4H8AlH', + 'test_heteroatom_organics_C5H10NH', + 'test_jigs_to_several_atoms_006_anchors_to_100_atoms', + 'test_motors_005_linearmotor_negative_force_and_positive_stiffness', + 'test_heteroatom_organics_Al_ADAM_C3v', + 'test_dpbFileShouldBeBinaryAfterMinimize', + 'test_heteroatom_organics_ADAMframe_AlH_Cs', + 'test_minimize_0012', + 'test_jigs_to_several_atoms_004_linearmotor_to_100_atoms', + 'test_jigs_to_several_atoms_005_anchors_to_50_atoms', + 'test_floppy_organics_C7H14c', + 'test_singlebond_stretch_H2N_CH3', + 'test_jigs_to_several_atoms_001_rotarymotor_to_50_atoms', + 'test_heteroatom_organics_C_CH3_3_SiH3', + 'test_heteroatom_organics_C3H6AlH', + 'test_motors_010_linearmotor_box_of_helium', + 'test_heteroatom_organics_CH3PH2', + 'test_pyrex_minimize0001', + 'test_heteroatom_organics_N_ADAM_C3v', + 'test_motors_029_bug_1331', + 'test_rigid_organics_C14H20', + 'test_floppy_organics_C4H10a', + 'test_heteroatom_organics_C4H8NH', + 'test_floppy_organics_C3H8', + 'test_heteroatom_organics_C4H8BH', + 'test_rigid_organics_C6H10', + 'test_minimize_0011', + 'test_minimize_0005', + 'test_singlebond_stretch_HS_SiH3', + 'test_heteroatom_organics_CH3SiH2CH3', + 'test_floppy_organics_C5H12b', + 'test_heteroatom_organics_C_CH3_3_SH', + 'test_heteroatom_organics_C_CH3_3_OH', + 'test_minimize_0001', + 'test_heteroatom_organics_C5H10SiH2', + 'test_heteroatom_organics_C4H8SiH2', + 'test_singlebond_stretch_HS_BH2', + 'test_heteroatom_organics_ADAM_BH2', + 'test_heteroatom_organics_C5H10AlH', + 'test_heteroatom_organics_C_CH3_3_BH2', + 'test_heteroatom_organics_CH3SiH3', + 'test_heteroatom_organics_CH3NHCH3', + 'test_heteroatom_organics_ADAM_OH_Cs', + 'test_heteroatom_organics_C_CH3_3_NH2', + 'test_heteroatom_organics_C4H8PH', + 'test_floppy_organics_C7H14a', + 'test_rigid_organics_C8H14', + 'test_floppy_organics_C5H12d', + 'test_heteroatom_organics_C_CH3_3_PH2', + 'test_heteroatom_organics_ADAM_AlH2_Cs', + 'test_jigs_to_several_atoms_007_rotarymotor_and_anchors_to_100_atoms', + 'test_jigs_to_several_atoms_002_rotarymotor_to_100_atoms', + 'test_heteroatom_organics_ADAM_PH2_Cs', + 'test_heteroatom_organics_ADAM_NH2_Cs', + 'test_heteroatom_organics_CH3SCH3', + 'test_floppy_organics_C5H10', + 'test_floppy_organics_C5H12e', + 'test_singlebond_stretch_H2B_NH2', + 'test_heteroatom_organics_C4H8O', + 'test_motors_022_rotary_motor_small_bearing_test', + 'test_amino_acids_ala_l_aminoacid', + 'test_heteroatom_organics_C5H10BH', + 'test_floppy_organics_C6H14a', + 'test_floppy_organics_C6H14c', + 'test_minimize_0008', + 'test_heteroatom_organics_CH3BHCH3', + 'test_floppy_organics_C7H14b', + 'test_amino_acids_asp_l_aminoacid', + 'test_floppy_organics_C6H14b', + 'test_floppy_organics_C5H12c', + 'test_floppy_organics_C5H12a', + 'test_floppy_organics_C6H14d', + 'test_floppy_organics_C6H14e', + 'test_floppy_organics_C4H10b', + 'test_heteroatom_organics_C_CH3_3_AlH2', + 'test_rigid_organics_C14H24', + 'test_amino_acids_ser_l_aminoacid', + 'test_amino_acids_pro_l_aminoacid', + 'test_heteroatom_organics_ADAM_SiH3_C3v', + 'test_amino_acids_ile_l_aminoacid', + 'test_amino_acids_cys_l_aminoacid', + 'test_floppy_organics_C6H14f', + 'test_amino_acids_thr_l_aminoacid', + 'test_amino_acids_glu_l_aminoacid', + 'test_amino_acids_val_l_aminoacid', + 'test_amino_acids_asn_l_aminoacid', + 'test_amino_acids_gly_l_aminoacid', + 'test_amino_acids_his_l_aminoacid', + 'test_amino_acids_met_l_aminoacid', + 'test_amino_acids_arg_l_aminoacid', + 'test_dynamics_small_bearing_01', + 'test_amino_acids_gln_l_aminoacid', + 'test_amino_acids_lys_l_aminoacid', + 'test_amino_acids_leu_l_aminoacid', + 'test_amino_acids_phe_l_aminoacid' + ] + +try: + import sim + class PyrexUnitTests(sim.Tests, TimedTest): + + def test_framecallback(self): + self.methodname = "test_framecallback" + try: TimedTest.start(self) + except EarlyTermination: return + try: + sim.Tests.test_framecallback(self) + finally: + try: TimedTest.finish(self) + except EarlyTermination: pass + def test_frameAndTraceCallback(self): + self.methodname = "test_frameAndTraceCallback" + try: TimedTest.start(self) + except EarlyTermination: return + try: + sim.Tests.test_frameAndTraceCallback(self) + finally: + try: TimedTest.finish(self) + except EarlyTermination: pass + def test_traceCallbackWithMotor(self): + self.methodname = "test_traceCallbackWithMotor" + try: TimedTest.start(self) + except EarlyTermination: return + try: + sim.Tests.test_traceCallbackWithMotor(self) + finally: + try: TimedTest.finish(self) + except EarlyTermination: pass + def test_dpbFileShouldBeBinary(self): + self.methodname = "test_dpbFileShouldBeBinary" + try: TimedTest.start(self) + except EarlyTermination: return + try: + sim.Tests.test_dpbFileShouldBeBinary(self) + finally: + try: TimedTest.finish(self) + except EarlyTermination: pass + def test_dpbFileShouldBeBinaryAfterMinimize(self): + self.methodname = "test_dpbFileShouldBeBinaryAfterMinimize" + try: TimedTest.start(self) + except EarlyTermination: return + try: + sim.Tests.test_dpbFileShouldBeBinaryAfterMinimize(self) + finally: + try: TimedTest.finish(self) + except EarlyTermination: pass + def test_badCallback1(self): + self.methodname = "test_badCallback1" + try: TimedTest.start(self) + except EarlyTermination: return + try: + sim.Tests.test_badCallback1(self) + finally: + try: TimedTest.finish(self) + except EarlyTermination: pass + def test_badCallback2(self): + self.methodname = "test_badCallback2" + try: TimedTest.start(self) + except EarlyTermination: return + try: + sim.Tests.test_badCallback2(self) + finally: + try: TimedTest.finish(self) + except EarlyTermination: pass + def test_badCallback3(self): + self.methodname = "test_badCallback3" + try: TimedTest.start(self) + except EarlyTermination: return + try: + sim.Tests.test_badCallback3(self) + finally: + try: TimedTest.finish(self) + except EarlyTermination: pass + def test_callWrongSimulatorObject(self): + self.methodname = "test_callWrongSimulatorObject" + try: TimedTest.start(self) + except EarlyTermination: return + try: + sim.Tests.test_callWrongSimulatorObject(self) + finally: + try: TimedTest.finish(self) + except EarlyTermination: pass + + baseClass = PyrexUnitTests +except ImportError: + baseClass = unittest.TestCase + + +class Tests(baseClass): + + def test_minimize_h2(self): + StructureTest(dir="minimize", test="h2") + + def test_dynamics_0001(self): + # rotary motor test + FailureExpectedTest(dir="dynamics", test="0001", + simopts=("--num-frames=30", + "--temperature=0", + "--iters-per-frame=10000", + "--dump-as-text", + "FOO.mmp")) + #def test_dynamics_0002(self): + # # ground, thermostat, and thermometer test + # DynamicsTest(dir="dynamics", test="0002", + # simopts=("--num-frames=100", + # "--temperature=300", + # "--iters-per-frame=10", + # "--dump-as-text", + # "FOO.mmp")) + + def test_dynamics_small_bearing_01(self): + # rotary motor test + DynamicsTest(dir="dynamics", test="small_bearing_01", + simopts=("--num-frames=100", + "--temperature=300", + "--iters-per-frame=10", + "--dump-as-text", + "--trace-file", "FOO.trc", + "FOO.mmp")) + + def test_minimize_0002(self): + FailureExpectedTest(dir="minimize", test="0002", + simopts=("--num-frames=500", + "--minimize", + "--dump-as-text", + "FOO.mmp")) + def test_minimize_0003(self): + FailureExpectedTest(dir="minimize", test="0003", + simopts=("--num-frames=300", + "--minimize", + "--dump-intermediate-text", + "--dump-as-text", + "FOO.mmp")) + def test_minimize_0004(self): + FailureExpectedTest(dir="minimize", test="0004", + simopts=("--num-frames=600", + "--minimize", + "--dump-as-text", + "FOO.mmp")) + def test_minimize_0006(self): + FailureExpectedTest(dir="minimize", test="0006", + simopts=("--num-frames=300", + "--minimize", + "--dump-intermediate-text", + "--dump-as-text", + "FOO.mmp")) + def test_minimize_0007(self): + FailureExpectedTest(dir="minimize", test="0007", + simopts=("--num-frames=300", + "--minimize", + "--dump-intermediate-text", + "--dump-as-text", + "FOO.mmp")) + + # In Emacs, do "sort-lines" to keep things organized + def test_amino_acids_ala_l_aminoacid(self): StructureTest(dir="amino_acids", test="ala_l_aminoacid") + def test_amino_acids_arg_l_aminoacid(self): StructureTest(dir="amino_acids", test="arg_l_aminoacid") + def test_amino_acids_asn_l_aminoacid(self): StructureTest(dir="amino_acids", test="asn_l_aminoacid") + def test_amino_acids_asp_l_aminoacid(self): StructureTest(dir="amino_acids", test="asp_l_aminoacid") + def test_amino_acids_cys_l_aminoacid(self): StructureTest(dir="amino_acids", test="cys_l_aminoacid") + def test_amino_acids_gln_l_aminoacid(self): StructureTest(dir="amino_acids", test="gln_l_aminoacid") + def test_amino_acids_glu_l_aminoacid(self): StructureTest(dir="amino_acids", test="glu_l_aminoacid") + def test_amino_acids_gly_l_aminoacid(self): StructureTest(dir="amino_acids", test="gly_l_aminoacid") + def test_amino_acids_his_l_aminoacid(self): StructureTest(dir="amino_acids", test="his_l_aminoacid") + def test_amino_acids_ile_l_aminoacid(self): StructureTest(dir="amino_acids", test="ile_l_aminoacid") + def test_amino_acids_leu_l_aminoacid(self): StructureTest(dir="amino_acids", test="leu_l_aminoacid") + def test_amino_acids_lys_l_aminoacid(self): StructureTest(dir="amino_acids", test="lys_l_aminoacid") + def test_amino_acids_met_l_aminoacid(self): StructureTest(dir="amino_acids", test="met_l_aminoacid") + def test_amino_acids_phe_l_aminoacid(self): StructureTest(dir="amino_acids", test="phe_l_aminoacid") + def test_amino_acids_pro_l_aminoacid(self): StructureTest(dir="amino_acids", test="pro_l_aminoacid") + def test_amino_acids_ser_l_aminoacid(self): StructureTest(dir="amino_acids", test="ser_l_aminoacid") + def test_amino_acids_thr_l_aminoacid(self): StructureTest(dir="amino_acids", test="thr_l_aminoacid") + def test_amino_acids_tyr_l_aminoacid(self): StructureTest(dir="amino_acids", test="tyr_l_aminoacid") + def test_amino_acids_val_l_aminoacid(self): StructureTest(dir="amino_acids", test="val_l_aminoacid") + def test_floppy_organics_C2H6(self): StructureTest(dir="floppy_organics", test="C2H6") + def test_floppy_organics_C3H8(self): StructureTest(dir="floppy_organics", test="C3H8") + def test_floppy_organics_C4H10a(self): StructureTest(dir="floppy_organics", test="C4H10a") + def test_floppy_organics_C4H10b(self): StructureTest(dir="floppy_organics", test="C4H10b") + def test_floppy_organics_C4H10c(self): StructureTest(dir="floppy_organics", test="C4H10c") + def test_floppy_organics_C4H8(self): StructureTest(dir="floppy_organics", test="C4H8") + def test_floppy_organics_C5H10(self): StructureTest(dir="floppy_organics", test="C5H10") + def test_floppy_organics_C5H12a(self): StructureTest(dir="floppy_organics", test="C5H12a") + def test_floppy_organics_C5H12b(self): StructureTest(dir="floppy_organics", test="C5H12b") + def test_floppy_organics_C5H12c(self): StructureTest(dir="floppy_organics", test="C5H12c") + def test_floppy_organics_C5H12d(self): StructureTest(dir="floppy_organics", test="C5H12d") + def test_floppy_organics_C5H12e(self): StructureTest(dir="floppy_organics", test="C5H12e") + def test_floppy_organics_C6H12a(self): StructureTest(dir="floppy_organics", test="C6H12a") + def test_floppy_organics_C6H12b(self): StructureTest(dir="floppy_organics", test="C6H12b") + def test_floppy_organics_C6H14a(self): StructureTest(dir="floppy_organics", test="C6H14a") + def test_floppy_organics_C6H14b(self): StructureTest(dir="floppy_organics", test="C6H14b") + def test_floppy_organics_C6H14c(self): StructureTest(dir="floppy_organics", test="C6H14c") + def test_floppy_organics_C6H14d(self): StructureTest(dir="floppy_organics", test="C6H14d") + def test_floppy_organics_C6H14e(self): StructureTest(dir="floppy_organics", test="C6H14e") + def test_floppy_organics_C6H14f(self): StructureTest(dir="floppy_organics", test="C6H14f") + def test_floppy_organics_C7H14a(self): StructureTest(dir="floppy_organics", test="C7H14a") + def test_floppy_organics_C7H14b(self): StructureTest(dir="floppy_organics", test="C7H14b") + def test_floppy_organics_C7H14c(self): StructureTest(dir="floppy_organics", test="C7H14c") + def test_floppy_organics_CH4(self): StructureTest(dir="floppy_organics", test="CH4") + def test_heteroatom_organics_ADAM_AlH2_Cs(self): StructureTest(dir="heteroatom_organics", test="ADAM_AlH2_Cs") + def test_heteroatom_organics_ADAM_BH2(self): StructureTest(dir="heteroatom_organics", test="ADAM_BH2") + def test_heteroatom_organics_ADAM_Cl_c3v(self): StructureTest(dir="heteroatom_organics", test="ADAM_Cl_c3v") + def test_heteroatom_organics_ADAM_F_c3v(self): StructureTest(dir="heteroatom_organics", test="ADAM_F_c3v") + def test_heteroatom_organics_ADAM_NH2_Cs(self): StructureTest(dir="heteroatom_organics", test="ADAM_NH2_Cs") + def test_heteroatom_organics_ADAM_OH_Cs(self): StructureTest(dir="heteroatom_organics", test="ADAM_OH_Cs") + def test_heteroatom_organics_ADAM_PH2_Cs(self): StructureTest(dir="heteroatom_organics", test="ADAM_PH2_Cs") + def test_heteroatom_organics_ADAM_SH_Cs(self): StructureTest(dir="heteroatom_organics", test="ADAM_SH_Cs") + def test_heteroatom_organics_ADAM_SiH3_C3v(self): StructureTest(dir="heteroatom_organics", test="ADAM_SiH3_C3v") + def test_heteroatom_organics_ADAMframe_AlH_Cs(self): StructureTest(dir="heteroatom_organics", test="ADAMframe_AlH_Cs") + def test_heteroatom_organics_ADAMframe_BH_Cs(self): StructureTest(dir="heteroatom_organics", test="ADAMframe_BH_Cs") + def test_heteroatom_organics_ADAMframe_NH_Cs(self): StructureTest(dir="heteroatom_organics", test="ADAMframe_NH_Cs") + def test_heteroatom_organics_ADAMframe_O_Cs(self): StructureTest(dir="heteroatom_organics", test="ADAMframe_O_Cs") + def test_heteroatom_organics_ADAMframe_PH_Cs(self): StructureTest(dir="heteroatom_organics", test="ADAMframe_PH_Cs") + def test_heteroatom_organics_ADAMframe_S_Cs(self): StructureTest(dir="heteroatom_organics", test="ADAMframe_S_Cs") + def test_heteroatom_organics_ADAMframe_SiH2_c2v(self): StructureTest(dir="heteroatom_organics", test="ADAMframe_SiH2_c2v") + def test_heteroatom_organics_Al_ADAM_C3v(self): StructureTest(dir="heteroatom_organics", test="Al_ADAM_C3v") + def test_heteroatom_organics_B_ADAM_C3v(self): StructureTest(dir="heteroatom_organics", test="B_ADAM_C3v") + def test_heteroatom_organics_C3H6AlH(self): StructureTest(dir="heteroatom_organics", test="C3H6AlH") + def test_heteroatom_organics_C3H6BH(self): StructureTest(dir="heteroatom_organics", test="C3H6BH") + def test_heteroatom_organics_C3H6NH(self): StructureTest(dir="heteroatom_organics", test="C3H6NH") + def test_heteroatom_organics_C3H6O(self): StructureTest(dir="heteroatom_organics", test="C3H6O") + def test_heteroatom_organics_C3H6PH(self): StructureTest(dir="heteroatom_organics", test="C3H6PH") + def test_heteroatom_organics_C3H6S(self): StructureTest(dir="heteroatom_organics", test="C3H6S") + def test_heteroatom_organics_C3H6SiH2(self): StructureTest(dir="heteroatom_organics", test="C3H6SiH2") + def test_heteroatom_organics_C4H8AlH(self): StructureTest(dir="heteroatom_organics", test="C4H8AlH") + def test_heteroatom_organics_C4H8BH(self): StructureTest(dir="heteroatom_organics", test="C4H8BH") + def test_heteroatom_organics_C4H8NH(self): StructureTest(dir="heteroatom_organics", test="C4H8NH") + def test_heteroatom_organics_C4H8O(self): StructureTest(dir="heteroatom_organics", test="C4H8O") + def test_heteroatom_organics_C4H8PH(self): StructureTest(dir="heteroatom_organics", test="C4H8PH") + def test_heteroatom_organics_C4H8S(self): StructureTest(dir="heteroatom_organics", test="C4H8S") + def test_heteroatom_organics_C4H8SiH2(self): StructureTest(dir="heteroatom_organics", test="C4H8SiH2") + def test_heteroatom_organics_C5H10AlH(self): StructureTest(dir="heteroatom_organics", test="C5H10AlH") + def test_heteroatom_organics_C5H10BH(self): StructureTest(dir="heteroatom_organics", test="C5H10BH") + def test_heteroatom_organics_C5H10NH(self): StructureTest(dir="heteroatom_organics", test="C5H10NH") + def test_heteroatom_organics_C5H10O(self): StructureTest(dir="heteroatom_organics", test="C5H10O") + def test_heteroatom_organics_C5H10PH(self): StructureTest(dir="heteroatom_organics", test="C5H10PH") + def test_heteroatom_organics_C5H10S(self): StructureTest(dir="heteroatom_organics", test="C5H10S") + def test_heteroatom_organics_C5H10SiH2(self): StructureTest(dir="heteroatom_organics", test="C5H10SiH2") + def test_heteroatom_organics_CH3AlH2(self): StructureTest(dir="heteroatom_organics", test="CH3AlH2") + def test_heteroatom_organics_CH3AlHCH3(self): StructureTest(dir="heteroatom_organics", test="CH3AlHCH3") + def test_heteroatom_organics_CH3BH2(self): StructureTest(dir="heteroatom_organics", test="CH3BH2") + def test_heteroatom_organics_CH3BHCH3(self): StructureTest(dir="heteroatom_organics", test="CH3BHCH3") + def test_heteroatom_organics_CH3NH2(self): StructureTest(dir="heteroatom_organics", test="CH3NH2") + def test_heteroatom_organics_CH3NHCH3(self): StructureTest(dir="heteroatom_organics", test="CH3NHCH3") + def test_heteroatom_organics_CH3OCH3(self): StructureTest(dir="heteroatom_organics", test="CH3OCH3") + def test_heteroatom_organics_CH3OH(self): StructureTest(dir="heteroatom_organics", test="CH3OH") + def test_heteroatom_organics_CH3PH2(self): StructureTest(dir="heteroatom_organics", test="CH3PH2") + def test_heteroatom_organics_CH3PHCH3(self): StructureTest(dir="heteroatom_organics", test="CH3PHCH3") + def test_heteroatom_organics_CH3SCH3(self): StructureTest(dir="heteroatom_organics", test="CH3SCH3") + def test_heteroatom_organics_CH3SH(self): StructureTest(dir="heteroatom_organics", test="CH3SH") + def test_heteroatom_organics_CH3SiH2CH3(self): StructureTest(dir="heteroatom_organics", test="CH3SiH2CH3") + def test_heteroatom_organics_CH3SiH3(self): StructureTest(dir="heteroatom_organics", test="CH3SiH3") + def test_heteroatom_organics_C_CH3_3_AlH2(self): StructureTest(dir="heteroatom_organics", test="C_CH3_3_AlH2") + def test_heteroatom_organics_C_CH3_3_BH2(self): StructureTest(dir="heteroatom_organics", test="C_CH3_3_BH2") + def test_heteroatom_organics_C_CH3_3_NH2(self): StructureTest(dir="heteroatom_organics", test="C_CH3_3_NH2") + def test_heteroatom_organics_C_CH3_3_OH(self): StructureTest(dir="heteroatom_organics", test="C_CH3_3_OH") + def test_heteroatom_organics_C_CH3_3_PH2(self): StructureTest(dir="heteroatom_organics", test="C_CH3_3_PH2") + def test_heteroatom_organics_C_CH3_3_SH(self): StructureTest(dir="heteroatom_organics", test="C_CH3_3_SH") + def test_heteroatom_organics_C_CH3_3_SiH3(self): StructureTest(dir="heteroatom_organics", test="C_CH3_3_SiH3") + def test_heteroatom_organics_N_ADAM_C3v(self): StructureTest(dir="heteroatom_organics", test="N_ADAM_C3v") + def test_heteroatom_organics_P_ADAM_C3v(self): StructureTest(dir="heteroatom_organics", test="P_ADAM_C3v") + def test_heteroatom_organics_SiH_ADAM_C3v(self): StructureTest(dir="heteroatom_organics", test="SiH_ADAM_C3v") + def test_minimize_0001(self): StructureTest(dir="minimize", test="0001") + def test_minimize_0005(self): StructureTest(dir="minimize", test="0005") + def test_minimize_0008(self): MinimizeTest(dir="minimize", test="0008") + def test_minimize_0009(self): StructureTest(dir="minimize", test="0009") + def test_minimize_0010(self): MinimizeTest(dir="minimize", test="0010") + def test_minimize_0011(self): MinimizeTest(dir="minimize", test="0011") + def test_minimize_0012(self): MinimizeTest(dir="minimize", test="0012") + def test_minimize_0013(self): StructureTest(dir="minimize", test="0013") + def test_rigid_organics_C10H12(self): StructureTest(dir="rigid_organics", test="C10H12") + def test_rigid_organics_C10H14(self): StructureTest(dir="rigid_organics", test="C10H14") + def test_rigid_organics_C14H20(self): StructureTest(dir="rigid_organics", test="C14H20") + def test_rigid_organics_C14H24(self): StructureTest(dir="rigid_organics", test="C14H24") + def test_rigid_organics_C2H6(self): StructureTest(dir="rigid_organics", test="C2H6") + def test_rigid_organics_C3H6(self): StructureTest(dir="rigid_organics", test="C3H6") + def test_rigid_organics_C3H8(self): StructureTest(dir="rigid_organics", test="C3H8") + def test_rigid_organics_C4H8(self): StructureTest(dir="rigid_organics", test="C4H8") + def test_rigid_organics_C6H10(self): StructureTest(dir="rigid_organics", test="C6H10") + def test_rigid_organics_C8H14(self): StructureTest(dir="rigid_organics", test="C8H14") + def test_rigid_organics_C8H8(self): StructureTest(dir="rigid_organics", test="C8H8") + def test_rigid_organics_CH4(self): StructureTest(dir="rigid_organics", test="CH4") + def test_singlebond_stretch_Cl_AlH2(self): StructureTest(dir="singlebond_stretch", test="Cl_AlH2") + def test_singlebond_stretch_Cl_BH2(self): StructureTest(dir="singlebond_stretch", test="Cl_BH2") + def test_singlebond_stretch_Cl_CH3(self): StructureTest(dir="singlebond_stretch", test="Cl_CH3") + def test_singlebond_stretch_Cl_Cl(self): StructureTest(dir="singlebond_stretch", test="Cl_Cl") + def test_singlebond_stretch_Cl_F(self): StructureTest(dir="singlebond_stretch", test="Cl_F") + def test_singlebond_stretch_Cl_NH2(self): StructureTest(dir="singlebond_stretch", test="Cl_NH2") + def test_singlebond_stretch_Cl_OH(self): StructureTest(dir="singlebond_stretch", test="Cl_OH") + def test_singlebond_stretch_Cl_PH2(self): StructureTest(dir="singlebond_stretch", test="Cl_PH2") + def test_singlebond_stretch_Cl_SH(self): StructureTest(dir="singlebond_stretch", test="Cl_SH") + def test_singlebond_stretch_Cl_SiH3(self): StructureTest(dir="singlebond_stretch", test="Cl_SiH3") + def test_singlebond_stretch_F_AlH2(self): StructureTest(dir="singlebond_stretch", test="F_AlH2") + def test_singlebond_stretch_F_BH2(self): StructureTest(dir="singlebond_stretch", test="F_BH2") + def test_singlebond_stretch_F_CH3(self): StructureTest(dir="singlebond_stretch", test="F_CH3") + def test_singlebond_stretch_F_F(self): StructureTest(dir="singlebond_stretch", test="F_F") + def test_singlebond_stretch_F_NH2(self): StructureTest(dir="singlebond_stretch", test="F_NH2") + def test_singlebond_stretch_F_OH(self): StructureTest(dir="singlebond_stretch", test="F_OH") + def test_singlebond_stretch_F_PH2(self): StructureTest(dir="singlebond_stretch", test="F_PH2") + def test_singlebond_stretch_F_SH(self): StructureTest(dir="singlebond_stretch", test="F_SH") + def test_singlebond_stretch_F_SiH3(self): StructureTest(dir="singlebond_stretch", test="F_SiH3") + def test_singlebond_stretch_H2Al_AlH2(self): StructureTest(dir="singlebond_stretch", test="H2Al_AlH2") + def test_singlebond_stretch_H2Al_CH3(self): StructureTest(dir="singlebond_stretch", test="H2Al_CH3") + def test_singlebond_stretch_H2Al_SiH3(self): StructureTest(dir="singlebond_stretch", test="H2Al_SiH3") + def test_singlebond_stretch_H2B_AlH2(self): StructureTest(dir="singlebond_stretch", test="H2B_AlH2") + def test_singlebond_stretch_H2B_BH2(self): StructureTest(dir="singlebond_stretch", test="H2B_BH2") + def test_singlebond_stretch_H2B_CH3(self): StructureTest(dir="singlebond_stretch", test="H2B_CH3") + def test_singlebond_stretch_H2B_NH2(self): StructureTest(dir="singlebond_stretch", test="H2B_NH2") + def test_singlebond_stretch_H2B_PH2(self): StructureTest(dir="singlebond_stretch", test="H2B_PH2") + def test_singlebond_stretch_H2B_SiH3(self): StructureTest(dir="singlebond_stretch", test="H2B_SiH3") + def test_singlebond_stretch_H2N_AlH2(self): StructureTest(dir="singlebond_stretch", test="H2N_AlH2") + def test_singlebond_stretch_H2N_CH3(self): StructureTest(dir="singlebond_stretch", test="H2N_CH3") + def test_singlebond_stretch_H2N_NH2(self): StructureTest(dir="singlebond_stretch", test="H2N_NH2") + def test_singlebond_stretch_H2N_PH2(self): StructureTest(dir="singlebond_stretch", test="H2N_PH2") + def test_singlebond_stretch_H2N_SiH3(self): StructureTest(dir="singlebond_stretch", test="H2N_SiH3") + def test_singlebond_stretch_H2P_AlH2(self): StructureTest(dir="singlebond_stretch", test="H2P_AlH2") + def test_singlebond_stretch_H2P_CH3(self): StructureTest(dir="singlebond_stretch", test="H2P_CH3") + def test_singlebond_stretch_H2P_PH2(self): StructureTest(dir="singlebond_stretch", test="H2P_PH2") + def test_singlebond_stretch_H2P_SiH3(self): StructureTest(dir="singlebond_stretch", test="H2P_SiH3") + def test_singlebond_stretch_H3C_CH3(self): StructureTest(dir="singlebond_stretch", test="H3C_CH3") + def test_singlebond_stretch_H3C_SiH3(self): StructureTest(dir="singlebond_stretch", test="H3C_SiH3") + def test_singlebond_stretch_H3Si_SiH3(self): StructureTest(dir="singlebond_stretch", test="H3Si_SiH3") + def test_singlebond_stretch_H_AlH2(self): StructureTest(dir="singlebond_stretch", test="H_AlH2") + def test_singlebond_stretch_H_BH2(self): StructureTest(dir="singlebond_stretch", test="H_BH2") + def test_singlebond_stretch_H_CH3(self): StructureTest(dir="singlebond_stretch", test="H_CH3") + def test_singlebond_stretch_H_Cl(self): StructureTest(dir="singlebond_stretch", test="H_Cl") + def test_singlebond_stretch_H_F(self): StructureTest(dir="singlebond_stretch", test="H_F") + def test_singlebond_stretch_H_H(self): StructureTest(dir="singlebond_stretch", test="H_H") + def test_singlebond_stretch_H_NH2(self): StructureTest(dir="singlebond_stretch", test="H_NH2") + def test_singlebond_stretch_HO_AlH2(self): StructureTest(dir="singlebond_stretch", test="HO_AlH2") + def test_singlebond_stretch_HO_BH2(self): StructureTest(dir="singlebond_stretch", test="HO_BH2") + def test_singlebond_stretch_HO_CH3(self): StructureTest(dir="singlebond_stretch", test="HO_CH3") + def test_singlebond_stretch_H_OH(self): StructureTest(dir="singlebond_stretch", test="H_OH") + def test_singlebond_stretch_HO_NH2(self): StructureTest(dir="singlebond_stretch", test="HO_NH2") + def test_singlebond_stretch_HO_OH(self): StructureTest(dir="singlebond_stretch", test="HO_OH") + def test_singlebond_stretch_HO_PH2(self): StructureTest(dir="singlebond_stretch", test="HO_PH2") + def test_singlebond_stretch_HO_SiH3(self): StructureTest(dir="singlebond_stretch", test="HO_SiH3") + def test_singlebond_stretch_H_PH2(self): StructureTest(dir="singlebond_stretch", test="H_PH2") + def test_singlebond_stretch_HS_AlH2(self): StructureTest(dir="singlebond_stretch", test="HS_AlH2") + def test_singlebond_stretch_HS_BH2(self): StructureTest(dir="singlebond_stretch", test="HS_BH2") + def test_singlebond_stretch_HS_CH3(self): StructureTest(dir="singlebond_stretch", test="HS_CH3") + def test_singlebond_stretch_H_SH(self): StructureTest(dir="singlebond_stretch", test="H_SH") + def test_singlebond_stretch_H_SiH3(self): StructureTest(dir="singlebond_stretch", test="H_SiH3") + def test_singlebond_stretch_HS_NH2(self): StructureTest(dir="singlebond_stretch", test="HS_NH2") + def test_singlebond_stretch_HS_OH(self): StructureTest(dir="singlebond_stretch", test="HS_OH") + def test_singlebond_stretch_HS_PH2(self): StructureTest(dir="singlebond_stretch", test="HS_PH2") + def test_singlebond_stretch_HS_SH(self): StructureTest(dir="singlebond_stretch", test="HS_SH") + def test_singlebond_stretch_HS_SiH3(self): StructureTest(dir="singlebond_stretch", test="HS_SiH3") + def test_singlebond_stretch_test_Cl_AlH2(self): StructureTest(dir="singlebond_stretch", test="Cl_AlH2") + def test_singlebond_stretch_test_Cl_BH2(self): StructureTest(dir="singlebond_stretch", test="Cl_BH2") + def test_singlebond_stretch_test_Cl_CH3(self): StructureTest(dir="singlebond_stretch", test="Cl_CH3") + def test_singlebond_stretch_test_Cl_Cl(self): StructureTest(dir="singlebond_stretch", test="Cl_Cl") + def test_singlebond_stretch_test_Cl_F(self): StructureTest(dir="singlebond_stretch", test="Cl_F") + def test_singlebond_stretch_test_Cl_NH2(self): StructureTest(dir="singlebond_stretch", test="Cl_NH2") + def test_singlebond_stretch_test_Cl_OH(self): StructureTest(dir="singlebond_stretch", test="Cl_OH") + def test_singlebond_stretch_test_Cl_PH2(self): StructureTest(dir="singlebond_stretch", test="Cl_PH2") + def test_singlebond_stretch_test_Cl_SH(self): StructureTest(dir="singlebond_stretch", test="Cl_SH") + def test_singlebond_stretch_test_Cl_SiH3(self): StructureTest(dir="singlebond_stretch", test="Cl_SiH3") + def test_singlebond_stretch_test_F_AlH2(self): StructureTest(dir="singlebond_stretch", test="F_AlH2") + def test_singlebond_stretch_test_F_BH2(self): StructureTest(dir="singlebond_stretch", test="F_BH2") + def test_singlebond_stretch_test_F_CH3(self): StructureTest(dir="singlebond_stretch", test="F_CH3") + def test_singlebond_stretch_test_F_F(self): StructureTest(dir="singlebond_stretch", test="F_F") + def test_singlebond_stretch_test_F_NH2(self): StructureTest(dir="singlebond_stretch", test="F_NH2") + def test_singlebond_stretch_test_F_OH(self): StructureTest(dir="singlebond_stretch", test="F_OH") + def test_singlebond_stretch_test_F_PH2(self): StructureTest(dir="singlebond_stretch", test="F_PH2") + def test_singlebond_stretch_test_F_SH(self): StructureTest(dir="singlebond_stretch", test="F_SH") + def test_singlebond_stretch_test_F_SiH3(self): StructureTest(dir="singlebond_stretch", test="F_SiH3") + def test_singlebond_stretch_test_H2Al_AlH2(self): StructureTest(dir="singlebond_stretch", test="H2Al_AlH2") + def test_singlebond_stretch_test_H2Al_CH3(self): StructureTest(dir="singlebond_stretch", test="H2Al_CH3") + def test_singlebond_stretch_test_H2Al_SiH3(self): StructureTest(dir="singlebond_stretch", test="H2Al_SiH3") + def test_singlebond_stretch_test_H2B_AlH2(self): StructureTest(dir="singlebond_stretch", test="H2B_AlH2") + def test_singlebond_stretch_test_H2B_BH2(self): StructureTest(dir="singlebond_stretch", test="H2B_BH2") + def test_singlebond_stretch_test_H2B_CH3(self): StructureTest(dir="singlebond_stretch", test="H2B_CH3") + def test_singlebond_stretch_test_H2B_NH2(self): StructureTest(dir="singlebond_stretch", test="H2B_NH2") + def test_singlebond_stretch_test_H2B_PH2(self): StructureTest(dir="singlebond_stretch", test="H2B_PH2") + def test_singlebond_stretch_test_H2B_SiH3(self): StructureTest(dir="singlebond_stretch", test="H2B_SiH3") + def test_singlebond_stretch_test_H2N_AlH2(self): StructureTest(dir="singlebond_stretch", test="H2N_AlH2") + def test_singlebond_stretch_test_H2N_CH3(self): StructureTest(dir="singlebond_stretch", test="H2N_CH3") + def test_singlebond_stretch_test_H2N_NH2(self): StructureTest(dir="singlebond_stretch", test="H2N_NH2") + def test_singlebond_stretch_test_H2N_PH2(self): StructureTest(dir="singlebond_stretch", test="H2N_PH2") + def test_singlebond_stretch_test_H2N_SiH3(self): StructureTest(dir="singlebond_stretch", test="H2N_SiH3") + def test_singlebond_stretch_test_H2P_AlH2(self): StructureTest(dir="singlebond_stretch", test="H2P_AlH2") + def test_singlebond_stretch_test_H2P_CH3(self): StructureTest(dir="singlebond_stretch", test="H2P_CH3") + def test_singlebond_stretch_test_H2P_PH2(self): StructureTest(dir="singlebond_stretch", test="H2P_PH2") + def test_singlebond_stretch_test_H2P_SiH3(self): StructureTest(dir="singlebond_stretch", test="H2P_SiH3") + def test_singlebond_stretch_test_H3C_CH3(self): StructureTest(dir="singlebond_stretch", test="H3C_CH3") + def test_singlebond_stretch_test_H3C_SiH3(self): StructureTest(dir="singlebond_stretch", test="H3C_SiH3") + def test_singlebond_stretch_test_H3Si_SiH3(self): StructureTest(dir="singlebond_stretch", test="H3Si_SiH3") + def test_singlebond_stretch_test_H_AlH2(self): StructureTest(dir="singlebond_stretch", test="H_AlH2") + def test_singlebond_stretch_test_H_BH2(self): StructureTest(dir="singlebond_stretch", test="H_BH2") + def test_singlebond_stretch_test_H_CH3(self): StructureTest(dir="singlebond_stretch", test="H_CH3") + def test_singlebond_stretch_test_H_Cl(self): StructureTest(dir="singlebond_stretch", test="H_Cl") + def test_singlebond_stretch_test_H_F(self): StructureTest(dir="singlebond_stretch", test="H_F") + def test_singlebond_stretch_test_H_H(self): StructureTest(dir="singlebond_stretch", test="H_H") + def test_singlebond_stretch_test_H_NH2(self): StructureTest(dir="singlebond_stretch", test="H_NH2") + def test_singlebond_stretch_test_HO_AlH2(self): StructureTest(dir="singlebond_stretch", test="HO_AlH2") + def test_singlebond_stretch_test_HO_BH2(self): StructureTest(dir="singlebond_stretch", test="HO_BH2") + def test_singlebond_stretch_test_HO_CH3(self): StructureTest(dir="singlebond_stretch", test="HO_CH3") + def test_singlebond_stretch_test_H_OH(self): StructureTest(dir="singlebond_stretch", test="H_OH") + def test_singlebond_stretch_test_HO_NH2(self): StructureTest(dir="singlebond_stretch", test="HO_NH2") + def test_singlebond_stretch_test_HO_OH(self): StructureTest(dir="singlebond_stretch", test="HO_OH") + def test_singlebond_stretch_test_HO_PH2(self): StructureTest(dir="singlebond_stretch", test="HO_PH2") + def test_singlebond_stretch_test_HO_SiH3(self): StructureTest(dir="singlebond_stretch", test="HO_SiH3") + def test_singlebond_stretch_test_H_PH2(self): StructureTest(dir="singlebond_stretch", test="H_PH2") + def test_singlebond_stretch_test_HS_AlH2(self): StructureTest(dir="singlebond_stretch", test="HS_AlH2") + def test_singlebond_stretch_test_HS_BH2(self): StructureTest(dir="singlebond_stretch", test="HS_BH2") + def test_singlebond_stretch_test_HS_CH3(self): StructureTest(dir="singlebond_stretch", test="HS_CH3") + def test_singlebond_stretch_test_H_SH(self): StructureTest(dir="singlebond_stretch", test="H_SH") + def test_singlebond_stretch_test_H_SiH3(self): StructureTest(dir="singlebond_stretch", test="H_SiH3") + def test_singlebond_stretch_test_HS_NH2(self): StructureTest(dir="singlebond_stretch", test="HS_NH2") + def test_singlebond_stretch_test_HS_OH(self): StructureTest(dir="singlebond_stretch", test="HS_OH") + def test_singlebond_stretch_test_HS_PH2(self): StructureTest(dir="singlebond_stretch", test="HS_PH2") + def test_singlebond_stretch_test_HS_SH(self): StructureTest(dir="singlebond_stretch", test="HS_SH") + def test_singlebond_stretch_test_HS_SiH3(self): StructureTest(dir="singlebond_stretch", test="HS_SiH3") + + ### Pyrex tests + + def test_pyrex_minH2(self): PyrexTest("test_pyrex_minH2", "tests/minimize/test_h2") + def test_pyrex_minimize0001(self): PyrexTest("test_pyrex_minimize0001", "tests/minimize/test_0001") + + def test_pyrex_dynamics(self): + class Foo(PyrexTest): + def run(self): + import sim + s = sim.Dynamics("tests/dynamics/test_0002.mmp") + s.NumFrames = 100 + s.PrintFrameNums = 0 + s.IterPerFrame = 10 + s.Temperature = 300 + s.go() + assert not sim.isFileAscii("tests/dynamics/test_0002.dpb") + Foo("test_pyrex_dynamics") + + # Jig tests + def test_enabled_disabled_jigs_001_disabled_anchors(self): + JigTest(dir="enabled_disabled_jigs", test="001_disabled_anchors") + def test_enabled_disabled_jigs_002_one_anchor_enabled_other_disabled(self): + JigTest(dir="enabled_disabled_jigs", test="002_one_anchor_enabled_other_disabled") + def test_enabled_disabled_jigs_003_one_thermometer_enabled_other_disabled(self): + JigTest(dir="enabled_disabled_jigs", test="003_one_thermometer_enabled_other_disabled") + def test_enabled_disabled_jigs_004_one_thermostat_enabled_other_disabled(self): + JigTest(dir="enabled_disabled_jigs", test="004_one_thermostat_enabled_other_disabled") + def test_enabled_disabled_jigs_005_disabled_measure_distance_jig(self): + JigTest(dir="enabled_disabled_jigs", test="005_disabled_measure_distance_jig") + def test_enabled_disabled_jigs_006_one_rotarymotor_enabled_and_other_disabled(self): + JigTest(dir="enabled_disabled_jigs", test="006_one_rotarymotor_enabled_and_other_disabled") + def test_enabled_disabled_jigs_007_one_linearmotor_enabled_and_other_disabled(self): + JigTest(dir="enabled_disabled_jigs", test="007_one_linearmotor_enabled_and_other_disabled") + def test_jigs_to_several_atoms_001_rotarymotor_to_50_atoms(self): + JigTest(dir="jigs_to_several_atoms", test="001_rotarymotor_to_50_atoms") + def test_jigs_to_several_atoms_002_rotarymotor_to_100_atoms(self): + JigTest(dir="jigs_to_several_atoms", test="002_rotarymotor_to_100_atoms") + def test_jigs_to_several_atoms_003_linearmotor_to_50_atoms(self): + JigTest(dir="jigs_to_several_atoms", test="003_linearmotor_to_50_atoms") + def test_jigs_to_several_atoms_004_linearmotor_to_100_atoms(self): + JigTest(dir="jigs_to_several_atoms", test="004_linearmotor_to_100_atoms") + def test_jigs_to_several_atoms_005_anchors_to_50_atoms(self): + JigTest(dir="jigs_to_several_atoms", test="005_anchors_to_50_atoms") + def test_jigs_to_several_atoms_006_anchors_to_100_atoms(self): + JigTest(dir="jigs_to_several_atoms", test="006_anchors_to_100_atoms") + def test_jigs_to_several_atoms_007_rotarymotor_and_anchors_to_100_atoms(self): + JigTest(dir="jigs_to_several_atoms", test="007_rotarymotor_and_anchors_to_100_atoms") + def test_motors_001_linearmotor_0_force_and_0_stiffness(self): + JigTest(dir="motors", test="001_linearmotor_0_force_and_0_stiffness") + def test_motors_002_linearmotor_0_force_and_negative_stiffness(self): + JigTest(dir="motors", test="002_linearmotor_0_force_and_negative_stiffness") + def test_motors_003_linearmotor_0_force_and_positive_stiffness(self): + JigTest(dir="motors", test="003_linearmotor_0_force_and_positive_stiffness") + def test_motors_004_linearmotor_negative_force_and_negative_stiffness(self): + JigTest(dir="motors", test="004_linearmotor_negative_force_and_negative_stiffness") + def test_motors_005_linearmotor_negative_force_and_positive_stiffness(self): + JigTest(dir="motors", test="005_linearmotor_negative_force_and_positive_stiffness") + def test_motors_006_linearmotor_negative_force_and_0_stiffness(self): + JigTest(dir="motors", test="006_linearmotor_negative_force_and_0_stiffness") + def test_motors_007_linearmotor_positive_force_and_0_stiffness(self): + JigTest(dir="motors", test="007_linearmotor_positive_force_and_0_stiffness") + def test_motors_008_linearmotor_positive_force_and_positive_stiffness(self): + JigTest(dir="motors", test="008_linearmotor_positive_force_and_positive_stiffness") + def test_motors_009_linearmotor_Methane_Molecule(self): + JigTest(dir="motors", test="009_linearmotor_Methane_Molecule") + def test_motors_010_linearmotor_box_of_helium(self): + JigTest(dir="motors", test="010_linearmotor_box_of_helium") + def test_motors_011_rotarymotor_0_torque_and_0_speed(self): + JigTest(dir="motors", test="011_rotarymotor_0_torque_and_0_speed") + def test_motors_012_rotarymotor_0_torque_and_negative_speed(self): + JigTest(dir="motors", test="012_rotarymotor_0_torque_and_negative_speed") + def test_motors_013_rotarymotor_0_torque_and_positive_speed(self): + JigTest(dir="motors", test="013_rotarymotor_0_torque_and_positive_speed") + def test_motors_014_rotarymotor_negative_torque_and_negative_speed(self): + JigTest(dir="motors", test="014_rotarymotor_negative_torque_and_negative_speed") + def test_motors_015_rotarymotor_negative_torque_and_positive_speed(self): + JigTest(dir="motors", test="015_rotarymotor_negative_torque_and_positive_speed") + def test_motors_016_rotarymotor_negative_torque_and_0_speed(self): + JigTest(dir="motors", test="016_rotarymotor_negative_torque_and_0_speed") + def test_motors_017_rotarymotor_positive_torque_and_negative_speed(self): + JigTest(dir="motors", test="017_rotarymotor_positive_torque_and_negative_speed") + def test_motors_018_rotarymotor_positive_torque_and_0_speed(self): + JigTest(dir="motors", test="018_rotarymotor_positive_torque_and_0_speed") + def test_motors_019_rotarymotor_medium_torque_and_speed(self): + JigTest(dir="motors", test="019_rotarymotor_medium_torque_and_speed") + def test_motors_020_rotarymotor_high_torque_and_speed(self): + JigTest(dir="motors", test="020_rotarymotor_high_torque_and_speed") + def test_motors_021_rotarymotor_dyno_jig_test_to_same_chunk(self): + JigTest(dir="motors", test="021_rotarymotor_dyno_jig_test_to_same_chunk") + def test_motors_022_rotary_motor_small_bearing_test(self): + JigTest(dir="motors", test="022_rotary_motor_small_bearing_test") + def test_motors_023_rotarymotor_two_planet_gears(self): + JigTest(dir="motors", test="023_rotarymotor_two_planet_gears") + def test_motors_024_linearmotor_two_dodecahedranes(self): + JigTest(dir="motors", test="024_linearmotor_two_dodecahedranes") + def test_motors_025_two_linearmotors_applying_equal_forces_normal_to_each_other(self): + JigTest(dir="motors", test="025_two_linearmotors_applying_equal_forces_normal_to_each_other") + def test_motors_026_two_linearmotors_applying_equal_and_opposite_forces(self): + JigTest(dir="motors", test="026_two_linearmotors_applying_equal_and_opposite_forces") + def test_motors_027_two_rotarymotors_applying_equal_and_opposite_torque(self): + JigTest(dir="motors", test="027_two_rotarymotors_applying_equal_and_opposite_torque") + def test_motors_028_bug1306_test2(self): + JigTest(dir="motors", test="028_bug1306_test2") + def test_motors_029_bug_1331(self): + JigTest(dir="motors", test="029_bug_1331") + def test_motors_030_rotarymotor_and_linear_motor_attached_to_same_atoms(self): + JigTest(dir="motors", test="030_rotarymotor_and_linear_motor_attached_to_same_atoms") + def test_motors_and_anchors_001_linearmotor_pulling_against_anchor_1(self): + JigTest(dir="motors_and_anchors", test="001_linearmotor_pulling_against_anchor_1") + def test_motors_and_anchors_002_linearmotor_pulling_against_anchor_2(self): + JigTest(dir="motors_and_anchors", test="002_linearmotor_pulling_against_anchor_2") + def test_motors_and_anchors_003_rotorymotor_against_anchor_1(self): + JigTest(dir="motors_and_anchors", test="003_rotorymotor_against_anchor_1") + def test_motors_and_anchors_004_rotorymotor_against_anchor_2(self): + JigTest(dir="motors_and_anchors", test="004_rotorymotor_against_anchor_2") + def test_motors_and_anchors_005_rotorymotor_against_anchor_3(self): + JigTest(dir="motors_and_anchors", test="005_rotorymotor_against_anchor_3") + def test_reordering_jigs_or_chunks_01_thermo_anchor_reordering_1(self): + JigTest(dir="reordering_jigs_or_chunks", test="01_thermo_anchor_reordering_1") + def test_reordering_jigs_or_chunks_01_thermo_anchor_reordering_2(self): + JigTest(dir="reordering_jigs_or_chunks", test="01_thermo_anchor_reordering_2") + def test_reordering_jigs_or_chunks_01_thermo_anchor_reordering_3(self): + JigTest(dir="reordering_jigs_or_chunks", test="01_thermo_anchor_reordering_3") + def test_reordering_jigs_or_chunks_01_thermo_anchor_reordering_4(self): + JigTest(dir="reordering_jigs_or_chunks", test="01_thermo_anchor_reordering_4") + def test_reordering_jigs_or_chunks_01_thermo_anchor_reordering_5(self): + JigTest(dir="reordering_jigs_or_chunks", test="01_thermo_anchor_reordering_5") + def test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_1(self): + JigTest(dir="reordering_jigs_or_chunks", test="02_thermo_anchor_stat_reordering_1") + def test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_2(self): + JigTest(dir="reordering_jigs_or_chunks", test="02_thermo_anchor_stat_reordering_2") + def test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_3(self): + JigTest(dir="reordering_jigs_or_chunks", test="02_thermo_anchor_stat_reordering_3") + def test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_4(self): + JigTest(dir="reordering_jigs_or_chunks", test="02_thermo_anchor_stat_reordering_4") + def test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_5(self): + JigTest(dir="reordering_jigs_or_chunks", test="02_thermo_anchor_stat_reordering_5") + def test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_6(self): + JigTest(dir="reordering_jigs_or_chunks", test="02_thermo_anchor_stat_reordering_6") + def test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_7(self): + JigTest(dir="reordering_jigs_or_chunks", test="02_thermo_anchor_stat_reordering_7") + def test_reordering_jigs_or_chunks_02_thermo_anchor_stat_reordering_8(self): + JigTest(dir="reordering_jigs_or_chunks", test="02_thermo_anchor_stat_reordering_8") + def test_reordering_jigs_or_chunks_03_thermo_anchor_reordering(self): + JigTest(dir="reordering_jigs_or_chunks", test="03_thermo_anchor_reordering") + def test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_1(self): + JigTest(dir="reordering_jigs_or_chunks", test="03_thermo_rmotor_anchor_stat_reordering_1") + def test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_2(self): + JigTest(dir="reordering_jigs_or_chunks", test="03_thermo_rmotor_anchor_stat_reordering_2") + def test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_3(self): + JigTest(dir="reordering_jigs_or_chunks", test="03_thermo_rmotor_anchor_stat_reordering_3") + def test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_4(self): + JigTest(dir="reordering_jigs_or_chunks", test="03_thermo_rmotor_anchor_stat_reordering_4") + def test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_5(self): + JigTest(dir="reordering_jigs_or_chunks", test="03_thermo_rmotor_anchor_stat_reordering_5") + def test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_6(self): + JigTest(dir="reordering_jigs_or_chunks", test="03_thermo_rmotor_anchor_stat_reordering_6") + def test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_7(self): + JigTest(dir="reordering_jigs_or_chunks", test="03_thermo_rmotor_anchor_stat_reordering_7") + def test_reordering_jigs_or_chunks_03_thermo_rmotor_anchor_stat_reordering_8(self): + JigTest(dir="reordering_jigs_or_chunks", test="03_thermo_rmotor_anchor_stat_reordering_8") + def test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_1(self): + JigTest(dir="reordering_jigs_or_chunks", test="04_thermo_lmotor_anchor_stat_reordering_1") + def test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_2(self): + JigTest(dir="reordering_jigs_or_chunks", test="04_thermo_lmotor_anchor_stat_reordering_2") + def test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_3(self): + JigTest(dir="reordering_jigs_or_chunks", test="04_thermo_lmotor_anchor_stat_reordering_3") + def test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_4(self): + JigTest(dir="reordering_jigs_or_chunks", test="04_thermo_lmotor_anchor_stat_reordering_4") + def test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_5(self): + JigTest(dir="reordering_jigs_or_chunks", test="04_thermo_lmotor_anchor_stat_reordering_5") + def test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_6(self): + JigTest(dir="reordering_jigs_or_chunks", test="04_thermo_lmotor_anchor_stat_reordering_6") + def test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_7(self): + JigTest(dir="reordering_jigs_or_chunks", test="04_thermo_lmotor_anchor_stat_reordering_7") + def test_reordering_jigs_or_chunks_04_thermo_lmotor_anchor_stat_reordering_8(self): + JigTest(dir="reordering_jigs_or_chunks", test="04_thermo_lmotor_anchor_stat_reordering_8") + def test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_1(self): + JigTest(dir="reordering_jigs_or_chunks", test="05_thermo_lmotor_anchor_measurement_jigs_reordering_1") + def test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_2(self): + JigTest(dir="reordering_jigs_or_chunks", test="05_thermo_lmotor_anchor_measurement_jigs_reordering_2") + def test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_3(self): + JigTest(dir="reordering_jigs_or_chunks", test="05_thermo_lmotor_anchor_measurement_jigs_reordering_3") + def test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_4(self): + JigTest(dir="reordering_jigs_or_chunks", test="05_thermo_lmotor_anchor_measurement_jigs_reordering_4") + def test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_5(self): + JigTest(dir="reordering_jigs_or_chunks", test="05_thermo_lmotor_anchor_measurement_jigs_reordering_5") + def test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_6(self): + JigTest(dir="reordering_jigs_or_chunks", test="05_thermo_lmotor_anchor_measurement_jigs_reordering_6") + def test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_7(self): + JigTest(dir="reordering_jigs_or_chunks", test="05_thermo_lmotor_anchor_measurement_jigs_reordering_7") + def test_reordering_jigs_or_chunks_05_thermo_lmotor_anchor_measurement_jigs_reordering_8(self): + JigTest(dir="reordering_jigs_or_chunks", test="05_thermo_lmotor_anchor_measurement_jigs_reordering_8") + def test_temperature_tests_001_two_methanes_9A_apart_vdw_5(self): + JigTest(dir="temperature_tests", test="001_two_methanes_9A_apart_vdw_5") + def test_temperature_tests_002_two_methanes_10A_apart_vdw_6(self): + JigTest(dir="temperature_tests", test="002_two_methanes_10A_apart_vdw_6") + def test_temperature_tests_003_thermostat_test_1(self): + JigTest(dir="temperature_tests", test="003_thermostat_test_1") + def test_temperature_tests_003_thermostat_test_2(self): + JigTest(dir="temperature_tests", test="003_thermostat_test_2") + def test_temperature_tests_003_thermostat_test_3(self): + JigTest(dir="temperature_tests", test="003_thermostat_test_3") + def test_temperature_tests_003_thermostat_test_4(self): + JigTest(dir="temperature_tests", test="003_thermostat_test_4") + def test_temperature_tests_003_thermostat_test_5(self): + JigTest(dir="temperature_tests", test="003_thermostat_test_5") + def test_temperature_tests_003_thermostat_test(self): + JigTest(dir="temperature_tests", test="003_thermostat_test") + +class TwoStreamTextTestResult(unittest._TextTestResult): + + def __init__(self, progressStream, resultStream, descriptions, verbosity): + unittest._TextTestResult.__init__(self, unittest._WritelnDecorator(progressStream), descriptions, verbosity) + self.resultStream = unittest._WritelnDecorator(resultStream) + + def printErrorList(self, flavour, errors): + for test, err in errors: + self.resultStream.writeln(self.separator1) + self.resultStream.writeln("%s: %s" % (flavour,self.getDescription(test))) + self.resultStream.writeln(self.separator2) + self.resultStream.writeln("%s" % err) + + +class Main(unittest.TextTestRunner): + def main(self, args): + options = None + # Process command line arguments + def generate(x): + """update md5sums files according to current simulator + behavior + """ + global GENERATE + GENERATE = True + def md5check(x): + """perform MD5 checksum comparisons; useful for simulator + development + """ + global MD5_CHECKS + if sys.platform != "linux2": + raise SystemExit("MD5 checks supported only on Linux") + MD5_CHECKS = True + def lengths_angles(x): + """perform structure comparisons with known-good structures + computed by QM minimizations, comparing bond lengths and bond + angles + """ + global STRUCTURE_COMPARISON_TYPE + STRUCTURE_COMPARISON_TYPE = LENGTH_ANGLE_TEST + def structcompare(x): + """perform structure comparisons with known-good structures + computed by QM minimizations, using code in structcompare.c + """ + global STRUCTURE_COMPARISON_TYPE + STRUCTURE_COMPARISON_TYPE = STRUCTCOMPARE_C_TEST + def time_limit(x): + """do as many tests as possible in this many seconds + """ + assert x[:1] == "=" + global TIME_LIMIT + TIME_LIMIT = string.atof(x[1:]) + def pyrex(x): + """Perform the Pyrex tests + """ + for nm in dir(Tests): + if nm.startswith("test_") and not nm.startswith("test_pyrex"): + try: delattr(Tests, nm) + except AttributeError: pass + def loose(x): + """Loose tolerances on length and angle comparisons. + """ + global LOOSE_TOLERANCES + LOOSE_TOLERANCES = True + def medium(x): + """Moderate tolerances on length and angle comparisons. + """ + global MEDIUM_TOLERANCES + MEDIUM_TOLERANCES = True + def tight(x): + """Tight tolerances on length and angle comparisons. + """ + global TIGHT_TOLERANCES + TIGHT_TOLERANCES = True + def test_dir(x): + """which directory should we test + """ + assert x[:1] == "=" + x = x[1:] + assert x in ("minimize", "dynamics", "rigid_organics", + "amino_acids", "floppy_organics", + "heteroatom_organics") + global TEST_DIR + TEST_DIR = x + def list_everything(x): + """Instead of just showing the first failure for each test + case, show every non-compliant energy term + """ + global LIST_EVERYTHING + LIST_EVERYTHING = True + + def debug(x): + """debug this script + """ + global DEBUG + if x[:1] == "=": + DEBUG = string.atoi(x[1:]) + else: + DEBUG = 1 + def time_only(x): + """measure the time each test takes, ignore any results + """ + global TIME_ONLY, Tests + TIME_ONLY = True + def keep(x): + """when a test is finished, don't delete its temporary + directory (useful for debug) + """ + global KEEP_RESULTS + KEEP_RESULTS = True + def todo_tasks(x): + """reminders of what work still needs doing + """ + global SHOW_TODO, MD5_CHECKS + SHOW_TODO = True + # catch all the TODOs everywhere + MD5_CHECKS = True + def verbose_failures(x): + """print non-abbreviated assertion statements (useful for + debug) + """ + global VERBOSE_FAILURES + VERBOSE_FAILURES = True + def verbose_progress(x): + """print verbose test names as progress indicator instead of dots. + """ + self.verbosity = 2 + + def help(x): + """print help information + """ + print __doc__ + for opt in options: + print opt.__name__ + "\n " + opt.__doc__ + sys.exit(0) + + options = (md5check, + lengths_angles, + structcompare, + time_limit, + pyrex, + loose, + medium, + tight, + test_dir, + list_everything, + generate, + debug, + time_only, + keep, + todo_tasks, + verbose_failures, + verbose_progress, + help) + + # Default behavior is to do all the tests, including the slow ones, + # with loose tolerances, so things pass + defaultArgs = () + + if len(args) < 1: + args = defaultArgs + + for arg in args: + found = False + for opt in options: + nm = opt.__name__ + if arg.startswith(nm): + found = True + arg = arg[len(nm):] + opt(arg) + break + if not found: + print "Don't understand command line arg:", arg + print "Try typing: python tests.py help" + sys.exit(1) + + # For failures, don't usually bother with complete tracebacks, + # it's more information than we need. + def addFailure(self, test, err): + self.failures.append((test, traceback.format_exception(*err)[-1])) + if not VERBOSE_FAILURES: + unittest.TestResult.addFailure = addFailure + global LENGTH_TOLERANCE, ANGLE_TOLERANCE + if TIGHT_TOLERANCES: + LENGTH_TOLERANCE = 0.03 # angstroms + ANGLE_TOLERANCE = 3 # degrees + if MEDIUM_TOLERANCES: + LENGTH_TOLERANCE = 0.11 # angstroms + ANGLE_TOLERANCE = 12 # degrees + if LOOSE_TOLERANCES: + LENGTH_TOLERANCE = 0.138 # angstroms + ANGLE_TOLERANCE = 14.1 # degrees + + casenames = self.getCasenames() + self.run(unittest.TestSuite(map(Tests, casenames))) + + if TIME_ONLY: + lst = [ ] + for name in testTimes.keys(): + t = testTimes[name] + lst.append([t, name]) + lst.sort() + import pprint + pprint.pprint(map(lambda x: x[1], lst)) + else: + print len(casenames) - testsSkipped, "tests really done,", + print testsSkipped, "tests skipped" + + def getCasenames(self): + # Start with tests that appear both as entries in RANKED_BY_RUNTIME + # and _also_ as test cases in Tests. + casenames = filter(lambda x: hasattr(Tests, x), RANKED_BY_RUNTIME) + + if TIME_ONLY or GENERATE: + # Add any test cases in Tests that did not appear in RANKED_BY_RUNTIME. + for attr in dir(Tests): + if attr.startswith("test_") and attr not in casenames: + casenames.append(attr) + elif TEST_DIR != None: + # filter the results to only what we want + def filt(name): + return name.startswith("test_" + TEST_DIR) + casenames = filter(filt, casenames) + + return casenames + + def _getCasenames(self): + return [ + 'test_dynamics_small_bearing_01', + ] + + # send progress indicators to stderr (usually a terminal) + def _makeResult(self): + return TwoStreamTextTestResult(sys.stderr, sys.stdout, self.descriptions, self.verbosity) + + # send test results to stdout (can be easily redirected) + def __init__(self, stream=sys.stdout, descriptions=1, verbosity=1): + self.stream = unittest._WritelnDecorator(stream) + self.descriptions = descriptions + self.verbosity = verbosity + +""" +If you want some special selection of cases, you can do it like this: + +import sys +import tests + +class Main(tests.Main): + def getCasenames(self): + return [ + 'test_motors_011_rotarymotor_0_torque_and_0_speed', + 'test_motors_016_rotarymotor_negative_torque_and_0_speed', + 'test_motors_018_rotarymotor_positive_torque_and_0_speed', + 'test_motors_021_rotarymotor_dyno_jig_test_to_same_chunk', + ] + +Main().main(sys.argv[1:]) +""" + +########################################### + + +if __name__ == "__main__": + Main().main(sys.argv[1:]) diff --git a/sim/src/tests/amino_acids/Atom.py b/sim/src/tests/amino_acids/Atom.py new file mode 100755 index 000000000..de10aca58 --- /dev/null +++ b/sim/src/tests/amino_acids/Atom.py @@ -0,0 +1,66 @@ +#!/usr/bin/python + +"""MMP and XYZ files share a common Atom definition. This will +make it easy to move information back and forth between the two +formats. + +$Id$ +""" + +__author__ = "Will" + +import re +import os +import sys +import string +import random + +_PeriodicTable = [ + "X", # our singlet has element number zero + "H", "He", + "Li", "Be", "B", "C", "N", "O", "F", "Ne", + "Na", "Mg", "Al", "Si", "P", "S", "Cl", "Ar", + "K", "Ca" #Sc,Ti,V,Cr,Mn,Fe.... + ] + +_MmpAtomPattern = re.compile("^atom (\d+) \((\d+)\) " + + "\((\-?\d+), (\-?\d+), (\-?\d+)\)") + +class NotAtomException(Exception): + pass + +class Atom: + def fromMmp(self, line): + m = _MmpAtomPattern.match(line) + if m == None: + raise NotAtomException + groups = m.groups() + self.elem = elem = string.atoi(groups[1]) + str = "atom %s" % groups[0] + str += " (%s)" % groups[1] + str += " (%d, %d, %d)" + str += line[m.span()[1]:] # anything after position + self._mmpstr = str + self.x = 0.001 * string.atoi(groups[2]) + self.y = 0.001 * string.atoi(groups[3]) + self.z = 0.001 * string.atoi(groups[4]) + def clone(self): + "permit deep cloning of structure files" + a = Atom() + for key in self.__dict__.keys(): + setattr(a, key, getattr(self, key)) + return a + def fromXyz(self, element, x, y, z): + self.elem = _PeriodicTable.index(element) + self.x = x + self.y = y + self.z = z + def toMmpString(self): + return self._mmpstr % (int(self.x * 1000), + int(self.y * 1000), + int(self.z * 1000)) + def toXyzString(self): + element = _PeriodicTable[self.elem] + return "%s %f %f %f" % (element, self.x, self.y, self.z) + def __repr__(self): + return "<" + self.toXyzString() + ">" diff --git a/sim/src/tests/amino_acids/CreateTests.py b/sim/src/tests/amino_acids/CreateTests.py new file mode 100755 index 000000000..1194d799f --- /dev/null +++ b/sim/src/tests/amino_acids/CreateTests.py @@ -0,0 +1,55 @@ +#!/usr/bin/python + +import os +import sys +import MmpFile +import XyzFile + +damianFiles = ("ala_l_aminoacid.mmp", + "arg_l_aminoacid.mmp", + "asn_l_aminoacid.mmp", + "asp_l_aminoacid.mmp", + "cys_l_aminoacid.mmp", + "gln_l_aminoacid.mmp", + "glu_l_aminoacid.mmp", + "gly_l_aminoacid.mmp", + "his_l_aminoacid.mmp", + "ile_l_aminoacid.mmp", + "leu_l_aminoacid.mmp", + "lys_l_aminoacid.mmp", + "met_l_aminoacid.mmp", + "phe_l_aminoacid.mmp", + "pro_l_aminoacid.mmp", + "ser_l_aminoacid.mmp", + "thr_l_aminoacid.mmp", + "tyr_l_aminoacid.mmp", + "val_l_aminoacid.mmp") + +for df in damianFiles: + prefix = df[:df.index(".")] + testPrefix = "test_" + prefix + damianMmp = MmpFile.MmpFile() + damianMmp.read(df) + + # Generate the xyzcmp file + xyzcmpFilename = testPrefix + ".xyzcmp" + outf = open(xyzcmpFilename, "w") + xyzcmp = damianMmp.convertToXyz() + xyzcmp.write(df, outf) + outf.close() + + # Make a perturbed copy of the MMP, use it for test_{foo}.mmp + dmClone = damianMmp.clone() + dmClone.perturb() + testMmpFilename = testPrefix + ".mmp" + outf = open(testMmpFilename, "w") + dmClone.write(outf) + outf.close() + + # Create test_{foo}.test + testTestFilename = testPrefix + ".test" + outf = open(testTestFilename, "w") + outf.write("TYPE struct\n") + outf.close() + + print "Test input files generated for " + testPrefix diff --git a/sim/src/tests/amino_acids/MmpFile.py b/sim/src/tests/amino_acids/MmpFile.py new file mode 100755 index 000000000..9a2e9d81d --- /dev/null +++ b/sim/src/tests/amino_acids/MmpFile.py @@ -0,0 +1,123 @@ +#!/usr/bin/python + +"""Grab one of Damian's minimized MMP files, perturb each atom's +position by some fraction of an angstrom, write out the result as +another MMP file, which becomes an input file for the test. + +$Id$ +""" + +__author__ = "Will" + +import re +import os +import sys +import string +import Atom + +class MmpFile: + """This is meant to be a Python class representing a MMP file. It + is not intended to represent ALL the information in a MMP file, + although it might do that in some distant-future version. Right + now, its biggest strength is that it allows us to easily modify + the positions of the atoms in an MMP file, and write out the + resulting modified MMP file.""" + class _Line: + def fromMmp(self, line): + self._str = line + def str(self): + return self._str + def clone(self, owner): + ln = MmpFile._Line() + ln._str = self._str + return ln + class _AtomHolder: + """Atom holders are indices into the MmpFile.atoms list, + and that's done so that an entry in MmpFile.lines can be + a pointer into the MmpFile.atoms list. When a file is + cloned, we clone the atoms but keep the same lines. + """ + def __init__(self, owner): + self._owner = owner + def fromMmp(self, line): + atoms = self._owner.atoms + self._index = len(atoms) + a = Atom.Atom() + a.fromMmp(line) + atoms.append(a) + def str(self): + a = self._owner.atoms[self._index] + return a.toMmpString() + def clone(self, newowner): + other = MmpFile._AtomHolder(newowner) + other._index = self._index + return other + def __init__(self): + self.atoms = [ ] + self.lines = [ ] + def clone(self): + other = MmpFile() + for x in self.lines: + other.lines.append(x.clone(other)) + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + for line in lines.split("\n"): + try: + atm = MmpFile._AtomHolder(self) + atm.fromMmp(line) + except Atom.NotAtomException: + atm = MmpFile._Line() + atm.fromMmp(line) + self.lines.append(atm) + def write(self, outf=None): + if outf == None: + outf = sys.stdout + for ln in self.lines: + outf.write(ln.str() + "\n") + def convertToXyz(self): + import XyzFile + xyz = XyzFile.XyzFile() + for a in self.atoms: + xyz.atoms.append(a) + return xyz + def perturb(self): + import random + A = 0.5 # some small number of angstroms + A = A / (3 ** .5) # amount in one dimension + for i in range(len(self)): + x, y, z = self[i] + x += random.normalvariate(0.0, A) + y += random.normalvariate(0.0, A) + z += random.normalvariate(0.0, A) + self[i] = (x, y, z) + +if __name__ == "__main__": + """What follows is a specific usage of the MmpFile class. It's not + the only way it could be used, but it demonstrates something we're + going to want to do very soon as we generate test cases from + Damian's MMP files.""" + m = MmpFile() + #input = "C14H20.mmp" + input = "C3H8.mmp" + m.read(input) + m.perturb() + #outf = os.popen("diff -u - %s | less" % input, "w") + outf = os.popen("diff -u - %s" % input, "w") + m.write(outf) + outf.close() diff --git a/sim/src/tests/amino_acids/XyzFile.py b/sim/src/tests/amino_acids/XyzFile.py new file mode 100755 index 000000000..e614f1129 --- /dev/null +++ b/sim/src/tests/amino_acids/XyzFile.py @@ -0,0 +1,89 @@ +#!/usr/bin/python + +import sys +import string +import Atom + +class XyzFile: + """Python class to contain information from an XYZ file""" + def __init__(self): + self.atoms = [ ] + def clone(self): + other = XyzFile() + other.atoms = [ ] + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + lines = lines.split("\n") + numAtoms = string.atoi(lines[0]) + lines = lines[2:] + for i in range(numAtoms): + element, x, y, z = lines[i].split() + x, y, z = map(string.atof, (x, y, z)) + a = Atom.Atom() + a.fromXyz(element, x, y, z) + self.atoms.append(a) + def write(self, title, outf=None): + if outf == None: + outf = sys.stdout + outf.write("%d\n%s\n" % (len(self.atoms), title)) + for atm in self.atoms: + outf.write(atm.toXyzString() + "\n") + +if __name__ == "__main__": + # do a little test + class StringCollector: + def __init__(self): + self.contents = "" + def write(self, x): + self.contents += x + import sys + example_xyz_file = """15 +RMS=0.994508 +C -0.193641 2.900593 -0.026523 +X 0.093601 3.502437 0.394872 +X -0.623522 3.154064 -0.637458 +C -1.079249 2.005273 0.890906 +X -1.803795 1.958430 0.584626 +X -1.090331 2.310792 1.617200 +C 0.986482 2.029986 -0.552402 +X 0.945121 1.985940 -1.338110 +X 1.667645 2.347089 -0.314849 +C -0.443634 0.583852 0.936816 +X -0.955793 0.061908 0.643109 +X -0.248030 0.411844 1.680547 +C 0.839719 0.603152 0.054672 +X 1.466374 0.446893 0.504740 +X 0.762053 0.079748 -0.528147 +""" + xyz = XyzFile() + xyz.readstring(example_xyz_file) + # test 1 + sc = StringCollector() + ss, sys.stdout = sys.stdout, sc + xyz.write("RMS=0.994508") + sys.stdout = ss + assert sc.contents == example_xyz_file + # test 2 + for i in range(len(xyz)): + print xyz.getAtom(i) + print + for i in range(8): + xyz[i] = (1.0, 2.0, 3.0) + for i in range(len(xyz)): + print xyz.getAtom(i) diff --git a/sim/src/tests/amino_acids/ala_l_aminoacid.mmp b/sim/src/tests/amino_acids/ala_l_aminoacid.mmp new file mode 100755 index 000000000..8e030705f --- /dev/null +++ b/sim/src/tests/amino_acids/ala_l_aminoacid.mmp @@ -0,0 +1,42 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.582234, 0.652969, 0.295359, 0.383926) (6.382334) (-0.002500, 0.002500, 0.007500) (1.000000) +egroup (View Data) +group (ala) +info opengroup open = True +mol (ala.pdb) cpk +atom 1 (7) (-1020, 1690, 788) def +atom 2 (6) (-314, 412, 939) def +bond1 1 +atom 3 (8) (1971, 99, 151) def +info atom atomtype = sp2 +atom 4 (8) (357, 582, -1345) def +atom 5 (6) (-1204, -843, 832) def +bond1 2 +atom 6 (1) (-1739, 1763, 1505) def +bond1 1 +atom 7 (1) (-1494, 1710, -112) def +bond1 1 +atom 8 (1) (189, 415, 1910) def +bond1 2 +atom 9 (1) (-1966, -822, 1619) def +bond1 5 +atom 10 (1) (-627, -1768, 948) def +bond1 5 +atom 11 (1) (-1711, -872, -138) def +bond1 5 +atom 12 (1) (1136, 532, -1925) def +bond1 4 +atom 13 (6) (786, 354, -75) def +info atom atomtype = sp2 +bond1 4 2 +bond2 3 +egroup (ala) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ala diff --git a/sim/src/tests/amino_acids/ala_l_aminoacid.pdb b/sim/src/tests/amino_acids/ala_l_aminoacid.pdb new file mode 100755 index 000000000..82089b9b6 --- /dev/null +++ b/sim/src/tests/amino_acids/ala_l_aminoacid.pdb @@ -0,0 +1,30 @@ +COMPND ala.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 -1.020 1.690 0.788 1.00 0.00 N +HETATM 2 C LIG 1 -0.314 0.412 0.939 1.00 0.00 C +HETATM 3 C LIG 1 0.812 0.351 -0.086 1.00 0.00 C +HETATM 4 O LIG 1 1.971 0.099 0.151 1.00 0.00 O +HETATM 5 O LIG 1 0.357 0.582 -1.345 1.00 0.00 O +HETATM 6 C LIG 1 -1.204 -0.843 0.832 1.00 0.00 C +HETATM 7 H LIG 1 -1.739 1.763 1.505 1.00 0.00 H +HETATM 8 H LIG 1 -1.494 1.710 -0.112 1.00 0.00 H +HETATM 9 H LIG 1 0.189 0.415 1.910 1.00 0.00 H +HETATM 10 H LIG 1 -1.966 -0.822 1.619 1.00 0.00 H +HETATM 11 H LIG 1 -0.627 -1.768 0.948 1.00 0.00 H +HETATM 12 H LIG 1 -1.711 -0.872 -0.138 1.00 0.00 H +HETATM 13 H LIG 1 1.136 0.532 -1.925 1.00 0.00 H +CONECT 1 8 2 7 +CONECT 2 3 1 6 9 +CONECT 3 5 4 2 +CONECT 4 3 +CONECT 5 13 3 +CONECT 6 12 2 11 10 +CONECT 7 1 +CONECT 8 1 +CONECT 9 2 +CONECT 10 6 +CONECT 11 6 +CONECT 12 6 +CONECT 13 5 +MASTER 0 0 0 0 0 0 0 0 13 0 13 0 +END diff --git a/sim/src/tests/amino_acids/arg_l_aminoacid.mmp b/sim/src/tests/amino_acids/arg_l_aminoacid.mmp new file mode 100755 index 000000000..ddb8855d0 --- /dev/null +++ b/sim/src/tests/amino_acids/arg_l_aminoacid.mmp @@ -0,0 +1,71 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.662418, -0.588012, -0.013645, -0.463959) (9.100047) (-0.149000, -0.048000, 0.482000) (1.000000) +egroup (View Data) +group (arg) +info opengroup open = True +mol (arg.pdb) cpk +atom 1 (7) (973, 2025, 1281) def +atom 2 (6) (1600, 761, 1673) def +bond1 1 +atom 3 (6) (2908, 568, 909) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (3334, -482, 482) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (3608, 1726, 815) def +bond1 3 +atom 6 (6) (656, -430, 1459) def +bond1 2 +atom 7 (6) (52, -528, 52) def +bond1 6 +atom 8 (6) (-663, -1870, -165) def +bond1 7 +atom 9 (7) (-1247, -2041, -1499) def +bond1 8 +atom 10 (6) (-2344, -1298, -1939) def +info atom atomtype = sp2 +bond1 9 +atom 11 (7) (-2546, -843, -3123) def +info atom atomtype = sp2 +bond2 10 +atom 12 (7) (-3308, -1073, -950) def +bond1 10 +atom 13 (1) (1631, 2790, 1404) def +bond1 1 +atom 14 (1) (177, 2210, 1886) def +bond1 1 +atom 15 (1) (1917, 744, 2737) def +bond1 2 +atom 16 (1) (-148, -366, 2206) def +bond1 6 +atom 17 (1) (1219, -1342, 1687) def +bond1 6 +atom 18 (1) (846, -427, -698) def +bond1 7 +atom 19 (1) (-652, 291, -117) def +bond1 7 +atom 20 (1) (45, -2694, -18) def +bond1 8 +atom 21 (1) (4431, 1510, 344) def +bond1 5 +atom 22 (1) (-1449, -2000, 587) def +bond1 8 +atom 23 (1) (-545, -2128, -2225) def +bond1 9 +atom 24 (1) (-1711, -950, -3701) def +bond1 11 +atom 25 (1) (-4133, -663, -1369) def +bond1 12 +atom 26 (1) (-3534, -1896, -402) def +bond1 12 +egroup (arg) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part arg diff --git a/sim/src/tests/amino_acids/arg_l_aminoacid.pdb b/sim/src/tests/amino_acids/arg_l_aminoacid.pdb new file mode 100755 index 000000000..27b14180d --- /dev/null +++ b/sim/src/tests/amino_acids/arg_l_aminoacid.pdb @@ -0,0 +1,56 @@ +COMPND arg.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 N UNK 0 0.973 2.026 1.281 1.00 0.00 N +ATOM 2 C UNK 0 1.600 0.761 1.673 1.00 0.00 C +ATOM 3 C UNK 0 2.908 0.568 0.909 1.00 0.00 C +ATOM 4 O UNK 0 3.334 -0.482 0.482 1.00 0.00 O +ATOM 5 O UNK 0 3.608 1.726 0.815 1.00 0.00 O +ATOM 6 C UNK 0 0.656 -0.430 1.459 1.00 0.00 C +ATOM 7 C UNK 0 0.052 -0.528 0.052 1.00 0.00 C +ATOM 8 C UNK 0 -0.663 -1.870 -0.165 1.00 0.00 C +ATOM 9 N UNK 0 -1.247 -2.042 -1.499 1.00 0.00 N +ATOM 10 C UNK 0 -2.344 -1.298 -1.939 1.00 0.00 C +ATOM 11 N UNK 0 -2.546 -0.843 -3.123 1.00 0.00 N +ATOM 12 N UNK 0 -3.308 -1.073 -0.950 1.00 0.00 N +ATOM 13 H UNK 0 1.631 2.790 1.404 1.00 0.00 H +ATOM 14 H UNK 0 0.177 2.210 1.886 1.00 0.00 H +ATOM 15 H UNK 0 1.917 0.744 2.737 1.00 0.00 H +ATOM 16 H UNK 0 -0.148 -0.366 2.206 1.00 0.00 H +ATOM 17 H UNK 0 1.219 -1.342 1.687 1.00 0.00 H +ATOM 18 H UNK 0 0.846 -0.427 -0.698 1.00 0.00 H +ATOM 19 H UNK 0 -0.652 0.291 -0.117 1.00 0.00 H +ATOM 20 H UNK 0 0.045 -2.694 -0.018 1.00 0.00 H +ATOM 21 H UNK 0 4.431 1.510 0.344 1.00 0.00 H +ATOM 22 H UNK 0 -1.449 -2.000 0.587 1.00 0.00 H +ATOM 23 H UNK 0 -0.545 -2.128 -2.225 1.00 0.00 H +ATOM 24 H UNK 0 -1.711 -0.950 -3.701 1.00 0.00 H +ATOM 25 H UNK 0 -4.133 -0.663 -1.369 1.00 0.00 H +ATOM 26 H UNK 0 -3.534 -1.896 -0.402 1.00 0.00 H +CONECT 1 13 2 14 +CONECT 2 3 1 6 15 +CONECT 3 4 5 2 +CONECT 4 3 +CONECT 5 21 3 +CONECT 6 7 2 17 16 +CONECT 7 18 8 19 6 +CONECT 8 9 20 7 22 +CONECT 9 23 10 8 +CONECT 10 11 9 12 +CONECT 11 24 10 +CONECT 12 10 25 26 +CONECT 13 1 +CONECT 14 1 +CONECT 15 2 +CONECT 16 6 +CONECT 17 6 +CONECT 18 7 +CONECT 19 7 +CONECT 20 8 +CONECT 21 5 +CONECT 22 8 +CONECT 23 9 +CONECT 24 11 +CONECT 25 12 +CONECT 26 12 +MASTER 0 0 0 0 0 0 0 0 26 0 26 0 +END diff --git a/sim/src/tests/amino_acids/asn_l_aminoacid.mmp b/sim/src/tests/amino_acids/asn_l_aminoacid.mmp new file mode 100755 index 000000000..98af2fd02 --- /dev/null +++ b/sim/src/tests/amino_acids/asn_l_aminoacid.mmp @@ -0,0 +1,53 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.890178, -0.410306, -0.169994, 0.101663) (6.993820) (0.088000, -0.255000, -0.080000) (1.000000) +egroup (View Data) +group (asn) +info opengroup open = True +mol (asn.pdb) cpk +atom 1 (7) (-747, 1499, 840) def +atom 2 (6) (311, 492, 972) def +bond1 1 +atom 3 (6) (1458, 588, -41) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2571, 152, 144) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (1085, 1199, -1191) def +bond1 3 +atom 6 (6) (-280, -941, 934) def +bond1 2 +atom 7 (6) (-994, -1260, -380) def +info atom atomtype = sp2 +bond1 6 +atom 8 (8) (-462, -1888, -1283) def +info atom atomtype = sp2 +bond2 7 +atom 9 (7) (-2277, -786, -455) def +bond1 7 +atom 10 (1) (-406, 2398, 1170) def +bond1 1 +atom 11 (1) (-965, 1630, -146) def +bond1 1 +atom 12 (1) (782, 612, 1952) def +bond1 2 +atom 13 (1) (-975, -1031, 1775) def +bond1 6 +atom 14 (1) (524, -1671, 1051) def +bond1 6 +atom 15 (1) (1847, 1137, -1792) def +bond1 5 +atom 16 (1) (-2597, -96, 210) def +bond1 9 +atom 17 (1) (-2747, -861, -1346) def +bond1 9 +egroup (asn) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part asn diff --git a/sim/src/tests/amino_acids/asn_l_aminoacid.pdb b/sim/src/tests/amino_acids/asn_l_aminoacid.pdb new file mode 100755 index 000000000..8769b7c79 --- /dev/null +++ b/sim/src/tests/amino_acids/asn_l_aminoacid.pdb @@ -0,0 +1,38 @@ +COMPND asn.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 -0.747 1.499 0.840 1.00 0.00 N +HETATM 2 C LIG 1 0.311 0.492 0.972 1.00 0.00 C +HETATM 3 C LIG 1 1.458 0.588 -0.041 1.00 0.00 C +HETATM 4 O LIG 1 2.571 0.152 0.144 1.00 0.00 O +HETATM 5 O LIG 1 1.085 1.199 -1.191 1.00 0.00 O +HETATM 6 C LIG 1 -0.280 -0.941 0.934 1.00 0.00 C +HETATM 7 C LIG 1 -0.994 -1.260 -0.380 1.00 0.00 C +HETATM 8 O LIG 1 -0.462 -1.888 -1.283 1.00 0.00 O +HETATM 9 N LIG 1 -2.277 -0.786 -0.455 1.00 0.00 N +HETATM 10 H LIG 1 -0.406 2.398 1.170 1.00 0.00 H +HETATM 11 H LIG 1 -0.965 1.630 -0.146 1.00 0.00 H +HETATM 12 H LIG 1 0.782 0.612 1.952 1.00 0.00 H +HETATM 13 H LIG 1 -0.975 -1.031 1.775 1.00 0.00 H +HETATM 14 H LIG 1 0.524 -1.671 1.051 1.00 0.00 H +HETATM 15 H LIG 1 1.847 1.137 -1.792 1.00 0.00 H +HETATM 16 H LIG 1 -2.597 -0.096 0.210 1.00 0.00 H +HETATM 17 H LIG 1 -2.747 -0.861 -1.346 1.00 0.00 H +CONECT 1 11 2 10 +CONECT 2 3 1 6 12 +CONECT 3 5 4 2 +CONECT 4 3 +CONECT 5 15 3 +CONECT 6 7 2 14 13 +CONECT 7 8 9 6 +CONECT 8 7 +CONECT 9 17 7 16 +CONECT 10 1 +CONECT 11 1 +CONECT 12 2 +CONECT 13 6 +CONECT 14 6 +CONECT 15 5 +CONECT 16 9 +CONECT 17 9 +MASTER 0 0 0 0 0 0 0 0 17 0 17 0 +END diff --git a/sim/src/tests/amino_acids/asp_l_aminoacid.mmp b/sim/src/tests/amino_acids/asp_l_aminoacid.mmp new file mode 100755 index 000000000..159b524b3 --- /dev/null +++ b/sim/src/tests/amino_acids/asp_l_aminoacid.mmp @@ -0,0 +1,51 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.900203, -0.415698, 0.004624, -0.129644) (6.895229) (0.026500, 0.052000, -0.042500) (1.000000) +egroup (View Data) +group (asp) +info opengroup open = True +mol (asp.pdb) cpk +atom 1 (7) (-959, 1313, 839) def +atom 2 (6) (39, 256, 936) def +bond1 1 +atom 3 (6) (1211, 331, -55) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2345, -16, 187) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (831, 818, -1264) def +bond1 3 +atom 6 (6) (-625, -1144, 834) def +bond1 2 +atom 7 (6) (-1108, -1500, -557) def +info atom atomtype = sp2 +bond1 6 +atom 8 (8) (-607, -2325, -1286) def +info atom atomtype = sp2 +bond2 7 +atom 9 (8) (-2191, -766, -929) def +bond1 7 +atom 10 (1) (-509, 2221, 919) def +bond1 1 +atom 11 (1) (-1409, 1280, -71) def +bond1 1 +atom 12 (1) (505, 305, 1924) def +bond1 2 +atom 13 (1) (-1474, -1146, 1525) def +bond1 6 +atom 14 (1) (92, -1912, 1129) def +bond1 6 +atom 15 (1) (-2398, -1040, -1839) def +bond1 9 +atom 16 (1) (1620, 775, -1831) def +bond1 5 +egroup (asp) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part asp diff --git a/sim/src/tests/amino_acids/asp_l_aminoacid.pdb b/sim/src/tests/amino_acids/asp_l_aminoacid.pdb new file mode 100755 index 000000000..d2f510d82 --- /dev/null +++ b/sim/src/tests/amino_acids/asp_l_aminoacid.pdb @@ -0,0 +1,36 @@ +COMPND asp.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 -0.959 1.313 0.839 1.00 0.00 N +HETATM 2 C LIG 1 0.039 0.256 0.936 1.00 0.00 C +HETATM 3 C LIG 1 1.211 0.331 -0.055 1.00 0.00 C +HETATM 4 O LIG 1 2.345 -0.016 0.187 1.00 0.00 O +HETATM 5 O LIG 1 0.831 0.818 -1.264 1.00 0.00 O +HETATM 6 C LIG 1 -0.625 -1.144 0.834 1.00 0.00 C +HETATM 7 C LIG 1 -1.108 -1.500 -0.557 1.00 0.00 C +HETATM 8 O LIG 1 -0.607 -2.325 -1.286 1.00 0.00 O +HETATM 9 O LIG 1 -2.191 -0.766 -0.929 1.00 0.00 O +HETATM 10 H LIG 1 -0.509 2.221 0.919 1.00 0.00 H +HETATM 11 H LIG 1 -1.409 1.280 -0.071 1.00 0.00 H +HETATM 12 H LIG 1 0.505 0.305 1.924 1.00 0.00 H +HETATM 13 H LIG 1 -1.474 -1.146 1.525 1.00 0.00 H +HETATM 14 H LIG 1 0.092 -1.912 1.129 1.00 0.00 H +HETATM 15 H LIG 1 -2.398 -1.040 -1.839 1.00 0.00 H +HETATM 16 H LIG 1 1.620 0.775 -1.831 1.00 0.00 H +CONECT 1 11 10 2 +CONECT 2 3 6 1 12 +CONECT 3 5 4 2 +CONECT 4 3 +CONECT 5 16 3 +CONECT 6 7 2 14 13 +CONECT 7 8 9 6 +CONECT 8 7 +CONECT 9 15 7 +CONECT 10 1 +CONECT 11 1 +CONECT 12 2 +CONECT 13 6 +CONECT 14 6 +CONECT 15 9 +CONECT 16 5 +MASTER 0 0 0 0 0 0 0 0 16 0 16 0 +END diff --git a/sim/src/tests/amino_acids/cys_l_aminoacid.mmp b/sim/src/tests/amino_acids/cys_l_aminoacid.mmp new file mode 100755 index 000000000..96271eb9e --- /dev/null +++ b/sim/src/tests/amino_acids/cys_l_aminoacid.mmp @@ -0,0 +1,45 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.802119, -0.495711, -0.045853, 0.329809) (6.476213) (0.038000, -0.104000, 0.017000) (1.000000) +egroup (View Data) +group (cys) +info opengroup open = True +mol (cys.pdb) cpk +atom 1 (7) (1173, 1267, 666) def +atom 2 (6) (42, 351, 686) def +bond1 1 +atom 3 (6) (48, -751, -385) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (-927, -1181, -965) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (1291, -1245, -593) def +bond1 3 +atom 6 (6) (-1288, 1115, 659) def +bond1 2 +atom 7 (16) (-1537, 2160, -841) def +bond1 6 +atom 8 (1) (2048, 751, 625) def +bond1 1 +atom 9 (1) (1122, 1842, -174) def +bond1 1 +atom 10 (1) (75, -196, 1643) def +bond1 2 +atom 11 (1) (-1811, 1138, -1677) def +bond1 7 +atom 12 (1) (-2124, 422, 745) def +bond1 6 +atom 13 (1) (-1309, 1807, 1504) def +bond1 6 +atom 14 (1) (1197, -1952, -1255) def +bond1 5 +egroup (cys) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part cys diff --git a/sim/src/tests/amino_acids/cys_l_aminoacid.pdb b/sim/src/tests/amino_acids/cys_l_aminoacid.pdb new file mode 100755 index 000000000..9f6d17bae --- /dev/null +++ b/sim/src/tests/amino_acids/cys_l_aminoacid.pdb @@ -0,0 +1,32 @@ +COMPND cys.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 1.173 1.267 0.666 1.00 0.00 N +HETATM 2 C LIG 1 0.042 0.351 0.686 1.00 0.00 C +HETATM 3 C LIG 1 0.048 -0.751 -0.385 1.00 0.00 C +HETATM 4 O LIG 1 -0.927 -1.181 -0.965 1.00 0.00 O +HETATM 5 O LIG 1 1.291 -1.245 -0.593 1.00 0.00 O +HETATM 6 C LIG 1 -1.288 1.115 0.659 1.00 0.00 C +HETATM 7 S LIG 1 -1.537 2.160 -0.841 1.00 0.00 S +HETATM 8 H LIG 1 2.048 0.751 0.625 1.00 0.00 H +HETATM 9 H LIG 1 1.122 1.842 -0.174 1.00 0.00 H +HETATM 10 H LIG 1 0.075 -0.196 1.643 1.00 0.00 H +HETATM 11 H LIG 1 -1.811 1.138 -1.677 1.00 0.00 H +HETATM 12 H LIG 1 -2.124 0.422 0.745 1.00 0.00 H +HETATM 13 H LIG 1 -1.309 1.807 1.504 1.00 0.00 H +HETATM 14 H LIG 1 1.197 -1.952 -1.255 1.00 0.00 H +CONECT 1 9 8 2 +CONECT 2 3 6 1 10 +CONECT 3 4 5 2 +CONECT 4 3 +CONECT 5 14 3 +CONECT 6 7 2 12 13 +CONECT 7 11 6 +CONECT 8 1 +CONECT 9 1 +CONECT 10 2 +CONECT 11 7 +CONECT 12 6 +CONECT 13 6 +CONECT 14 5 +MASTER 0 0 0 0 0 0 0 0 14 0 14 0 +END diff --git a/sim/src/tests/amino_acids/gln_l_aminoacid.mmp b/sim/src/tests/amino_acids/gln_l_aminoacid.mmp new file mode 100755 index 000000000..40b677886 --- /dev/null +++ b/sim/src/tests/amino_acids/gln_l_aminoacid.mmp @@ -0,0 +1,59 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.157330, -0.957351, 0.061080, -0.234511) (7.740785) (0.004000, 0.062000, 0.178000) (1.000000) +egroup (View Data) +group (gln) +info opengroup open = True +mol (gln.pdb) cpk +atom 1 (7) (-33, 2035, 687) def +atom 2 (6) (903, 915, 760) def +bond1 1 +atom 3 (6) (1992, 873, -319) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (3051, 297, -210) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (1636, 1528, -1458) def +bond1 3 +atom 6 (6) (155, -440, 784) def +bond1 2 +atom 7 (6) (-795, -647, -397) def +bond1 6 +atom 8 (6) (-1455, -2025, -366) def +info atom atomtype = sp2 +bond1 7 +atom 9 (8) (-1010, -2966, 277) def +info atom atomtype = sp2 +bond2 8 +atom 10 (7) (-2569, -2144, -1153) def +bond1 8 +atom 11 (1) (-353, 2153, -271) def +bond1 1 +atom 12 (1) (444, 2902, 925) def +bond1 1 +atom 13 (1) (1452, 986, 1704) def +bond1 2 +atom 14 (1) (-415, -480, 1717) def +bond1 6 +atom 15 (1) (883, -1255, 819) def +bond1 6 +atom 16 (1) (-261, -557, -1353) def +bond1 7 +atom 17 (1) (-1572, 128, -400) def +bond1 7 +atom 18 (1) (2381, 1409, -2073) def +bond1 5 +atom 19 (1) (-3003, -1351, -1596) def +bond1 10 +atom 20 (1) (-3059, -3026, -1146) def +bond1 10 +egroup (gln) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part gln diff --git a/sim/src/tests/amino_acids/gln_l_aminoacid.pdb b/sim/src/tests/amino_acids/gln_l_aminoacid.pdb new file mode 100755 index 000000000..cccb507e5 --- /dev/null +++ b/sim/src/tests/amino_acids/gln_l_aminoacid.pdb @@ -0,0 +1,44 @@ +COMPND gln.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 N UNK 0 -0.033 2.035 0.687 1.00 0.00 N +ATOM 2 C UNK 0 0.903 0.915 0.760 1.00 0.00 C +ATOM 3 C UNK 0 1.992 0.873 -0.319 1.00 0.00 C +ATOM 4 O UNK 0 3.051 0.297 -0.210 1.00 0.00 O +ATOM 5 O UNK 0 1.636 1.528 -1.458 1.00 0.00 O +ATOM 6 C UNK 0 0.155 -0.440 0.784 1.00 0.00 C +ATOM 7 C UNK 0 -0.795 -0.647 -0.397 1.00 0.00 C +ATOM 8 C UNK 0 -1.455 -2.026 -0.366 1.00 0.00 C +ATOM 9 O UNK 0 -1.011 -2.966 0.277 1.00 0.00 O +ATOM 10 N UNK 0 -2.569 -2.144 -1.153 1.00 0.00 N +ATOM 11 H UNK 0 -0.353 2.153 -0.271 1.00 0.00 H +ATOM 12 H UNK 0 0.444 2.902 0.925 1.00 0.00 H +ATOM 13 H UNK 0 1.452 0.986 1.704 1.00 0.00 H +ATOM 14 H UNK 0 -0.415 -0.480 1.717 1.00 0.00 H +ATOM 15 H UNK 0 0.883 -1.255 0.819 1.00 0.00 H +ATOM 16 H UNK 0 -0.261 -0.557 -1.353 1.00 0.00 H +ATOM 17 H UNK 0 -1.572 0.128 -0.400 1.00 0.00 H +ATOM 18 H UNK 0 2.381 1.409 -2.073 1.00 0.00 H +ATOM 19 H UNK 0 -3.003 -1.351 -1.596 1.00 0.00 H +ATOM 20 H UNK 0 -3.059 -3.026 -1.146 1.00 0.00 H +CONECT 1 11 2 12 +CONECT 2 3 1 6 13 +CONECT 3 5 4 2 +CONECT 4 3 +CONECT 5 18 3 +CONECT 6 7 2 15 14 +CONECT 7 16 17 8 6 +CONECT 8 10 7 9 +CONECT 9 8 +CONECT 10 19 20 8 +CONECT 11 1 +CONECT 12 1 +CONECT 13 2 +CONECT 14 6 +CONECT 15 6 +CONECT 16 7 +CONECT 17 7 +CONECT 18 5 +CONECT 19 10 +CONECT 20 10 +MASTER 0 0 0 0 0 0 0 0 20 0 20 0 +END diff --git a/sim/src/tests/amino_acids/glu_l_aminoacid.mmp b/sim/src/tests/amino_acids/glu_l_aminoacid.mmp new file mode 100755 index 000000000..4e7f770cc --- /dev/null +++ b/sim/src/tests/amino_acids/glu_l_aminoacid.mmp @@ -0,0 +1,57 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.961445, -0.091404, -0.228656, -0.122410) (7.528428) (-0.025000, 0.138000, -0.073000) (1.000000) +egroup (View Data) +group (glu) +info opengroup open = True +mol (glu.pdb) cpk +atom 1 (7) (-510, 1988, -10) def +atom 2 (6) (438, 1024, 553) def +bond1 1 +atom 3 (6) (1753, 1049, -223) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2465, 94, -433) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (2090, 2306, -607) def +bond1 3 +atom 6 (6) (-170, -388, 586) def +bond1 2 +atom 7 (6) (-614, -894, -798) def +bond1 6 +atom 8 (6) (-1407, -2178, -748) def +info atom atomtype = sp2 +bond1 7 +atom 9 (8) (-1193, -3174, -1404) def +info atom atomtype = sp2 +bond2 8 +atom 10 (8) (-2450, -2105, 126) def +bond1 8 +atom 11 (1) (-69, 2898, -106) def +bond1 1 +atom 12 (1) (-1298, 2095, 624) def +bond1 1 +atom 13 (1) (742, 1266, 1590) def +bond1 2 +atom 14 (1) (-1033, -368, 1260) def +bond1 6 +atom 15 (1) (566, -1073, 1016) def +bond1 6 +atom 16 (1) (247, -1071, -1444) def +bond1 7 +atom 17 (1) (-1243, -125, -1264) def +bond1 7 +atom 18 (1) (-2896, -2967, 73) def +bond1 10 +atom 19 (1) (2946, 2232, -1062) def +bond1 5 +egroup (glu) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part glu diff --git a/sim/src/tests/amino_acids/glu_l_aminoacid.pdb b/sim/src/tests/amino_acids/glu_l_aminoacid.pdb new file mode 100755 index 000000000..17c5d24ed --- /dev/null +++ b/sim/src/tests/amino_acids/glu_l_aminoacid.pdb @@ -0,0 +1,42 @@ +COMPND glu.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 N UNK 0 -0.510 1.988 -0.010 1.00 0.00 N +ATOM 2 C UNK 0 0.438 1.024 0.553 1.00 0.00 C +ATOM 3 C UNK 0 1.753 1.049 -0.223 1.00 0.00 C +ATOM 4 O UNK 0 2.465 0.094 -0.433 1.00 0.00 O +ATOM 5 O UNK 0 2.090 2.306 -0.607 1.00 0.00 O +ATOM 6 C UNK 0 -0.170 -0.388 0.586 1.00 0.00 C +ATOM 7 C UNK 0 -0.614 -0.894 -0.798 1.00 0.00 C +ATOM 8 C UNK 0 -1.407 -2.178 -0.748 1.00 0.00 C +ATOM 9 O UNK 0 -1.193 -3.174 -1.404 1.00 0.00 O +ATOM 10 O UNK 0 -2.450 -2.105 0.126 1.00 0.00 O +ATOM 11 H UNK 0 -0.069 2.898 -0.106 1.00 0.00 H +ATOM 12 H UNK 0 -1.298 2.095 0.624 1.00 0.00 H +ATOM 13 H UNK 0 0.742 1.266 1.590 1.00 0.00 H +ATOM 14 H UNK 0 -1.033 -0.368 1.260 1.00 0.00 H +ATOM 15 H UNK 0 0.566 -1.073 1.016 1.00 0.00 H +ATOM 16 H UNK 0 0.247 -1.071 -1.444 1.00 0.00 H +ATOM 17 H UNK 0 -1.243 -0.125 -1.264 1.00 0.00 H +ATOM 18 H UNK 0 -2.896 -2.967 0.073 1.00 0.00 H +ATOM 19 H UNK 0 2.946 2.232 -1.062 1.00 0.00 H +CONECT 1 11 2 12 +CONECT 2 3 1 6 13 +CONECT 3 5 4 2 +CONECT 4 3 +CONECT 5 19 3 +CONECT 6 7 2 15 14 +CONECT 7 16 17 8 6 +CONECT 8 9 7 10 +CONECT 9 8 +CONECT 10 8 18 +CONECT 11 1 +CONECT 12 1 +CONECT 13 2 +CONECT 14 6 +CONECT 15 6 +CONECT 16 7 +CONECT 17 7 +CONECT 18 10 +CONECT 19 5 +MASTER 0 0 0 0 0 0 0 0 19 0 19 0 +END diff --git a/sim/src/tests/amino_acids/gly_l_aminoacid.mmp b/sim/src/tests/amino_acids/gly_l_aminoacid.mmp new file mode 100755 index 000000000..a24fe9607 --- /dev/null +++ b/sim/src/tests/amino_acids/gly_l_aminoacid.mmp @@ -0,0 +1,37 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.666957, -0.567023, -0.280993, 0.393314) (6.143509) (-0.207500, 0.029500, -0.047000) (1.000000) +egroup (View Data) +group (gly) +info opengroup open = True +mol (gly.pdb) cpk +atom 1 (7) (-1277, 490, 728) def +atom 2 (6) (-217, -482, 958) def +bond1 1 +atom 3 (6) (939, -526, -40) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2075, -853, 222) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (549, -180, -1294) def +bond1 3 +atom 6 (1) (-887, 1430, 747) def +bond1 1 +atom 7 (1) (-1660, 365, -206) def +bond1 1 +atom 8 (1) (230, -328, 1944) def +bond1 2 +atom 9 (1) (-655, -1489, 970) def +bond1 2 +atom 10 (1) (1342, -261, -1850) def +bond1 5 +egroup (gly) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part gly diff --git a/sim/src/tests/amino_acids/gly_l_aminoacid.pdb b/sim/src/tests/amino_acids/gly_l_aminoacid.pdb new file mode 100755 index 000000000..2145737b6 --- /dev/null +++ b/sim/src/tests/amino_acids/gly_l_aminoacid.pdb @@ -0,0 +1,24 @@ +COMPND gly.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 -1.277 0.490 0.728 1.00 0.00 N +HETATM 2 C LIG 1 -0.217 -0.482 0.958 1.00 0.00 C +HETATM 3 C LIG 1 0.939 -0.526 -0.040 1.00 0.00 C +HETATM 4 O LIG 1 2.075 -0.853 0.222 1.00 0.00 O +HETATM 5 O LIG 1 0.549 -0.180 -1.294 1.00 0.00 O +HETATM 6 H LIG 1 -0.887 1.430 0.747 1.00 0.00 H +HETATM 7 H LIG 1 -1.660 0.365 -0.206 1.00 0.00 H +HETATM 8 H LIG 1 0.230 -0.328 1.944 1.00 0.00 H +HETATM 9 H LIG 1 -0.655 -1.489 0.970 1.00 0.00 H +HETATM 10 H LIG 1 1.342 -0.261 -1.850 1.00 0.00 H +CONECT 1 7 6 2 +CONECT 2 3 1 9 8 +CONECT 3 5 4 2 +CONECT 4 3 +CONECT 5 10 3 +CONECT 6 1 +CONECT 7 1 +CONECT 8 2 +CONECT 9 2 +CONECT 10 5 +MASTER 0 0 0 0 0 0 0 0 10 0 10 0 +END diff --git a/sim/src/tests/amino_acids/his_l_aminoacid.mmp b/sim/src/tests/amino_acids/his_l_aminoacid.mmp new file mode 100755 index 000000000..6396e2c4a --- /dev/null +++ b/sim/src/tests/amino_acids/his_l_aminoacid.mmp @@ -0,0 +1,61 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.102615, -0.654325, 0.632374, 0.401788) (8.033081) (-0.152500, -0.121500, -0.383000) (1.000000) +egroup (View Data) +group (his) +info opengroup open = True +mol (his.pdb) cpk +atom 1 (7) (-482, 2110, -208) def +atom 2 (6) (667, 1207, -318) def +bond1 1 +atom 3 (6) (1564, 1564, -1517) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (1198, 2268, -2426) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (2799, 1004, -1534) def +bond1 3 +atom 6 (6) (176, -262, -452) def +bond1 2 +atom 7 (6) (-505, -770, 779) def +info atom atomtype = sp2 +bond1 6 +atom 8 (6) (-397, -1940, 1498) def +info atom atomtype = sp2 +bond2 7 +atom 9 (7) (-1265, -1944, 2567) def +info atom atomtype = sp2 +bond1 8 +atom 10 (6) (-1893, -787, 2500) def +info atom atomtype = sp2 +bond2 9 +atom 11 (7) (-1479, -43, 1435) def +bond1 7 10 +atom 12 (1) (-160, 3025, 104) def +bond1 1 +atom 13 (1) (-834, 2267, -1153) def +bond1 1 +atom 14 (1) (1257, 1288, 605) def +bond1 2 +atom 15 (1) (1020, -921, -682) def +bond1 6 +atom 16 (1) (-491, -304, -1326) def +bond1 6 +atom 17 (1) (253, -2782, 1298) def +bond1 8 +atom 18 (1) (2953, 499, -722) def +bond1 5 +atom 19 (1) (-1706, 910, 1166) def +bond1 11 +atom 20 (1) (-2648, -439, 3192) def +bond1 10 +egroup (his) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part his diff --git a/sim/src/tests/amino_acids/his_l_aminoacid.pdb b/sim/src/tests/amino_acids/his_l_aminoacid.pdb new file mode 100755 index 000000000..ba2ba91bb --- /dev/null +++ b/sim/src/tests/amino_acids/his_l_aminoacid.pdb @@ -0,0 +1,44 @@ +COMPND his.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 N UNK 0 -0.482 2.110 -0.208 1.00 0.00 N +ATOM 2 C UNK 0 0.667 1.207 -0.318 1.00 0.00 C +ATOM 3 C UNK 0 1.564 1.564 -1.517 1.00 0.00 C +ATOM 4 O UNK 0 1.198 2.268 -2.426 1.00 0.00 O +ATOM 5 O UNK 0 2.799 1.004 -1.534 1.00 0.00 O +ATOM 6 C UNK 0 0.176 -0.262 -0.452 1.00 0.00 C +ATOM 7 C UNK 0 -0.505 -0.770 0.779 1.00 0.00 C +ATOM 8 C UNK 0 -0.397 -1.940 1.498 1.00 0.00 C +ATOM 9 N UNK 0 -1.265 -1.944 2.567 1.00 0.00 N +ATOM 10 C UNK 0 -1.893 -0.787 2.500 1.00 0.00 C +ATOM 11 N UNK 0 -1.479 -0.043 1.435 1.00 0.00 N +ATOM 12 H UNK 0 -0.160 3.025 0.104 1.00 0.00 H +ATOM 13 H UNK 0 -0.834 2.267 -1.153 1.00 0.00 H +ATOM 14 H UNK 0 1.257 1.288 0.605 1.00 0.00 H +ATOM 15 H UNK 0 1.020 -0.921 -0.682 1.00 0.00 H +ATOM 16 H UNK 0 -0.491 -0.304 -1.326 1.00 0.00 H +ATOM 17 H UNK 0 0.253 -2.782 1.298 1.00 0.00 H +ATOM 18 H UNK 0 2.953 0.499 -0.722 1.00 0.00 H +ATOM 19 H UNK 0 -1.706 0.910 1.166 1.00 0.00 H +ATOM 20 H UNK 0 -2.648 -0.439 3.192 1.00 0.00 H +CONECT 1 13 2 12 +CONECT 2 3 6 1 14 +CONECT 3 4 5 2 +CONECT 4 3 +CONECT 5 3 18 +CONECT 6 16 15 2 7 +CONECT 7 6 11 8 +CONECT 8 7 17 9 +CONECT 9 8 10 +CONECT 10 11 9 20 +CONECT 11 7 19 10 +CONECT 12 1 +CONECT 13 1 +CONECT 14 2 +CONECT 15 6 +CONECT 16 6 +CONECT 17 8 +CONECT 18 5 +CONECT 19 11 +CONECT 20 10 +MASTER 0 0 0 0 0 0 0 0 20 0 20 0 +END diff --git a/sim/src/tests/amino_acids/ile_l_aminoacid.mmp b/sim/src/tests/amino_acids/ile_l_aminoacid.mmp new file mode 100755 index 000000000..3e15466a8 --- /dev/null +++ b/sim/src/tests/amino_acids/ile_l_aminoacid.mmp @@ -0,0 +1,61 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.910494, 0.221465, -0.210456, 0.278677) (7.632270) (0.083500, 0.138500, -0.464500) (1.000000) +egroup (View Data) +group (ile) +info opengroup open = True +mol (ile.pdb) cpk +atom 1 (7) (-505, 1891, 466) def +atom 2 (6) (363, 739, 670) def +bond1 1 +atom 3 (6) (1520, 568, -325) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2417, -238, -202) def +info atom atomtype = sp2 +bond2 3 +atom 5 (1) (-867, 1892, -485) def +bond1 1 +atom 6 (8) (1444, 1411, -1388) def +bond1 3 +atom 7 (1) (23, 2755, 560) def +bond1 1 +atom 8 (1) (855, 856, 1643) def +bond1 2 +atom 9 (6) (-450, -590, 732) def +bond1 2 +atom 10 (6) (-1397, -578, 1938) def +bond1 9 +atom 11 (1) (294, -1385, 868) def +bond1 9 +atom 12 (6) (-1193, -852, -598) def +bond1 9 +atom 13 (1) (-494, -712, -1433) def +bond1 12 +atom 14 (1) (-1980, -96, -720) def +bond1 12 +atom 15 (6) (-1817, -2247, -714) def +bond1 12 +atom 16 (1) (-1059, -3032, -603) def +bond1 15 +atom 17 (1) (-2292, -2380, -1691) def +bond1 15 +atom 18 (1) (-2584, -2417, 48) def +bond1 15 +atom 19 (1) (-849, -427, 2875) def +bond1 10 +atom 20 (1) (-1938, -1525, 2028) def +bond1 10 +atom 21 (1) (-2124, 234, 1845) def +bond1 10 +atom 22 (1) (2212, 1199, -1946) def +bond1 6 +egroup (ile) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ile diff --git a/sim/src/tests/amino_acids/ile_l_aminoacid.pdb b/sim/src/tests/amino_acids/ile_l_aminoacid.pdb new file mode 100755 index 000000000..ea89f3885 --- /dev/null +++ b/sim/src/tests/amino_acids/ile_l_aminoacid.pdb @@ -0,0 +1,48 @@ +COMPND ile.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 -0.505 1.891 0.466 1.00 0.00 N +HETATM 2 C LIG 1 0.363 0.739 0.670 1.00 0.00 C +HETATM 3 C LIG 1 1.520 0.568 -0.325 1.00 0.00 C +HETATM 4 O LIG 1 2.417 -0.238 -0.202 1.00 0.00 O +HETATM 5 H LIG 1 -0.867 1.892 -0.485 1.00 0.00 H +HETATM 6 O LIG 1 1.444 1.411 -1.388 1.00 0.00 O +HETATM 7 H LIG 1 0.023 2.755 0.560 1.00 0.00 H +HETATM 8 H LIG 1 0.855 0.856 1.643 1.00 0.00 H +HETATM 9 C LIG 1 -0.450 -0.590 0.732 1.00 0.00 C +HETATM 10 C LIG 1 -1.397 -0.578 1.938 1.00 0.00 C +HETATM 11 H LIG 1 0.294 -1.385 0.868 1.00 0.00 H +HETATM 12 C LIG 1 -1.193 -0.852 -0.598 1.00 0.00 C +HETATM 13 H LIG 1 -0.494 -0.712 -1.433 1.00 0.00 H +HETATM 14 H LIG 1 -1.980 -0.096 -0.720 1.00 0.00 H +HETATM 15 C LIG 1 -1.817 -2.247 -0.714 1.00 0.00 C +HETATM 16 H LIG 1 -1.059 -3.032 -0.603 1.00 0.00 H +HETATM 17 H LIG 1 -2.292 -2.380 -1.691 1.00 0.00 H +HETATM 18 H LIG 1 -2.584 -2.417 0.048 1.00 0.00 H +HETATM 19 H LIG 1 -0.849 -0.427 2.875 1.00 0.00 H +HETATM 20 H LIG 1 -1.938 -1.525 2.028 1.00 0.00 H +HETATM 21 H LIG 1 -2.124 0.234 1.845 1.00 0.00 H +HETATM 22 H LIG 1 2.212 1.199 -1.946 1.00 0.00 H +CONECT 1 5 7 2 +CONECT 2 3 1 9 8 +CONECT 3 6 4 2 +CONECT 4 3 +CONECT 5 1 +CONECT 6 22 3 +CONECT 7 1 +CONECT 8 2 +CONECT 9 12 2 11 10 +CONECT 10 9 21 20 19 +CONECT 11 9 +CONECT 12 13 14 15 9 +CONECT 13 12 +CONECT 14 12 +CONECT 15 17 16 12 18 +CONECT 16 15 +CONECT 17 15 +CONECT 18 15 +CONECT 19 10 +CONECT 20 10 +CONECT 21 10 +CONECT 22 6 +MASTER 0 0 0 0 0 0 0 0 22 0 22 0 +END diff --git a/sim/src/tests/amino_acids/leu_l_aminoacid.mmp b/sim/src/tests/amino_acids/leu_l_aminoacid.mmp new file mode 100755 index 000000000..0c4b59ac8 --- /dev/null +++ b/sim/src/tests/amino_acids/leu_l_aminoacid.mmp @@ -0,0 +1,60 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.500146, -0.805577, -0.273353, 0.161796) (7.637165) (0.067000, -0.148000, -0.180000) (1.000000) +egroup (View Data) +group (leu) +info opengroup open = True +mol (leu.pdb) cpk +atom 1 (7) (-138, 531, -1863) def +atom 2 (6) (489, 891, -588) def +bond1 1 +atom 3 (6) (1679, -23, -300) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2056, -366, 798) def +info atom atomtype = sp2 +bond2 3 +atom 5 (1) (555, 527, -2606) def +bond1 1 +atom 6 (8) (2346, -361, -1433) def +bond1 3 +atom 7 (1) (-832, 1236, -2100) def +bond1 1 +atom 8 (1) (948, 1901, -610) def +bond1 2 +atom 9 (6) (-508, 880, 582) def +bond1 2 +atom 10 (6) (-2497, -642, 1) def +atom 11 (1) (58, 1172, 1472) def +bond1 9 +atom 12 (6) (-1238, -458, 861) def +bond1 9 10 +atom 13 (1) (-542, -1272, 621) def +bond1 12 +atom 14 (1) (-1248, 1675, 411) def +bond1 9 +atom 15 (6) (-1575, -565, 2357) def +bond1 12 +atom 16 (1) (-667, -510, 2966) def +bond1 15 +atom 17 (1) (-2078, -1511, 2585) def +bond1 15 +atom 18 (1) (-2243, 248, 2672) def +bond1 15 +atom 19 (1) (-2255, -607, -1063) def +bond1 10 +atom 20 (1) (-3234, 144, 218) def +bond1 10 +atom 21 (1) (-2976, -1605, 214) def +bond1 10 +atom 22 (1) (3100, -906, -1152) def +bond1 6 +egroup (leu) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part leu diff --git a/sim/src/tests/amino_acids/leu_l_aminoacid.pdb b/sim/src/tests/amino_acids/leu_l_aminoacid.pdb new file mode 100755 index 000000000..917b261e5 --- /dev/null +++ b/sim/src/tests/amino_acids/leu_l_aminoacid.pdb @@ -0,0 +1,48 @@ +COMPND leu.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 -0.138 0.531 -1.863 1.00 0.00 N +HETATM 2 C LIG 1 0.489 0.891 -0.588 1.00 0.00 C +HETATM 3 C LIG 1 1.679 -0.023 -0.300 1.00 0.00 C +HETATM 4 O LIG 1 2.056 -0.366 0.798 1.00 0.00 O +HETATM 5 H LIG 1 0.555 0.527 -2.606 1.00 0.00 H +HETATM 6 O LIG 1 2.346 -0.361 -1.433 1.00 0.00 O +HETATM 7 H LIG 1 -0.832 1.236 -2.100 1.00 0.00 H +HETATM 8 H LIG 1 0.948 1.901 -0.610 1.00 0.00 H +HETATM 9 C LIG 1 -0.508 0.880 0.582 1.00 0.00 C +HETATM 10 C LIG 1 -2.497 -0.642 0.001 1.00 0.00 C +HETATM 11 H LIG 1 0.058 1.172 1.472 1.00 0.00 H +HETATM 12 C LIG 1 -1.238 -0.458 0.861 1.00 0.00 C +HETATM 13 H LIG 1 -0.542 -1.272 0.621 1.00 0.00 H +HETATM 14 H LIG 1 -1.248 1.675 0.411 1.00 0.00 H +HETATM 15 C LIG 1 -1.575 -0.565 2.357 1.00 0.00 C +HETATM 16 H LIG 1 -0.667 -0.510 2.966 1.00 0.00 H +HETATM 17 H LIG 1 -2.078 -1.511 2.585 1.00 0.00 H +HETATM 18 H LIG 1 -2.243 0.248 2.672 1.00 0.00 H +HETATM 19 H LIG 1 -2.255 -0.607 -1.063 1.00 0.00 H +HETATM 20 H LIG 1 -3.234 0.144 0.218 1.00 0.00 H +HETATM 21 H LIG 1 -2.976 -1.605 0.214 1.00 0.00 H +HETATM 22 H LIG 1 3.100 -0.906 -1.152 1.00 0.00 H +CONECT 1 5 7 2 +CONECT 2 1 8 3 9 +CONECT 3 6 2 4 +CONECT 4 3 +CONECT 5 1 +CONECT 6 22 3 +CONECT 7 1 +CONECT 8 2 +CONECT 9 2 14 12 11 +CONECT 10 19 21 20 12 +CONECT 11 9 +CONECT 12 10 9 13 15 +CONECT 13 12 +CONECT 14 9 +CONECT 15 12 17 18 16 +CONECT 16 15 +CONECT 17 15 +CONECT 18 15 +CONECT 19 10 +CONECT 20 10 +CONECT 21 10 +CONECT 22 6 +MASTER 0 0 0 0 0 0 0 0 22 0 22 0 +END diff --git a/sim/src/tests/amino_acids/lys_l_aminoacid.mmp b/sim/src/tests/amino_acids/lys_l_aminoacid.mmp new file mode 100755 index 000000000..6f7f8e23f --- /dev/null +++ b/sim/src/tests/amino_acids/lys_l_aminoacid.mmp @@ -0,0 +1,65 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.777254, -0.427206, -0.446121, 0.119779) (8.442531) (-0.051500, 0.105000, -0.039000) (1.000000) +egroup (View Data) +group (lys) +info opengroup open = True +mol (lys.pdb) cpk +atom 1 (7) (299, 2360, 923) def +atom 2 (6) (1148, 1211, 1251) def +bond1 1 +atom 3 (6) (2356, 1156, 319) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2886, 148, -93) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (2843, 2393, 47) def +bond1 3 +atom 6 (6) (347, -101, 1212) def +bond1 2 +atom 7 (6) (-364, -387, -118) def +bond1 6 +atom 8 (6) (-1214, -1663, -64) def +bond1 7 +atom 9 (6) (-1924, -1967, -1384) def +bond1 8 +atom 10 (7) (-2724, -3194, -1274) def +bond1 9 +atom 11 (1) (840, 3220, 952) def +bond1 1 +atom 12 (1) (-433, 2442, 1624) def +bond1 1 +atom 13 (1) (1604, 1286, 2260) def +bond1 2 +atom 14 (1) (-394, -60, 2023) def +bond1 6 +atom 15 (1) (1031, -921, 1454) def +bond1 6 +atom 16 (1) (388, -483, -911) def +bond1 7 +atom 17 (1) (-991, 471, -385) def +bond1 7 +atom 18 (1) (-593, -2526, 204) def +bond1 8 +atom 19 (1) (-1967, -1568, 734) def +bond1 8 +atom 20 (1) (-1172, -2129, -2167) def +bond1 9 +atom 21 (1) (-2506, -1079, -1695) def +bond1 9 +atom 22 (1) (3622, 2257, -519) def +bond1 5 +atom 23 (1) (-3519, -3026, -660) def +bond1 10 +atom 24 (1) (-3119, -3430, -2182) def +bond1 10 +egroup (lys) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part lys diff --git a/sim/src/tests/amino_acids/lys_l_aminoacid.pdb b/sim/src/tests/amino_acids/lys_l_aminoacid.pdb new file mode 100755 index 000000000..ae193b8c2 --- /dev/null +++ b/sim/src/tests/amino_acids/lys_l_aminoacid.pdb @@ -0,0 +1,52 @@ +COMPND lys.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 N UNK 0 0.299 2.360 0.923 1.00 0.00 N +ATOM 2 C UNK 0 1.148 1.211 1.251 1.00 0.00 C +ATOM 3 C UNK 0 2.356 1.156 0.319 1.00 0.00 C +ATOM 4 O UNK 0 2.886 0.148 -0.093 1.00 0.00 O +ATOM 5 O UNK 0 2.843 2.393 0.047 1.00 0.00 O +ATOM 6 C UNK 0 0.347 -0.101 1.212 1.00 0.00 C +ATOM 7 C UNK 0 -0.364 -0.387 -0.118 1.00 0.00 C +ATOM 8 C UNK 0 -1.214 -1.663 -0.064 1.00 0.00 C +ATOM 9 C UNK 0 -1.924 -1.967 -1.384 1.00 0.00 C +ATOM 10 N UNK 0 -2.724 -3.194 -1.274 1.00 0.00 N +ATOM 11 H UNK 0 0.840 3.220 0.952 1.00 0.00 H +ATOM 12 H UNK 0 -0.433 2.442 1.624 1.00 0.00 H +ATOM 13 H UNK 0 1.604 1.286 2.260 1.00 0.00 H +ATOM 14 H UNK 0 -0.394 -0.060 2.023 1.00 0.00 H +ATOM 15 H UNK 0 1.031 -0.921 1.454 1.00 0.00 H +ATOM 16 H UNK 0 0.388 -0.483 -0.911 1.00 0.00 H +ATOM 17 H UNK 0 -0.991 0.471 -0.385 1.00 0.00 H +ATOM 18 H UNK 0 -0.593 -2.526 0.204 1.00 0.00 H +ATOM 19 H UNK 0 -1.967 -1.568 0.734 1.00 0.00 H +ATOM 20 H UNK 0 -1.172 -2.129 -2.167 1.00 0.00 H +ATOM 21 H UNK 0 -2.506 -1.079 -1.695 1.00 0.00 H +ATOM 22 H UNK 0 3.622 2.257 -0.519 1.00 0.00 H +ATOM 23 H UNK 0 -3.519 -3.026 -0.660 1.00 0.00 H +ATOM 24 H UNK 0 -3.119 -3.430 -2.182 1.00 0.00 H +CONECT 1 11 2 12 +CONECT 2 3 1 6 13 +CONECT 3 4 5 2 +CONECT 4 3 +CONECT 5 22 3 +CONECT 6 7 2 15 14 +CONECT 7 16 17 8 6 +CONECT 8 9 7 18 19 +CONECT 9 20 21 10 8 +CONECT 10 24 9 23 +CONECT 11 1 +CONECT 12 1 +CONECT 13 2 +CONECT 14 6 +CONECT 15 6 +CONECT 16 7 +CONECT 17 7 +CONECT 18 8 +CONECT 19 8 +CONECT 20 9 +CONECT 21 9 +CONECT 22 5 +CONECT 23 10 +CONECT 24 10 +MASTER 0 0 0 0 0 0 0 0 24 0 24 0 +END diff --git a/sim/src/tests/amino_acids/met_l_aminoacid.mmp b/sim/src/tests/amino_acids/met_l_aminoacid.mmp new file mode 100755 index 000000000..64d877723 --- /dev/null +++ b/sim/src/tests/amino_acids/met_l_aminoacid.mmp @@ -0,0 +1,57 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.961109, -0.201139, -0.178493, -0.062867) (7.971757) (0.020500, 0.078000, 0.088500) (1.000000) +egroup (View Data) +group (met) +info opengroup open = True +mol (met.pdb) cpk +atom 1 (7) (-522, 1670, 1576) def +atom 2 (6) (400, 539, 1710) def +bond1 1 +atom 3 (6) (1694, 816, 949) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2350, -4, 346) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (2088, 2107, 1080) def +bond1 3 +atom 6 (6) (-258, -773, 1247) def +bond1 2 +atom 7 (6) (-806, -717, -181) def +bond1 6 +atom 8 (16) (-1778, -2237, -528) def +bond1 7 +atom 9 (6) (-2284, -1892, -2249) def +bond1 8 +atom 10 (1) (-63, 2533, 1855) def +bond1 1 +atom 11 (1) (-1314, 1533, 2199) def +bond1 1 +atom 12 (1) (741, 377, 2752) def +bond1 2 +atom 13 (1) (-1072, -999, 1949) def +bond1 6 +atom 14 (1) (478, -1577, 1337) def +bond1 6 +atom 15 (1) (19, -648, -897) def +bond1 7 +atom 16 (1) (-1447, 161, -300) def +bond1 7 +atom 17 (1) (-2970, -2689, -2544) def +bond1 9 +atom 18 (1) (-1427, -1892, -2929) def +bond1 9 +atom 19 (1) (-2807, -934, -2316) def +bond1 9 +atom 20 (1) (2929, 2185, 597) def +bond1 5 +egroup (met) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part met diff --git a/sim/src/tests/amino_acids/met_l_aminoacid.pdb b/sim/src/tests/amino_acids/met_l_aminoacid.pdb new file mode 100755 index 000000000..332bf6ca4 --- /dev/null +++ b/sim/src/tests/amino_acids/met_l_aminoacid.pdb @@ -0,0 +1,44 @@ +COMPND met.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 -0.522 1.670 1.576 1.00 0.00 N +HETATM 2 C LIG 1 0.400 0.539 1.710 1.00 0.00 C +HETATM 3 C LIG 1 1.694 0.816 0.949 1.00 0.00 C +HETATM 4 O LIG 1 2.350 -0.004 0.346 1.00 0.00 O +HETATM 5 O LIG 1 2.088 2.107 1.080 1.00 0.00 O +HETATM 6 C LIG 1 -0.258 -0.773 1.247 1.00 0.00 C +HETATM 7 C LIG 1 -0.806 -0.717 -0.181 1.00 0.00 C +HETATM 8 S LIG 1 -1.778 -2.237 -0.528 1.00 0.00 S +HETATM 9 C LIG 1 -2.284 -1.892 -2.249 1.00 0.00 C +HETATM 10 H LIG 1 -0.063 2.533 1.855 1.00 0.00 H +HETATM 11 H LIG 1 -1.314 1.533 2.199 1.00 0.00 H +HETATM 12 H LIG 1 0.741 0.377 2.752 1.00 0.00 H +HETATM 13 H LIG 1 -1.072 -0.999 1.949 1.00 0.00 H +HETATM 14 H LIG 1 0.478 -1.577 1.337 1.00 0.00 H +HETATM 15 H LIG 1 0.019 -0.648 -0.897 1.00 0.00 H +HETATM 16 H LIG 1 -1.447 0.161 -0.300 1.00 0.00 H +HETATM 17 H LIG 1 -2.970 -2.689 -2.544 1.00 0.00 H +HETATM 18 H LIG 1 -1.427 -1.892 -2.929 1.00 0.00 H +HETATM 19 H LIG 1 -2.807 -0.934 -2.316 1.00 0.00 H +HETATM 20 H LIG 1 2.929 2.185 0.597 1.00 0.00 H +CONECT 1 2 10 11 +CONECT 2 3 6 1 12 +CONECT 3 4 5 2 +CONECT 4 3 +CONECT 5 20 3 +CONECT 6 7 14 2 13 +CONECT 7 15 8 16 6 +CONECT 8 9 7 +CONECT 9 18 17 19 8 +CONECT 10 1 +CONECT 11 1 +CONECT 12 2 +CONECT 13 6 +CONECT 14 6 +CONECT 15 7 +CONECT 16 7 +CONECT 17 9 +CONECT 18 9 +CONECT 19 9 +CONECT 20 5 +MASTER 0 0 0 0 0 0 0 0 20 0 20 0 +END diff --git a/sim/src/tests/amino_acids/phe_l_aminoacid.mmp b/sim/src/tests/amino_acids/phe_l_aminoacid.mmp new file mode 100755 index 000000000..f46aa2b67 --- /dev/null +++ b/sim/src/tests/amino_acids/phe_l_aminoacid.mmp @@ -0,0 +1,68 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.349564, -0.669274, 0.655084, 0.027243) (8.332322) (-0.025500, 0.041000, -0.032500) (1.000000) +egroup (View Data) +group (phe) +info opengroup open = True +mol (phe.pdb) cpk +atom 1 (7) (2289, 1228, 357) def +atom 2 (6) (1105, 1065, 1193) def +bond1 1 +atom 3 (6) (1447, 1293, 2658) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (742, 1861, 3459) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (2624, 711, 3004) def +bond1 3 +atom 6 (6) (367, -310, 1073) def +bond1 2 +atom 7 (6) (-213, -527, -305) def +info atom atomtype = sp2 +bond1 6 +atom 8 (6) (-1279, -850, -2893) def +info atom atomtype = sp2 +atom 9 (6) (-1464, 12, -640) def +info atom atomtype = sp2 +bonda 7 +atom 10 (6) (495, -1228, -1292) def +info atom atomtype = sp2 +bonda 7 +atom 11 (6) (-33, -1390, -2575) def +info atom atomtype = sp2 +bonda 8 10 +atom 12 (6) (-1995, -148, -1920) def +info atom atomtype = sp2 +bonda 8 9 +atom 13 (1) (2059, 991, -605) def +bond1 1 +atom 14 (1) (3020, 591, 664) def +bond1 1 +atom 15 (1) (388, 1852, 935) def +bond1 2 +atom 16 (1) (-432, -340, 1825) def +bond1 6 +atom 17 (1) (1079, -1105, 1324) def +bond1 6 +atom 18 (1) (-2029, 556, 113) def +bond1 9 +atom 19 (1) (1461, -1665, -1049) def +bond1 10 +atom 20 (1) (529, -1943, -3323) def +bond1 11 +atom 21 (1) (-2969, 271, -2155) def +bond1 12 +atom 22 (1) (-1692, -978, -3889) def +bond1 8 +atom 23 (1) (2740, 883, 3954) def +bond1 5 +egroup (phe) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part phe diff --git a/sim/src/tests/amino_acids/phe_l_aminoacid.pdb b/sim/src/tests/amino_acids/phe_l_aminoacid.pdb new file mode 100755 index 000000000..8b1bed1e6 --- /dev/null +++ b/sim/src/tests/amino_acids/phe_l_aminoacid.pdb @@ -0,0 +1,50 @@ +COMPND phe.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 N UNK 0 2.289 1.228 0.357 1.00 0.00 N +ATOM 2 C UNK 0 1.105 1.065 1.193 1.00 0.00 C +ATOM 3 C UNK 0 1.447 1.293 2.658 1.00 0.00 C +ATOM 4 O UNK 0 0.742 1.861 3.459 1.00 0.00 O +ATOM 5 O UNK 0 2.624 0.711 3.004 1.00 0.00 O +ATOM 6 C UNK 0 0.367 -0.310 1.073 1.00 0.00 C +ATOM 7 C UNK 0 -0.213 -0.527 -0.305 1.00 0.00 C +ATOM 8 C UNK 0 -1.279 -0.850 -2.893 1.00 0.00 C +ATOM 9 C UNK 0 -1.464 0.012 -0.640 1.00 0.00 C +ATOM 10 C UNK 0 0.495 -1.228 -1.292 1.00 0.00 C +ATOM 11 C UNK 0 -0.033 -1.390 -2.575 1.00 0.00 C +ATOM 12 C UNK 0 -1.995 -0.148 -1.920 1.00 0.00 C +ATOM 13 H UNK 0 2.059 0.991 -0.605 1.00 0.00 H +ATOM 14 H UNK 0 3.020 0.591 0.664 1.00 0.00 H +ATOM 15 H UNK 0 0.388 1.852 0.935 1.00 0.00 H +ATOM 16 H UNK 0 -0.432 -0.340 1.825 1.00 0.00 H +ATOM 17 H UNK 0 1.079 -1.105 1.324 1.00 0.00 H +ATOM 18 H UNK 0 -2.029 0.556 0.113 1.00 0.00 H +ATOM 19 H UNK 0 1.461 -1.665 -1.049 1.00 0.00 H +ATOM 20 H UNK 0 0.529 -1.943 -3.323 1.00 0.00 H +ATOM 21 H UNK 0 -2.969 0.271 -2.155 1.00 0.00 H +ATOM 22 H UNK 0 -1.692 -0.978 -3.889 1.00 0.00 H +ATOM 23 H UNK 0 2.740 0.883 3.954 1.00 0.00 H +CONECT 1 13 14 2 +CONECT 2 1 15 6 3 +CONECT 3 2 5 4 +CONECT 4 3 +CONECT 5 3 23 +CONECT 6 7 2 17 16 +CONECT 7 10 9 6 +CONECT 8 22 11 12 +CONECT 9 12 7 18 +CONECT 10 11 19 7 +CONECT 11 20 8 10 +CONECT 12 8 21 9 +CONECT 13 1 +CONECT 14 1 +CONECT 15 2 +CONECT 16 6 +CONECT 17 6 +CONECT 18 9 +CONECT 19 10 +CONECT 20 11 +CONECT 21 12 +CONECT 22 8 +CONECT 23 5 +MASTER 0 0 0 0 0 0 0 0 23 0 23 0 +END diff --git a/sim/src/tests/amino_acids/pro_l_aminoacid.mmp b/sim/src/tests/amino_acids/pro_l_aminoacid.mmp new file mode 100755 index 000000000..bc06be499 --- /dev/null +++ b/sim/src/tests/amino_acids/pro_l_aminoacid.mmp @@ -0,0 +1,51 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.064710, -0.299688, -0.930339, 0.201170) (7.085368) (-0.136500, -0.150500, -0.281500) (1.000000) +egroup (View Data) +group (pro) +info opengroup open = True +mol (pro.pdb) cpk +atom 1 (6) (-576, 642, -924) def +atom 2 (6) (-1048, 867, 554) def +bond1 1 +atom 3 (6) (-1211, -556, 1118) def +bond1 2 +atom 4 (6) (-172, -1350, 322) def +bond1 3 +atom 5 (7) (-341, -803, -1029) def +bond1 1 4 +atom 6 (6) (614, 1548, -1223) def +info atom atomtype = sp2 +bond1 1 +atom 7 (8) (531, 2730, -1471) def +info atom atomtype = sp2 +bond2 6 +atom 8 (8) (1806, 897, -1162) def +bond1 6 +atom 9 (1) (-1357, 956, -1627) def +bond1 1 +atom 10 (1) (-283, 1410, 1118) def +bond1 2 +atom 11 (1) (-1962, 1463, 597) def +bond1 2 +atom 12 (1) (-2212, -943, 902) def +bond1 3 +atom 13 (1) (-1047, -607, 2198) def +bond1 3 +atom 14 (1) (837, -1186, 739) def +bond1 4 +atom 15 (1) (-364, -2429, 325) def +bond1 4 +atom 16 (1) (444, -1016, -1635) def +bond1 5 +atom 17 (1) (2485, 1568, -1346) def +bond1 8 +egroup (pro) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part pro diff --git a/sim/src/tests/amino_acids/pro_l_aminoacid.pdb b/sim/src/tests/amino_acids/pro_l_aminoacid.pdb new file mode 100755 index 000000000..d5eb5c5c6 --- /dev/null +++ b/sim/src/tests/amino_acids/pro_l_aminoacid.pdb @@ -0,0 +1,38 @@ +COMPND pro.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 C LIG 1 -0.576 0.642 -0.924 1.00 0.00 C +HETATM 2 C LIG 1 -1.048 0.867 0.554 1.00 0.00 C +HETATM 3 C LIG 1 -1.211 -0.556 1.118 1.00 0.00 C +HETATM 4 C LIG 1 -0.172 -1.350 0.322 1.00 0.00 C +HETATM 5 N LIG 1 -0.341 -0.803 -1.029 1.00 0.00 N +HETATM 6 C LIG 1 0.614 1.548 -1.223 1.00 0.00 C +HETATM 7 O LIG 1 0.531 2.730 -1.471 1.00 0.00 O +HETATM 8 O LIG 1 1.806 0.897 -1.162 1.00 0.00 O +HETATM 9 H LIG 1 -1.357 0.956 -1.627 1.00 0.00 H +HETATM 10 H LIG 1 -0.283 1.410 1.118 1.00 0.00 H +HETATM 11 H LIG 1 -1.962 1.463 0.597 1.00 0.00 H +HETATM 12 H LIG 1 -2.212 -0.943 0.902 1.00 0.00 H +HETATM 13 H LIG 1 -1.047 -0.607 2.198 1.00 0.00 H +HETATM 14 H LIG 1 0.837 -1.186 0.739 1.00 0.00 H +HETATM 15 H LIG 1 -0.364 -2.429 0.325 1.00 0.00 H +HETATM 16 H LIG 1 0.444 -1.016 -1.635 1.00 0.00 H +HETATM 17 H LIG 1 2.485 1.568 -1.346 1.00 0.00 H +CONECT 1 9 6 5 2 +CONECT 2 1 11 3 10 +CONECT 3 4 2 12 13 +CONECT 4 5 15 14 3 +CONECT 5 16 1 4 +CONECT 6 7 8 1 +CONECT 7 6 +CONECT 8 17 6 +CONECT 9 1 +CONECT 10 2 +CONECT 11 2 +CONECT 12 3 +CONECT 13 3 +CONECT 14 4 +CONECT 15 4 +CONECT 16 5 +CONECT 17 8 +MASTER 0 0 0 0 0 0 0 0 17 0 17 0 +END diff --git a/sim/src/tests/amino_acids/ser_l_aminoacid.mmp b/sim/src/tests/amino_acids/ser_l_aminoacid.mmp new file mode 100755 index 000000000..effb03606 --- /dev/null +++ b/sim/src/tests/amino_acids/ser_l_aminoacid.mmp @@ -0,0 +1,45 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.951918, 0.088643, -0.230273, -0.181571) (6.294654) (0.116000, 0.102000, 0.009000) (1.000000) +egroup (View Data) +group (ser) +info opengroup open = True +mol (ser.pdb) cpk +atom 1 (7) (-1113, 1657, 486) def +atom 2 (6) (-274, 508, 800) def +bond1 1 +atom 3 (6) (887, 342, -182) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (1767, -480, -30) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (835, 1171, -1242) def +bond1 3 +atom 6 (6) (-1010, -841, 883) def +bond1 2 +atom 7 (8) (-1667, -1031, -366) def +bond1 6 +atom 8 (1) (-1845, 1732, 1189) def +bond1 1 +atom 9 (1) (-1579, 1490, -403) def +bond1 1 +atom 10 (1) (200, 677, 1776) def +bond1 2 +atom 11 (1) (-1733, -801, 1715) def +bond1 6 +atom 12 (1) (-284, -1637, 1090) def +bond1 6 +atom 13 (1) (-1999, -1936, -404) def +bond1 7 +atom 14 (1) (1602, 942, -1794) def +bond1 5 +egroup (ser) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ser diff --git a/sim/src/tests/amino_acids/ser_l_aminoacid.pdb b/sim/src/tests/amino_acids/ser_l_aminoacid.pdb new file mode 100755 index 000000000..446a1baea --- /dev/null +++ b/sim/src/tests/amino_acids/ser_l_aminoacid.pdb @@ -0,0 +1,22 @@ +ATOM 1 O -1.667 -1.031 -0.366 +ATOM 2 H -1.845 1.732 1.189 +ATOM 3 H -1.579 1.490 -0.403 +ATOM 4 H 0.200 0.677 1.776 +ATOM 5 H -1.733 -0.801 1.715 +ATOM 6 H -0.284 -1.637 1.090 +ATOM 7 H -1.999 -1.936 -0.404 +ATOM 8 H 1.602 0.942 -1.794 +ATOM 9 N -1.113 1.657 0.486 +ATOM 10 C -0.274 0.508 0.800 +ATOM 11 C 0.887 0.342 -0.182 +ATOM 12 O 1.767 -0.480 -0.030 +ATOM 13 O 0.835 1.171 -1.242 +ATOM 14 C -1.011 -0.841 0.883 +CONECT 7 1 +CONECT 9 3 2 +CONECT 10 9 4 +CONECT 11 10 +CONECT 12 11 +CONECT 13 11 8 +CONECT 14 10 1 6 5 +END diff --git a/sim/src/tests/amino_acids/test_ala_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_ala_l_aminoacid.md5sums new file mode 100755 index 000000000..a48d9c800 --- /dev/null +++ b/sim/src/tests/amino_acids/test_ala_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout 65D8DA510BF6D84E36A345A33A427C9A +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_ala_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_ala_l_aminoacid.mmp new file mode 100755 index 000000000..ae7410b32 --- /dev/null +++ b/sim/src/tests/amino_acids/test_ala_l_aminoacid.mmp @@ -0,0 +1,43 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.582234, 0.652969, 0.295359, 0.383926) (6.382334) (-0.002500, 0.002500, 0.007500) (1.000000) +egroup (View Data) +group (ala) +info opengroup open = True +mol (ala.pdb) cpk +atom 1 (7) (-1183, 1898, 976) def +atom 2 (6) (-595, 384, 652) def +bond1 1 +atom 3 (8) (2050, 37, 324) def +info atom atomtype = sp2 +atom 4 (8) (573, 457, -1496) def +atom 5 (6) (-1352, -725, 841) def +bond1 2 +atom 6 (1) (-1850, 2364, 1169) def +bond1 1 +atom 7 (1) (-1193, 1683, -289) def +bond1 1 +atom 8 (1) (236, 451, 1638) def +bond1 2 +atom 9 (1) (-1747, -984, 2040) def +bond1 5 +atom 10 (1) (-634, -1644, 967) def +bond1 5 +atom 11 (1) (-1207, -725, -68) def +bond1 5 +atom 12 (1) (1007, 621, -2366) def +bond1 4 +atom 13 (6) (747, 705, 128) def +info atom atomtype = sp2 +bond1 4 2 +bond2 3 +egroup (ala) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ala + diff --git a/sim/src/tests/amino_acids/test_ala_l_aminoacid.test b/sim/src/tests/amino_acids/test_ala_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_ala_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_ala_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_ala_l_aminoacid.xyzcmp new file mode 100755 index 000000000..e5fafec8e --- /dev/null +++ b/sim/src/tests/amino_acids/test_ala_l_aminoacid.xyzcmp @@ -0,0 +1,15 @@ +13 +ala_l_aminoacid.mmp +N -1.020000 1.690000 0.788000 +C -0.314000 0.412000 0.939000 +O 1.971000 0.099000 0.151000 +O 0.357000 0.582000 -1.345000 +C -1.204000 -0.843000 0.832000 +H -1.739000 1.763000 1.505000 +H -1.494000 1.710000 -0.112000 +H 0.189000 0.415000 1.910000 +H -1.966000 -0.822000 1.619000 +H -0.627000 -1.768000 0.948000 +H -1.711000 -0.872000 -0.138000 +H 1.136000 0.532000 -1.925000 +C 0.786000 0.354000 -0.075000 diff --git a/sim/src/tests/amino_acids/test_arg_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_arg_l_aminoacid.md5sums new file mode 100755 index 000000000..79d8c7431 --- /dev/null +++ b/sim/src/tests/amino_acids/test_arg_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout 30163819897B327CBE96298905BC66FE +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_arg_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_arg_l_aminoacid.mmp new file mode 100755 index 000000000..d9f08da3a --- /dev/null +++ b/sim/src/tests/amino_acids/test_arg_l_aminoacid.mmp @@ -0,0 +1,72 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.662418, -0.588012, -0.013645, -0.463959) (9.100047) (-0.149000, -0.048000, 0.482000) (1.000000) +egroup (View Data) +group (arg) +info opengroup open = True +mol (arg.pdb) cpk +atom 1 (7) (987, 2332, 1641) def +atom 2 (6) (1906, 349, 2038) def +bond1 1 +atom 3 (6) (2375, 428, 628) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (3788, 76, 873) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (3321, 1557, 702) def +bond1 3 +atom 6 (6) (431, -263, 1707) def +bond1 2 +atom 7 (6) (-45, -28, -413) def +bond1 6 +atom 8 (6) (-604, -2177, 237) def +bond1 7 +atom 9 (7) (-986, -2010, -1443) def +bond1 8 +atom 10 (6) (-1904, -761, -1874) def +info atom atomtype = sp2 +bond1 9 +atom 11 (7) (-2737, -884, -2910) def +info atom atomtype = sp2 +bond2 10 +atom 12 (7) (-3200, -1041, -1071) def +bond1 10 +atom 13 (1) (1361, 2864, 1222) def +bond1 1 +atom 14 (1) (127, 1779, 1759) def +bond1 1 +atom 15 (1) (2279, 677, 2751) def +bond1 2 +atom 16 (1) (54, 122, 2175) def +bond1 6 +atom 17 (1) (625, -1223, 1924) def +bond1 6 +atom 18 (1) (407, -487, -1083) def +bond1 7 +atom 19 (1) (-689, -96, -716) def +bond1 7 +atom 20 (1) (421, -2681, 180) def +bond1 8 +atom 21 (1) (5006, 1339, 329) def +bond1 5 +atom 22 (1) (-1316, -2436, 695) def +bond1 8 +atom 23 (1) (-762, -1556, -1907) def +bond1 9 +atom 24 (1) (-2132, -1156, -3490) def +bond1 11 +atom 25 (1) (-4815, -473, -1418) def +bond1 12 +atom 26 (1) (-3977, -1906, -76) def +bond1 12 +egroup (arg) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part arg + diff --git a/sim/src/tests/amino_acids/test_arg_l_aminoacid.test b/sim/src/tests/amino_acids/test_arg_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_arg_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_arg_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_arg_l_aminoacid.xyzcmp new file mode 100755 index 000000000..528351d3e --- /dev/null +++ b/sim/src/tests/amino_acids/test_arg_l_aminoacid.xyzcmp @@ -0,0 +1,28 @@ +26 +arg_l_aminoacid.mmp +N 0.973000 2.025000 1.281000 +C 1.600000 0.761000 1.673000 +C 2.908000 0.568000 0.909000 +O 3.334000 -0.482000 0.482000 +O 3.608000 1.726000 0.815000 +C 0.656000 -0.430000 1.459000 +C 0.052000 -0.528000 0.052000 +C -0.663000 -1.870000 -0.165000 +N -1.247000 -2.041000 -1.499000 +C -2.344000 -1.298000 -1.939000 +N -2.546000 -0.843000 -3.123000 +N -3.308000 -1.073000 -0.950000 +H 1.631000 2.790000 1.404000 +H 0.177000 2.210000 1.886000 +H 1.917000 0.744000 2.737000 +H -0.148000 -0.366000 2.206000 +H 1.219000 -1.342000 1.687000 +H 0.846000 -0.427000 -0.698000 +H -0.652000 0.291000 -0.117000 +H 0.045000 -2.694000 -0.018000 +H 4.431000 1.510000 0.344000 +H -1.449000 -2.000000 0.587000 +H -0.545000 -2.128000 -2.225000 +H -1.711000 -0.950000 -3.701000 +H -4.133000 -0.663000 -1.369000 +H -3.534000 -1.896000 -0.402000 diff --git a/sim/src/tests/amino_acids/test_asn_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_asn_l_aminoacid.md5sums new file mode 100755 index 000000000..9b2726508 --- /dev/null +++ b/sim/src/tests/amino_acids/test_asn_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout C251F793F2DD81583E2582D680CF3F30 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_asn_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_asn_l_aminoacid.mmp new file mode 100755 index 000000000..8e1d6a2d2 --- /dev/null +++ b/sim/src/tests/amino_acids/test_asn_l_aminoacid.mmp @@ -0,0 +1,54 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.890178, -0.410306, -0.169994, 0.101663) (6.993820) (0.088000, -0.255000, -0.080000) (1.000000) +egroup (View Data) +group (asn) +info opengroup open = True +mol (asn.pdb) cpk +atom 1 (7) (-658, 1741, 1046) def +atom 2 (6) (381, 1043, 1220) def +bond1 1 +atom 3 (6) (1374, 494, 143) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2861, 146, -226) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (1390, 955, -1079) def +bond1 3 +atom 6 (6) (-71, -688, 1034) def +bond1 2 +atom 7 (6) (-652, -956, 98) def +info atom atomtype = sp2 +bond1 6 +atom 8 (8) (-364, -2078, -1450) def +info atom atomtype = sp2 +bond2 7 +atom 9 (7) (-2627, -873, -121) def +bond1 7 +atom 10 (1) (-142, 2514, 1179) def +bond1 1 +atom 11 (1) (-1399, 1065, -425) def +bond1 1 +atom 12 (1) (546, 904, 1436) def +bond1 2 +atom 13 (1) (-845, -1013, 2211) def +bond1 6 +atom 14 (1) (199, -1184, 653) def +bond1 6 +atom 15 (1) (1784, 1506, -1790) def +bond1 5 +atom 16 (1) (-2331, -32, 590) def +bond1 9 +atom 17 (1) (-3193, -1243, -1561) def +bond1 9 +egroup (asn) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part asn + diff --git a/sim/src/tests/amino_acids/test_asn_l_aminoacid.test b/sim/src/tests/amino_acids/test_asn_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_asn_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_asn_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_asn_l_aminoacid.xyzcmp new file mode 100755 index 000000000..a05b52ab6 --- /dev/null +++ b/sim/src/tests/amino_acids/test_asn_l_aminoacid.xyzcmp @@ -0,0 +1,19 @@ +17 +asn_l_aminoacid.mmp +N -0.747000 1.499000 0.840000 +C 0.311000 0.492000 0.972000 +C 1.458000 0.588000 -0.041000 +O 2.571000 0.152000 0.144000 +O 1.085000 1.199000 -1.191000 +C -0.280000 -0.941000 0.934000 +C -0.994000 -1.260000 -0.380000 +O -0.462000 -1.888000 -1.283000 +N -2.277000 -0.786000 -0.455000 +H -0.406000 2.398000 1.170000 +H -0.965000 1.630000 -0.146000 +H 0.782000 0.612000 1.952000 +H -0.975000 -1.031000 1.775000 +H 0.524000 -1.671000 1.051000 +H 1.847000 1.137000 -1.792000 +H -2.597000 -0.096000 0.210000 +H -2.747000 -0.861000 -1.346000 diff --git a/sim/src/tests/amino_acids/test_asp_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_asp_l_aminoacid.md5sums new file mode 100755 index 000000000..42f574774 --- /dev/null +++ b/sim/src/tests/amino_acids/test_asp_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout 746A8A712BB62C517EFB6F51760CEE3B +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_asp_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_asp_l_aminoacid.mmp new file mode 100755 index 000000000..4dfda395d --- /dev/null +++ b/sim/src/tests/amino_acids/test_asp_l_aminoacid.mmp @@ -0,0 +1,52 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.900203, -0.415698, 0.004624, -0.129644) (6.895229) (0.026500, 0.052000, -0.042500) (1.000000) +egroup (View Data) +group (asp) +info opengroup open = True +mol (asp.pdb) cpk +atom 1 (7) (-1151, 972, 921) def +atom 2 (6) (533, 654, 407) def +bond1 1 +atom 3 (6) (1247, -15, -994) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2690, -457, 265) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (612, 832, -1173) def +bond1 3 +atom 6 (6) (-1050, -1320, 79) def +bond1 2 +atom 7 (6) (-1200, -1942, -626) def +info atom atomtype = sp2 +bond1 6 +atom 8 (8) (-691, -2240, -820) def +info atom atomtype = sp2 +bond2 7 +atom 9 (8) (-2249, -450, -897) def +bond1 7 +atom 10 (1) (-261, 2565, 700) def +bond1 1 +atom 11 (1) (-1587, 1226, -625) def +bond1 1 +atom 12 (1) (127, 50, 1915) def +bond1 2 +atom 13 (1) (-1369, -1024, 1253) def +bond1 6 +atom 14 (1) (-18, -1776, 721) def +bond1 6 +atom 15 (1) (-2609, -1174, -2036) def +bond1 9 +atom 16 (1) (1508, 891, -2183) def +bond1 5 +egroup (asp) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part asp + diff --git a/sim/src/tests/amino_acids/test_asp_l_aminoacid.test b/sim/src/tests/amino_acids/test_asp_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_asp_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_asp_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_asp_l_aminoacid.xyzcmp new file mode 100755 index 000000000..d77eda3e4 --- /dev/null +++ b/sim/src/tests/amino_acids/test_asp_l_aminoacid.xyzcmp @@ -0,0 +1,18 @@ +16 +asp_l_aminoacid.mmp +N -0.959000 1.313000 0.839000 +C 0.039000 0.256000 0.936000 +C 1.211000 0.331000 -0.055000 +O 2.345000 -0.016000 0.187000 +O 0.831000 0.818000 -1.264000 +C -0.625000 -1.144000 0.834000 +C -1.108000 -1.500000 -0.557000 +O -0.607000 -2.325000 -1.286000 +O -2.191000 -0.766000 -0.929000 +H -0.509000 2.221000 0.919000 +H -1.409000 1.280000 -0.071000 +H 0.505000 0.305000 1.924000 +H -1.474000 -1.146000 1.525000 +H 0.092000 -1.912000 1.129000 +H -2.398000 -1.040000 -1.839000 +H 1.620000 0.775000 -1.831000 diff --git a/sim/src/tests/amino_acids/test_cys_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_cys_l_aminoacid.md5sums new file mode 100755 index 000000000..942bd7f0f --- /dev/null +++ b/sim/src/tests/amino_acids/test_cys_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout E9BAFEDBACF464768EE995F6C94B73F3 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_cys_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_cys_l_aminoacid.mmp new file mode 100755 index 000000000..d428321ba --- /dev/null +++ b/sim/src/tests/amino_acids/test_cys_l_aminoacid.mmp @@ -0,0 +1,46 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.802119, -0.495711, -0.045853, 0.329809) (6.476213) (0.038000, -0.104000, 0.017000) (1.000000) +egroup (View Data) +group (cys) +info opengroup open = True +mol (cys.pdb) cpk +atom 1 (7) (2033, 1587, 724) def +atom 2 (6) (209, 419, 644) def +bond1 1 +atom 3 (6) (244, -909, -192) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (-1114, -1192, -942) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (1052, -956, -358) def +bond1 3 +atom 6 (6) (-1251, 631, 733) def +bond1 2 +atom 7 (16) (-1377, 2425, -992) def +bond1 6 +atom 8 (1) (1546, 284, 864) def +bond1 1 +atom 9 (1) (859, 1827, 28) def +bond1 1 +atom 10 (1) (-313, 191, 1532) def +bond1 2 +atom 11 (1) (-1790, 1595, -1544) def +bond1 7 +atom 12 (1) (-1682, 96, 476) def +bond1 6 +atom 13 (1) (-1254, 1720, 1762) def +bond1 6 +atom 14 (1) (961, -2103, -1088) def +bond1 5 +egroup (cys) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part cys + diff --git a/sim/src/tests/amino_acids/test_cys_l_aminoacid.test b/sim/src/tests/amino_acids/test_cys_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_cys_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_cys_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_cys_l_aminoacid.xyzcmp new file mode 100755 index 000000000..4c6e389c0 --- /dev/null +++ b/sim/src/tests/amino_acids/test_cys_l_aminoacid.xyzcmp @@ -0,0 +1,16 @@ +14 +cys_l_aminoacid.mmp +N 1.173000 1.267000 0.666000 +C 0.042000 0.351000 0.686000 +C 0.048000 -0.751000 -0.385000 +O -0.927000 -1.181000 -0.965000 +O 1.291000 -1.245000 -0.593000 +C -1.288000 1.115000 0.659000 +S -1.537000 2.160000 -0.841000 +H 2.048000 0.751000 0.625000 +H 1.122000 1.842000 -0.174000 +H 0.075000 -0.196000 1.643000 +H -1.811000 1.138000 -1.677000 +H -2.124000 0.422000 0.745000 +H -1.309000 1.807000 1.504000 +H 1.197000 -1.952000 -1.255000 diff --git a/sim/src/tests/amino_acids/test_gln_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_gln_l_aminoacid.md5sums new file mode 100755 index 000000000..fdeb4b9d4 --- /dev/null +++ b/sim/src/tests/amino_acids/test_gln_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout 8788A69620FFEB8861234D7D0A3DE7F9 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_gln_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_gln_l_aminoacid.mmp new file mode 100755 index 000000000..ba1fb3cd7 --- /dev/null +++ b/sim/src/tests/amino_acids/test_gln_l_aminoacid.mmp @@ -0,0 +1,60 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.157330, -0.957351, 0.061080, -0.234511) (7.740785) (0.004000, 0.062000, 0.178000) (1.000000) +egroup (View Data) +group (gln) +info opengroup open = True +mol (gln.pdb) cpk +atom 1 (7) (246, 2104, 1195) def +atom 2 (6) (609, 1616, 626) def +bond1 1 +atom 3 (6) (1995, 660, -209) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (3359, 796, -695) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (1815, 1300, -1772) def +bond1 3 +atom 6 (6) (422, -264, 426) def +bond1 2 +atom 7 (6) (-922, -630, -627) def +bond1 6 +atom 8 (6) (-620, -1999, -178) def +info atom atomtype = sp2 +bond1 7 +atom 9 (8) (-1083, -2975, -291) def +info atom atomtype = sp2 +bond2 8 +atom 10 (7) (-2268, -1811, -572) def +bond1 8 +atom 11 (1) (-585, 1854, -720) def +bond1 1 +atom 12 (1) (1285, 2347, 770) def +bond1 1 +atom 13 (1) (1319, 748, 1724) def +bond1 2 +atom 14 (1) (-685, -473, 1395) def +bond1 6 +atom 15 (1) (1050, -1094, 252) def +bond1 6 +atom 16 (1) (99, -223, -1344) def +bond1 7 +atom 17 (1) (-1486, -104, -416) def +bond1 7 +atom 18 (1) (2250, 1899, -1773) def +bond1 5 +atom 19 (1) (-2779, -1295, -1153) def +bond1 10 +atom 20 (1) (-3395, -2789, -1162) def +bond1 10 +egroup (gln) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part gln + diff --git a/sim/src/tests/amino_acids/test_gln_l_aminoacid.test b/sim/src/tests/amino_acids/test_gln_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_gln_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_gln_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_gln_l_aminoacid.xyzcmp new file mode 100755 index 000000000..ef78634c5 --- /dev/null +++ b/sim/src/tests/amino_acids/test_gln_l_aminoacid.xyzcmp @@ -0,0 +1,22 @@ +20 +gln_l_aminoacid.mmp +N -0.033000 2.035000 0.687000 +C 0.903000 0.915000 0.760000 +C 1.992000 0.873000 -0.319000 +O 3.051000 0.297000 -0.210000 +O 1.636000 1.528000 -1.458000 +C 0.155000 -0.440000 0.784000 +C -0.795000 -0.647000 -0.397000 +C -1.455000 -2.025000 -0.366000 +O -1.010000 -2.966000 0.277000 +N -2.569000 -2.144000 -1.153000 +H -0.353000 2.153000 -0.271000 +H 0.444000 2.902000 0.925000 +H 1.452000 0.986000 1.704000 +H -0.415000 -0.480000 1.717000 +H 0.883000 -1.255000 0.819000 +H -0.261000 -0.557000 -1.353000 +H -1.572000 0.128000 -0.400000 +H 2.381000 1.409000 -2.073000 +H -3.003000 -1.351000 -1.596000 +H -3.059000 -3.026000 -1.146000 diff --git a/sim/src/tests/amino_acids/test_glu_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_glu_l_aminoacid.md5sums new file mode 100755 index 000000000..e729b4887 --- /dev/null +++ b/sim/src/tests/amino_acids/test_glu_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout F95AC213D8097A236E7B0295E4A66CBB +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_glu_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_glu_l_aminoacid.mmp new file mode 100755 index 000000000..d5d3a9bd9 --- /dev/null +++ b/sim/src/tests/amino_acids/test_glu_l_aminoacid.mmp @@ -0,0 +1,58 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.961445, -0.091404, -0.228656, -0.122410) (7.528428) (-0.025000, 0.138000, -0.073000) (1.000000) +egroup (View Data) +group (glu) +info opengroup open = True +mol (glu.pdb) cpk +atom 1 (7) (-720, 1803, -180) def +atom 2 (6) (646, 866, 1258) def +bond1 1 +atom 3 (6) (1808, 924, -380) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2566, -300, -931) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (2216, 2451, -859) def +bond1 3 +atom 6 (6) (-98, 3, 778) def +bond1 2 +atom 7 (6) (-794, -959, -1213) def +bond1 6 +atom 8 (6) (-1119, -2195, -505) def +info atom atomtype = sp2 +bond1 7 +atom 9 (8) (-863, -3389, -1310) def +info atom atomtype = sp2 +bond2 8 +atom 10 (8) (-2919, -2230, 14) def +bond1 8 +atom 11 (1) (-82, 2638, 280) def +bond1 1 +atom 12 (1) (-1013, 2232, 795) def +bond1 1 +atom 13 (1) (563, 1180, 1466) def +bond1 2 +atom 14 (1) (-1477, -732, 1305) def +bond1 6 +atom 15 (1) (1108, -1245, 1279) def +bond1 6 +atom 16 (1) (526, -1065, -1861) def +bond1 7 +atom 17 (1) (-1446, -462, -1294) def +bond1 7 +atom 18 (1) (-2420, -2882, 275) def +bond1 10 +atom 19 (1) (2869, 2216, -577) def +bond1 5 +egroup (glu) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part glu + diff --git a/sim/src/tests/amino_acids/test_glu_l_aminoacid.test b/sim/src/tests/amino_acids/test_glu_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_glu_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_glu_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_glu_l_aminoacid.xyzcmp new file mode 100755 index 000000000..80e21d6c7 --- /dev/null +++ b/sim/src/tests/amino_acids/test_glu_l_aminoacid.xyzcmp @@ -0,0 +1,21 @@ +19 +glu_l_aminoacid.mmp +N -0.510000 1.988000 -0.010000 +C 0.438000 1.024000 0.553000 +C 1.753000 1.049000 -0.223000 +O 2.465000 0.094000 -0.433000 +O 2.090000 2.306000 -0.607000 +C -0.170000 -0.388000 0.586000 +C -0.614000 -0.894000 -0.798000 +C -1.407000 -2.178000 -0.748000 +O -1.193000 -3.174000 -1.404000 +O -2.450000 -2.105000 0.126000 +H -0.069000 2.898000 -0.106000 +H -1.298000 2.095000 0.624000 +H 0.742000 1.266000 1.590000 +H -1.033000 -0.368000 1.260000 +H 0.566000 -1.073000 1.016000 +H 0.247000 -1.071000 -1.444000 +H -1.243000 -0.125000 -1.264000 +H -2.896000 -2.967000 0.073000 +H 2.946000 2.232000 -1.062000 diff --git a/sim/src/tests/amino_acids/test_gly_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_gly_l_aminoacid.md5sums new file mode 100755 index 000000000..852a057c7 --- /dev/null +++ b/sim/src/tests/amino_acids/test_gly_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout 3CFE8E38F770D8E2FE2662B6FA818CFA +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_gly_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_gly_l_aminoacid.mmp new file mode 100755 index 000000000..4bda6a6c8 --- /dev/null +++ b/sim/src/tests/amino_acids/test_gly_l_aminoacid.mmp @@ -0,0 +1,38 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.666957, -0.567023, -0.280993, 0.393314) (6.143509) (-0.207500, 0.029500, -0.047000) (1.000000) +egroup (View Data) +group (gly) +info opengroup open = True +mol (gly.pdb) cpk +atom 1 (7) (-1305, 1045, 432) def +atom 2 (6) (-490, -578, 898) def +bond1 1 +atom 3 (6) (1176, -253, 90) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2132, -1030, 182) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (548, -343, -1706) def +bond1 3 +atom 6 (1) (-487, 1433, 328) def +bond1 1 +atom 7 (1) (-1929, 166, -150) def +bond1 1 +atom 8 (1) (250, -621, 1977) def +bond1 2 +atom 9 (1) (-645, -1488, 1175) def +bond1 2 +atom 10 (1) (1648, -498, -2020) def +bond1 5 +egroup (gly) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part gly + diff --git a/sim/src/tests/amino_acids/test_gly_l_aminoacid.test b/sim/src/tests/amino_acids/test_gly_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_gly_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_gly_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_gly_l_aminoacid.xyzcmp new file mode 100755 index 000000000..682e8edf5 --- /dev/null +++ b/sim/src/tests/amino_acids/test_gly_l_aminoacid.xyzcmp @@ -0,0 +1,12 @@ +10 +gly_l_aminoacid.mmp +N -1.277000 0.490000 0.728000 +C -0.217000 -0.482000 0.958000 +C 0.939000 -0.526000 -0.040000 +O 2.075000 -0.853000 0.222000 +O 0.549000 -0.180000 -1.294000 +H -0.887000 1.430000 0.747000 +H -1.660000 0.365000 -0.206000 +H 0.230000 -0.328000 1.944000 +H -0.655000 -1.489000 0.970000 +H 1.342000 -0.261000 -1.850000 diff --git a/sim/src/tests/amino_acids/test_his_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_his_l_aminoacid.md5sums new file mode 100755 index 000000000..b82f3bafb --- /dev/null +++ b/sim/src/tests/amino_acids/test_his_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout BFAC711D3FB27B0BC05219371AD9B9BD +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_his_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_his_l_aminoacid.mmp new file mode 100755 index 000000000..4f7e95a18 --- /dev/null +++ b/sim/src/tests/amino_acids/test_his_l_aminoacid.mmp @@ -0,0 +1,63 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.102615, -0.654325, 0.632374, 0.401788) (8.033081) (-0.152500, -0.121500, -0.383000) (1.000000) +egroup (View Data) +group (his) +info opengroup open = True +mol (his.pdb) cpk +atom 1 (7) (-664, 2220, -176) def +atom 2 (6) (751, 1162, -417) def +bond1 1 +atom 3 (6) (1949, 1973, -1402) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (794, 2323, -2047) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (2671, 790, -2041) def +bond1 3 +atom 6 (6) (63, -107, -683) def +bond1 2 +atom 7 (6) (-677, -402, 743) def +info atom atomtype = sp2 +bond1 6 +atom 8 (6) (-819, -1944, 1755) def +info atom atomtype = sp2 +bond2 7 +atom 9 (7) (-1205, -2092, 2241) def +info atom atomtype = sp2 +bond1 8 +atom 10 (6) (-2006, -791, 2407) def +info atom atomtype = sp2 +bond2 9 +atom 11 (7) (-1117, 7, 1580) def +info atom atomtype = sp2 +bond1 7 10 +atom 12 (1) (366, 3323, 319) def +bond1 1 +atom 13 (1) (-958, 2643, -1134) def +bond1 1 +atom 14 (1) (789, 1518, 484) def +bond1 2 +atom 15 (1) (1012, -1425, -821) def +bond1 6 +atom 16 (1) (-266, -228, -1106) def +bond1 6 +atom 17 (1) (416, -3106, 1431) def +bond1 8 +atom 18 (1) (3016, 829, -859) def +bond1 5 +atom 19 (1) (-1290, 881, 689) def +bond1 11 +atom 20 (1) (-3223, -767, 3401) def +bond1 10 +egroup (his) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part his + diff --git a/sim/src/tests/amino_acids/test_his_l_aminoacid.test b/sim/src/tests/amino_acids/test_his_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_his_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_his_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_his_l_aminoacid.xyzcmp new file mode 100755 index 000000000..367a06eaf --- /dev/null +++ b/sim/src/tests/amino_acids/test_his_l_aminoacid.xyzcmp @@ -0,0 +1,22 @@ +20 +his_l_aminoacid.mmp +N -0.482000 2.110000 -0.208000 +C 0.667000 1.207000 -0.318000 +C 1.564000 1.564000 -1.517000 +O 1.198000 2.268000 -2.426000 +O 2.799000 1.004000 -1.534000 +C 0.176000 -0.262000 -0.452000 +C -0.505000 -0.770000 0.779000 +C -0.397000 -1.940000 1.498000 +N -1.265000 -1.944000 2.567000 +C -1.893000 -0.787000 2.500000 +N -1.479000 -0.043000 1.435000 +H -0.160000 3.025000 0.104000 +H -0.834000 2.267000 -1.153000 +H 1.257000 1.288000 0.605000 +H 1.020000 -0.921000 -0.682000 +H -0.491000 -0.304000 -1.326000 +H 0.253000 -2.782000 1.298000 +H 2.953000 0.499000 -0.722000 +H -1.706000 0.910000 1.166000 +H -2.648000 -0.439000 3.192000 diff --git a/sim/src/tests/amino_acids/test_ile_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_ile_l_aminoacid.md5sums new file mode 100755 index 000000000..f7ec70bcb --- /dev/null +++ b/sim/src/tests/amino_acids/test_ile_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout 329624E7D8310B05D9D8F6E0D82816F1 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_ile_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_ile_l_aminoacid.mmp new file mode 100755 index 000000000..c92f74022 --- /dev/null +++ b/sim/src/tests/amino_acids/test_ile_l_aminoacid.mmp @@ -0,0 +1,62 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.910494, 0.221465, -0.210456, 0.278677) (7.632270) (0.083500, 0.138500, -0.464500) (1.000000) +egroup (View Data) +group (ile) +info opengroup open = True +mol (ile.pdb) cpk +atom 1 (7) (-1067, 2443, 705) def +atom 2 (6) (157, 820, 630) def +bond1 1 +atom 3 (6) (1379, 839, -233) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2302, -381, -385) def +info atom atomtype = sp2 +bond2 3 +atom 5 (1) (-688, 2131, -601) def +bond1 1 +atom 6 (8) (1410, 1515, -1181) def +bond1 3 +atom 7 (1) (-229, 2930, 524) def +bond1 1 +atom 8 (1) (539, 917, 1759) def +bond1 2 +atom 9 (6) (-730, -946, 758) def +bond1 2 +atom 10 (6) (-1225, -671, 2134) def +bond1 9 +atom 11 (1) (346, -1631, 798) def +bond1 9 +atom 12 (6) (-701, -1162, -668) def +bond1 9 +atom 13 (1) (-443, -810, -1282) def +bond1 12 +atom 14 (1) (-1774, 600, -580) def +bond1 12 +atom 15 (6) (-2073, -1815, -705) def +bond1 12 +atom 16 (1) (-575, -3154, -558) def +bond1 15 +atom 17 (1) (-2606, -2466, -1598) def +bond1 15 +atom 18 (1) (-2772, -2440, -217) def +bond1 15 +atom 19 (1) (-502, -614, 2654) def +bond1 10 +atom 20 (1) (-1963, -1635, 2444) def +bond1 10 +atom 21 (1) (-2437, 360, 1531) def +bond1 10 +atom 22 (1) (2149, 1216, -2232) def +bond1 6 +egroup (ile) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ile + diff --git a/sim/src/tests/amino_acids/test_ile_l_aminoacid.test b/sim/src/tests/amino_acids/test_ile_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_ile_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_ile_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_ile_l_aminoacid.xyzcmp new file mode 100755 index 000000000..0d11750ce --- /dev/null +++ b/sim/src/tests/amino_acids/test_ile_l_aminoacid.xyzcmp @@ -0,0 +1,24 @@ +22 +ile_l_aminoacid.mmp +N -0.505000 1.891000 0.466000 +C 0.363000 0.739000 0.670000 +C 1.520000 0.568000 -0.325000 +O 2.417000 -0.238000 -0.202000 +H -0.867000 1.892000 -0.485000 +O 1.444000 1.411000 -1.388000 +H 0.023000 2.755000 0.560000 +H 0.855000 0.856000 1.643000 +C -0.450000 -0.590000 0.732000 +C -1.397000 -0.578000 1.938000 +H 0.294000 -1.385000 0.868000 +C -1.193000 -0.852000 -0.598000 +H -0.494000 -0.712000 -1.433000 +H -1.980000 -0.096000 -0.720000 +C -1.817000 -2.247000 -0.714000 +H -1.059000 -3.032000 -0.603000 +H -2.292000 -2.380000 -1.691000 +H -2.584000 -2.417000 0.048000 +H -0.849000 -0.427000 2.875000 +H -1.938000 -1.525000 2.028000 +H -2.124000 0.234000 1.845000 +H 2.212000 1.199000 -1.946000 diff --git a/sim/src/tests/amino_acids/test_leu_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_leu_l_aminoacid.md5sums new file mode 100755 index 000000000..31017e014 --- /dev/null +++ b/sim/src/tests/amino_acids/test_leu_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout AFEE2EF12486996ED48FE3D3B9AA352F +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_leu_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_leu_l_aminoacid.mmp new file mode 100755 index 000000000..09983a672 --- /dev/null +++ b/sim/src/tests/amino_acids/test_leu_l_aminoacid.mmp @@ -0,0 +1,61 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.500146, -0.805577, -0.273353, 0.161796) (7.637165) (0.067000, -0.148000, -0.180000) (1.000000) +egroup (View Data) +group (leu) +info opengroup open = True +mol (leu.pdb) cpk +atom 1 (7) (28, 302, -1900) def +atom 2 (6) (733, 614, -534) def +bond1 1 +atom 3 (6) (1361, 41, -214) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (1436, -531, 670) def +info atom atomtype = sp2 +bond2 3 +atom 5 (1) (449, 707, -2636) def +bond1 1 +atom 6 (8) (2205, -90, -1172) def +bond1 3 +atom 7 (1) (-427, 1157, -1644) def +bond1 1 +atom 8 (1) (921, 1668, -541) def +bond1 2 +atom 9 (6) (-1116, 787, 1087) def +bond1 2 +atom 10 (6) (-2339, -1177, 249) def +atom 11 (1) (44, 1096, 1410) def +bond1 9 +atom 12 (6) (-751, -27, 881) def +bond1 9 10 +atom 13 (1) (-74, -1563, 784) def +bond1 12 +atom 14 (1) (-1352, 1779, 842) def +bond1 9 +atom 15 (6) (-1425, -672, 2092) def +bond1 12 +atom 16 (1) (-1057, -642, 3308) def +bond1 15 +atom 17 (1) (-1463, -2038, 2762) def +bond1 15 +atom 18 (1) (-2172, 387, 2679) def +bond1 15 +atom 19 (1) (-2475, -1016, -1273) def +bond1 10 +atom 20 (1) (-3422, -214, -237) def +bond1 10 +atom 21 (1) (-3098, -1198, 501) def +bond1 10 +atom 22 (1) (3180, -1495, -867) def +bond1 6 +egroup (leu) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part leu + diff --git a/sim/src/tests/amino_acids/test_leu_l_aminoacid.test b/sim/src/tests/amino_acids/test_leu_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_leu_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_leu_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_leu_l_aminoacid.xyzcmp new file mode 100755 index 000000000..33ab62514 --- /dev/null +++ b/sim/src/tests/amino_acids/test_leu_l_aminoacid.xyzcmp @@ -0,0 +1,24 @@ +22 +leu_l_aminoacid.mmp +N -0.138000 0.531000 -1.863000 +C 0.489000 0.891000 -0.588000 +C 1.679000 -0.023000 -0.300000 +O 2.056000 -0.366000 0.798000 +H 0.555000 0.527000 -2.606000 +O 2.346000 -0.361000 -1.433000 +H -0.832000 1.236000 -2.100000 +H 0.948000 1.901000 -0.610000 +C -0.508000 0.880000 0.582000 +C -2.497000 -0.642000 0.001000 +H 0.058000 1.172000 1.472000 +C -1.238000 -0.458000 0.861000 +H -0.542000 -1.272000 0.621000 +H -1.248000 1.675000 0.411000 +C -1.575000 -0.565000 2.357000 +H -0.667000 -0.510000 2.966000 +H -2.078000 -1.511000 2.585000 +H -2.243000 0.248000 2.672000 +H -2.255000 -0.607000 -1.063000 +H -3.234000 0.144000 0.218000 +H -2.976000 -1.605000 0.214000 +H 3.100000 -0.906000 -1.152000 diff --git a/sim/src/tests/amino_acids/test_lys_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_lys_l_aminoacid.md5sums new file mode 100755 index 000000000..43f5366b2 --- /dev/null +++ b/sim/src/tests/amino_acids/test_lys_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout F3F7F3A4A0FDC5CCBFF0523ABEE3B3BA +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_lys_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_lys_l_aminoacid.mmp new file mode 100755 index 000000000..6cc921565 --- /dev/null +++ b/sim/src/tests/amino_acids/test_lys_l_aminoacid.mmp @@ -0,0 +1,66 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.777254, -0.427206, -0.446121, 0.119779) (8.442531) (-0.051500, 0.105000, -0.039000) (1.000000) +egroup (View Data) +group (lys) +info opengroup open = True +mol (lys.pdb) cpk +atom 1 (7) (47, 2430, 966) def +atom 2 (6) (1100, 1371, 1327) def +bond1 1 +atom 3 (6) (2985, 1972, 380) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (3522, 254, -66) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (2956, 2553, -44) def +bond1 3 +atom 6 (6) (169, -58, 1449) def +bond1 2 +atom 7 (6) (-674, -546, 90) def +bond1 6 +atom 8 (6) (-1591, -1486, -74) def +bond1 7 +atom 9 (6) (-2075, -2637, -1179) def +bond1 8 +atom 10 (7) (-2892, -3078, -1071) def +bond1 9 +atom 11 (1) (1308, 2946, 1414) def +bond1 1 +atom 12 (1) (-479, 2650, 1460) def +bond1 1 +atom 13 (1) (1406, 871, 2493) def +bond1 2 +atom 14 (1) (-276, -225, 2260) def +bond1 6 +atom 15 (1) (885, -1034, 1786) def +bond1 6 +atom 16 (1) (229, -504, -793) def +bond1 7 +atom 17 (1) (-803, 27, -587) def +bond1 7 +atom 18 (1) (-549, -3148, -337) def +bond1 8 +atom 19 (1) (-1842, -1638, 838) def +bond1 8 +atom 20 (1) (-1073, -2025, -1956) def +bond1 9 +atom 21 (1) (-2446, -1480, -1990) def +bond1 9 +atom 22 (1) (3818, 1937, -757) def +bond1 5 +atom 23 (1) (-3451, -2761, -534) def +bond1 10 +atom 24 (1) (-2962, -3275, -2537) def +bond1 10 +egroup (lys) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part lys + diff --git a/sim/src/tests/amino_acids/test_lys_l_aminoacid.test b/sim/src/tests/amino_acids/test_lys_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_lys_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_lys_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_lys_l_aminoacid.xyzcmp new file mode 100755 index 000000000..51232a707 --- /dev/null +++ b/sim/src/tests/amino_acids/test_lys_l_aminoacid.xyzcmp @@ -0,0 +1,26 @@ +24 +lys_l_aminoacid.mmp +N 0.299000 2.360000 0.923000 +C 1.148000 1.211000 1.251000 +C 2.356000 1.156000 0.319000 +O 2.886000 0.148000 -0.093000 +O 2.843000 2.393000 0.047000 +C 0.347000 -0.101000 1.212000 +C -0.364000 -0.387000 -0.118000 +C -1.214000 -1.663000 -0.064000 +C -1.924000 -1.967000 -1.384000 +N -2.724000 -3.194000 -1.274000 +H 0.840000 3.220000 0.952000 +H -0.433000 2.442000 1.624000 +H 1.604000 1.286000 2.260000 +H -0.394000 -0.060000 2.023000 +H 1.031000 -0.921000 1.454000 +H 0.388000 -0.483000 -0.911000 +H -0.991000 0.471000 -0.385000 +H -0.593000 -2.526000 0.204000 +H -1.967000 -1.568000 0.734000 +H -1.172000 -2.129000 -2.167000 +H -2.506000 -1.079000 -1.695000 +H 3.622000 2.257000 -0.519000 +H -3.519000 -3.026000 -0.660000 +H -3.119000 -3.430000 -2.182000 diff --git a/sim/src/tests/amino_acids/test_met_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_met_l_aminoacid.md5sums new file mode 100755 index 000000000..7293bab19 --- /dev/null +++ b/sim/src/tests/amino_acids/test_met_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout 5BB85655A93954DA1235F02F172E6033 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_met_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_met_l_aminoacid.mmp new file mode 100755 index 000000000..7274ac912 --- /dev/null +++ b/sim/src/tests/amino_acids/test_met_l_aminoacid.mmp @@ -0,0 +1,58 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.961109, -0.201139, -0.178493, -0.062867) (7.971757) (0.020500, 0.078000, 0.088500) (1.000000) +egroup (View Data) +group (met) +info opengroup open = True +mol (met.pdb) cpk +atom 1 (7) (-376, 1206, 1685) def +atom 2 (6) (240, 520, 1489) def +bond1 1 +atom 3 (6) (1508, 535, 630) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2779, -249, 271) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (2260, 2716, 837) def +bond1 3 +atom 6 (6) (-30, -655, 1285) def +bond1 2 +atom 7 (6) (-1254, -474, -496) def +bond1 6 +atom 8 (16) (-1873, -1669, -692) def +bond1 7 +atom 9 (6) (-2540, -1625, -2689) def +bond1 8 +atom 10 (1) (187, 1782, 2186) def +bond1 1 +atom 11 (1) (-1122, 1864, 2546) def +bond1 1 +atom 12 (1) (911, 484, 2428) def +bond1 2 +atom 13 (1) (-951, -972, 2016) def +bond1 6 +atom 14 (1) (271, -1608, 1634) def +bond1 6 +atom 15 (1) (129, -41, -1259) def +bond1 7 +atom 16 (1) (-658, 312, -365) def +bond1 7 +atom 17 (1) (-2778, -3167, -2892) def +bond1 9 +atom 18 (1) (-1457, -1990, -2271) def +bond1 9 +atom 19 (1) (-2897, -540, -2460) def +bond1 9 +atom 20 (1) (2976, 2502, 1011) def +bond1 5 +egroup (met) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part met + diff --git a/sim/src/tests/amino_acids/test_met_l_aminoacid.test b/sim/src/tests/amino_acids/test_met_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_met_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_met_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_met_l_aminoacid.xyzcmp new file mode 100755 index 000000000..a81e0644a --- /dev/null +++ b/sim/src/tests/amino_acids/test_met_l_aminoacid.xyzcmp @@ -0,0 +1,22 @@ +20 +met_l_aminoacid.mmp +N -0.522000 1.670000 1.576000 +C 0.400000 0.539000 1.710000 +C 1.694000 0.816000 0.949000 +O 2.350000 -0.004000 0.346000 +O 2.088000 2.107000 1.080000 +C -0.258000 -0.773000 1.247000 +C -0.806000 -0.717000 -0.181000 +S -1.778000 -2.237000 -0.528000 +C -2.284000 -1.892000 -2.249000 +H -0.063000 2.533000 1.855000 +H -1.314000 1.533000 2.199000 +H 0.741000 0.377000 2.752000 +H -1.072000 -0.999000 1.949000 +H 0.478000 -1.577000 1.337000 +H 0.019000 -0.648000 -0.897000 +H -1.447000 0.161000 -0.300000 +H -2.970000 -2.689000 -2.544000 +H -1.427000 -1.892000 -2.929000 +H -2.807000 -0.934000 -2.316000 +H 2.929000 2.185000 0.597000 diff --git a/sim/src/tests/amino_acids/test_phe_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_phe_l_aminoacid.md5sums new file mode 100755 index 000000000..d94dfea45 --- /dev/null +++ b/sim/src/tests/amino_acids/test_phe_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout B3200793AB5D2A2C5A64E6337F6CB396 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_phe_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_phe_l_aminoacid.mmp new file mode 100755 index 000000000..7f5efeb6e --- /dev/null +++ b/sim/src/tests/amino_acids/test_phe_l_aminoacid.mmp @@ -0,0 +1,69 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.349564, -0.669274, 0.655084, 0.027243) (8.332322) (-0.025500, 0.041000, -0.032500) (1.000000) +egroup (View Data) +group (phe) +info opengroup open = True +mol (phe.pdb) cpk +atom 1 (7) (2242, 1670, 435) def +atom 2 (6) (678, 1008, 1446) def +bond1 1 +atom 3 (6) (1093, 2015, 3104) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (1038, 1763, 3829) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (2350, 311, 3587) def +bond1 3 +atom 6 (6) (571, -563, 998) def +bond1 2 +atom 7 (6) (-227, -121, -189) def +info atom atomtype = sp2 +bond1 6 +atom 8 (6) (-910, -964, -3134) def +info atom atomtype = sp2 +atom 9 (6) (-1532, 151, -193) def +info atom atomtype = sp2 +bonda 7 +atom 10 (6) (322, -1835, -1677) def +info atom atomtype = sp2 +bonda 7 +atom 11 (6) (-607, -1330, -2360) def +info atom atomtype = sp2 +bonda 8 10 +atom 12 (6) (-1685, -367, -2212) def +info atom atomtype = sp2 +bonda 8 9 +atom 13 (1) (2212, 850, -215) def +bond1 1 +atom 14 (1) (2505, 423, 673) def +bond1 1 +atom 15 (1) (534, 1459, 836) def +bond1 2 +atom 16 (1) (-233, -201, 2157) def +bond1 6 +atom 17 (1) (1275, -1496, 1126) def +bond1 6 +atom 18 (1) (-2573, 213, 198) def +bond1 9 +atom 19 (1) (1531, -1050, -1586) def +bond1 10 +atom 20 (1) (559, -1987, -2978) def +bond1 11 +atom 21 (1) (-3338, 354, -2089) def +bond1 12 +atom 22 (1) (-2106, -886, -4101) def +bond1 8 +atom 23 (1) (2913, 508, 3985) def +bond1 5 +egroup (phe) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part phe + diff --git a/sim/src/tests/amino_acids/test_phe_l_aminoacid.test b/sim/src/tests/amino_acids/test_phe_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_phe_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_phe_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_phe_l_aminoacid.xyzcmp new file mode 100755 index 000000000..dc8aa3756 --- /dev/null +++ b/sim/src/tests/amino_acids/test_phe_l_aminoacid.xyzcmp @@ -0,0 +1,25 @@ +23 +phe_l_aminoacid.mmp +N 2.289000 1.228000 0.357000 +C 1.105000 1.065000 1.193000 +C 1.447000 1.293000 2.658000 +O 0.742000 1.861000 3.459000 +O 2.624000 0.711000 3.004000 +C 0.367000 -0.310000 1.073000 +C -0.213000 -0.527000 -0.305000 +C -1.279000 -0.850000 -2.893000 +C -1.464000 0.012000 -0.640000 +C 0.495000 -1.228000 -1.292000 +C -0.033000 -1.390000 -2.575000 +C -1.995000 -0.148000 -1.920000 +H 2.059000 0.991000 -0.605000 +H 3.020000 0.591000 0.664000 +H 0.388000 1.852000 0.935000 +H -0.432000 -0.340000 1.825000 +H 1.079000 -1.105000 1.324000 +H -2.029000 0.556000 0.113000 +H 1.461000 -1.665000 -1.049000 +H 0.529000 -1.943000 -3.323000 +H -2.969000 0.271000 -2.155000 +H -1.692000 -0.978000 -3.889000 +H 2.740000 0.883000 3.954000 diff --git a/sim/src/tests/amino_acids/test_pro_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_pro_l_aminoacid.md5sums new file mode 100755 index 000000000..d0f00781a --- /dev/null +++ b/sim/src/tests/amino_acids/test_pro_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout 068E5DE661FFE0094875940A9BDCC2FD +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_pro_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_pro_l_aminoacid.mmp new file mode 100755 index 000000000..b8583a0db --- /dev/null +++ b/sim/src/tests/amino_acids/test_pro_l_aminoacid.mmp @@ -0,0 +1,52 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.064710, -0.299688, -0.930339, 0.201170) (7.085368) (-0.136500, -0.150500, -0.281500) (1.000000) +egroup (View Data) +group (pro) +info opengroup open = True +mol (pro.pdb) cpk +atom 1 (6) (-735, 295, -905) def +atom 2 (6) (-844, 1316, 484) def +bond1 1 +atom 3 (6) (-1151, -318, 1126) def +bond1 2 +atom 4 (6) (-84, -1491, 26) def +bond1 3 +atom 5 (7) (-250, -604, -843) def +bond1 1 4 +atom 6 (6) (1190, 1506, -781) def +info atom atomtype = sp2 +bond1 1 +atom 7 (8) (752, 2969, -1553) def +info atom atomtype = sp2 +bond2 6 +atom 8 (8) (2018, 886, -1285) def +bond1 6 +atom 9 (1) (-724, 305, -1579) def +bond1 1 +atom 10 (1) (27, 1134, 1581) def +bond1 2 +atom 11 (1) (-1488, 1446, 1065) def +bond1 2 +atom 12 (1) (-2433, -1194, 714) def +bond1 3 +atom 13 (1) (-1187, -472, 2046) def +bond1 3 +atom 14 (1) (1358, -944, -23) def +bond1 4 +atom 15 (1) (-342, -1849, 20) def +bond1 4 +atom 16 (1) (386, -478, -1554) def +bond1 5 +atom 17 (1) (2564, 1938, -1517) def +bond1 8 +egroup (pro) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part pro + diff --git a/sim/src/tests/amino_acids/test_pro_l_aminoacid.test b/sim/src/tests/amino_acids/test_pro_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_pro_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_pro_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_pro_l_aminoacid.xyzcmp new file mode 100755 index 000000000..6efc3b34b --- /dev/null +++ b/sim/src/tests/amino_acids/test_pro_l_aminoacid.xyzcmp @@ -0,0 +1,19 @@ +17 +pro_l_aminoacid.mmp +C -0.576000 0.642000 -0.924000 +C -1.048000 0.867000 0.554000 +C -1.211000 -0.556000 1.118000 +C -0.172000 -1.350000 0.322000 +N -0.341000 -0.803000 -1.029000 +C 0.614000 1.548000 -1.223000 +O 0.531000 2.730000 -1.471000 +O 1.806000 0.897000 -1.162000 +H -1.357000 0.956000 -1.627000 +H -0.283000 1.410000 1.118000 +H -1.962000 1.463000 0.597000 +H -2.212000 -0.943000 0.902000 +H -1.047000 -0.607000 2.198000 +H 0.837000 -1.186000 0.739000 +H -0.364000 -2.429000 0.325000 +H 0.444000 -1.016000 -1.635000 +H 2.485000 1.568000 -1.346000 diff --git a/sim/src/tests/amino_acids/test_ser_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_ser_l_aminoacid.md5sums new file mode 100755 index 000000000..30a69cc10 --- /dev/null +++ b/sim/src/tests/amino_acids/test_ser_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout 0C782D8A3E82B8546D8D965A322A0636 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_ser_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_ser_l_aminoacid.mmp new file mode 100755 index 000000000..b7cd9a1b4 --- /dev/null +++ b/sim/src/tests/amino_acids/test_ser_l_aminoacid.mmp @@ -0,0 +1,46 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.951918, 0.088643, -0.230273, -0.181571) (6.294654) (0.116000, 0.102000, 0.009000) (1.000000) +egroup (View Data) +group (ser) +info opengroup open = True +mol (ser.pdb) cpk +atom 1 (7) (-1665, 1377, 947) def +atom 2 (6) (-418, 1065, 473) def +bond1 1 +atom 3 (6) (675, 819, -333) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (1708, 84, 338) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (596, 959, -932) def +bond1 3 +atom 6 (6) (-1174, -343, 985) def +bond1 2 +atom 7 (8) (-1630, -1516, -348) def +bond1 6 +atom 8 (1) (-1379, 1789, 1123) def +bond1 1 +atom 9 (1) (-1688, 1708, -291) def +bond1 1 +atom 10 (1) (208, 863, 2030) def +bond1 2 +atom 11 (1) (-1555, -792, 1912) def +bond1 6 +atom 12 (1) (-51, -1484, 1092) def +bond1 6 +atom 13 (1) (-2041, -1825, -352) def +bond1 7 +atom 14 (1) (1902, 364, -1705) def +bond1 5 +egroup (ser) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ser + diff --git a/sim/src/tests/amino_acids/test_ser_l_aminoacid.test b/sim/src/tests/amino_acids/test_ser_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_ser_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_ser_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_ser_l_aminoacid.xyzcmp new file mode 100755 index 000000000..44e6b89c5 --- /dev/null +++ b/sim/src/tests/amino_acids/test_ser_l_aminoacid.xyzcmp @@ -0,0 +1,16 @@ +14 +ser_l_aminoacid.mmp +N -1.113000 1.657000 0.486000 +C -0.274000 0.508000 0.800000 +C 0.887000 0.342000 -0.182000 +O 1.767000 -0.480000 -0.030000 +O 0.835000 1.171000 -1.242000 +C -1.010000 -0.841000 0.883000 +O -1.667000 -1.031000 -0.366000 +H -1.845000 1.732000 1.189000 +H -1.579000 1.490000 -0.403000 +H 0.200000 0.677000 1.776000 +H -1.733000 -0.801000 1.715000 +H -0.284000 -1.637000 1.090000 +H -1.999000 -1.936000 -0.404000 +H 1.602000 0.942000 -1.794000 diff --git a/sim/src/tests/amino_acids/test_thr_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_thr_l_aminoacid.md5sums new file mode 100755 index 000000000..d840a5c92 --- /dev/null +++ b/sim/src/tests/amino_acids/test_thr_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout 512A5B12C52F1722629FDA60F438DC8E +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_thr_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_thr_l_aminoacid.mmp new file mode 100755 index 000000000..c5e67c1bd --- /dev/null +++ b/sim/src/tests/amino_acids/test_thr_l_aminoacid.mmp @@ -0,0 +1,52 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.974800, 0.095460, -0.190824, -0.065108) (6.785623) (0.225000, 0.167000, -0.226000) (1.000000) +egroup (View Data) +group (thr) +info opengroup open = True +mol (thr.pdb) cpk +atom 1 (7) (-601, 1396, -1179) def +atom 2 (6) (-929, -334, -66) def +bond1 1 +atom 3 (6) (-60, -982, -142) def +bond1 2 +atom 4 (6) (-462, 1349, 788) def +info atom atomtype = sp2 +bond1 2 +atom 5 (8) (-1688, 2138, 1318) def +bond1 4 +atom 6 (8) (439, 1246, 1613) def +info atom atomtype = sp2 +bond2 4 +atom 7 (8) (1253, -956, -752) def +bond1 3 +atom 8 (6) (-130, -1459, 1218) def +bond1 3 +atom 9 (1) (-1711, 1971, -1475) def +bond1 1 +atom 10 (1) (446, 1303, -1344) def +bond1 1 +atom 11 (1) (-2130, 146, 222) def +bond1 2 +atom 12 (1) (-236, -1516, -833) def +bond1 3 +atom 13 (1) (-1729, 2252, 2307) def +bond1 5 +atom 14 (1) (959, -206, 507) def +bond1 7 +atom 15 (1) (335, -3023, 491) def +bond1 8 +atom 16 (1) (-1354, -2590, 646) def +bond1 8 +atom 17 (1) (149, -1549, 1829) def +bond1 8 +egroup (thr) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part thr + diff --git a/sim/src/tests/amino_acids/test_thr_l_aminoacid.test b/sim/src/tests/amino_acids/test_thr_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_thr_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_thr_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_thr_l_aminoacid.xyzcmp new file mode 100755 index 000000000..e75d1ee48 --- /dev/null +++ b/sim/src/tests/amino_acids/test_thr_l_aminoacid.xyzcmp @@ -0,0 +1,19 @@ +17 +thr_l_aminoacid.mmp +N -0.843000 1.041000 -1.472000 +C -0.954000 0.270000 -0.228000 +C -0.056000 -0.979000 -0.339000 +C -0.564000 1.136000 0.971000 +O -1.586000 1.915000 1.389000 +O 0.544000 1.208000 1.476000 +O 1.300000 -0.596000 -0.544000 +C -0.211000 -1.944000 0.838000 +H -1.334000 1.928000 -1.395000 +H 0.143000 1.228000 -1.643000 +H -2.000000 -0.032000 -0.101000 +H -0.357000 -1.483000 -1.265000 +H -1.230000 2.483000 2.095000 +H 1.550000 -0.081000 0.243000 +H 0.428000 -2.817000 0.681000 +H -1.247000 -2.289000 0.934000 +H 0.082000 -1.474000 1.783000 diff --git a/sim/src/tests/amino_acids/test_trp_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_trp_l_aminoacid.mmp new file mode 100755 index 000000000..8f0434bdd --- /dev/null +++ b/sim/src/tests/amino_acids/test_trp_l_aminoacid.mmp @@ -0,0 +1,81 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.667991, 0.369528, 0.376107, -0.525148) (8.962008) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (trp) +info opengroup open = True +mol (trp.pdb) cpk +atom 1 (7) (573, 888, -2184) def +atom 2 (6) (2174, 1156, -1268) def +bond1 1 +atom 3 (6) (3233, 1168, -2355) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (4525, 1600, -1662) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (3089, 155, -2887) def +bond1 3 +atom 6 (6) (1931, 415, -537) def +bond1 2 +atom 7 (6) (600, 604, 608) def +info atom atomtype = sp2 +bond1 6 +atom 8 (6) (1029, 923, 1637) def +info atom atomtype = sp2 +bond2 7 +atom 9 (6) (-270, -210, 558) def +info atom atomtype = sp2 +bond1 7 +atom 10 (7) (-394, 899, 3065) def +bond1 8 +atom 11 (6) (-1351, -330, 2124) def +info atom atomtype = sp2 +bond1 10 +bonda 9 +atom 12 (6) (-1744, -1446, -254) def +info atom atomtype = sp2 +bonda 9 +atom 13 (6) (-2203, 49, 2261) def +info atom atomtype = sp2 +bonda 11 +atom 14 (6) (-3038, -1490, 1350) def +info atom atomtype = sp2 +bonda 13 +atom 15 (6) (-2858, -1804, 305) def +info atom atomtype = sp2 +bonda 12 14 +atom 16 (1) (24, 1124, -1592) def +bond1 1 +atom 17 (1) (787, 113, -2348) def +bond1 1 +atom 18 (1) (1998, 2418, -686) def +bond1 2 +atom 19 (1) (3457, -93, -3476) def +bond1 5 +atom 20 (1) (2943, 584, 146) def +bond1 6 +atom 21 (1) (1832, -1613, -221) def +bond1 6 +atom 22 (1) (1514, 1535, 2301) def +bond1 8 +atom 23 (1) (-786, 761, 3465) def +bond1 10 +atom 24 (1) (-517, -1208, -1246) def +bond1 12 +atom 25 (1) (-3042, 146, 3717) def +bond1 13 +atom 26 (1) (-4480, -1265, 2008) def +bond1 14 +atom 27 (1) (-2735, -1828, -284) def +bond1 15 +egroup (trp) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part trp + diff --git a/sim/src/tests/amino_acids/test_trp_l_aminoacid.test b/sim/src/tests/amino_acids/test_trp_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_trp_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_trp_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_trp_l_aminoacid.xyzcmp new file mode 100755 index 000000000..6ab02812a --- /dev/null +++ b/sim/src/tests/amino_acids/test_trp_l_aminoacid.xyzcmp @@ -0,0 +1,29 @@ +27 +trp_l_aminoacid.mmp +N 0.674000 1.181000 -2.133000 +C 1.877000 1.182000 -1.303000 +C 3.115000 1.049000 -2.177000 +O 4.148000 1.664000 -2.033000 +O 2.967000 0.084000 -3.122000 +C 1.949000 0.090000 -0.185000 +C 0.854000 0.205000 0.835000 +C 0.924000 0.888000 2.025000 +C -0.480000 -0.351000 0.769000 +N -0.279000 0.797000 2.700000 +C -1.159000 0.038000 1.958000 +C -1.163000 -1.155000 -0.163000 +C -2.478000 -0.345000 2.229000 +C -3.123000 -1.135000 1.286000 +C -2.471000 -1.538000 0.102000 +H -0.146000 1.228000 -1.533000 +H 0.617000 0.307000 -2.650000 +H 1.959000 2.160000 -0.818000 +H 3.808000 0.052000 -3.609000 +H 2.924000 0.174000 0.311000 +H 1.924000 -0.897000 -0.664000 +H 1.754000 1.433000 2.454000 +H -0.466000 1.188000 3.609000 +H -0.672000 -1.473000 -1.079000 +H -2.978000 -0.037000 3.143000 +H -4.148000 -1.448000 1.463000 +H -3.005000 -2.160000 -0.612000 diff --git a/sim/src/tests/amino_acids/test_tyr_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_tyr_l_aminoacid.md5sums new file mode 100755 index 000000000..c4f780c83 --- /dev/null +++ b/sim/src/tests/amino_acids/test_tyr_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout C9DB4904F76F67853636E8EC909356AC +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_tyr_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_tyr_l_aminoacid.mmp new file mode 100755 index 000000000..55df0b1a6 --- /dev/null +++ b/sim/src/tests/amino_acids/test_tyr_l_aminoacid.mmp @@ -0,0 +1,71 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.683804, -0.496978, 0.481466, 0.231549) (7.154533) (-0.034000, 0.103000, -0.043500) (1.000000) +egroup (View Data) +group (tyr) +info opengroup open = True +mol (tyr.pdb) cpk +atom 1 (7) (2299, 764, 987) def +atom 2 (6) (1169, 731, 1896) def +bond1 1 +atom 3 (6) (1137, 767, 3312) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (808, 1469, 3256) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (2843, 237, 3481) def +bond1 3 +atom 6 (6) (315, -166, 1083) def +bond1 2 +atom 7 (6) (-204, -2, 390) def +info atom atomtype = sp2 +bond1 6 +atom 8 (6) (-1893, -870, -2589) def +info atom atomtype = sp2 +atom 9 (6) (-1494, -356, -108) def +info atom atomtype = sp2 +bonda 7 +atom 10 (6) (957, -1549, -951) def +info atom atomtype = sp2 +bonda 7 +atom 11 (6) (-303, -1651, -2389) def +info atom atomtype = sp2 +bonda 8 10 +atom 12 (6) (-2544, -148, -1776) def +info atom atomtype = sp2 +bonda 8 9 +atom 13 (8) (-2227, -1030, -3886) def +bond1 8 +atom 14 (1) (2264, 1218, 268) def +bond1 1 +atom 15 (1) (3123, 226, 1173) def +bond1 1 +atom 16 (1) (794, 1468, 1509) def +bond1 2 +atom 17 (1) (-182, -621, 2548) def +bond1 6 +atom 18 (1) (1284, -1406, 1535) def +bond1 6 +atom 19 (1) (-1869, 994, 719) def +bond1 9 +atom 20 (1) (1881, -1446, -371) def +bond1 10 +atom 21 (1) (617, -1540, -2880) def +bond1 11 +atom 22 (1) (-2653, 377, -2138) def +bond1 12 +atom 23 (1) (-977, -1604, -4585) def +bond1 13 +atom 24 (1) (2845, 866, 4321) def +bond1 5 +egroup (tyr) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part tyr + diff --git a/sim/src/tests/amino_acids/test_tyr_l_aminoacid.test b/sim/src/tests/amino_acids/test_tyr_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_tyr_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_tyr_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_tyr_l_aminoacid.xyzcmp new file mode 100755 index 000000000..e4f708b66 --- /dev/null +++ b/sim/src/tests/amino_acids/test_tyr_l_aminoacid.xyzcmp @@ -0,0 +1,26 @@ +24 +tyr_l_aminoacid.mmp +N 2.280000 1.181000 0.808000 +C 1.090000 0.998000 1.631000 +C 1.418000 1.203000 3.102000 +O 0.701000 1.751000 3.909000 +O 2.597000 0.626000 3.449000 +C 0.361000 -0.379000 1.482000 +C -0.203000 -0.584000 0.096000 +C -1.249000 -0.889000 -2.508000 +C -1.450000 -0.041000 -0.257000 +C 0.505000 -1.281000 -0.890000 +C -0.006000 -1.437000 -2.181000 +C -1.974000 -0.187000 -1.536000 +O -1.809000 -1.006000 -3.749000 +H 2.057000 0.961000 -0.160000 +H 3.009000 0.539000 1.108000 +H 0.371000 1.785000 1.380000 +H -0.444000 -0.425000 2.227000 +H 1.076000 -1.172000 1.731000 +H -2.025000 0.502000 0.489000 +H 1.468000 -1.725000 -0.648000 +H 0.560000 -1.991000 -2.927000 +H -2.941000 0.228000 -1.801000 +H -1.218000 -1.519000 -4.316000 +H 2.701000 0.781000 4.403000 diff --git a/sim/src/tests/amino_acids/test_val_l_aminoacid.md5sums b/sim/src/tests/amino_acids/test_val_l_aminoacid.md5sums new file mode 100755 index 000000000..8017549a6 --- /dev/null +++ b/sim/src/tests/amino_acids/test_val_l_aminoacid.md5sums @@ -0,0 +1,2 @@ +stdout 3DDA30D8077EFA6F2F8EDC634E9FA750 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/amino_acids/test_val_l_aminoacid.mmp b/sim/src/tests/amino_acids/test_val_l_aminoacid.mmp new file mode 100755 index 000000000..285b17ca5 --- /dev/null +++ b/sim/src/tests/amino_acids/test_val_l_aminoacid.mmp @@ -0,0 +1,56 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.772768, 0.095857, -0.334589, -0.530746) (7.034538) (0.058500, 0.071000, -0.107500) (1.000000) +egroup (View Data) +group (val) +info opengroup open = True +mol (val.pdb) cpk +atom 1 (7) (-785, 1886, 214) def +atom 2 (6) (-312, 382, 546) def +bond1 1 +atom 3 (6) (1136, 804, -1) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (1939, 543, -38) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (603, 1458, -1356) def +bond1 3 +atom 6 (6) (-981, -294, 902) def +bond1 2 +atom 7 (6) (164, -2169, 632) def +bond1 6 +atom 8 (6) (-1468, -269, -1062) def +bond1 6 +atom 9 (1) (-1261, 1800, -6) def +bond1 1 +atom 10 (1) (-489, 2565, 1162) def +bond1 1 +atom 11 (1) (186, 883, 2182) def +bond1 2 +atom 12 (1) (-1713, -1235, 1524) def +bond1 6 +atom 13 (1) (-571, -351, -2070) def +bond1 8 +atom 14 (1) (-2523, -139, -897) def +bond1 8 +atom 15 (1) (-2170, -2131, -1295) def +bond1 8 +atom 16 (1) (596, -1753, 569) def +bond1 7 +atom 17 (1) (-508, -2448, 1022) def +bond1 7 +atom 18 (1) (369, -1892, 1821) def +bond1 7 +atom 19 (1) (2153, 1242, -1524) def +bond1 5 +egroup (val) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part val + diff --git a/sim/src/tests/amino_acids/test_val_l_aminoacid.test b/sim/src/tests/amino_acids/test_val_l_aminoacid.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/amino_acids/test_val_l_aminoacid.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/amino_acids/test_val_l_aminoacid.xyzcmp b/sim/src/tests/amino_acids/test_val_l_aminoacid.xyzcmp new file mode 100755 index 000000000..c5d0d5253 --- /dev/null +++ b/sim/src/tests/amino_acids/test_val_l_aminoacid.xyzcmp @@ -0,0 +1,21 @@ +19 +val_l_aminoacid.mmp +N -1.047000 1.819000 0.655000 +C -0.165000 0.664000 0.810000 +C 1.127000 0.709000 -0.009000 +O 2.187000 0.231000 0.332000 +O 0.976000 1.346000 -1.202000 +C -0.952000 -0.659000 0.563000 +C -0.102000 -1.904000 0.850000 +C -1.591000 -0.728000 -0.832000 +H -1.247000 1.973000 -0.330000 +H -0.575000 2.662000 0.976000 +H 0.173000 0.637000 1.853000 +H -1.765000 -0.617000 1.301000 +H -0.838000 -0.687000 -1.627000 +H -2.304000 0.085000 -0.990000 +H -2.140000 -1.669000 -0.945000 +H 0.701000 -2.025000 0.116000 +H -0.726000 -2.804000 0.812000 +H 0.366000 -1.858000 1.839000 +H 1.845000 1.300000 -1.638000 diff --git a/sim/src/tests/amino_acids/thr_l_aminoacid.mmp b/sim/src/tests/amino_acids/thr_l_aminoacid.mmp new file mode 100755 index 000000000..f5281eba5 --- /dev/null +++ b/sim/src/tests/amino_acids/thr_l_aminoacid.mmp @@ -0,0 +1,51 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.974800, 0.095460, -0.190824, -0.065108) (6.785623) (0.225000, 0.167000, -0.226000) (1.000000) +egroup (View Data) +group (thr) +info opengroup open = True +mol (thr.pdb) cpk +atom 1 (7) (-843, 1041, -1472) def +atom 2 (6) (-954, 270, -228) def +bond1 1 +atom 3 (6) (-56, -979, -339) def +bond1 2 +atom 4 (6) (-564, 1136, 971) def +info atom atomtype = sp2 +bond1 2 +atom 5 (8) (-1586, 1915, 1389) def +bond1 4 +atom 6 (8) (544, 1208, 1476) def +info atom atomtype = sp2 +bond2 4 +atom 7 (8) (1300, -596, -544) def +bond1 3 +atom 8 (6) (-211, -1944, 838) def +bond1 3 +atom 9 (1) (-1334, 1928, -1395) def +bond1 1 +atom 10 (1) (143, 1228, -1643) def +bond1 1 +atom 11 (1) (-2000, -32, -101) def +bond1 2 +atom 12 (1) (-357, -1483, -1265) def +bond1 3 +atom 13 (1) (-1230, 2483, 2095) def +bond1 5 +atom 14 (1) (1550, -81, 243) def +bond1 7 +atom 15 (1) (428, -2817, 681) def +bond1 8 +atom 16 (1) (-1247, -2289, 934) def +bond1 8 +atom 17 (1) (82, -1474, 1783) def +bond1 8 +egroup (thr) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part thr diff --git a/sim/src/tests/amino_acids/thr_l_aminoacid.pdb b/sim/src/tests/amino_acids/thr_l_aminoacid.pdb new file mode 100755 index 000000000..9cdabb5e4 --- /dev/null +++ b/sim/src/tests/amino_acids/thr_l_aminoacid.pdb @@ -0,0 +1,38 @@ +COMPND thr.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 -0.843 1.041 -1.472 1.00 0.00 N +HETATM 2 C LIG 1 -0.954 0.270 -0.228 1.00 0.00 C +HETATM 3 C LIG 1 -0.056 -0.979 -0.339 1.00 0.00 C +HETATM 4 C LIG 1 -0.564 1.136 0.971 1.00 0.00 C +HETATM 5 O LIG 1 -1.586 1.915 1.389 1.00 0.00 O +HETATM 6 O LIG 1 0.544 1.208 1.476 1.00 0.00 O +HETATM 7 O LIG 1 1.300 -0.596 -0.544 1.00 0.00 O +HETATM 8 C LIG 1 -0.211 -1.944 0.838 1.00 0.00 C +HETATM 9 H LIG 1 -1.334 1.928 -1.395 1.00 0.00 H +HETATM 10 H LIG 1 0.143 1.228 -1.643 1.00 0.00 H +HETATM 11 H LIG 1 -2.000 -0.032 -0.101 1.00 0.00 H +HETATM 12 H LIG 1 -0.357 -1.483 -1.265 1.00 0.00 H +HETATM 13 H LIG 1 -1.230 2.483 2.095 1.00 0.00 H +HETATM 14 H LIG 1 1.550 -0.081 0.243 1.00 0.00 H +HETATM 15 H LIG 1 0.428 -2.817 0.681 1.00 0.00 H +HETATM 16 H LIG 1 -1.247 -2.289 0.934 1.00 0.00 H +HETATM 17 H LIG 1 0.082 -1.474 1.783 1.00 0.00 H +CONECT 1 10 9 2 +CONECT 2 1 3 11 4 +CONECT 3 12 7 2 8 +CONECT 4 2 5 6 +CONECT 5 4 13 +CONECT 6 4 +CONECT 7 3 14 +CONECT 8 3 15 16 17 +CONECT 9 1 +CONECT 10 1 +CONECT 11 2 +CONECT 12 3 +CONECT 13 5 +CONECT 14 7 +CONECT 15 8 +CONECT 16 8 +CONECT 17 8 +MASTER 0 0 0 0 0 0 0 0 17 0 17 0 +END diff --git a/sim/src/tests/amino_acids/trp_l_aminoacid.mmp b/sim/src/tests/amino_acids/trp_l_aminoacid.mmp new file mode 100755 index 000000000..f0682bd54 --- /dev/null +++ b/sim/src/tests/amino_acids/trp_l_aminoacid.mmp @@ -0,0 +1,80 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.667991, 0.369528, 0.376107, -0.525148) (8.962008) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (trp) +info opengroup open = True +mol (trp.pdb) cpk +atom 1 (7) (674, 1181, -2133) def +atom 2 (6) (1877, 1182, -1303) def +bond1 1 +atom 3 (6) (3115, 1049, -2177) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (4148, 1664, -2033) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (2967, 84, -3122) def +bond1 3 +atom 6 (6) (1949, 90, -185) def +bond1 2 +atom 7 (6) (854, 205, 835) def +info atom atomtype = sp2 +bond1 6 +atom 8 (6) (924, 888, 2025) def +info atom atomtype = sp2 +bond2 7 +atom 9 (6) (-480, -351, 769) def +info atom atomtype = sp2 +bond1 7 +atom 10 (7) (-279, 797, 2700) def +bond1 8 +atom 11 (6) (-1159, 38, 1958) def +info atom atomtype = sp2 +bond1 10 +bonda 9 +atom 12 (6) (-1163, -1155, -163) def +info atom atomtype = sp2 +bonda 9 +atom 13 (6) (-2478, -345, 2229) def +info atom atomtype = sp2 +bonda 11 +atom 14 (6) (-3123, -1135, 1286) def +info atom atomtype = sp2 +bonda 13 +atom 15 (6) (-2471, -1538, 102) def +info atom atomtype = sp2 +bonda 12 14 +atom 16 (1) (-146, 1228, -1533) def +bond1 1 +atom 17 (1) (617, 307, -2650) def +bond1 1 +atom 18 (1) (1959, 2160, -818) def +bond1 2 +atom 19 (1) (3808, 52, -3609) def +bond1 5 +atom 20 (1) (2924, 174, 311) def +bond1 6 +atom 21 (1) (1924, -897, -664) def +bond1 6 +atom 22 (1) (1754, 1433, 2454) def +bond1 8 +atom 23 (1) (-466, 1188, 3609) def +bond1 10 +atom 24 (1) (-672, -1473, -1079) def +bond1 12 +atom 25 (1) (-2978, -37, 3143) def +bond1 13 +atom 26 (1) (-4148, -1448, 1463) def +bond1 14 +atom 27 (1) (-3005, -2160, -612) def +bond1 15 +egroup (trp) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part trp diff --git a/sim/src/tests/amino_acids/trp_l_aminoacid.pdb b/sim/src/tests/amino_acids/trp_l_aminoacid.pdb new file mode 100755 index 000000000..33c8a9d71 --- /dev/null +++ b/sim/src/tests/amino_acids/trp_l_aminoacid.pdb @@ -0,0 +1,56 @@ +COMPND trp.pdb +HETATM 1 N 0.674 1.181 -2.133 +HETATM 2 C 1.877 1.182 -1.303 +HETATM 3 C 3.115 1.049 -2.177 +HETATM 4 O 4.148 1.664 -2.033 +HETATM 5 O 2.967 0.084 -3.122 +HETATM 6 C 1.949 0.090 -0.185 +HETATM 7 C 0.854 0.205 0.835 +HETATM 8 C 0.924 0.888 2.026 +HETATM 9 C -0.480 -0.351 0.769 +HETATM 10 N -0.279 0.797 2.700 +HETATM 11 C -1.159 0.038 1.958 +HETATM 12 C -1.163 -1.155 -0.163 +HETATM 13 C -2.478 -0.345 2.229 +HETATM 14 C -3.123 -1.135 1.286 +HETATM 15 C -2.471 -1.538 0.102 +HETATM 16 H -0.146 1.228 -1.533 +HETATM 17 H 0.617 0.307 -2.650 +HETATM 18 H 1.959 2.160 -0.818 +HETATM 22 H 3.808 0.052 -3.609 +HETATM 19 H 2.924 0.174 0.311 +HETATM 20 H 1.924 -0.897 -0.664 +HETATM 21 H 1.754 1.433 2.454 +HETATM 23 H -0.466 1.188 3.609 +HETATM 26 H -0.672 -1.473 -1.079 +HETATM 24 H -2.978 -0.037 3.143 +HETATM 25 H -4.148 -1.448 1.463 +HETATM 27 H -3.005 -2.160 -0.612 +CONECT 1 2 16 17 +CONECT 2 1 3 6 18 +CONECT 3 2 4 5 +CONECT 4 3 +CONECT 5 3 22 +CONECT 6 2 7 19 20 +CONECT 7 6 8 9 +CONECT 8 7 10 21 +CONECT 9 7 11 12 +CONECT 10 8 11 23 +CONECT 11 9 10 13 +CONECT 12 9 15 26 +CONECT 13 11 14 24 +CONECT 14 13 15 25 +CONECT 15 12 14 27 +CONECT 16 1 +CONECT 17 1 +CONECT 18 2 +CONECT 22 5 +CONECT 19 6 +CONECT 20 6 +CONECT 21 8 +CONECT 23 10 +CONECT 26 12 +CONECT 24 13 +CONECT 25 14 +CONECT 27 15 +END diff --git a/sim/src/tests/amino_acids/tyr_l_aminoacid.mmp b/sim/src/tests/amino_acids/tyr_l_aminoacid.mmp new file mode 100755 index 000000000..d6a17bf94 --- /dev/null +++ b/sim/src/tests/amino_acids/tyr_l_aminoacid.mmp @@ -0,0 +1,70 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.683804, -0.496978, 0.481466, 0.231549) (7.154533) (-0.034000, 0.103000, -0.043500) (1.000000) +egroup (View Data) +group (tyr) +info opengroup open = True +mol (tyr.pdb) cpk +atom 1 (7) (2280, 1181, 808) def +atom 2 (6) (1090, 998, 1631) def +bond1 1 +atom 3 (6) (1418, 1203, 3102) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (701, 1751, 3909) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (2597, 626, 3449) def +bond1 3 +atom 6 (6) (361, -379, 1482) def +bond1 2 +atom 7 (6) (-203, -584, 96) def +info atom atomtype = sp2 +bond1 6 +atom 8 (6) (-1249, -889, -2508) def +info atom atomtype = sp2 +atom 9 (6) (-1450, -41, -257) def +info atom atomtype = sp2 +bonda 7 +atom 10 (6) (505, -1281, -890) def +info atom atomtype = sp2 +bonda 7 +atom 11 (6) (-6, -1437, -2181) def +info atom atomtype = sp2 +bonda 8 10 +atom 12 (6) (-1974, -187, -1536) def +info atom atomtype = sp2 +bonda 8 9 +atom 13 (8) (-1809, -1006, -3749) def +bond1 8 +atom 14 (1) (2057, 961, -160) def +bond1 1 +atom 15 (1) (3009, 539, 1108) def +bond1 1 +atom 16 (1) (371, 1785, 1380) def +bond1 2 +atom 17 (1) (-444, -425, 2227) def +bond1 6 +atom 18 (1) (1076, -1172, 1731) def +bond1 6 +atom 19 (1) (-2025, 502, 489) def +bond1 9 +atom 20 (1) (1468, -1725, -648) def +bond1 10 +atom 21 (1) (560, -1991, -2927) def +bond1 11 +atom 22 (1) (-2941, 228, -1801) def +bond1 12 +atom 23 (1) (-1218, -1519, -4316) def +bond1 13 +atom 24 (1) (2701, 781, 4403) def +bond1 5 +egroup (tyr) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part tyr diff --git a/sim/src/tests/amino_acids/tyr_l_aminoacid.pdb b/sim/src/tests/amino_acids/tyr_l_aminoacid.pdb new file mode 100755 index 000000000..3c1136db2 --- /dev/null +++ b/sim/src/tests/amino_acids/tyr_l_aminoacid.pdb @@ -0,0 +1,52 @@ +COMPND tyr.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 N UNK 0 2.280 1.181 0.808 1.00 0.00 N +ATOM 2 C UNK 0 1.090 0.998 1.631 1.00 0.00 C +ATOM 3 C UNK 0 1.418 1.203 3.102 1.00 0.00 C +ATOM 4 O UNK 0 0.701 1.751 3.909 1.00 0.00 O +ATOM 5 O UNK 0 2.597 0.626 3.449 1.00 0.00 O +ATOM 6 C UNK 0 0.361 -0.379 1.482 1.00 0.00 C +ATOM 7 C UNK 0 -0.203 -0.584 0.096 1.00 0.00 C +ATOM 8 C UNK 0 -1.249 -0.889 -2.508 1.00 0.00 C +ATOM 9 C UNK 0 -1.450 -0.041 -0.257 1.00 0.00 C +ATOM 10 C UNK 0 0.505 -1.281 -0.890 1.00 0.00 C +ATOM 11 C UNK 0 -0.006 -1.437 -2.181 1.00 0.00 C +ATOM 12 C UNK 0 -1.974 -0.187 -1.536 1.00 0.00 C +ATOM 13 O UNK 0 -1.809 -1.006 -3.749 1.00 0.00 O +ATOM 14 H UNK 0 2.057 0.961 -0.160 1.00 0.00 H +ATOM 15 H UNK 0 3.009 0.539 1.108 1.00 0.00 H +ATOM 16 H UNK 0 0.371 1.785 1.380 1.00 0.00 H +ATOM 17 H UNK 0 -0.444 -0.425 2.227 1.00 0.00 H +ATOM 18 H UNK 0 1.076 -1.172 1.731 1.00 0.00 H +ATOM 19 H UNK 0 -2.025 0.502 0.489 1.00 0.00 H +ATOM 20 H UNK 0 1.468 -1.725 -0.648 1.00 0.00 H +ATOM 21 H UNK 0 0.560 -1.991 -2.927 1.00 0.00 H +ATOM 22 H UNK 0 -2.941 0.228 -1.801 1.00 0.00 H +ATOM 23 H UNK 0 -1.218 -1.519 -4.316 1.00 0.00 H +ATOM 24 H UNK 0 2.701 0.781 4.403 1.00 0.00 H +CONECT 1 14 15 2 +CONECT 2 1 16 6 3 +CONECT 3 2 5 4 +CONECT 4 3 +CONECT 5 3 24 +CONECT 6 7 2 18 17 +CONECT 7 10 9 6 +CONECT 8 13 11 12 +CONECT 9 12 7 19 +CONECT 10 11 20 7 +CONECT 11 21 8 10 +CONECT 12 8 22 9 +CONECT 13 23 8 +CONECT 14 1 +CONECT 15 1 +CONECT 16 2 +CONECT 17 6 +CONECT 18 6 +CONECT 19 9 +CONECT 20 10 +CONECT 21 11 +CONECT 22 12 +CONECT 23 13 +CONECT 24 5 +MASTER 0 0 0 0 0 0 0 0 24 0 24 0 +END diff --git a/sim/src/tests/amino_acids/val_l_aminoacid.mmp b/sim/src/tests/amino_acids/val_l_aminoacid.mmp new file mode 100755 index 000000000..3776a5e70 --- /dev/null +++ b/sim/src/tests/amino_acids/val_l_aminoacid.mmp @@ -0,0 +1,55 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.772768, 0.095857, -0.334589, -0.530746) (7.034538) (0.058500, 0.071000, -0.107500) (1.000000) +egroup (View Data) +group (val) +info opengroup open = True +mol (val.pdb) cpk +atom 1 (7) (-1047, 1819, 655) def +atom 2 (6) (-165, 664, 810) def +bond1 1 +atom 3 (6) (1127, 709, -9) def +info atom atomtype = sp2 +bond1 2 +atom 4 (8) (2187, 231, 332) def +info atom atomtype = sp2 +bond2 3 +atom 5 (8) (976, 1346, -1202) def +bond1 3 +atom 6 (6) (-952, -659, 563) def +bond1 2 +atom 7 (6) (-102, -1904, 850) def +bond1 6 +atom 8 (6) (-1591, -728, -832) def +bond1 6 +atom 9 (1) (-1247, 1973, -330) def +bond1 1 +atom 10 (1) (-575, 2662, 976) def +bond1 1 +atom 11 (1) (173, 637, 1853) def +bond1 2 +atom 12 (1) (-1765, -617, 1301) def +bond1 6 +atom 13 (1) (-838, -687, -1627) def +bond1 8 +atom 14 (1) (-2304, 85, -990) def +bond1 8 +atom 15 (1) (-2140, -1669, -945) def +bond1 8 +atom 16 (1) (701, -2025, 116) def +bond1 7 +atom 17 (1) (-726, -2804, 812) def +bond1 7 +atom 18 (1) (366, -1858, 1839) def +bond1 7 +atom 19 (1) (1845, 1300, -1638) def +bond1 5 +egroup (val) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part val diff --git a/sim/src/tests/amino_acids/val_l_aminoacid.pdb b/sim/src/tests/amino_acids/val_l_aminoacid.pdb new file mode 100755 index 000000000..2a40fab1e --- /dev/null +++ b/sim/src/tests/amino_acids/val_l_aminoacid.pdb @@ -0,0 +1,42 @@ +COMPND val.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 -1.047 1.819 0.655 1.00 0.00 N +HETATM 2 C LIG 1 -0.165 0.664 0.810 1.00 0.00 C +HETATM 3 C LIG 1 1.127 0.709 -0.009 1.00 0.00 C +HETATM 4 O LIG 1 2.187 0.231 0.332 1.00 0.00 O +HETATM 5 O LIG 1 0.976 1.346 -1.202 1.00 0.00 O +HETATM 6 C LIG 1 -0.952 -0.659 0.563 1.00 0.00 C +HETATM 7 C LIG 1 -0.102 -1.904 0.850 1.00 0.00 C +HETATM 8 C LIG 1 -1.591 -0.728 -0.832 1.00 0.00 C +HETATM 9 H LIG 1 -1.247 1.973 -0.330 1.00 0.00 H +HETATM 10 H LIG 1 -0.575 2.662 0.976 1.00 0.00 H +HETATM 11 H LIG 1 0.173 0.637 1.853 1.00 0.00 H +HETATM 12 H LIG 1 -1.765 -0.617 1.301 1.00 0.00 H +HETATM 13 H LIG 1 -0.838 -0.687 -1.627 1.00 0.00 H +HETATM 14 H LIG 1 -2.304 0.085 -0.990 1.00 0.00 H +HETATM 15 H LIG 1 -2.140 -1.669 -0.945 1.00 0.00 H +HETATM 16 H LIG 1 0.701 -2.025 0.116 1.00 0.00 H +HETATM 17 H LIG 1 -0.726 -2.804 0.812 1.00 0.00 H +HETATM 18 H LIG 1 0.366 -1.858 1.839 1.00 0.00 H +HETATM 19 H LIG 1 1.845 1.300 -1.638 1.00 0.00 H +CONECT 1 9 2 10 +CONECT 2 3 6 1 11 +CONECT 3 5 4 2 +CONECT 4 3 +CONECT 5 19 3 +CONECT 6 8 2 7 12 +CONECT 7 16 6 17 18 +CONECT 8 13 14 15 6 +CONECT 9 1 +CONECT 10 1 +CONECT 11 2 +CONECT 12 6 +CONECT 13 8 +CONECT 14 8 +CONECT 15 8 +CONECT 16 7 +CONECT 17 7 +CONECT 18 7 +CONECT 19 5 +MASTER 0 0 0 0 0 0 0 0 19 0 19 0 +END diff --git a/sim/src/tests/dynamics/small_bearing_01.mmp b/sim/src/tests/dynamics/small_bearing_01.mmp new file mode 100755 index 000000000..af900ead1 --- /dev/null +++ b/sim/src/tests/dynamics/small_bearing_01.mmp @@ -0,0 +1,420 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (test_0003) +info opengroup open = True +mol (Bushing) def +atom 1 (6) (-2976, -6081, 1321) def +atom 2 (6) (-2585, -5283, 18) def +bond1 1 +atom 3 (6) (-2973, -6084, -1284) def +bond1 2 +atom 4 (14) (-4879, -6031, 1172) def +bond1 1 +atom 5 (14) (-4876, -6034, -1139) def +bond1 3 4 +atom 6 (8) (-3180, -3942, 16) def +bond1 2 +atom 7 (6) (-5299, -4170, 1322) def +bond1 4 +atom 8 (6) (-4610, -3631, 13) def +bond1 6 7 +atom 9 (6) (-5296, -4173, -1294) def +bond1 5 8 +atom 10 (14) (-7004, -3321, 1166) def +bond1 7 +atom 11 (14) (-7001, -3325, -1144) def +bond1 9 10 +atom 12 (8) (-4566, -2165, 12) def +bond1 8 +atom 13 (6) (-6594, -1463, 1313) def +bond1 10 +atom 14 (6) (-5730, -1272, 9) def +bond1 12 13 +atom 15 (6) (-6591, -1467, -1296) def +bond1 11 14 +atom 16 (14) (-7751, 50, 1161) def +bond1 13 +atom 17 (14) (-7749, 45, -1151) def +bond1 15 16 +atom 18 (8) (-5060, 33, 8) def +bond1 14 +atom 19 (6) (-6572, 1548, 1309) def +bond1 16 +atom 20 (6) (-5713, 1345, 4) def +bond1 18 19 +atom 21 (6) (-6570, 1543, -1302) def +bond1 17 20 +atom 22 (14) (-6968, 3409, 1155) def +bond1 19 +atom 23 (14) (-6966, 3404, -1156) def +bond1 21 22 +atom 24 (8) (-4541, 2228, 4) def +bond1 20 +atom 25 (6) (-5258, 4246, 1306) def +bond1 22 +atom 26 (6) (-4573, 3695, 0) def +bond1 24 25 +atom 27 (6) (-5256, 4239, -1308) def +bond1 23 26 +atom 28 (14) (-4819, 6102, 1150) def +bond1 25 +atom 29 (14) (-4818, 6096, -1162) def +bond1 27 28 +atom 30 (8) (-3140, 3996, 1) def +bond1 26 +atom 31 (6) (-2915, 6137, 1298) def +bond1 28 +atom 32 (6) (-2533, 5332, -2) def +bond1 30 31 +atom 33 (6) (-2914, 6130, -1308) def +bond1 29 32 +atom 34 (14) (-1702, 7602, 1146) def +bond1 31 +atom 35 (14) (-1701, 7595, -1164) def +bond1 33 34 +atom 36 (8) (-1112, 4967, 0) def +bond1 32 +atom 37 (6) (16, 6779, 1302) def +bond1 34 +atom 38 (6) (14, 5902, -3) def +bond1 36 37 +atom 39 (6) (17, 6770, -1315) def +bond1 35 38 +atom 40 (14) (1740, 7593, 1146) def +bond1 37 +atom 41 (14) (1741, 7586, -1164) def +bond1 39 40 +atom 42 (8) (1136, 4963, 0) def +bond1 38 +atom 43 (6) (2948, 6123, 1298) def +bond1 40 +atom 44 (6) (2558, 5319, -1) def +bond1 42 43 +atom 45 (6) (2948, 6115, -1306) def +bond1 41 44 +atom 46 (14) (4850, 6073, 1151) def +bond1 43 +atom 47 (14) (4850, 6065, -1159) def +bond1 45 46 +atom 48 (8) (3153, 3978, 2) def +bond1 44 +atom 49 (6) (5270, 4212, 1310) def +bond1 46 +atom 50 (6) (4583, 3667, 3) def +bond1 48 49 +atom 51 (6) (5270, 4204, -1306) def +bond1 47 50 +atom 52 (14) (6975, 3363, 1159) def +bond1 49 +atom 53 (14) (6975, 3356, -1151) def +bond1 51 52 +atom 54 (8) (4539, 2202, 8) def +bond1 50 +atom 55 (6) (6565, 1506, 1314) def +bond1 52 +atom 56 (6) (5703, 1308, 10) def +bond1 54 55 +atom 57 (6) (6566, 1498, -1294) def +bond1 53 56 +atom 58 (14) (7722, -8, 1171) def +bond1 55 +atom 59 (14) (7723, -14, -1141) def +bond1 57 58 +atom 60 (8) (5033, 3, 14) def +bond1 56 +atom 61 (6) (6544, -1506, 1324) def +bond1 58 +atom 62 (6) (5686, -1309, 17) def +bond1 60 61 +atom 63 (6) (6544, -1512, -1287) def +bond1 59 62 +atom 64 (14) (6939, -3367, 1178) def +bond1 61 +atom 65 (14) (6941, -3373, -1132) def +bond1 63 64 +atom 66 (8) (4514, -2192, 19) def +bond1 62 +atom 67 (6) (5229, -4204, 1331) def +bond1 64 +atom 68 (6) (4546, -3659, 22) def +bond1 66 67 +atom 69 (6) (5230, -4209, -1283) def +bond1 65 68 +atom 70 (14) (4790, -6060, 1183) def +bond1 67 +atom 71 (14) (4793, -6065, -1128) def +bond1 69 70 +atom 72 (8) (3113, -3959, 22) def +bond1 68 +atom 73 (6) (2886, -6095, 1328) def +bond1 70 +atom 74 (6) (2505, -5295, 23) def +bond1 72 73 +atom 75 (6) (2889, -6099, -1277) def +bond1 71 74 +atom 76 (14) (1673, -7560, 1181) def +bond1 73 +atom 77 (14) (1675, -7564, -1129) def +bond1 75 76 +atom 78 (8) (1085, -4930, 21) def +bond1 74 +atom 79 (6) (-45, -6737, 1331) def +bond1 76 +atom 80 (6) (-41, -5865, 21) def +bond1 78 79 +atom 81 (6) (-42, -6740, -1285) def +bond1 77 80 +atom 82 (14) (-1769, -7552, 1177) def +bond1 1 79 +atom 83 (14) (-1766, -7555, -1133) def +bond1 3 81 82 +atom 84 (8) (-1163, -4926, 19) def +bond1 2 80 +atom 85 (1) (-2715, -5552, 2229) def +bond1 1 +atom 86 (1) (-2710, -5559, -2192) def +bond1 3 +atom 87 (1) (-5693, -7023, 1923) def +bond1 4 +atom 88 (1) (-5688, -7027, -1891) def +bond1 5 +atom 89 (1) (-4805, -3777, 2207) def +bond1 7 +atom 90 (1) (-4800, -3782, -2180) def +bond1 9 +atom 91 (1) (-8161, -3872, 1918) def +bond1 10 +atom 92 (1) (-8157, -3877, -1898) def +bond1 11 +atom 93 (1) (-6002, -1341, 2213) def +bond1 13 +atom 94 (1) (-5997, -1348, -2195) def +bond1 15 +atom 95 (1) (-9035, 59, 1910) def +bond1 16 +atom 96 (1) (-9031, 53, -1903) def +bond1 17 +atom 97 (1) (-5973, 1420, 2205) def +bond1 19 +atom 98 (1) (-5969, 1411, -2196) def +bond1 21 +atom 99 (1) (-8121, 3972, 1905) def +bond1 22 +atom 100 (1) (-8118, 3963, -1911) def +bond1 23 +atom 101 (1) (-4772, 3853, 2195) def +bond1 25 +atom 102 (1) (-4769, 3842, -2195) def +bond1 27 +atom 103 (1) (-5624, 7104, 1897) def +bond1 28 +atom 104 (1) (-5622, 7094, -1916) def +bond1 29 +atom 105 (1) (-2651, 5609, 2205) def +bond1 31 +atom 106 (1) (-2649, 5596, -2212) def +bond1 33 +atom 107 (1) (-1978, 8856, 1895) def +bond1 34 +atom 108 (1) (-1977, 8844, -1922) def +bond1 35 +atom 109 (1) (14, 6147, 2188) def +bond1 37 +atom 110 (1) (15, 6133, -2196) def +bond1 39 +atom 111 (1) (2023, 8846, 1895) def +bond1 40 +atom 112 (1) (2023, 8834, -1921) def +bond1 41 +atom 113 (1) (2685, 5598, 2208) def +bond1 43 +atom 114 (1) (2685, 5585, -2213) def +bond1 45 +atom 115 (1) (5664, 7068, 1899) def +bond1 46 +atom 116 (1) (5663, 7055, -1915) def +bond1 47 +atom 117 (1) (4775, 3823, 2196) def +bond1 49 +atom 118 (1) (4775, 3809, -2190) def +bond1 51 +atom 119 (1) (8132, 3917, 1910) def +bond1 52 +atom 120 (1) (8132, 3905, -1906) def +bond1 53 +atom 121 (1) (5972, 1388, 2214) def +bond1 55 +atom 122 (1) (5973, 1375, -2193) def +bond1 57 +atom 123 (1) (9006, -14, 1921) def +bond1 58 +atom 124 (1) (9007, -25, -1891) def +bond1 59 +atom 125 (1) (5943, -1373, 2218) def +bond1 61 +atom 126 (1) (5944, -1385, -2182) def +bond1 63 +atom 127 (1) (8090, -3926, 1933) def +bond1 64 +atom 128 (1) (8093, -3935, -1883) def +bond1 65 +atom 129 (1) (4742, -3807, 2218) def +bond1 67 +atom 130 (1) (4745, -3816, -2172) def +bond1 69 +atom 131 (1) (5594, -7059, 1937) def +bond1 70 +atom 132 (1) (5598, -7066, -1876) def +bond1 71 +atom 133 (1) (2621, -5562, 2233) def +bond1 73 +atom 134 (1) (2626, -5570, -2184) def +bond1 75 +atom 135 (1) (1949, -8811, 1936) def +bond1 76 +atom 136 (1) (1952, -8816, -1880) def +bond1 77 +atom 137 (1) (-44, -6101, 2214) def +bond1 79 +atom 138 (1) (-39, -6106, -2170) def +bond1 81 +atom 139 (1) (-2052, -8801, 1931) def +bond1 82 +atom 140 (1) (-2048, -8806, -1885) def +bond1 83 +ground (Anchor) (0, 0, 0) 103 104 115 116 87 88 131 132 +mol (Shaft) def +atom 141 (6) (-2117, 1157, -2481) def +atom 142 (6) (-2057, -1237, -2475) def +atom 143 (6) (-73, 2407, -2482) def +atom 144 (6) (2031, 1262, -2479) def +atom 145 (6) (2092, -1132, -2474) def +atom 146 (6) (47, -2382, -2472) def +atom 147 (6) (-1319, -789, -3758) def +bond1 142 +atom 148 (6) (-1357, 742, -3762) def +bond1 141 147 +atom 149 (6) (-50, 1541, -3763) def +bond1 143 148 +atom 150 (6) (1294, 809, -3761) def +bond1 144 149 +atom 151 (6) (1333, -722, -3758) def +bond1 145 150 +atom 152 (6) (26, -1522, -3756) def +bond1 146 147 151 +atom 153 (16) (-3537, -76, -2550) def +bond1 141 142 +atom 154 (16) (-1852, 3019, -2554) def +bond1 141 143 +atom 155 (16) (1673, 3108, -2551) def +bond1 143 144 +atom 156 (16) (3512, 100, -2547) def +bond1 144 145 +atom 157 (16) (1827, -2994, -2539) def +bond1 145 146 +atom 158 (16) (-1698, -3083, -2539) def +bond1 142 146 +atom 159 (6) (-2119, 1168, 2501) def +atom 160 (6) (-75, 2418, 2498) def +atom 161 (6) (-2059, -1226, 2506) def +atom 162 (6) (45, -2372, 2509) def +atom 163 (6) (2090, -1121, 2508) def +atom 164 (6) (2029, 1273, 2502) def +atom 165 (6) (-54, 1558, 3783) def +bond1 160 +atom 166 (6) (-1361, 758, 3784) def +bond1 159 165 +atom 167 (6) (-1322, -773, 3788) def +bond1 161 166 +atom 168 (6) (23, -1505, 3790) def +bond1 162 167 +atom 169 (6) (1330, -706, 3789) def +bond1 163 168 +atom 170 (6) (1291, 825, 3785) def +bond1 164 165 169 +atom 171 (16) (-1855, 3030, 2565) def +bond1 159 160 +atom 172 (16) (-3540, -65, 2573) def +bond1 159 161 +atom 173 (16) (-1700, -3073, 2577) def +bond1 161 162 +atom 174 (16) (1825, -2983, 2580) def +bond1 162 163 +atom 175 (16) (3510, 112, 2576) def +bond1 163 164 +atom 176 (16) (1671, 3120, 2565) def +bond1 160 164 +atom 177 (6) (1289, 817, 1222) def +bond1 164 +atom 178 (6) (-52, 1548, 1220) def +bond1 160 177 +atom 179 (6) (-1357, 751, 1221) def +bond1 159 178 +atom 180 (6) (-1318, -776, 1225) def +bond1 161 179 +atom 181 (6) (24, -1507, 1227) def +bond1 162 180 +atom 182 (6) (1328, -710, 1226) def +bond1 163 177 181 +atom 183 (8) (-73, 2383, 8) def +bond1 178 +atom 184 (8) (2005, 1252, 11) def +bond1 177 +atom 185 (8) (2064, -1113, 16) def +bond1 182 +atom 186 (8) (-2092, 1148, 10) def +bond1 179 +atom 187 (8) (-2032, -1216, 15) def +bond1 180 +atom 188 (8) (45, -2347, 18) def +bond1 181 +atom 189 (6) (25, -1512, -1193) def +bond1 146 188 +atom 190 (6) (-1317, -782, -1195) def +bond1 142 187 189 +atom 191 (6) (-1356, 745, -1199) def +bond1 141 186 190 +atom 192 (6) (-51, 1543, -1200) def +bond1 143 183 191 +atom 193 (6) (1290, 812, -1198) def +bond1 144 184 192 +atom 194 (6) (1329, -715, -1194) def +bond1 145 185 189 193 +atom 195 (1) (-1880, -1135, -4632) def +bond1 147 +atom 196 (1) (-1935, 1054, -4637) def +bond1 148 +atom 197 (1) (-67, 2198, -4638) def +bond1 149 +atom 198 (1) (1857, 1151, -4635) def +bond1 150 +atom 199 (1) (1912, -1039, -4631) def +bond1 151 +atom 200 (1) (43, -2182, -4629) def +bond1 152 +atom 201 (1) (-71, 2218, 4655) def +bond1 165 +atom 202 (1) (-1939, 1075, 4658) def +bond1 166 +atom 203 (1) (-1884, -1115, 4662) def +bond1 167 +atom 204 (1) (39, -2162, 4665) def +bond1 168 +atom 205 (1) (1908, -1018, 4664) def +bond1 169 +atom 206 (1) (1853, 1171, 4659) def +bond1 170 +rmotor (Rotary Motor) (127, 127, 127) 0.100000 100.000000 (-7, 50, 2494) (-5, -3, -999) 10.000 1.000 0.150 +shaft 159 160 161 162 163 164 +stat (Stat-32) (0, 0, 153) (300) 1 140 31 +egroup (test_0003) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part test_0003 diff --git a/sim/src/tests/dynamics/test_0001.md5sums b/sim/src/tests/dynamics/test_0001.md5sums new file mode 100755 index 000000000..c136137f0 --- /dev/null +++ b/sim/src/tests/dynamics/test_0001.md5sums @@ -0,0 +1,2 @@ +stdout 09F402A33894CFC491D657C2E0E7067F +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/dynamics/test_0001.mmp b/sim/src/tests/dynamics/test_0001.mmp new file mode 100755 index 000000000..fcdd8049b --- /dev/null +++ b/sim/src/tests/dynamics/test_0001.mmp @@ -0,0 +1,78 @@ +mmpformat 050130 required; 050217 optional +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (6.905391) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.995749, -0.004875, 0.000261, 0.091978) (6.430436) (0.000000, 0.000000, 0.000000) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (test_0001) +mol (Chunk-Si1) def +atom 1 (14) (-1422, 1598, 270) def +atom 2 (14) (-1793, -695, 317) def +bond1 1 +atom 3 (14) (840, 1961, 201) def +bond1 1 +atom 4 (14) (267, -1758, 251) def +bond1 2 +atom 5 (14) (1925, -93, 215) def +bond1 3 4 +atom 6 (8) (2822, -214, 1545) def +bond1 5 +atom 7 (0) (2599, 179, 2024) def +bond1 6 +atom 8 (8) (448, -2622, 1603) def +bond1 4 +atom 9 (0) (1052, -2872, 1693) def +bond1 8 +atom 10 (8) (-2536, -1071, 1728) def +bond1 2 +atom 11 (0) (-2894, -1626, 1719) def +bond1 10 +atom 12 (8) (-2006, 2246, 1642) def +bond1 1 +atom 13 (0) (-1973, 1801, 2129) def +bond1 12 +atom 14 (8) (1283, 2779, 1524) def +bond1 3 +atom 15 (0) (1162, 2426, 2068) def +bond1 14 +atom 16 (8) (2186, -150, -1384) def +bond1 5 +atom 17 (8) (953, 2237, -1386) def +bond1 3 +atom 18 (8) (-1707, 1814, -1302) def +bond1 1 +atom 19 (8) (-2138, -855, -1255) def +bond1 2 +atom 20 (8) (270, -2080, -1327) def +bond1 4 +atom 21 (6) (481, 1352, -2386) def +bond1 17 +atom 22 (0) (635, 1685, -3063) def +bond1 21 +atom 23 (6) (1181, -12, -2386) def +bond1 16 21 +atom 24 (0) (1542, -87, -3062) def +bond1 23 +atom 25 (6) (-1043, 1107, -2339) def +bond1 18 21 +atom 26 (0) (-1337, 1373, -2998) def +bond1 25 +atom 27 (6) (-1292, -426, -2315) def +bond1 19 25 +atom 28 (0) (-1656, -594, -2972) def +bond1 27 +atom 29 (6) (97, -1127, -2345) def +bond1 20 27 23 +atom 30 (0) (123, -1492, -3022) def +bond1 29 +rmotor (Rotary Motor.2) (112, 0, 0) 3.00 2.00 (-40, 204, 253) (-28, -9, -999) 4.00 0.50 0.20 +shaft 1 5 2 3 4 +mol (AllInOne-blankPdb.pdb) def +egroup (test_0001) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part test_0001 diff --git a/sim/src/tests/dynamics/test_0001.out b/sim/src/tests/dynamics/test_0001.out new file mode 100755 index 000000000..b872c3d2c --- /dev/null +++ b/sim/src/tests/dynamics/test_0001.out @@ -0,0 +1,4 @@ +======= test_0001.test ======= +# rotary motor test +TYPE fail +PROGRAM simulator -f30 -t0 -i10000 -x test_0001.mmp diff --git a/sim/src/tests/dynamics/test_0001.test b/sim/src/tests/dynamics/test_0001.test new file mode 100755 index 000000000..f953a5dcc --- /dev/null +++ b/sim/src/tests/dynamics/test_0001.test @@ -0,0 +1,3 @@ +# rotary motor test +TYPE fail +PROGRAM simulator -f30 -t0 -i10000 -x test_0001.mmp diff --git a/sim/src/tests/dynamics/test_0002.md5sums b/sim/src/tests/dynamics/test_0002.md5sums new file mode 100755 index 000000000..9544093f0 --- /dev/null +++ b/sim/src/tests/dynamics/test_0002.md5sums @@ -0,0 +1,4 @@ +stdout 1196A58D19EA489EAB34855A26055639 +stderr D41D8CD98F00B204E9800998ECF8427E +test_0002.trc 382566CEA5EA0EE3DD75EC1160F6780E +test_0002.xyz 0C575E7AC58CD67C7B97413CE6B644BA diff --git a/sim/src/tests/dynamics/test_0002.mmp b/sim/src/tests/dynamics/test_0002.mmp new file mode 100755 index 000000000..bcbd8566d --- /dev/null +++ b/sim/src/tests/dynamics/test_0002.mmp @@ -0,0 +1,70 @@ +mmpformat 050130 required; 050217 optional +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (Untitled) +mol (Chunk-C709) def +atom 1 (6) (-6277, 455, 0) def +atom 2 (1) (-6895, 1072, -617) def +bond1 1 +atom 3 (1) (-6895, -162, 617) def +bond1 1 +atom 4 (1) (-5659, -162, -617) def +bond1 1 +atom 5 (6) (-5388, 1344, 889) def +bond1 1 +atom 6 (1) (-6006, 1961, 1506) def +bond1 5 +atom 7 (1) (-4770, 1961, 271) def +bond1 5 +atom 8 (6) (-4499, 455, 1778) def +bond1 5 +atom 9 (1) (-3881, -162, 1160) def +bond1 8 +atom 10 (1) (-5117, -162, 2396) def +bond1 8 +atom 11 (6) (-3610, 1344, 2667) def +bond1 8 +atom 12 (1) (-4228, 1961, 3285) def +bond1 11 +atom 13 (1) (-2992, 1961, 2049) def +bond1 11 +atom 14 (6) (-2721, 455, 3556) def +bond1 11 +atom 15 (1) (-2103, -162, 2938) def +bond1 14 +atom 16 (1) (-3339, -162, 4174) def +bond1 14 +atom 17 (6) (-1832, 1344, 4445) def +bond1 14 +atom 18 (1) (-2449, 1961, 5063) def +bond1 17 +atom 19 (1) (-1214, 1961, 3827) def +bond1 17 +atom 20 (6) (-942, 455, 5334) def +bond1 17 +atom 21 (1) (-325, -162, 4716) def +bond1 20 +atom 22 (1) (-1560, -162, 5952) def +bond1 20 +atom 23 (6) (-53, 1344, 6223) def +bond1 20 +atom 24 (1) (563, 1961, 5606) def +bond1 23 +atom 25 (1) (563, 726, 6841) def +bond1 23 +atom 26 (1) (-671, 1961, 6841) def +bond1 23 +ground (Ground.4) (0, 0, 0) 23 1 +stat (Stat.5) (0, 0, 255) (250) 1 26 11 +thermo (Thermo.6) (153, 0, 51) 1 26 14 +egroup (Untitled) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part Untitled diff --git a/sim/src/tests/dynamics/test_0002.out b/sim/src/tests/dynamics/test_0002.out new file mode 100755 index 000000000..29502a4b5 --- /dev/null +++ b/sim/src/tests/dynamics/test_0002.out @@ -0,0 +1,2943 @@ +======= test_0002.test ======= +# ground, thermostat, and thermometer test +TYPE dyn +#PROGRAM simulator -f100 -t300 -i10 -x test_0002.mmp +======= exitvalue ======= +0 +======= stderr ======= +======= stdout ======= +iters per frame = 10 +number of frames = 100 +timestep = 1.000000e-16 +temp = 300.000000 +dump as text +< test_0002.mmp > test_0002.xyz + 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 + 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 + 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 + 96 97 98 99 +======= test_0002.trc ======= +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# Date and Time: Mon Nov 21 18:46:02 2005 +# Input File:test_0002.mmp +# Output File: test_0002.xyz +# Trace File: test_0002.trc +# Number of Atoms: 26 +# Number of Frames: 100 +# Steps per Frame: 10 +# Temperature: 300.0 +# +# 3 columns: +# Ground.4: torque (nn-nm) +# Stat.5: energy added (zJ) +# Thermo.6: temperature (K) +# +# Time Anchor T.stat T.meter +# picosec Ground.4Stat.5 Thermo.6 +# + 0.0010 3.68 -0.02 520.62 + 0.0020 6.83 -0.07 651.63 + 0.0030 17.85 -0.04 613.00 + 0.0040 31.80 -0.03 453.78 + 0.0050 42.37 -0.00 266.96 + 0.0060 47.00 -0.00 270.21 + 0.0070 47.74 0.00 428.30 + 0.0080 45.94 -0.05 560.82 + 0.0090 42.83 -0.01 524.66 + 0.0100 37.69 -0.02 378.89 + 0.0110 27.52 -0.01 288.70 + 0.0120 13.16 -0.01 338.76 + 0.0130 9.83 -0.02 365.09 + 0.0140 20.67 -0.03 353.61 + 0.0150 25.45 -0.00 250.22 + 0.0160 25.52 0.00 228.50 + 0.0170 23.06 -0.00 260.78 + 0.0180 20.81 -0.01 302.56 + 0.0190 19.23 -0.03 278.30 + 0.0200 19.39 -0.00 218.28 + 0.0210 18.73 -0.01 181.90 + 0.0220 13.20 -0.02 196.38 + 0.0230 7.67 -0.01 203.52 + 0.0240 11.67 0.01 247.53 + 0.0250 18.21 -0.00 247.03 + 0.0260 20.94 0.01 200.48 + 0.0270 17.18 0.02 206.60 + 0.0280 11.19 -0.01 222.81 + 0.0290 10.96 -0.01 230.44 + 0.0300 16.41 -0.01 198.39 + 0.0310 20.18 0.01 211.04 + 0.0320 16.00 -0.00 218.06 + 0.0330 9.59 -0.00 224.66 + 0.0340 10.55 0.01 198.68 + 0.0350 16.71 -0.00 185.93 + 0.0360 22.99 0.02 187.04 + 0.0370 26.75 0.01 222.30 + 0.0380 25.61 0.01 252.22 + 0.0390 19.02 -0.01 239.35 + 0.0400 14.11 0.01 215.29 + 0.0410 20.33 0.01 244.40 + 0.0420 27.07 -0.02 263.94 + 0.0430 26.93 0.02 269.03 + 0.0440 19.59 -0.01 254.61 + 0.0450 8.14 0.01 214.53 + 0.0460 8.02 0.01 204.46 + 0.0470 18.46 0.00 249.49 + 0.0480 22.22 -0.01 245.01 + 0.0490 19.03 0.01 255.89 + 0.0500 15.37 -0.02 221.82 + 0.0510 12.33 0.01 209.51 + 0.0520 10.80 -0.01 235.02 + 0.0530 12.59 -0.00 253.22 + 0.0540 12.83 0.00 284.13 + 0.0550 12.54 0.01 281.26 + 0.0560 15.14 0.02 286.17 + 0.0570 17.43 -0.01 266.93 + 0.0580 17.20 0.02 272.25 + 0.0590 12.40 0.01 289.38 + 0.0600 6.99 -0.02 247.23 + 0.0610 7.20 0.01 234.25 + 0.0620 10.76 -0.00 259.53 + 0.0630 15.67 0.01 262.35 + 0.0640 18.39 0.00 275.07 + 0.0650 18.04 -0.01 239.05 + 0.0660 17.64 0.02 215.08 + 0.0670 20.34 0.01 250.00 + 0.0680 27.48 -0.00 253.57 + 0.0690 31.64 0.01 255.32 + 0.0700 31.47 -0.02 253.84 + 0.0710 26.56 0.02 245.99 + 0.0720 19.44 -0.02 230.15 + 0.0730 11.30 -0.01 203.83 + 0.0740 5.96 -0.00 182.01 + 0.0750 3.58 -0.00 204.00 + 0.0760 2.68 0.02 223.92 + 0.0770 1.95 0.01 237.96 + 0.0780 3.29 0.02 238.59 + 0.0790 6.16 0.01 259.10 + 0.0800 9.34 0.01 267.27 + 0.0810 11.56 -0.00 281.88 + 0.0820 11.61 0.02 294.56 + 0.0830 13.18 0.01 350.35 + 0.0840 15.56 -0.01 347.76 + 0.0850 16.28 0.01 321.66 + 0.0860 19.23 0.01 298.90 + 0.0870 22.94 0.01 335.53 + 0.0880 23.99 -0.04 313.88 + 0.0890 22.45 -0.00 293.51 + 0.0900 17.07 0.01 290.64 + 0.0910 12.14 0.01 289.36 + 0.0920 15.02 -0.02 275.72 + 0.0930 21.47 0.01 233.74 + 0.0940 24.15 0.01 250.74 + 0.0950 25.25 -0.00 270.04 + 0.0960 26.60 -0.00 256.83 + 0.0970 26.10 0.01 268.16 + 0.0980 23.60 0.00 263.93 + 0.0990 17.40 -0.02 252.89 + 0.1000 9.49 -0.01 204.50 +# Done: +======= test_0002.xyz ======= +26 +Frame 0, Iteration: 10 +C -6.276859 0.454934 -0.000097 +H -6.917346 1.069430 -0.649074 +H -6.885372 -0.177540 0.614308 +H -5.666325 -0.164218 -0.609874 +C -5.380058 1.344134 0.886365 +H -6.006069 1.958736 1.494193 +H -4.762331 1.953346 0.276085 +C -4.499577 0.448567 1.776216 +H -3.875596 -0.166656 1.156973 +H -5.116631 -0.174400 2.412679 +C -3.607755 1.343035 2.671014 +H -4.235496 1.949823 3.296665 +H -2.982827 1.959910 2.042017 +C -2.720325 0.454867 3.562197 +H -2.088850 -0.152938 2.931770 +H -3.348183 -0.146112 4.177360 +C -1.826534 1.348760 4.442536 +H -2.445830 1.957431 5.061687 +H -1.219829 1.957562 3.815048 +C -0.939453 0.455374 5.337064 +H -0.318556 -0.167691 4.717209 +H -1.557860 -0.179149 5.933807 +C -0.052603 1.343970 6.223145 +H 0.568742 1.981666 5.604233 +H 0.587924 0.716278 6.851788 +H -0.670206 1.980118 6.836347 +26 +Frame 1, Iteration: 20 +C -6.276669 0.455020 -0.000440 +H -6.956025 1.070825 -0.709294 +H -6.877588 -0.218475 0.615502 +H -5.662857 -0.182723 -0.608301 +C -5.365918 1.346160 0.881028 +H -6.019268 1.961002 1.485110 +H -4.725281 1.956170 0.276362 +C -4.501130 0.438334 1.774613 +H -3.855877 -0.181368 1.141548 +H -5.125510 -0.197546 2.443246 +C -3.602221 1.341354 2.677727 +H -4.259310 1.942362 3.326902 +H -2.961355 1.957723 2.021121 +C -2.716668 0.453338 3.572362 +H -2.055465 -0.145033 2.913376 +H -3.369095 -0.131000 4.202254 +C -1.817529 1.357834 4.439134 +H -2.445664 1.960990 5.066923 +H -1.217714 1.958274 3.783368 +C -0.935721 0.454870 5.342530 +H -0.294460 -0.183715 4.703768 +H -1.563502 -0.219969 5.915188 +C -0.052645 1.344238 6.223169 +H 0.581960 2.023367 5.594586 +H 0.634555 0.692131 6.864950 +H -0.675417 2.024093 6.839838 +26 +Frame 2, Iteration: 30 +C -6.276558 0.454788 -0.000593 +H -6.991120 1.075210 -0.760592 +H -6.882049 -0.269415 0.631385 +H -5.645001 -0.209922 -0.620510 +C -5.354535 1.352495 0.874358 +H -6.043662 1.975593 1.488401 +H -4.673410 1.970980 0.270938 +C -4.501194 0.429513 1.774463 +H -3.842120 -0.202684 1.119688 +H -5.146380 -0.222692 2.479043 +C -3.597403 1.339790 2.683119 +H -4.285577 1.946308 3.359531 +H -2.938385 1.960069 1.994704 +C -2.712850 0.452964 3.578411 +H -2.016869 -0.153041 2.895637 +H -3.392893 -0.136579 4.233132 +C -1.808588 1.365793 4.436569 +H -2.455543 1.974238 5.080556 +H -1.204234 1.964267 3.747117 +C -0.934258 0.452354 5.344344 +H -0.266102 -0.210239 4.686931 +H -1.571627 -0.264179 5.921087 +C -0.052625 1.344212 6.222841 +H 0.593920 2.060146 5.582717 +H 0.674491 0.670065 6.874043 +H -0.682535 2.069546 6.855470 +26 +Frame 3, Iteration: 40 +C -6.276420 0.454833 -0.000427 +H -7.013278 1.068898 -0.795797 +H -6.890070 -0.318090 0.654322 +H -5.621059 -0.231001 -0.637675 +C -5.345207 1.358521 0.869820 +H -6.070017 1.993232 1.490924 +H -4.625404 1.985223 0.256930 +C -4.499931 0.421672 1.775353 +H -3.837961 -0.223092 1.102598 +H -5.169584 -0.247898 2.518256 +C -3.595597 1.338750 2.687930 +H -4.306739 1.954641 3.388231 +H -2.925741 1.960694 1.968362 +C -2.709032 0.452900 3.582839 +H -1.980856 -0.165018 2.882018 +H -3.409962 -0.148526 4.258798 +C -1.798695 1.372044 4.434111 +H -2.476156 1.997149 5.098259 +H -1.182738 1.979824 3.710743 +C -0.934361 0.449351 5.343614 +H -0.244724 -0.241258 4.671817 +H -1.585003 -0.295686 5.947975 +C -0.052519 1.344027 6.222666 +H 0.589598 2.092347 5.574013 +H 0.698489 0.661351 6.877497 +H -0.692370 2.100724 6.874780 +26 +Frame 4, Iteration: 50 +C -6.276076 0.454941 -0.000259 +H -7.020874 1.056108 -0.801747 +H -6.892589 -0.351835 0.678951 +H -5.602131 -0.241548 -0.657242 +C -5.336486 1.364963 0.868741 +H -6.088299 2.011392 1.494008 +H -4.589603 1.995080 0.246435 +C -4.498635 0.415433 1.777023 +H -3.838628 -0.242804 1.090114 +H -5.180888 -0.258631 2.545034 +C -3.595015 1.339528 2.692935 +H -4.317693 1.967670 3.399914 +H -2.926203 1.953929 1.949032 +C -2.706044 0.451055 3.588268 +H -1.960556 -0.176681 2.878617 +H -3.414116 -0.155585 4.278197 +C -1.788938 1.380655 4.429783 +H -2.496759 2.019873 5.114071 +H -1.158373 2.001032 3.678474 +C -0.932581 0.444254 5.340957 +H -0.236166 -0.262534 4.667596 +H -1.598332 -0.310192 5.969347 +C -0.052601 1.344072 6.222653 +H 0.572269 2.111948 5.564820 +H 0.702747 0.671103 6.871495 +H -0.692226 2.111658 6.891236 +26 +Frame 5, Iteration: 60 +C -6.276120 0.455043 -0.000083 +H -7.015428 1.038534 -0.781421 +H -6.885573 -0.360876 0.693817 +H -5.584732 -0.246324 -0.675687 +C -5.330667 1.374205 0.868873 +H -6.085634 2.023840 1.494604 +H -4.565291 2.001516 0.231400 +C -4.499390 0.408117 1.780421 +H -3.843984 -0.258261 1.078902 +H -5.178024 -0.263081 2.543002 +C -3.596586 1.342343 2.698407 +H -4.319590 1.975320 3.391261 +H -2.936186 1.945535 1.938860 +C -2.704762 0.446857 3.594053 +H -1.966907 -0.187732 2.895406 +H -3.413103 -0.166859 4.290494 +C -1.780727 1.390904 4.425500 +H -2.502396 2.035604 5.116800 +H -1.133480 2.016846 3.662927 +C -0.932796 0.437102 5.336136 +H -0.238605 -0.265402 4.667866 +H -1.604852 -0.315509 5.982010 +C -0.052860 1.344037 6.222499 +H 0.548235 2.102885 5.558171 +H 0.695466 0.699368 6.861292 +H -0.681110 2.102828 6.896277 +26 +Frame 6, Iteration: 70 +C -6.276130 0.455293 -0.000010 +H -6.991305 1.014730 -0.745995 +H -6.866314 -0.347105 0.698309 +H -5.563107 -0.240770 -0.696274 +C -5.327808 1.384241 0.869196 +H -6.061128 2.019070 1.492610 +H -4.557874 2.001789 0.215656 +C -4.498682 0.398181 1.784697 +H -3.854348 -0.273488 1.075364 +H -5.160025 -0.250692 2.514812 +C -3.598573 1.347770 2.701470 +H -4.311986 1.983619 3.366118 +H -2.954419 1.940228 1.938952 +C -2.704040 0.444621 3.597303 +H -1.990580 -0.198811 2.919689 +H -3.408035 -0.176993 4.291847 +C -1.775292 1.401312 4.420957 +H -2.480623 2.051445 5.104075 +H -1.116253 2.028331 3.659894 +C -0.936422 0.428804 5.328778 +H -0.249239 -0.250971 4.671518 +H -1.605028 -0.305424 5.991419 +C -0.053047 1.344292 6.222595 +H 0.532497 2.077665 5.554013 +H 0.678992 0.733600 6.856949 +H -0.673830 2.077016 6.887203 +26 +Frame 7, Iteration: 80 +C -6.275987 0.455250 0.000176 +H -6.959520 0.985941 -0.699875 +H -6.836142 -0.316377 0.694886 +H -5.553490 -0.222040 -0.713571 +C -5.326054 1.393918 0.868653 +H -6.024164 2.008746 1.494259 +H -4.564349 1.994224 0.209140 +C -4.496199 0.387006 1.788835 +H -3.863376 -0.285990 1.079812 +H -5.132079 -0.220660 2.475575 +C -3.603080 1.353811 2.701866 +H -4.296993 1.995418 3.331677 +H -2.978111 1.942225 1.941833 +C -2.705165 0.443061 3.597968 +H -2.028097 -0.209929 2.945790 +H -3.387531 -0.181296 4.283655 +C -1.771171 1.412489 4.415162 +H -2.431271 2.068542 5.080947 +H -1.106370 2.037502 3.669782 +C -0.940257 0.420604 5.320690 +H -0.269468 -0.236307 4.674833 +H -1.595756 -0.280697 5.987459 +C -0.053451 1.344232 6.222691 +H 0.526157 2.046650 5.546659 +H 0.660126 0.761069 6.864692 +H -0.675420 2.041939 6.883961 +26 +Frame 8, Iteration: 90 +C -6.276091 0.455182 -0.000141 +H -6.935787 0.971139 -0.658194 +H -6.809148 -0.279485 0.679603 +H -5.556845 -0.201724 -0.730584 +C -5.325882 1.402380 0.866935 +H -5.981643 2.004795 1.501319 +H -4.579986 1.983145 0.206121 +C -4.495349 0.376259 1.792079 +H -3.870433 -0.295439 1.093026 +H -5.103193 -0.188931 2.436311 +C -3.606994 1.361501 2.700330 +H -4.281377 2.001155 3.297103 +H -3.000281 1.953346 1.953153 +C -2.709295 0.442709 3.598287 +H -2.072989 -0.219567 2.974388 +H -3.360245 -0.186549 4.268634 +C -1.766780 1.422859 4.409901 +H -2.371923 2.078624 5.049544 +H -1.113552 2.040618 3.693708 +C -0.944803 0.410910 5.314369 +H -0.285580 -0.225116 4.686649 +H -1.579533 -0.252549 5.978453 +C -0.053659 1.344478 6.222751 +H 0.529617 2.018411 5.539158 +H 0.642800 0.776092 6.875795 +H -0.686560 2.011834 6.885124 +26 +Frame 9, Iteration: 100 +C -6.276156 0.455157 -0.000127 +H -6.927685 0.970389 -0.636658 +H -6.788301 -0.246423 0.665597 +H -5.569797 -0.178819 -0.744552 +C -5.327274 1.408747 0.865028 +H -5.939656 2.008777 1.505574 +H -4.606427 1.978400 0.202360 +C -4.493988 0.367076 1.793046 +H -3.878580 -0.307239 1.108242 +H -5.087492 -0.170660 2.409571 +C -3.610749 1.367298 2.697952 +H -4.267053 2.018301 3.260156 +H -3.015453 1.966855 1.968689 +C -2.713632 0.442649 3.599969 +H -2.116675 -0.236220 2.996417 +H -3.344814 -0.191925 4.252766 +C -1.762422 1.431516 4.405451 +H -2.314480 2.088280 5.014419 +H -1.133259 2.031735 3.721792 +C -0.949348 0.399744 5.310620 +H -0.299215 -0.224044 4.694840 +H -1.569774 -0.222376 5.968230 +C -0.053910 1.344646 6.222138 +H 0.539849 2.001050 5.527958 +H 0.629638 0.781166 6.885892 +H -0.699029 1.989535 6.880564 +26 +Frame 10, Iteration: 110 +C -6.275984 0.455095 -0.000315 +H -6.935787 0.988751 -0.633969 +H -6.786309 -0.223649 0.658901 +H -5.585892 -0.151561 -0.753042 +C -5.329286 1.409834 0.864142 +H -5.908104 2.022430 1.512013 +H -4.634655 1.974522 0.201832 +C -4.491759 0.359649 1.791255 +H -3.882027 -0.310243 1.123057 +H -5.094510 -0.177371 2.404956 +C -3.611983 1.370727 2.693647 +H -4.265040 2.045852 3.228816 +H -3.016142 1.980942 1.988201 +C -2.716331 0.444176 3.602613 +H -2.143661 -0.261099 3.002124 +H -3.339575 -0.190736 4.249954 +C -1.757293 1.437243 4.402291 +H -2.266462 2.105685 4.988849 +H -1.149351 2.024288 3.748228 +C -0.955295 0.390485 5.309131 +H -0.302321 -0.234187 4.695025 +H -1.573061 -0.194636 5.954652 +C -0.053617 1.344601 6.221850 +H 0.554591 1.984613 5.514117 +H 0.623545 0.777981 6.891506 +H -0.710391 1.970200 6.868857 +26 +Frame 11, Iteration: 120 +C -6.275839 0.455088 -0.000117 +H -6.961576 1.020812 -0.643401 +H -6.800255 -0.221626 0.668610 +H -5.600147 -0.125689 -0.753969 +C -5.329936 1.409014 0.864172 +H -5.892514 2.053274 1.533167 +H -4.658154 1.970301 0.207390 +C -4.487740 0.352980 1.787544 +H -3.876442 -0.309506 1.138329 +H -5.120795 -0.204983 2.427882 +C -3.611720 1.370437 2.688155 +H -4.277071 2.068953 3.209965 +H -3.008847 1.994207 2.008716 +C -2.718305 0.448723 3.605450 +H -2.156281 -0.293322 2.996312 +H -3.346030 -0.191036 4.255726 +C -1.751310 1.439317 4.400234 +H -2.231542 2.125001 4.987290 +H -1.157115 2.023913 3.767362 +C -0.960585 0.383479 5.307470 +H -0.296655 -0.253714 4.687021 +H -1.593274 -0.188481 5.947308 +C -0.053667 1.344489 6.221844 +H 0.576416 1.975409 5.498428 +H 0.619285 0.762108 6.897398 +H -0.721490 1.952507 6.856446 +26 +Frame 12, Iteration: 130 +C -6.276064 0.454961 0.000028 +H -6.998347 1.061973 -0.656799 +H -6.828599 -0.229508 0.690052 +H -5.615467 -0.100895 -0.747805 +C -5.330435 1.407088 0.865720 +H -5.890938 2.093079 1.552225 +H -4.671362 1.973434 0.210439 +C -4.482621 0.347538 1.781329 +H -3.864810 -0.299749 1.149405 +H -5.153490 -0.238804 2.465786 +C -3.610569 1.369463 2.682424 +H -4.291546 2.082256 3.206389 +H -2.998359 2.003085 2.027980 +C -2.720656 0.453538 3.610119 +H -2.159127 -0.314575 2.982911 +H -3.358830 -0.191115 4.274684 +C -1.747647 1.438193 4.401045 +H -2.213398 2.142717 5.009119 +H -1.157614 2.032229 3.771604 +C -0.965629 0.379134 5.303807 +H -0.293159 -0.279410 4.672084 +H -1.622041 -0.192254 5.946149 +C -0.054016 1.344501 6.222112 +H 0.602244 1.969677 5.483181 +H 0.619224 0.736990 6.910368 +H -0.739071 1.951028 6.846864 +26 +Frame 13, Iteration: 140 +C -6.276163 0.454888 0.000037 +H -7.034799 1.102345 -0.667160 +H -6.859232 -0.240159 0.705249 +H -5.632398 -0.090182 -0.737341 +C -5.332594 1.402743 0.867939 +H -5.899595 2.124521 1.569121 +H -4.679339 1.978047 0.213824 +C -4.478708 0.345400 1.775489 +H -3.854641 -0.292592 1.160226 +H -5.181332 -0.270586 2.501826 +C -3.611577 1.367684 2.677091 +H -4.309227 2.087946 3.219044 +H -2.979500 2.013114 2.040673 +C -2.723440 0.457842 3.615336 +H -2.157861 -0.332124 2.968582 +H -3.377466 -0.190165 4.297679 +C -1.744887 1.435371 4.405493 +H -2.203621 2.167164 5.054402 +H -1.147495 2.041938 3.753700 +C -0.969840 0.376700 5.298615 +H -0.295160 -0.297920 4.657432 +H -1.659201 -0.200832 5.950473 +C -0.054206 1.344218 6.222139 +H 0.623054 1.965737 5.472119 +H 0.618618 0.708138 6.925155 +H -0.762111 1.961863 6.847621 +26 +Frame 14, Iteration: 150 +C -6.276141 0.454900 0.000027 +H -7.060165 1.134924 -0.662850 +H -6.882969 -0.246718 0.723053 +H -5.646453 -0.099633 -0.730785 +C -5.336112 1.397505 0.873284 +H -5.912398 2.143704 1.583797 +H -4.679396 1.980007 0.214073 +C -4.476038 0.344723 1.770530 +H -3.844808 -0.288645 1.170952 +H -5.192558 -0.289624 2.517793 +C -3.613337 1.365475 2.674841 +H -4.323442 2.081934 3.239006 +H -2.958496 2.022177 2.054867 +C -2.725752 0.460030 3.619465 +H -2.153040 -0.337489 2.958413 +H -3.401765 -0.179015 4.312744 +C -1.742509 1.432500 4.410109 +H -2.195326 2.181994 5.103676 +H -1.126318 2.052028 3.720439 +C -0.972127 0.375928 5.292829 +H -0.293242 -0.307650 4.649610 +H -1.699497 -0.213701 5.953553 +C -0.054440 1.344200 6.222253 +H 0.632786 1.963471 5.481146 +H 0.615394 0.691119 6.937649 +H -0.783358 1.970657 6.851935 +26 +Frame 15, Iteration: 160 +C -6.276083 0.454851 0.000091 +H -7.071280 1.156459 -0.636533 +H -6.898837 -0.247264 0.733380 +H -5.657065 -0.115204 -0.732071 +C -5.341150 1.393638 0.881791 +H -5.920482 2.150827 1.591499 +H -4.666974 1.981768 0.202981 +C -4.474913 0.345830 1.765631 +H -3.823237 -0.289664 1.177618 +H -5.181801 -0.290422 2.519911 +C -3.616064 1.364079 2.674787 +H -4.336520 2.061248 3.264004 +H -2.944404 2.035143 2.062747 +C -2.727503 0.460427 3.623888 +H -2.150327 -0.325511 2.948646 +H -3.418262 -0.162666 4.328963 +C -1.739566 1.429819 4.412008 +H -2.196101 2.186983 5.141405 +H -1.103059 2.063596 3.696004 +C -0.970606 0.374260 5.288325 +H -0.287096 -0.310283 4.647342 +H -1.734734 -0.225066 5.956113 +C -0.054600 1.344017 6.221968 +H 0.631422 1.960364 5.509844 +H 0.611767 0.686210 6.942583 +H -0.797894 1.976036 6.853893 +26 +Frame 16, Iteration: 170 +C -6.275922 0.455328 -0.000164 +H -7.066930 1.169648 -0.599964 +H -6.898527 -0.247154 0.734838 +H -5.665080 -0.138595 -0.733670 +C -5.344221 1.390869 0.889655 +H -5.929111 2.145489 1.587584 +H -4.646417 1.983547 0.196224 +C -4.476179 0.348012 1.762465 +H -3.797620 -0.297532 1.176505 +H -5.148315 -0.281046 2.503550 +C -3.618795 1.361382 2.675457 +H -4.340944 2.032902 3.284603 +H -2.935478 2.053048 2.068625 +C -2.729451 0.458142 3.628631 +H -2.148815 -0.298032 2.942115 +H -3.430996 -0.140546 4.343473 +C -1.738344 1.425590 4.413614 +H -2.203194 2.177718 5.162533 +H -1.081532 2.066841 3.683727 +C -0.967813 0.371967 5.284511 +H -0.285369 -0.302996 4.642229 +H -1.759602 -0.235005 5.947972 +C -0.054660 1.344064 6.221819 +H 0.625442 1.953222 5.547566 +H 0.597889 0.682496 6.941675 +H -0.798579 1.978910 6.851996 +26 +Frame 17, Iteration: 180 +C -6.275920 0.455283 -0.000274 +H -7.048320 1.174523 -0.563939 +H -6.882125 -0.239738 0.730012 +H -5.673231 -0.165226 -0.727532 +C -5.346829 1.389897 0.896600 +H -5.930299 2.127733 1.571301 +H -4.626406 1.989033 0.194916 +C -4.478300 0.350648 1.761640 +H -3.778132 -0.309858 1.170603 +H -5.110458 -0.261805 2.461060 +C -3.621891 1.357627 2.676033 +H -4.336657 1.992979 3.302091 +H -2.925427 2.065340 2.065573 +C -2.731638 0.453165 3.631538 +H -2.149193 -0.260912 2.947437 +H -3.436003 -0.123683 4.349101 +C -1.737599 1.422015 4.414971 +H -2.216353 2.157083 5.170820 +H -1.065523 2.059393 3.675928 +C -0.964361 0.369146 5.280847 +H -0.290128 -0.299036 4.647212 +H -1.766978 -0.239907 5.935774 +C -0.054762 1.343994 6.221913 +H 0.617266 1.946636 5.581520 +H 0.574451 0.683208 6.930744 +H -0.788055 1.978347 6.847578 +26 +Frame 18, Iteration: 190 +C -6.275873 0.455127 -0.000122 +H -7.027688 1.164172 -0.529620 +H -6.856481 -0.227449 0.720676 +H -5.679403 -0.179318 -0.724926 +C -5.348675 1.389323 0.902498 +H -5.933637 2.101501 1.549436 +H -4.620240 1.990426 0.202925 +C -4.479646 0.353512 1.761621 +H -3.762600 -0.320558 1.159206 +H -5.082782 -0.243534 2.415795 +C -3.624644 1.353564 2.675607 +H -4.332157 1.946619 3.326174 +H -2.918207 2.073845 2.067317 +C -2.734149 0.448421 3.632639 +H -2.151587 -0.223314 2.958398 +H -3.427433 -0.109788 4.349120 +C -1.736267 1.419883 4.413061 +H -2.231901 2.130326 5.164517 +H -1.062958 2.035389 3.675687 +C -0.961055 0.366029 5.279440 +H -0.305710 -0.297462 4.655356 +H -1.759235 -0.238091 5.920367 +C -0.054755 1.344169 6.221995 +H 0.609206 1.941782 5.604358 +H 0.550539 0.683970 6.911434 +H -0.773001 1.976652 6.845678 +26 +Frame 19, Iteration: 200 +C -6.275758 0.455001 0.000001 +H -7.015390 1.154188 -0.503468 +H -6.831926 -0.213516 0.709713 +H -5.681486 -0.183101 -0.726340 +C -5.349280 1.389790 0.905336 +H -5.936678 2.078145 1.530958 +H -4.629971 1.988122 0.217381 +C -4.480143 0.356496 1.761687 +H -3.752432 -0.331750 1.145354 +H -5.076159 -0.228800 2.389323 +C -3.627487 1.350448 2.672629 +H -4.322946 1.904271 3.345756 +H -2.915760 2.074956 2.072977 +C -2.737540 0.444179 3.633072 +H -2.150238 -0.197879 2.980478 +H -3.408923 -0.095248 4.340836 +C -1.736450 1.419012 4.409443 +H -2.243947 2.099102 5.145849 +H -1.066401 1.997682 3.685727 +C -0.958973 0.365782 5.278922 +H -0.325233 -0.300919 4.662826 +H -1.750564 -0.235078 5.905087 +C -0.054635 1.343972 6.222217 +H 0.613099 1.945798 5.617604 +H 0.533505 0.679286 6.896486 +H -0.754566 1.968893 6.847902 +26 +Frame 20, Iteration: 210 +C -6.275672 0.455354 0.000187 +H -7.013902 1.140108 -0.487187 +H -6.819138 -0.205450 0.695329 +H -5.676365 -0.183289 -0.732267 +C -5.349856 1.391537 0.905132 +H -5.945803 2.064520 1.520538 +H -4.647416 1.979825 0.233486 +C -4.477875 0.361910 1.760244 +H -3.748283 -0.336905 1.135377 +H -5.085941 -0.227939 2.378450 +C -3.631810 1.349822 2.668288 +H -4.319650 1.867826 3.351397 +H -2.921747 2.076336 2.076666 +C -2.740209 0.439099 3.631588 +H -2.144903 -0.187591 3.003851 +H -3.388142 -0.085584 4.327459 +C -1.737899 1.415576 4.404875 +H -2.246227 2.072837 5.126128 +H -1.071864 1.960104 3.698475 +C -0.955967 0.367573 5.280783 +H -0.335073 -0.307441 4.670008 +H -1.731598 -0.227583 5.895312 +C -0.054545 1.343991 6.222273 +H 0.625209 1.947540 5.618914 +H 0.522296 0.662023 6.886484 +H -0.736023 1.975606 6.855754 +26 +Frame 21, Iteration: 220 +C -6.275571 0.455351 0.000081 +H -7.013089 1.129729 -0.478904 +H -6.819101 -0.216905 0.682741 +H -5.668733 -0.178631 -0.733166 +C -5.349278 1.392730 0.902400 +H -5.963980 2.046663 1.512277 +H -4.670696 1.972184 0.249903 +C -4.473359 0.368645 1.756505 +H -3.760589 -0.325273 1.124543 +H -5.100653 -0.241160 2.379791 +C -3.635557 1.350911 2.667444 +H -4.321135 1.857851 3.356980 +H -2.937609 2.077849 2.079482 +C -2.740228 0.435059 3.627059 +H -2.131592 -0.196971 3.013845 +H -3.378409 -0.088844 4.324391 +C -1.738079 1.410315 4.399503 +H -2.243724 2.059750 5.106769 +H -1.081861 1.929273 3.714410 +C -0.954022 0.370253 5.283487 +H -0.342479 -0.320806 4.670274 +H -1.703218 -0.215306 5.892622 +C -0.054559 1.343958 6.221990 +H 0.649576 1.953338 5.612644 +H 0.518305 0.648562 6.881362 +H -0.720344 1.983923 6.865092 +26 +Frame 22, Iteration: 230 +C -6.275598 0.455350 0.000192 +H -7.013389 1.131907 -0.479902 +H -6.823907 -0.239698 0.681743 +H -5.665108 -0.165475 -0.729980 +C -5.350142 1.392342 0.898882 +H -5.988333 2.041169 1.505133 +H -4.688636 1.972437 0.254995 +C -4.467277 0.373777 1.753234 +H -3.779188 -0.303650 1.108170 +H -5.126494 -0.262067 2.389427 +C -3.636645 1.351945 2.667858 +H -4.331894 1.866961 3.368632 +H -2.954455 2.074310 2.078553 +C -2.740266 0.430854 3.621819 +H -2.112093 -0.219150 3.009667 +H -3.374758 -0.106487 4.337567 +C -1.738820 1.404654 4.395129 +H -2.239154 2.061553 5.090874 +H -1.086819 1.910890 3.721163 +C -0.953420 0.371238 5.286856 +H -0.351521 -0.337622 4.665516 +H -1.680561 -0.199974 5.887301 +C -0.054403 1.344127 6.221783 +H 0.680634 1.960647 5.602845 +H 0.520228 0.643695 6.879818 +H -0.708071 1.993522 6.874738 +26 +Frame 23, Iteration: 240 +C -6.275492 0.455303 0.000081 +H -7.014003 1.144248 -0.490450 +H -6.828542 -0.267371 0.692213 +H -5.660533 -0.148147 -0.722377 +C -5.350257 1.390059 0.896199 +H -6.021128 2.051840 1.501003 +H -4.699254 1.978476 0.244206 +C -4.462431 0.376482 1.751087 +H -3.795953 -0.282465 1.094304 +H -5.151232 -0.277102 2.399243 +C -3.638187 1.354903 2.668907 +H -4.347119 1.885322 3.380863 +H -2.970427 2.064426 2.071556 +C -2.740495 0.425009 3.617830 +H -2.094699 -0.250516 2.999390 +H -3.374155 -0.132473 4.358962 +C -1.738989 1.399212 4.390493 +H -2.235582 2.080815 5.069911 +H -1.081729 1.905085 3.712195 +C -0.952495 0.371418 5.290250 +H -0.358026 -0.348673 4.655805 +H -1.668581 -0.187678 5.889163 +C -0.054133 1.343900 6.221698 +H 0.712805 1.965418 5.600627 +H 0.523389 0.635587 6.889512 +H -0.701619 2.007184 6.885160 +26 +Frame 24, Iteration: 250 +C -6.275481 0.455342 0.000066 +H -7.016832 1.160922 -0.509945 +H -6.835037 -0.299478 0.698731 +H -5.662267 -0.119622 -0.719211 +C -5.349672 1.386315 0.895820 +H -6.052718 2.067654 1.502039 +H -4.704386 1.989294 0.220311 +C -4.457712 0.378216 1.749988 +H -3.812097 -0.252869 1.082506 +H -5.162535 -0.282304 2.409205 +C -3.640726 1.357584 2.670933 +H -4.352528 1.907734 3.381673 +H -2.989325 2.046093 2.065284 +C -2.740699 0.420120 3.616777 +H -2.078716 -0.280659 2.989672 +H -3.385001 -0.158677 4.380705 +C -1.738497 1.395140 4.384441 +H -2.240098 2.114245 5.049296 +H -1.071970 1.902851 3.698020 +C -0.950325 0.372835 5.293292 +H -0.354225 -0.346477 4.648155 +H -1.667290 -0.175318 5.904346 +C -0.053814 1.343894 6.221978 +H 0.739759 1.967575 5.608061 +H 0.532441 0.627377 6.900602 +H -0.697241 2.017275 6.898834 +26 +Frame 25, Iteration: 260 +C -6.275317 0.455197 -0.000348 +H -7.021409 1.176391 -0.530771 +H -6.840611 -0.320981 0.695976 +H -5.663410 -0.098163 -0.718205 +C -5.352023 1.380884 0.896833 +H -6.072190 2.087706 1.506873 +H -4.711863 1.997965 0.194264 +C -4.453503 0.378498 1.748914 +H -3.817583 -0.224060 1.078599 +H -5.162683 -0.282602 2.408890 +C -3.642118 1.358825 2.674946 +H -4.349039 1.926874 3.382298 +H -3.005518 2.028860 2.063106 +C -2.741055 0.418815 3.615617 +H -2.069774 -0.306418 2.982461 +H -3.401334 -0.170617 4.400665 +C -1.737153 1.389639 4.378675 +H -2.247610 2.142144 5.024028 +H -1.061968 1.900843 3.683595 +C -0.947831 0.375763 5.297670 +H -0.341281 -0.336348 4.645536 +H -1.670196 -0.177384 5.935492 +C -0.053820 1.343867 6.221962 +H 0.752793 1.963130 5.627549 +H 0.543607 0.621491 6.912432 +H -0.692744 2.023141 6.913113 +26 +Frame 26, Iteration: 270 +C -6.275360 0.455251 -0.000363 +H -7.031355 1.176631 -0.543862 +H -6.834170 -0.327905 0.687109 +H -5.657036 -0.091636 -0.728070 +C -5.356615 1.375724 0.899379 +H -6.075577 2.106510 1.516051 +H -4.729770 2.001222 0.172441 +C -4.450884 0.378426 1.746964 +H -3.819469 -0.203873 1.078278 +H -5.148121 -0.275059 2.394271 +C -3.644694 1.360319 2.680363 +H -4.342226 1.945135 3.380288 +H -3.016674 2.014113 2.056068 +C -2.740928 0.417877 3.614779 +H -2.079111 -0.326844 2.972380 +H -3.413213 -0.169336 4.411845 +C -1.736444 1.384424 4.373204 +H -2.252849 2.162149 5.001008 +H -1.047515 1.905868 3.676128 +C -0.944862 0.380770 5.302712 +H -0.325627 -0.319033 4.655518 +H -1.672909 -0.186938 5.975645 +C -0.053700 1.343888 6.221947 +H 0.755550 1.947105 5.653657 +H 0.548292 0.615008 6.922905 +H -0.693692 2.023905 6.917708 +26 +Frame 27, Iteration: 280 +C -6.275605 0.455237 -0.000564 +H -7.043839 1.173400 -0.543526 +H -6.823852 -0.325916 0.674727 +H -5.645411 -0.088625 -0.755284 +C -5.361618 1.372291 0.900799 +H -6.066546 2.113703 1.518990 +H -4.757819 1.995023 0.157040 +C -4.449595 0.380138 1.745965 +H -3.813012 -0.185207 1.078145 +H -5.125548 -0.263724 2.370466 +C -3.646636 1.359448 2.686259 +H -4.331936 1.958041 3.370846 +H -3.028330 2.004506 2.046620 +C -2.741767 0.414778 3.612998 +H -2.099128 -0.338786 2.970327 +H -3.418701 -0.166255 4.413670 +C -1.737959 1.379256 4.368930 +H -2.248662 2.179858 4.978144 +H -1.023089 1.914704 3.674121 +C -0.941167 0.386173 5.306763 +H -0.316269 -0.300166 4.683146 +H -1.679051 -0.194266 6.012518 +C -0.053721 1.343834 6.222030 +H 0.748671 1.923447 5.670902 +H 0.544376 0.616465 6.928555 +H -0.696633 2.018905 6.910933 +26 +Frame 28, Iteration: 290 +C -6.275891 0.455194 -0.000766 +H -7.051724 1.161124 -0.540229 +H -6.810791 -0.317424 0.659547 +H -5.638473 -0.086690 -0.788139 +C -5.366803 1.369695 0.900383 +H -6.044749 2.104176 1.515237 +H -4.790676 1.982848 0.148096 +C -4.450012 0.383925 1.744495 +H -3.792960 -0.177443 1.071964 +H -5.104744 -0.257299 2.346485 +C -3.646806 1.357364 2.693156 +H -4.326175 1.963898 3.359132 +H -3.030814 1.998489 2.041719 +C -2.743569 0.408923 3.609001 +H -2.119002 -0.338658 2.975769 +H -3.419386 -0.154886 4.402581 +C -1.739872 1.376020 4.366678 +H -2.232792 2.182356 4.953214 +H -0.998495 1.919888 3.674640 +C -0.938665 0.392063 5.310363 +H -0.303385 -0.285840 4.709925 +H -1.680253 -0.197815 6.037927 +C -0.053506 1.343791 6.222091 +H 0.733089 1.904773 5.679207 +H 0.534150 0.625273 6.930878 +H -0.695291 2.005796 6.888201 +26 +Frame 29, Iteration: 300 +C -6.276010 0.455248 -0.000652 +H -7.059674 1.148149 -0.535011 +H -6.805015 -0.310483 0.640086 +H -5.628934 -0.080193 -0.824699 +C -5.371568 1.367885 0.897984 +H -6.016008 2.085487 1.507910 +H -4.819372 1.974111 0.149485 +C -4.450290 0.389231 1.741669 +H -3.770034 -0.185355 1.059360 +H -5.090054 -0.259827 2.333487 +C -3.647591 1.354186 2.699985 +H -4.325341 1.972797 3.346217 +H -3.029009 1.996468 2.039490 +C -2.745207 0.405320 3.605902 +H -2.147349 -0.334301 2.987103 +H -3.418911 -0.136793 4.383288 +C -1.742031 1.375085 4.367184 +H -2.221245 2.175069 4.934871 +H -0.985747 1.926252 3.676041 +C -0.939333 0.396850 5.315321 +H -0.288499 -0.276984 4.731044 +H -1.674074 -0.204235 6.042762 +C -0.053629 1.343641 6.221977 +H 0.719076 1.890967 5.679999 +H 0.523550 0.629416 6.939736 +H -0.694545 1.996155 6.862034 +26 +Frame 30, Iteration: 310 +C -6.275937 0.455151 -0.000517 +H -7.070269 1.136188 -0.524963 +H -6.801760 -0.306806 0.621401 +H -5.626964 -0.064837 -0.855799 +C -5.375756 1.365180 0.894769 +H -5.986958 2.069348 1.507907 +H -4.833733 1.973091 0.154242 +C -4.451237 0.395150 1.737709 +H -3.742996 -0.195051 1.046104 +H -5.083186 -0.268920 2.332909 +C -3.648777 1.351531 2.705311 +H -4.327597 1.980589 3.333058 +H -3.025119 2.003934 2.038729 +C -2.747532 0.401819 3.605096 +H -2.176815 -0.331885 2.997943 +H -3.413158 -0.114395 4.353216 +C -1.742358 1.375992 4.367390 +H -2.223103 2.162937 4.922860 +H -0.981834 1.931327 3.682935 +C -0.942593 0.401654 5.322909 +H -0.273441 -0.265110 4.749634 +H -1.656970 -0.205571 6.037161 +C -0.053645 1.343546 6.221953 +H 0.713891 1.889377 5.667290 +H 0.515315 0.631104 6.952476 +H -0.702625 1.995555 6.841513 +26 +Frame 31, Iteration: 320 +C -6.275859 0.455094 -0.000427 +H -7.080720 1.122872 -0.511411 +H -6.807051 -0.307380 0.607254 +H -5.637144 -0.043975 -0.866583 +C -5.381400 1.363115 0.890792 +H -5.969066 2.055418 1.528412 +H -4.833093 1.972861 0.154284 +C -4.451710 0.401336 1.734648 +H -3.716218 -0.202184 1.032598 +H -5.078485 -0.287134 2.338608 +C -3.651536 1.351114 2.712126 +H -4.333873 1.984924 3.320693 +H -3.016940 2.017477 2.037648 +C -2.749619 0.400101 3.603159 +H -2.200585 -0.334515 3.006686 +H -3.407206 -0.093686 4.330106 +C -1.740265 1.378027 4.365033 +H -2.236586 2.152051 4.919328 +H -0.985851 1.928255 3.688646 +C -0.947628 0.407122 5.331759 +H -0.259212 -0.253942 4.765290 +H -1.632952 -0.201823 6.022495 +C -0.053507 1.343562 6.221996 +H 0.719443 1.902556 5.646875 +H 0.501296 0.637588 6.961837 +H -0.719464 2.008934 6.822909 +26 +Frame 32, Iteration: 330 +C -6.275801 0.455011 -0.000546 +H -7.083635 1.110242 -0.492138 +H -6.812869 -0.316004 0.598907 +H -5.651139 -0.023996 -0.867777 +C -5.387684 1.363473 0.888604 +H -5.963910 2.042954 1.552894 +H -4.817317 1.976201 0.156047 +C -4.453271 0.406408 1.730176 +H -3.692654 -0.206260 1.024345 +H -5.074951 -0.306874 2.351984 +C -3.653878 1.350249 2.718763 +H -4.343259 1.988579 3.309842 +H -3.006574 2.026464 2.035998 +C -2.751326 0.400489 3.600523 +H -2.214098 -0.342513 3.007735 +H -3.401382 -0.086125 4.317504 +C -1.736002 1.380683 4.360581 +H -2.256192 2.145211 4.931025 +H -1.000843 1.918184 3.699248 +C -0.953370 0.411114 5.339233 +H -0.247604 -0.247072 4.776459 +H -1.615132 -0.193730 6.003196 +C -0.053400 1.343453 6.222047 +H 0.724500 1.928492 5.623788 +H 0.476979 0.646600 6.975674 +H -0.741462 2.025847 6.802490 +26 +Frame 33, Iteration: 340 +C -6.275769 0.454797 -0.000620 +H -7.091256 1.091983 -0.471442 +H -6.812713 -0.333119 0.595521 +H -5.662631 -0.012182 -0.862302 +C -5.393561 1.365191 0.887356 +H -5.969988 2.033677 1.579858 +H -4.796490 1.983488 0.159703 +C -4.456544 0.411533 1.725581 +H -3.679861 -0.199184 1.023252 +H -5.073067 -0.320794 2.365005 +C -3.656238 1.349614 2.721900 +H -4.355381 1.997977 3.308633 +H -2.992194 2.028996 2.036656 +C -2.752001 0.402190 3.596957 +H -2.223500 -0.352178 3.001796 +H -3.406724 -0.089859 4.319344 +C -1.731686 1.383405 4.354949 +H -2.278957 2.136771 4.953308 +H -1.023732 1.909739 3.712716 +C -0.958761 0.412736 5.344807 +H -0.241254 -0.247350 4.783914 +H -1.610388 -0.188012 5.985996 +C -0.053497 1.343563 6.222144 +H 0.731278 1.954951 5.601891 +H 0.450585 0.657944 6.991332 +H -0.767206 2.036349 6.783639 +26 +Frame 34, Iteration: 350 +C -6.275764 0.454817 -0.000658 +H -7.097064 1.072535 -0.458724 +H -6.807409 -0.350885 0.602119 +H -5.672124 0.008486 -0.842663 +C -5.395911 1.368408 0.886867 +H -5.976808 2.027898 1.606846 +H -4.776726 1.993457 0.170086 +C -4.459289 0.416281 1.721664 +H -3.678124 -0.181407 1.030598 +H -5.071140 -0.321452 2.380550 +C -3.658688 1.351661 2.721646 +H -4.372089 2.005036 3.315219 +H -2.972752 2.019459 2.041555 +C -2.750833 0.403078 3.591632 +H -2.231254 -0.360652 2.998111 +H -3.423156 -0.096211 4.328715 +C -1.729992 1.387687 4.350403 +H -2.299243 2.128206 4.973831 +H -1.041207 1.900649 3.718110 +C -0.962042 0.412765 5.348371 +H -0.239587 -0.252192 4.784040 +H -1.621744 -0.179690 5.980703 +C -0.053439 1.343879 6.222076 +H 0.735027 1.981003 5.581728 +H 0.436059 0.672743 7.008881 +H -0.782105 2.053910 6.770434 +26 +Frame 35, Iteration: 360 +C -6.275805 0.454922 -0.000298 +H -7.105783 1.058872 -0.451667 +H -6.800571 -0.371461 0.613636 +H -5.679196 0.031615 -0.815340 +C -5.395813 1.372219 0.886401 +H -5.983636 2.025915 1.625372 +H -4.756364 1.999682 0.186766 +C -4.461654 0.417572 1.717789 +H -3.692932 -0.159107 1.042632 +H -5.059071 -0.318614 2.389021 +C -3.660590 1.353482 2.718323 +H -4.386249 1.996870 3.321797 +H -2.959000 2.003573 2.048438 +C -2.747422 0.402981 3.588308 +H -2.233298 -0.375309 2.991731 +H -3.441270 -0.105332 4.342771 +C -1.728692 1.389396 4.348007 +H -2.312891 2.119140 4.988289 +H -1.054474 1.903941 3.719444 +C -0.962515 0.411744 5.350000 +H -0.244663 -0.250500 4.787882 +H -1.639071 -0.184108 5.982823 +C -0.053341 1.344238 6.222035 +H 0.730402 2.000604 5.573128 +H 0.428540 0.696461 7.031732 +H -0.785405 2.073830 6.754199 +26 +Frame 36, Iteration: 370 +C -6.276259 0.455058 -0.000285 +H -7.112393 1.052830 -0.447769 +H -6.784109 -0.392300 0.629115 +H -5.670266 0.047567 -0.793419 +C -5.393914 1.376368 0.886915 +H -5.996200 2.019309 1.636607 +H -4.743378 2.001447 0.209595 +C -4.464408 0.414074 1.713489 +H -3.722012 -0.132979 1.056377 +H -5.033581 -0.310935 2.385142 +C -3.660561 1.356411 2.712628 +H -4.393723 1.981920 3.322748 +H -2.952382 1.991142 2.062392 +C -2.746332 0.404794 3.586452 +H -2.228216 -0.386611 2.984808 +H -3.450041 -0.119217 4.356917 +C -1.729629 1.390412 4.346141 +H -2.312846 2.099602 4.993363 +H -1.062103 1.915626 3.711568 +C -0.963656 0.411360 5.350652 +H -0.257039 -0.243159 4.797525 +H -1.663235 -0.201050 5.989763 +C -0.053265 1.344217 6.222242 +H 0.714513 2.010386 5.577817 +H 0.427444 0.718760 7.051375 +H -0.772791 2.088409 6.727858 +26 +Frame 37, Iteration: 380 +C -6.276215 0.455216 -0.000084 +H -7.116563 1.048513 -0.445440 +H -6.769670 -0.404369 0.642067 +H -5.650195 0.054738 -0.781693 +C -5.389881 1.382249 0.886761 +H -6.006689 2.010421 1.638155 +H -4.738426 2.007237 0.227908 +C -4.466464 0.408119 1.710455 +H -3.755025 -0.113398 1.071961 +H -4.998872 -0.304755 2.373351 +C -3.657592 1.361725 2.704668 +H -4.402191 1.963673 3.324060 +H -2.950302 1.980581 2.074414 +C -2.746526 0.407722 3.587138 +H -2.212497 -0.393981 2.979413 +H -3.442014 -0.129491 4.367732 +C -1.732172 1.391212 4.344765 +H -2.303756 2.079353 4.990460 +H -1.060410 1.939294 3.690805 +C -0.963965 0.410001 5.351667 +H -0.269269 -0.237121 4.806194 +H -1.689522 -0.213215 5.995572 +C -0.053127 1.344299 6.222524 +H 0.686970 1.997294 5.585119 +H 0.431522 0.740486 7.062499 +H -0.749914 2.102836 6.703630 +26 +Frame 38, Iteration: 390 +C -6.276076 0.454887 0.000174 +H -7.123194 1.048104 -0.439669 +H -6.763445 -0.414223 0.639954 +H -5.614452 0.058313 -0.781419 +C -5.385158 1.389216 0.887078 +H -6.013253 2.006089 1.628086 +H -4.729976 2.021875 0.240703 +C -4.467111 0.401405 1.709643 +H -3.784924 -0.108800 1.080433 +H -4.970414 -0.304025 2.360132 +C -3.652859 1.368057 2.695695 +H -4.407278 1.948020 3.331031 +H -2.946753 1.971649 2.085870 +C -2.747822 0.407862 3.589747 +H -2.191651 -0.386734 2.979991 +H -3.424300 -0.133170 4.376223 +C -1.732865 1.391362 4.342806 +H -2.291541 2.059188 4.977824 +H -1.060249 1.970693 3.671458 +C -0.964024 0.407989 5.352763 +H -0.276526 -0.244964 4.808929 +H -1.711102 -0.213015 6.001627 +C -0.052883 1.344505 6.222688 +H 0.660960 1.962063 5.594075 +H 0.441073 0.760963 7.066539 +H -0.721070 2.112817 6.687052 +26 +Frame 39, Iteration: 400 +C -6.276097 0.454893 0.000365 +H -7.129216 1.049172 -0.432414 +H -6.754343 -0.429282 0.637218 +H -5.571625 0.057040 -0.789739 +C -5.383114 1.397325 0.887240 +H -6.018109 2.009446 1.612736 +H -4.716839 2.045073 0.240169 +C -4.468550 0.396623 1.709537 +H -3.798224 -0.112864 1.072014 +H -4.963031 -0.308139 2.348569 +C -3.646158 1.374652 2.689353 +H -4.408348 1.928700 3.340079 +H -2.941431 1.968761 2.092766 +C -2.751257 0.406240 3.593607 +H -2.177783 -0.371172 2.986521 +H -3.409813 -0.129344 4.376402 +C -1.732271 1.390661 4.340630 +H -2.292704 2.047535 4.965323 +H -1.069626 1.985382 3.653504 +C -0.963694 0.406587 5.354960 +H -0.288045 -0.266363 4.806671 +H -1.725250 -0.208433 6.005829 +C -0.052847 1.344634 6.222780 +H 0.647791 1.914627 5.600408 +H 0.450527 0.771923 7.068529 +H -0.702506 2.123341 6.677575 +26 +Frame 40, Iteration: 410 +C -6.276166 0.455145 0.000634 +H -7.129810 1.058842 -0.425052 +H -6.735782 -0.446514 0.634233 +H -5.534735 0.047275 -0.806722 +C -5.382507 1.404203 0.885346 +H -6.017929 2.007441 1.602170 +H -4.708566 2.065699 0.237190 +C -4.470595 0.393544 1.708480 +H -3.797692 -0.128445 1.039042 +H -4.968546 -0.315292 2.344179 +C -3.639353 1.377471 2.683889 +H -4.398658 1.909817 3.340905 +H -2.937963 1.975510 2.094998 +C -2.755240 0.404105 3.598683 +H -2.170352 -0.351304 2.993623 +H -3.396928 -0.129711 4.371332 +C -1.730133 1.388998 4.338875 +H -2.301264 2.039546 4.958919 +H -1.087663 1.984906 3.634281 +C -0.962022 0.406056 5.356845 +H -0.301417 -0.295765 4.795747 +H -1.733034 -0.195290 6.001784 +C -0.053045 1.344372 6.222723 +H 0.656039 1.868705 5.597745 +H 0.462796 0.780208 7.071092 +H -0.699787 2.144643 6.679294 +26 +Frame 41, Iteration: 420 +C -6.276098 0.455255 0.000379 +H -7.127750 1.066185 -0.423505 +H -6.711662 -0.458128 0.628582 +H -5.513388 0.041339 -0.826769 +C -5.381584 1.409182 0.883361 +H -6.012525 2.005529 1.593843 +H -4.704607 2.083524 0.240751 +C -4.470876 0.390798 1.707825 +H -3.782299 -0.147415 0.994215 +H -4.986150 -0.327256 2.347874 +C -3.634608 1.376412 2.679009 +H -4.382891 1.900485 3.332084 +H -2.950358 1.995950 2.093383 +C -2.757579 0.400989 3.605071 +H -2.165462 -0.336602 2.994145 +H -3.389638 -0.134927 4.361132 +C -1.727909 1.386144 4.334671 +H -2.312555 2.044150 4.963546 +H -1.112497 1.979767 3.618039 +C -0.959858 0.406194 5.360358 +H -0.315056 -0.332775 4.776088 +H -1.732974 -0.166829 5.993916 +C -0.053135 1.344321 6.222727 +H 0.680655 1.829959 5.583539 +H 0.465114 0.784415 7.073288 +H -0.698349 2.168351 6.690550 +26 +Frame 42, Iteration: 430 +C -6.276215 0.454950 0.000427 +H -7.125317 1.071551 -0.426707 +H -6.685157 -0.460226 0.616702 +H -5.517099 0.037834 -0.833740 +C -5.379968 1.414239 0.880704 +H -6.006377 1.997889 1.577033 +H -4.705079 2.101525 0.246436 +C -4.470737 0.388180 1.708293 +H -3.766992 -0.162774 0.955416 +H -5.001343 -0.343938 2.352481 +C -3.631292 1.372509 2.675849 +H -4.367956 1.900380 3.317221 +H -2.962461 2.023167 2.082413 +C -2.759081 0.399289 3.611034 +H -2.158740 -0.326039 2.992494 +H -3.388552 -0.142465 4.346646 +C -1.729461 1.383646 4.329855 +H -2.318968 2.057241 4.971846 +H -1.138700 1.975816 3.606227 +C -0.956405 0.406501 5.363632 +H -0.324136 -0.367632 4.761503 +H -1.720987 -0.131526 5.981307 +C -0.053271 1.344611 6.222525 +H 0.718697 1.797866 5.561530 +H 0.470351 0.789282 7.067650 +H -0.690902 2.186022 6.703012 +26 +Frame 43, Iteration: 440 +C -6.275992 0.454697 0.000649 +H -7.129234 1.075821 -0.432500 +H -6.653602 -0.455453 0.602052 +H -5.543546 0.036986 -0.829927 +C -5.378678 1.419615 0.878859 +H -5.990130 1.994562 1.559379 +H -4.714322 2.121702 0.247972 +C -4.469726 0.386725 1.706662 +H -3.752499 -0.166109 0.926068 +H -5.016754 -0.352256 2.362714 +C -3.626776 1.368116 2.674663 +H -4.350820 1.903623 3.304833 +H -2.970835 2.057687 2.066086 +C -2.760118 0.397328 3.618065 +H -2.153731 -0.316114 2.984113 +H -3.391444 -0.158642 4.331730 +C -1.734687 1.380499 4.327007 +H -2.313938 2.078516 4.987237 +H -1.156961 1.975541 3.600626 +C -0.950365 0.405447 5.365286 +H -0.330797 -0.395023 4.747189 +H -1.703373 -0.097177 5.979897 +C -0.053112 1.345025 6.222652 +H 0.754335 1.772298 5.538156 +H 0.477603 0.786371 7.059126 +H -0.678073 2.194266 6.712298 +26 +Frame 44, Iteration: 450 +C -6.275810 0.454668 0.000594 +H -7.135874 1.081983 -0.433542 +H -6.621294 -0.443248 0.589313 +H -5.580221 0.040140 -0.819160 +C -5.378367 1.422609 0.876207 +H -5.978147 1.995118 1.544922 +H -4.729028 2.143081 0.241174 +C -4.465388 0.386113 1.703787 +H -3.748364 -0.162812 0.910342 +H -5.028737 -0.351048 2.372773 +C -3.619785 1.364534 2.674030 +H -4.336184 1.905866 3.300535 +H -2.969246 2.089736 2.054125 +C -2.760734 0.396081 3.623502 +H -2.150598 -0.301390 2.978024 +H -3.397633 -0.176506 4.322929 +C -1.742011 1.377434 4.327104 +H -2.307373 2.099582 5.006953 +H -1.162844 1.973724 3.597290 +C -0.945048 0.400808 5.364196 +H -0.345709 -0.401667 4.746839 +H -1.686740 -0.073912 5.985512 +C -0.053390 1.345099 6.222816 +H 0.783108 1.754113 5.511389 +H 0.478896 0.777995 7.058691 +H -0.663144 2.193807 6.718074 +26 +Frame 45, Iteration: 460 +C -6.275721 0.454762 0.000829 +H -7.145201 1.083726 -0.439286 +H -6.603009 -0.428640 0.581740 +H -5.614312 0.043574 -0.811098 +C -5.377328 1.423572 0.872316 +H -5.980595 2.002381 1.545574 +H -4.750687 2.161409 0.232136 +C -4.458765 0.385556 1.703039 +H -3.755726 -0.159404 0.911372 +H -5.031018 -0.340237 2.379497 +C -3.610971 1.361190 2.672801 +H -4.329664 1.912728 3.295960 +H -2.961701 2.117039 2.051363 +C -2.761575 0.394701 3.627558 +H -2.147060 -0.282218 2.974879 +H -3.406088 -0.190771 4.320193 +C -1.749368 1.373398 4.327553 +H -2.298798 2.119028 5.019221 +H -1.161406 1.965791 3.594646 +C -0.942179 0.394076 5.359887 +H -0.364583 -0.394358 4.750907 +H -1.681890 -0.053216 6.001294 +C -0.053444 1.345442 6.222774 +H 0.808485 1.737213 5.487395 +H 0.474860 0.764558 7.063270 +H -0.653178 2.189591 6.712268 +26 +Frame 46, Iteration: 470 +C -6.275397 0.454930 0.000899 +H -7.155054 1.079288 -0.443456 +H -6.597066 -0.418004 0.588132 +H -5.646606 0.048009 -0.821703 +C -5.374429 1.425781 0.870166 +H -5.996479 2.021980 1.558426 +H -4.775018 2.177040 0.223976 +C -4.449980 0.384884 1.703642 +H -3.768216 -0.148256 0.924573 +H -5.024389 -0.324950 2.373531 +C -3.603957 1.356499 2.670045 +H -4.338262 1.922192 3.293021 +H -2.957958 2.132288 2.062744 +C -2.759940 0.393691 3.629903 +H -2.139157 -0.263839 2.963888 +H -3.423572 -0.208886 4.320016 +C -1.755967 1.368998 4.329375 +H -2.282416 2.134025 5.017308 +H -1.154176 1.954381 3.596552 +C -0.941918 0.387609 5.353566 +H -0.383077 -0.381920 4.761454 +H -1.683971 -0.041829 6.035707 +C -0.053291 1.345212 6.222648 +H 0.818408 1.722870 5.476518 +H 0.468562 0.752024 7.069802 +H -0.639390 2.188114 6.691742 +26 +Frame 47, Iteration: 480 +C -6.275358 0.455080 0.000822 +H -7.162326 1.074656 -0.440791 +H -6.609578 -0.408440 0.598649 +H -5.673749 0.051407 -0.848659 +C -5.369409 1.427896 0.870764 +H -6.011534 2.039972 1.570625 +H -4.795426 2.186720 0.217236 +C -4.440647 0.384589 1.703412 +H -3.776725 -0.139465 0.946063 +H -5.008573 -0.315470 2.359724 +C -3.597625 1.350799 2.663841 +H -4.343859 1.921399 3.293946 +H -2.962068 2.131149 2.078809 +C -2.756761 0.392882 3.632379 +H -2.127475 -0.258475 2.951950 +H -3.444042 -0.223398 4.321663 +C -1.762079 1.366913 4.331303 +H -2.257630 2.142896 4.997530 +H -1.138760 1.939002 3.599829 +C -0.942966 0.383487 5.346267 +H -0.400620 -0.363875 4.779979 +H -1.685922 -0.037228 6.077374 +C -0.053427 1.345142 6.222339 +H 0.809797 1.713650 5.482370 +H 0.457525 0.747495 7.075787 +H -0.631601 2.191591 6.673349 +26 +Frame 48, Iteration: 490 +C -6.275383 0.455142 0.000659 +H -7.168453 1.070232 -0.428973 +H -6.632409 -0.403275 0.613562 +H -5.688435 0.053073 -0.887154 +C -5.363463 1.430623 0.872017 +H -6.018880 2.058230 1.587563 +H -4.810899 2.191769 0.213723 +C -4.432320 0.386366 1.703263 +H -3.781553 -0.136745 0.973381 +H -4.987103 -0.309797 2.347982 +C -3.591673 1.344561 2.657604 +H -4.339507 1.922717 3.294744 +H -2.967354 2.121586 2.102741 +C -2.755455 0.391720 3.632318 +H -2.116951 -0.258211 2.946361 +H -3.459938 -0.226744 4.318217 +C -1.767626 1.367729 4.333229 +H -2.220751 2.142354 4.973431 +H -1.120076 1.922146 3.601328 +C -0.944631 0.382696 5.338152 +H -0.413071 -0.350153 4.790606 +H -1.688315 -0.044680 6.110309 +C -0.053488 1.345015 6.222352 +H 0.793625 1.704213 5.491715 +H 0.444938 0.750896 7.079564 +H -0.632642 2.201090 6.654772 +26 +Frame 49, Iteration: 500 +C -6.275363 0.455410 0.000665 +H -7.169709 1.066120 -0.409473 +H -6.662550 -0.401158 0.636492 +H -5.702863 0.057266 -0.928737 +C -5.358989 1.432057 0.873573 +H -6.028300 2.068347 1.606963 +H -4.819321 2.184895 0.209080 +C -4.425474 0.390899 1.702109 +H -3.781946 -0.142283 0.997932 +H -4.967498 -0.310733 2.344659 +C -3.586030 1.340549 2.652748 +H -4.332478 1.926123 3.291917 +H -2.974591 2.105394 2.131671 +C -2.756657 0.391536 3.628034 +H -2.113081 -0.262119 2.941475 +H -3.465250 -0.220163 4.313830 +C -1.772085 1.366068 4.338129 +H -2.192852 2.139308 4.953223 +H -1.101287 1.897484 3.607559 +C -0.949646 0.382986 5.331534 +H -0.417513 -0.349516 4.792056 +H -1.682411 -0.057064 6.132605 +C -0.053539 1.345108 6.222720 +H 0.783200 1.697466 5.499473 +H 0.435433 0.756400 7.079934 +H -0.633388 2.215084 6.633754 +26 +Frame 50, Iteration: 510 +C -6.275260 0.455054 0.000591 +H -7.169340 1.057646 -0.385926 +H -6.688981 -0.400579 0.653516 +H -5.713788 0.066032 -0.957463 +C -5.357128 1.434618 0.872959 +H -6.031789 2.062794 1.620005 +H -4.824411 2.168519 0.205878 +C -4.417006 0.396342 1.701134 +H -3.779544 -0.154586 1.011145 +H -4.964707 -0.315051 2.345046 +C -3.581434 1.336560 2.650213 +H -4.319764 1.934006 3.293271 +H -2.975315 2.091314 2.150035 +C -2.759719 0.391498 3.622269 +H -2.111644 -0.261623 2.938110 +H -3.460318 -0.211729 4.302372 +C -1.772580 1.363281 4.345508 +H -2.182276 2.146979 4.940884 +H -1.085623 1.868892 3.622103 +C -0.957349 0.384584 5.329808 +H -0.412940 -0.363763 4.784820 +H -1.675198 -0.072698 6.136929 +C -0.053390 1.344958 6.222700 +H 0.780500 1.690818 5.518128 +H 0.420495 0.770190 7.081323 +H -0.632421 2.233650 6.612835 +26 +Frame 51, Iteration: 520 +C -6.275581 0.454729 0.000539 +H -7.170399 1.044737 -0.365706 +H -6.705514 -0.402420 0.661683 +H -5.730367 0.066890 -0.968674 +C -5.358441 1.438373 0.870337 +H -6.024470 2.040450 1.623165 +H -4.820117 2.152695 0.194303 +C -4.407585 0.402820 1.701584 +H -3.769441 -0.163831 1.014935 +H -4.968653 -0.318541 2.347267 +C -3.579519 1.331737 2.651611 +H -4.310357 1.944006 3.294228 +H -2.964972 2.077583 2.156258 +C -2.764023 0.390728 3.615135 +H -2.119091 -0.266137 2.938195 +H -3.450846 -0.193968 4.285483 +C -1.771310 1.360835 4.352515 +H -2.179284 2.161589 4.944907 +H -1.069930 1.838286 3.635115 +C -0.966365 0.387446 5.332487 +H -0.404077 -0.385820 4.778344 +H -1.667269 -0.087569 6.126230 +C -0.053162 1.345182 6.222838 +H 0.775537 1.687344 5.545448 +H 0.393011 0.787724 7.084821 +H -0.628352 2.250636 6.600619 +26 +Frame 52, Iteration: 530 +C -6.275585 0.454700 0.000651 +H -7.177918 1.030691 -0.348161 +H -6.710338 -0.396251 0.663663 +H -5.743430 0.068839 -0.957800 +C -5.360797 1.440631 0.867322 +H -6.019556 2.015969 1.621098 +H -4.811761 2.133524 0.171326 +C -4.398197 0.410428 1.702334 +H -3.758328 -0.163232 1.007828 +H -4.979893 -0.312719 2.351950 +C -3.581429 1.328388 2.653869 +H -4.305008 1.955259 3.300348 +H -2.946255 2.072184 2.155211 +C -2.767587 0.388915 3.605170 +H -2.129862 -0.289890 2.945003 +H -3.443338 -0.175535 4.272517 +C -1.769001 1.359618 4.360401 +H -2.185566 2.170037 4.957138 +H -1.054908 1.813084 3.640371 +C -0.973286 0.389047 5.337767 +H -0.388324 -0.414108 4.772740 +H -1.668983 -0.096383 6.111545 +C -0.053126 1.345367 6.222901 +H 0.780092 1.687716 5.571854 +H 0.363986 0.803465 7.094300 +H -0.626983 2.264449 6.588281 +26 +Frame 53, Iteration: 540 +C -6.275625 0.454927 0.000666 +H -7.197616 1.026165 -0.331025 +H -6.709272 -0.384952 0.662388 +H -5.749886 0.074081 -0.931324 +C -5.363099 1.442598 0.864426 +H -6.006516 1.994331 1.612474 +H -4.800016 2.115966 0.152184 +C -4.391498 0.417279 1.701107 +H -3.738840 -0.159119 0.992751 +H -4.994667 -0.292662 2.355638 +C -3.583720 1.328378 2.657228 +H -4.303088 1.963003 3.305055 +H -2.929728 2.065654 2.139787 +C -2.770114 0.387840 3.593791 +H -2.151359 -0.315573 2.958197 +H -3.437282 -0.160670 4.270329 +C -1.767099 1.357776 4.366292 +H -2.192997 2.163194 4.970301 +H -1.040955 1.787137 3.648728 +C -0.978463 0.388539 5.345257 +H -0.370444 -0.441357 4.769794 +H -1.672585 -0.105214 6.091544 +C -0.053230 1.345394 6.223233 +H 0.790305 1.687486 5.597381 +H 0.336435 0.820463 7.114811 +H -0.624656 2.270272 6.576456 +26 +Frame 54, Iteration: 550 +C -6.275568 0.454838 0.000523 +H -7.226018 1.029967 -0.316165 +H -6.700603 -0.375231 0.655829 +H -5.746768 0.078432 -0.904274 +C -5.363359 1.446867 0.861500 +H -5.992330 1.978175 1.601267 +H -4.781975 2.098047 0.140868 +C -4.385278 0.422899 1.700122 +H -3.714987 -0.152983 0.978097 +H -5.010378 -0.265594 2.355892 +C -3.588345 1.331741 2.661098 +H -4.304734 1.961528 3.304866 +H -2.910627 2.051052 2.110512 +C -2.770307 0.387676 3.582189 +H -2.174619 -0.343604 2.970734 +H -3.440252 -0.147751 4.282912 +C -1.765867 1.355635 4.370861 +H -2.206875 2.150038 4.980504 +H -1.023402 1.761839 3.667001 +C -0.983364 0.388237 5.353383 +H -0.360969 -0.460797 4.771110 +H -1.675493 -0.113990 6.069846 +C -0.052970 1.345248 6.223180 +H 0.801970 1.693271 5.612399 +H 0.320682 0.823665 7.139543 +H -0.625397 2.274514 6.565965 +26 +Frame 55, Iteration: 560 +C -6.275568 0.454690 0.000267 +H -7.245779 1.039788 -0.304528 +H -6.679592 -0.366206 0.652296 +H -5.734751 0.077469 -0.887502 +C -5.362582 1.449724 0.857462 +H -5.975478 1.971435 1.593230 +H -4.765302 2.079392 0.137408 +C -4.378599 0.429292 1.699105 +H -3.694395 -0.153867 0.967382 +H -5.024583 -0.224357 2.353605 +C -3.592626 1.336397 2.664432 +H -4.300887 1.956583 3.306274 +H -2.891284 2.028794 2.073006 +C -2.768604 0.387647 3.572001 +H -2.192330 -0.375144 2.980866 +H -3.447608 -0.138638 4.309578 +C -1.764161 1.350570 4.372259 +H -2.225519 2.133716 4.986573 +H -1.004968 1.749697 3.683164 +C -0.986688 0.387482 5.361364 +H -0.364145 -0.459709 4.775705 +H -1.676609 -0.122968 6.060876 +C -0.053009 1.345332 6.223059 +H 0.817960 1.701674 5.614099 +H 0.306953 0.813881 7.163693 +H -0.619979 2.273057 6.551530 +26 +Frame 56, Iteration: 570 +C -6.275458 0.454633 0.000356 +H -7.245206 1.045939 -0.301203 +H -6.650349 -0.367164 0.656184 +H -5.715522 0.073898 -0.878226 +C -5.359631 1.451394 0.852161 +H -5.955851 1.985316 1.588832 +H -4.753789 2.063118 0.136263 +C -4.373681 0.435700 1.699166 +H -3.687407 -0.151885 0.962821 +H -5.034643 -0.184944 2.349459 +C -3.596115 1.343936 2.668937 +H -4.286300 1.951954 3.306176 +H -2.876474 1.997134 2.038729 +C -2.767403 0.387493 3.561961 +H -2.210116 -0.401233 2.994646 +H -3.452507 -0.128705 4.336704 +C -1.759576 1.346394 4.372417 +H -2.241079 2.125143 4.989994 +H -0.988704 1.746462 3.687452 +C -0.990615 0.385343 5.368847 +H -0.374420 -0.438432 4.784618 +H -1.676911 -0.140839 6.054953 +C -0.052739 1.345404 6.223022 +H 0.833090 1.707340 5.603354 +H 0.288138 0.798188 7.186224 +H -0.610275 2.267779 6.537279 +26 +Frame 57, Iteration: 580 +C -6.275258 0.454727 0.000352 +H -7.237361 1.050596 -0.303895 +H -6.623972 -0.374612 0.671581 +H -5.702301 0.065237 -0.874900 +C -5.355839 1.452390 0.847787 +H -5.942971 2.022669 1.591785 +H -4.742011 2.052535 0.141603 +C -4.372486 0.442899 1.700337 +H -3.692665 -0.143822 0.975561 +H -5.035029 -0.156297 2.340175 +C -3.598028 1.351070 2.671908 +H -4.269449 1.948280 3.302264 +H -2.870299 1.958446 2.002665 +C -2.767884 0.387093 3.555569 +H -2.221342 -0.426527 3.012476 +H -3.453982 -0.119497 4.351263 +C -1.755906 1.342544 4.371993 +H -2.257239 2.128571 4.978469 +H -0.978611 1.759068 3.682340 +C -0.992452 0.382063 5.376360 +H -0.388473 -0.408954 4.796365 +H -1.683781 -0.161740 6.056346 +C -0.052446 1.345554 6.223023 +H 0.849911 1.708807 5.594361 +H 0.272163 0.783933 7.196643 +H -0.611959 2.268182 6.525357 +26 +Frame 58, Iteration: 590 +C -6.275103 0.454675 0.000390 +H -7.227429 1.048666 -0.319877 +H -6.597918 -0.388797 0.684227 +H -5.697810 0.058473 -0.880787 +C -5.352316 1.453238 0.841460 +H -5.937951 2.074549 1.599239 +H -4.729383 2.053409 0.140187 +C -4.374996 0.450796 1.701889 +H -3.704055 -0.128478 1.000741 +H -5.039301 -0.128935 2.325680 +C -3.599466 1.356935 2.671841 +H -4.256822 1.953236 3.297909 +H -2.864378 1.926626 1.971825 +C -2.767395 0.386777 3.552869 +H -2.234817 -0.448239 3.028077 +H -3.453412 -0.096861 4.350223 +C -1.753183 1.337851 4.370012 +H -2.271553 2.132707 4.961144 +H -0.974698 1.782894 3.680433 +C -0.993112 0.375902 5.382326 +H -0.392836 -0.373823 4.822031 +H -1.700600 -0.167454 6.065276 +C -0.052565 1.345641 6.222899 +H 0.857643 1.705178 5.585481 +H 0.263996 0.775054 7.199195 +H -0.626248 2.275164 6.519229 +26 +Frame 59, Iteration: 600 +C -6.274910 0.454584 0.000336 +H -7.211778 1.038092 -0.332593 +H -6.573250 -0.408294 0.685018 +H -5.701453 0.050558 -0.879468 +C -5.348284 1.455005 0.835613 +H -5.938211 2.122704 1.607751 +H -4.719652 2.063324 0.129239 +C -4.379205 0.456515 1.703462 +H -3.717916 -0.117115 1.031668 +H -5.049099 -0.113539 2.312733 +C -3.599911 1.359249 2.668732 +H -4.252403 1.970075 3.295423 +H -2.863879 1.908135 1.951285 +C -2.767936 0.386994 3.552721 +H -2.242981 -0.465991 3.034954 +H -3.451630 -0.065846 4.335404 +C -1.749311 1.332217 4.366317 +H -2.289934 2.135474 4.944480 +H -0.987312 1.810419 3.685403 +C -0.995992 0.369109 5.385387 +H -0.392498 -0.342402 4.849810 +H -1.728007 -0.167866 6.071216 +C -0.052545 1.345608 6.223054 +H 0.861577 1.698495 5.581691 +H 0.258526 0.773156 7.192972 +H -0.642071 2.285935 6.512658 +26 +Frame 60, Iteration: 610 +C -6.274748 0.454429 0.000193 +H -7.192404 1.016239 -0.350198 +H -6.551162 -0.431815 0.676174 +H -5.707422 0.038853 -0.872764 +C -5.342836 1.458285 0.832731 +H -5.932714 2.160311 1.606698 +H -4.717785 2.069483 0.124265 +C -4.382934 0.462845 1.704280 +H -3.727302 -0.117904 1.049384 +H -5.063874 -0.110500 2.316051 +C -3.597317 1.360303 2.664260 +H -4.254204 1.991176 3.300952 +H -2.869727 1.895548 1.937859 +C -2.769560 0.385285 3.556566 +H -2.251689 -0.474140 3.035671 +H -3.452300 -0.039221 4.315824 +C -1.746858 1.326048 4.363223 +H -2.303393 2.140171 4.920649 +H -1.003115 1.834049 3.698037 +C -0.999406 0.361604 5.389695 +H -0.386574 -0.324970 4.868290 +H -1.758658 -0.166099 6.075096 +C -0.052775 1.345616 6.223159 +H 0.866043 1.685246 5.586668 +H 0.253726 0.778230 7.179484 +H -0.649963 2.290271 6.505170 +26 +Frame 61, Iteration: 620 +C -6.274786 0.454515 0.000260 +H -7.181372 0.989023 -0.374346 +H -6.536254 -0.457471 0.668993 +H -5.708391 0.032606 -0.872727 +C -5.337799 1.463539 0.831962 +H -5.918109 2.183545 1.591744 +H -4.718210 2.076222 0.128485 +C -4.384940 0.470730 1.703437 +H -3.729194 -0.130277 1.053228 +H -5.078668 -0.126878 2.325189 +C -3.592376 1.361256 2.658928 +H -4.256984 2.015793 3.308086 +H -2.874890 1.891193 1.934687 +C -2.772918 0.382034 3.563252 +H -2.257466 -0.474157 3.035089 +H -3.457917 -0.020758 4.298326 +C -1.743823 1.317678 4.360650 +H -2.301897 2.141653 4.890872 +H -1.022927 1.858619 3.712302 +C -1.005579 0.356853 5.395998 +H -0.368224 -0.323467 4.878459 +H -1.786045 -0.161261 6.070262 +C -0.052844 1.345523 6.223130 +H 0.865671 1.665982 5.598161 +H 0.253234 0.786336 7.163460 +H -0.654639 2.285517 6.494983 +26 +Frame 62, Iteration: 630 +C -6.274618 0.454425 0.000259 +H -7.183505 0.957217 -0.394536 +H -6.530373 -0.479352 0.667515 +H -5.701876 0.030033 -0.874851 +C -5.332935 1.469335 0.832069 +H -5.899506 2.189126 1.559322 +H -4.718554 2.086372 0.134418 +C -4.386808 0.477675 1.700627 +H -3.732149 -0.145982 1.051339 +H -5.093621 -0.154124 2.335889 +C -3.586366 1.361119 2.652958 +H -4.250320 2.037162 3.309619 +H -2.883415 1.902089 1.942992 +C -2.774411 0.378779 3.570302 +H -2.256681 -0.474561 3.030807 +H -3.472254 -0.012777 4.286175 +C -1.739180 1.309430 4.357984 +H -2.287253 2.131973 4.862584 +H -1.043837 1.886084 3.725060 +C -1.012152 0.353328 5.401163 +H -0.348385 -0.339574 4.879926 +H -1.808461 -0.157681 6.065060 +C -0.053064 1.345231 6.223204 +H 0.859815 1.649732 5.608878 +H 0.257733 0.796932 7.149068 +H -0.658906 2.283518 6.486313 +26 +Frame 63, Iteration: 640 +C -6.274320 0.454691 0.000380 +H -7.196404 0.934664 -0.410925 +H -6.526390 -0.492565 0.668570 +H -5.687908 0.030655 -0.877569 +C -5.329741 1.474420 0.832139 +H -5.879222 2.187404 1.519252 +H -4.717617 2.089939 0.130379 +C -4.388644 0.485050 1.696161 +H -3.734553 -0.158962 1.039685 +H -5.105645 -0.176366 2.344256 +C -3.582629 1.358513 2.647785 +H -4.238355 2.057489 3.305246 +H -2.887595 1.928950 1.959203 +C -2.775106 0.374576 3.579493 +H -2.251926 -0.477555 3.021558 +H -3.502671 -0.023408 4.286147 +C -1.734446 1.303878 4.353932 +H -2.270018 2.112939 4.839467 +H -1.060235 1.907059 3.735248 +C -1.017100 0.352324 5.408160 +H -0.331812 -0.372865 4.867148 +H -1.830037 -0.156986 6.062972 +C -0.052972 1.345038 6.223092 +H 0.857504 1.639673 5.619566 +H 0.273254 0.799177 7.147203 +H -0.665142 2.285794 6.480741 +26 +Frame 64, Iteration: 650 +C -6.274019 0.454498 0.000354 +H -7.215838 0.925451 -0.419667 +H -6.519074 -0.489348 0.662921 +H -5.672849 0.034855 -0.888627 +C -5.324626 1.480474 0.831340 +H -5.868157 2.181647 1.484831 +H -4.711036 2.091122 0.129091 +C -4.394851 0.490746 1.695323 +H -3.735001 -0.173327 1.025966 +H -5.106536 -0.199692 2.342840 +C -3.579403 1.356534 2.645851 +H -4.225264 2.071019 3.296270 +H -2.887402 1.957183 1.984004 +C -2.776318 0.369870 3.589755 +H -2.245638 -0.479256 3.014291 +H -3.537248 -0.048532 4.288304 +C -1.729136 1.300307 4.346690 +H -2.258890 2.095112 4.825026 +H -1.067630 1.912543 3.742300 +C -1.020488 0.352225 5.413870 +H -0.324411 -0.409037 4.850485 +H -1.842748 -0.165172 6.059770 +C -0.053089 1.344917 6.223386 +H 0.860331 1.633620 5.630249 +H 0.296539 0.797788 7.153549 +H -0.670636 2.289004 6.478826 +26 +Frame 65, Iteration: 660 +C -6.273959 0.454770 0.000178 +H -7.235628 0.921667 -0.422116 +H -6.512083 -0.474393 0.644107 +H -5.662909 0.039455 -0.899631 +C -5.316758 1.484797 0.830016 +H -5.864852 2.178547 1.464248 +H -4.702531 2.097320 0.122432 +C -4.405879 0.494065 1.695038 +H -3.727327 -0.180289 1.019561 +H -5.097443 -0.217158 2.334869 +C -3.575586 1.356334 2.644100 +H -4.212518 2.070972 3.288757 +H -2.878648 1.987843 2.004296 +C -2.776966 0.364575 3.598814 +H -2.239655 -0.470244 3.007647 +H -3.569869 -0.079086 4.293271 +C -1.725864 1.296194 4.338232 +H -2.255027 2.086812 4.824298 +H -1.065898 1.914480 3.743734 +C -1.021576 0.351015 5.415138 +H -0.327077 -0.441198 4.841799 +H -1.844876 -0.169383 6.056876 +C -0.053068 1.345003 6.223813 +H 0.862420 1.630886 5.634964 +H 0.311173 0.795141 7.167063 +H -0.673821 2.286927 6.476990 +26 +Frame 66, Iteration: 670 +C -6.274200 0.454827 0.000070 +H -7.253660 0.920601 -0.411673 +H -6.511856 -0.456089 0.619657 +H -5.654008 0.053160 -0.904527 +C -5.309687 1.487953 0.826252 +H -5.864134 2.177426 1.455077 +H -4.690250 2.104720 0.108711 +C -4.418873 0.495063 1.693590 +H -3.724712 -0.184948 1.020704 +H -5.080650 -0.227442 2.323676 +C -3.572364 1.356892 2.640964 +H -4.197272 2.068416 3.282648 +H -2.866862 2.020446 2.028585 +C -2.776814 0.361721 3.608027 +H -2.244096 -0.454112 3.006780 +H -3.596948 -0.113515 4.294977 +C -1.722638 1.290843 4.329760 +H -2.256640 2.084572 4.831568 +H -1.061090 1.915591 3.737513 +C -1.023274 0.347865 5.413573 +H -0.337629 -0.464001 4.841114 +H -1.833944 -0.164005 6.044437 +C -0.052812 1.344955 6.224092 +H 0.856848 1.623327 5.635424 +H 0.314975 0.791127 7.180181 +H -0.670570 2.281087 6.472150 +26 +Frame 67, Iteration: 680 +C -6.274325 0.454760 0.000268 +H -7.267604 0.922088 -0.394599 +H -6.525298 -0.437742 0.589952 +H -5.649335 0.067178 -0.899603 +C -5.303456 1.490108 0.819695 +H -5.876819 2.182496 1.453897 +H -4.671614 2.107477 0.100873 +C -4.431726 0.495204 1.690823 +H -3.731831 -0.176496 1.034829 +H -5.060940 -0.237034 2.307449 +C -3.566692 1.358472 2.638587 +H -4.183294 2.062884 3.277354 +H -2.859968 2.045004 2.055740 +C -2.777787 0.360962 3.616269 +H -2.257988 -0.444003 3.014156 +H -3.612867 -0.148470 4.290394 +C -1.719730 1.286521 4.321910 +H -2.262459 2.085909 4.840846 +H -1.055871 1.903347 3.721022 +C -1.023591 0.343177 5.410901 +H -0.357371 -0.479334 4.849986 +H -1.823377 -0.151968 6.027660 +C -0.052829 1.345120 6.224210 +H 0.845999 1.611303 5.630882 +H 0.311670 0.789338 7.193099 +H -0.669407 2.278959 6.477240 +26 +Frame 68, Iteration: 690 +C -6.274438 0.454647 0.000244 +H -7.275334 0.927589 -0.376687 +H -6.545572 -0.428173 0.568893 +H -5.646610 0.077479 -0.889978 +C -5.299120 1.494162 0.809871 +H -5.898659 2.194672 1.450288 +H -4.657285 2.098132 0.101633 +C -4.442520 0.494499 1.689586 +H -3.748416 -0.158232 1.060675 +H -5.040367 -0.233903 2.293931 +C -3.558784 1.360790 2.638291 +H -4.175743 2.057056 3.282857 +H -2.849298 2.063303 2.072989 +C -2.782011 0.359463 3.622908 +H -2.265964 -0.440435 3.020056 +H -3.612453 -0.176708 4.280181 +C -1.717957 1.283423 4.317373 +H -2.273674 2.086726 4.848674 +H -1.046415 1.875435 3.698058 +C -1.021499 0.339099 5.405170 +H -0.378709 -0.489706 4.864833 +H -1.827827 -0.141444 6.008055 +C -0.052877 1.345149 6.224321 +H 0.835342 1.607685 5.620021 +H 0.304160 0.787826 7.197951 +H -0.668461 2.280585 6.482931 +26 +Frame 69, Iteration: 700 +C -6.274550 0.454543 0.000268 +H -7.270943 0.936399 -0.365243 +H -6.563960 -0.430613 0.557306 +H -5.644307 0.089292 -0.880944 +C -5.295947 1.497712 0.796800 +H -5.920663 2.204338 1.448494 +H -4.643448 2.096122 0.112259 +C -4.450559 0.494318 1.687784 +H -3.769021 -0.137527 1.081383 +H -5.025926 -0.224848 2.292539 +C -3.550385 1.364829 2.637825 +H -4.174185 2.047224 3.291659 +H -2.837348 2.067974 2.086796 +C -2.787107 0.355762 3.626874 +H -2.273191 -0.439882 3.028128 +H -3.599061 -0.198675 4.267152 +C -1.717842 1.279685 4.318792 +H -2.283362 2.083434 4.859535 +H -1.030001 1.840356 3.663490 +C -1.017775 0.336098 5.397058 +H -0.404958 -0.487704 4.884393 +H -1.838065 -0.127764 5.998034 +C -0.052898 1.345071 6.224109 +H 0.824383 1.610730 5.602575 +H 0.299543 0.790057 7.198246 +H -0.666105 2.280210 6.481971 +26 +Frame 70, Iteration: 710 +C -6.274282 0.454806 0.000485 +H -7.258293 0.945751 -0.359632 +H -6.579945 -0.446011 0.556287 +H -5.642678 0.098784 -0.867462 +C -5.293361 1.500035 0.784126 +H -5.934870 2.214209 1.445883 +H -4.629273 2.092224 0.120172 +C -4.456751 0.494752 1.686023 +H -3.782295 -0.107281 1.083420 +H -5.021649 -0.217685 2.300382 +C -3.542876 1.368925 2.637805 +H -4.178443 2.033411 3.297691 +H -2.822645 2.065973 2.094238 +C -2.792409 0.352295 3.627954 +H -2.279443 -0.435444 3.033874 +H -3.577416 -0.210126 4.251550 +C -1.719599 1.275048 4.323316 +H -2.284594 2.078895 4.870574 +H -1.010535 1.808274 3.623972 +C -1.015557 0.332466 5.389236 +H -0.431723 -0.485690 4.903177 +H -1.848389 -0.115656 6.003748 +C -0.053290 1.345170 6.223955 +H 0.814046 1.614734 5.589149 +H 0.302432 0.794304 7.186469 +H -0.666834 2.272303 6.476112 +26 +Frame 71, Iteration: 720 +C -6.274371 0.454776 0.000491 +H -7.245783 0.956895 -0.357223 +H -6.601698 -0.468496 0.557636 +H -5.642575 0.114851 -0.858842 +C -5.293547 1.502360 0.773693 +H -5.938846 2.223983 1.448885 +H -4.612909 2.084976 0.115662 +C -4.462357 0.495344 1.687261 +H -3.788301 -0.076385 1.072724 +H -5.023596 -0.211018 2.312245 +C -3.537235 1.373907 2.638987 +H -4.193279 2.018625 3.296733 +H -2.813396 2.057793 2.089926 +C -2.797984 0.349646 3.627182 +H -2.281824 -0.426122 3.027576 +H -3.550008 -0.212145 4.243242 +C -1.721577 1.272333 4.328206 +H -2.275785 2.069687 4.881425 +H -0.987113 1.773936 3.590586 +C -1.012060 0.330954 5.382060 +H -0.450084 -0.490408 4.911710 +H -1.854386 -0.095709 6.026177 +C -0.053460 1.345112 6.223892 +H 0.797170 1.618696 5.576170 +H 0.314581 0.810159 7.170900 +H -0.658490 2.263807 6.474656 +26 +Frame 72, Iteration: 730 +C -6.274637 0.454802 0.000288 +H -7.239193 0.969608 -0.355344 +H -6.617730 -0.491141 0.557751 +H -5.641744 0.133375 -0.856438 +C -5.296245 1.504319 0.767801 +H -5.939499 2.226513 1.452108 +H -4.599259 2.081061 0.101149 +C -4.467568 0.498197 1.687836 +H -3.788749 -0.061569 1.050736 +H -5.037278 -0.203727 2.320637 +C -3.532287 1.379572 2.639797 +H -4.211354 1.999570 3.292559 +H -2.807124 2.048376 2.082919 +C -2.803597 0.347005 3.624334 +H -2.277815 -0.419574 3.017769 +H -3.525461 -0.205608 4.239923 +C -1.723499 1.269906 4.332496 +H -2.259440 2.064112 4.888242 +H -0.972132 1.736778 3.566662 +C -1.007706 0.332544 5.377725 +H -0.456283 -0.496850 4.916243 +H -1.856951 -0.080651 6.057371 +C -0.053294 1.344994 6.223887 +H 0.785735 1.623571 5.560306 +H 0.330983 0.837422 7.152084 +H -0.649444 2.260560 6.481396 +26 +Frame 73, Iteration: 740 +C -6.274747 0.454622 0.000148 +H -7.227159 0.988245 -0.350053 +H -6.626724 -0.503143 0.560287 +H -5.638532 0.142218 -0.859755 +C -5.299955 1.507994 0.763943 +H -5.938513 2.228665 1.444086 +H -4.592150 2.076749 0.081713 +C -4.470372 0.502423 1.689382 +H -3.786551 -0.064840 1.024495 +H -5.056664 -0.198231 2.331897 +C -3.528168 1.383810 2.641783 +H -4.228935 1.981391 3.286333 +H -2.806409 2.037405 2.071712 +C -2.808894 0.345417 3.619390 +H -2.273197 -0.419462 3.013472 +H -3.516735 -0.198223 4.244720 +C -1.724894 1.268969 4.336253 +H -2.239405 2.058298 4.890474 +H -0.969172 1.697551 3.549558 +C -1.005654 0.336631 5.375466 +H -0.453354 -0.503673 4.922760 +H -1.847566 -0.064591 6.077855 +C -0.053496 1.345107 6.224165 +H 0.771027 1.625270 5.542364 +H 0.343406 0.862656 7.140002 +H -0.647756 2.262422 6.489182 +26 +Frame 74, Iteration: 750 +C -6.274616 0.454544 0.000209 +H -7.214851 1.012772 -0.346249 +H -6.629223 -0.506881 0.561138 +H -5.632762 0.140643 -0.869317 +C -5.303802 1.513696 0.761934 +H -5.938421 2.224251 1.426051 +H -4.594862 2.082082 0.058277 +C -4.471196 0.507144 1.691092 +H -3.781013 -0.078371 0.990711 +H -5.080109 -0.197075 2.348691 +C -3.526516 1.385604 2.641723 +H -4.241835 1.973394 3.279346 +H -2.808421 2.030661 2.057774 +C -2.815416 0.344757 3.612724 +H -2.266629 -0.424157 3.008308 +H -3.517074 -0.193497 4.263818 +C -1.724954 1.268211 4.339299 +H -2.221604 2.057041 4.881640 +H -0.978582 1.662580 3.544098 +C -1.005204 0.342323 5.375348 +H -0.437607 -0.515950 4.924212 +H -1.831672 -0.043411 6.090170 +C -0.053597 1.345286 6.224308 +H 0.767770 1.628509 5.521834 +H 0.362605 0.879514 7.143882 +H -0.642522 2.268300 6.493382 +26 +Frame 75, Iteration: 760 +C -6.274336 0.454318 0.000269 +H -7.203240 1.034422 -0.341796 +H -6.626269 -0.499449 0.560426 +H -5.635911 0.133562 -0.887181 +C -5.306461 1.520156 0.759418 +H -5.936937 2.217296 1.401291 +H -4.609839 2.091483 0.037620 +C -4.469826 0.511182 1.693885 +H -3.775458 -0.092723 0.961927 +H -5.103253 -0.188409 2.364757 +C -3.527349 1.387212 2.639441 +H -4.249604 1.970253 3.277813 +H -2.810930 2.034348 2.040183 +C -2.822836 0.343774 3.606227 +H -2.255273 -0.427467 2.997614 +H -3.516533 -0.190139 4.294911 +C -1.724414 1.265348 4.342074 +H -2.203836 2.058466 4.874851 +H -0.995910 1.635075 3.551673 +C -1.004901 0.348024 5.375547 +H -0.425456 -0.522463 4.926801 +H -1.812438 -0.020665 6.101677 +C -0.053883 1.345369 6.224056 +H 0.771405 1.626727 5.495284 +H 0.380063 0.892946 7.151240 +H -0.637808 2.279956 6.494422 +26 +Frame 76, Iteration: 770 +C -6.274273 0.454220 0.000215 +H -7.178530 1.048426 -0.336061 +H -6.617641 -0.486997 0.559936 +H -5.649469 0.125312 -0.904266 +C -5.309064 1.529631 0.756796 +H -5.928074 2.210519 1.379422 +H -4.636332 2.102687 0.025416 +C -4.466352 0.513553 1.699976 +H -3.774797 -0.101409 0.944768 +H -5.125470 -0.171545 2.372715 +C -3.532506 1.388210 2.637220 +H -4.251306 1.978578 3.278480 +H -2.814557 2.034823 2.020396 +C -2.829450 0.342597 3.599661 +H -2.250954 -0.430579 2.992548 +H -3.518662 -0.190256 4.325998 +C -1.723891 1.261209 4.343561 +H -2.186319 2.072020 4.865043 +H -1.016481 1.607715 3.561292 +C -1.004637 0.351147 5.377716 +H -0.419197 -0.518160 4.925139 +H -1.791891 0.000672 6.109733 +C -0.053902 1.345327 6.224034 +H 0.774561 1.627990 5.469616 +H 0.397330 0.898036 7.153021 +H -0.636615 2.299957 6.497267 +26 +Frame 77, Iteration: 780 +C -6.274494 0.454187 0.000258 +H -7.143592 1.059699 -0.333893 +H -6.604343 -0.467354 0.561608 +H -5.667938 0.118301 -0.920479 +C -5.310134 1.538959 0.753320 +H -5.912862 2.206558 1.374259 +H -4.663774 2.111890 0.018026 +C -4.461200 0.516185 1.706075 +H -3.788723 -0.109347 0.946524 +H -5.137556 -0.144710 2.372788 +C -3.538841 1.387827 2.633790 +H -4.251677 1.998985 3.284180 +H -2.819279 2.033089 2.000662 +C -2.835101 0.341798 3.593478 +H -2.247436 -0.426968 2.993710 +H -3.531515 -0.189442 4.347147 +C -1.723716 1.258856 4.341505 +H -2.172767 2.102289 4.854465 +H -1.032055 1.576852 3.574890 +C -1.004113 0.353700 5.381450 +H -0.417974 -0.509538 4.917021 +H -1.773246 0.014191 6.112167 +C -0.053836 1.345126 6.223996 +H 0.776346 1.627753 5.453559 +H 0.412776 0.897632 7.149937 +H -0.629673 2.314894 6.504150 +26 +Frame 78, Iteration: 790 +C -6.274225 0.454398 0.000227 +H -7.112867 1.068428 -0.342552 +H -6.593627 -0.445988 0.566180 +H -5.690078 0.115083 -0.938115 +C -5.311062 1.547317 0.746964 +H -5.901342 2.205675 1.382612 +H -4.690769 2.119752 0.011682 +C -4.455525 0.520219 1.707813 +H -3.813375 -0.114216 0.971804 +H -5.135215 -0.110051 2.363478 +C -3.545692 1.383109 2.631423 +H -4.243285 2.025401 3.295356 +H -2.825190 2.029964 1.988252 +C -2.838786 0.343174 3.588699 +H -2.241952 -0.421881 2.990584 +H -3.547733 -0.182099 4.349474 +C -1.725935 1.255764 4.337566 +H -2.156355 2.140269 4.850389 +H -1.041169 1.551529 3.589149 +C -1.004511 0.354674 5.386258 +H -0.429298 -0.499868 4.906687 +H -1.757429 0.017265 6.119143 +C -0.053794 1.345010 6.224052 +H 0.773561 1.627330 5.451680 +H 0.427607 0.892877 7.147145 +H -0.619498 2.320644 6.511302 +26 +Frame 79, Iteration: 800 +C -6.274002 0.454504 0.000071 +H -7.104717 1.066339 -0.349401 +H -6.588529 -0.425389 0.571152 +H -5.713986 0.111065 -0.946656 +C -5.312090 1.553713 0.742910 +H -5.890072 2.211789 1.399111 +H -4.715030 2.118087 -0.002309 +C -4.449620 0.526557 1.706662 +H -3.836259 -0.112261 1.008942 +H -5.122236 -0.071530 2.349439 +C -3.554630 1.379259 2.629080 +H -4.236215 2.049394 3.293249 +H -2.837239 2.023553 1.983393 +C -2.838267 0.342334 3.583856 +H -2.236205 -0.413666 2.991073 +H -3.566812 -0.173016 4.335592 +C -1.729117 1.251343 4.332241 +H -2.131076 2.177608 4.845118 +H -1.035608 1.535223 3.584476 +C -1.004447 0.354823 5.391735 +H -0.445250 -0.493619 4.901646 +H -1.743680 0.019100 6.129465 +C -0.053945 1.345135 6.224134 +H 0.766908 1.633241 5.462980 +H 0.440136 0.880080 7.147145 +H -0.608610 2.315458 6.515447 +26 +Frame 80, Iteration: 810 +C -6.274109 0.454546 0.000061 +H -7.119043 1.064337 -0.350889 +H -6.585063 -0.413890 0.583532 +H -5.735897 0.099464 -0.948020 +C -5.312834 1.556249 0.742575 +H -5.883980 2.217143 1.416864 +H -4.728208 2.107998 -0.023272 +C -4.444523 0.534611 1.703059 +H -3.851206 -0.113639 1.045425 +H -5.118845 -0.033288 2.330259 +C -3.563805 1.376313 2.627816 +H -4.241078 2.072096 3.279899 +H -2.852531 2.014197 1.980147 +C -2.836008 0.338961 3.579969 +H -2.238285 -0.404328 2.990168 +H -3.585764 -0.164824 4.309040 +C -1.733573 1.243674 4.328430 +H -2.102252 2.205280 4.839353 +H -1.009031 1.532304 3.567224 +C -1.004416 0.354791 5.398537 +H -0.461615 -0.485489 4.901023 +H -1.736234 0.015338 6.145617 +C -0.053768 1.345394 6.224125 +H 0.764563 1.649277 5.478667 +H 0.449557 0.866451 7.149842 +H -0.598528 2.300692 6.517885 +26 +Frame 81, Iteration: 820 +C -6.274291 0.454732 0.000200 +H -7.143203 1.059017 -0.356001 +H -6.581682 -0.419065 0.608473 +H -5.755577 0.083209 -0.941583 +C -5.312298 1.554561 0.744525 +H -5.888510 2.224623 1.427020 +H -4.736105 2.100764 -0.044798 +C -4.437576 0.546157 1.697928 +H -3.860216 -0.122642 1.080611 +H -5.124774 -0.004202 2.314150 +C -3.573191 1.375711 2.627310 +H -4.249910 2.086105 3.257907 +H -2.861794 2.003613 1.980117 +C -2.833535 0.334304 3.579710 +H -2.248526 -0.408719 2.992820 +H -3.593386 -0.159833 4.285276 +C -1.735956 1.236033 4.327380 +H -2.073478 2.218400 4.826434 +H -0.975924 1.533862 3.548955 +C -1.002810 0.355077 5.405467 +H -0.469973 -0.479304 4.904088 +H -1.740509 -0.000573 6.160988 +C -0.054050 1.345322 6.224282 +H 0.770039 1.671351 5.500165 +H 0.444448 0.853804 7.149118 +H -0.590269 2.282271 6.525349 +26 +Frame 82, Iteration: 830 +C -6.274181 0.454609 0.000411 +H -7.183311 1.052856 -0.363068 +H -6.574059 -0.434285 0.643990 +H -5.770772 0.055184 -0.932335 +C -5.311801 1.549958 0.747346 +H -5.895629 2.238792 1.431234 +H -4.739601 2.090578 -0.061585 +C -4.431694 0.560965 1.690563 +H -3.854812 -0.137808 1.101431 +H -5.139163 0.011655 2.313169 +C -3.585460 1.377293 2.627569 +H -4.248541 2.087629 3.233934 +H -2.870447 1.994633 1.984185 +C -2.830726 0.328899 3.579399 +H -2.266362 -0.424977 2.993867 +H -3.593220 -0.149975 4.273910 +C -1.738190 1.229469 4.328339 +H -2.048338 2.213607 4.801661 +H -0.952271 1.537080 3.530276 +C -1.002355 0.352788 5.413066 +H -0.473168 -0.482907 4.898855 +H -1.751867 -0.026880 6.171728 +C -0.054180 1.345219 6.224164 +H 0.775023 1.689982 5.519384 +H 0.427919 0.839884 7.144445 +H -0.582878 2.274590 6.536579 +26 +Frame 83, Iteration: 840 +C -6.274074 0.454512 0.000380 +H -7.223958 1.042069 -0.365493 +H -6.569951 -0.445159 0.686507 +H -5.780233 0.033184 -0.929148 +C -5.310008 1.544053 0.749291 +H -5.902625 2.249114 1.435189 +H -4.733294 2.079378 -0.077421 +C -4.427700 0.576146 1.681233 +H -3.834487 -0.168010 1.106247 +H -5.167239 0.023159 2.320578 +C -3.598427 1.381147 2.629678 +H -4.241404 2.088398 3.215319 +H -2.882477 1.984761 1.996227 +C -2.827886 0.325146 3.579527 +H -2.290425 -0.452477 2.987555 +H -3.588559 -0.139731 4.262490 +C -1.736916 1.224580 4.329862 +H -2.034551 2.200406 4.772230 +H -0.944886 1.535580 3.517953 +C -1.003240 0.349465 5.421499 +H -0.467328 -0.492393 4.895446 +H -1.766328 -0.054735 6.178893 +C -0.054087 1.345206 6.224155 +H 0.772387 1.706612 5.537573 +H 0.407515 0.839868 7.129994 +H -0.584794 2.271571 6.550479 +26 +Frame 84, Iteration: 850 +C -6.273937 0.454464 0.000206 +H -7.252496 1.017212 -0.354116 +H -6.568523 -0.443017 0.722381 +H -5.778084 0.017868 -0.929838 +C -5.308353 1.539603 0.749618 +H -5.909327 2.253813 1.434661 +H -4.723216 2.067552 -0.087267 +C -4.425285 0.589674 1.670797 +H -3.809867 -0.191455 1.097631 +H -5.191419 0.040934 2.324999 +C -3.609535 1.384879 2.630233 +H -4.234478 2.085323 3.205874 +H -2.892885 1.969935 2.011723 +C -2.825602 0.323884 3.580355 +H -2.317201 -0.483177 2.966083 +H -3.583024 -0.129433 4.257993 +C -1.732495 1.217956 4.327436 +H -2.031406 2.178986 4.744722 +H -0.944359 1.524732 3.524105 +C -1.006523 0.344206 5.429879 +H -0.459758 -0.499087 4.891843 +H -1.774767 -0.081865 6.179299 +C -0.053979 1.345133 6.224008 +H 0.770220 1.718026 5.548740 +H 0.390619 0.848160 7.120922 +H -0.600770 2.272784 6.573656 +26 +Frame 85, Iteration: 860 +C -6.273783 0.454479 0.000317 +H -7.266638 0.988369 -0.340679 +H -6.569219 -0.439020 0.751119 +H -5.774290 -0.000725 -0.923647 +C -5.309360 1.536155 0.747842 +H -5.917700 2.258452 1.424861 +H -4.723171 2.055095 -0.084943 +C -4.426127 0.598999 1.658472 +H -3.790087 -0.200457 1.079701 +H -5.202929 0.065340 2.321062 +C -3.618262 1.386941 2.629285 +H -4.232967 2.079425 3.216079 +H -2.888795 1.958635 2.031348 +C -2.826220 0.323948 3.581658 +H -2.346749 -0.512211 2.943518 +H -3.580182 -0.121281 4.265404 +C -1.725273 1.209524 4.322491 +H -2.035886 2.154609 4.725713 +H -0.950113 1.518824 3.539980 +C -1.012231 0.339201 5.437839 +H -0.451567 -0.506043 4.893511 +H -1.778625 -0.102837 6.165673 +C -0.053735 1.345261 6.224039 +H 0.768274 1.725669 5.550770 +H 0.377863 0.860971 7.127412 +H -0.625125 2.278773 6.605168 +26 +Frame 86, Iteration: 870 +C -6.273691 0.454479 0.000538 +H -7.270131 0.960709 -0.318726 +H -6.567687 -0.428472 0.774714 +H -5.768875 -0.019888 -0.914583 +C -5.312545 1.535230 0.744561 +H -5.925276 2.259791 1.406328 +H -4.728515 2.041189 -0.064670 +C -4.430755 0.604289 1.646671 +H -3.781071 -0.195416 1.058632 +H -5.200252 0.085748 2.312861 +C -3.624172 1.388317 2.631538 +H -4.243812 2.075003 3.241587 +H -2.868699 1.955971 2.052598 +C -2.827849 0.322888 3.581375 +H -2.375475 -0.532482 2.924486 +H -3.573954 -0.112338 4.276737 +C -1.716954 1.200479 4.317297 +H -2.047100 2.136031 4.714785 +H -0.952398 1.510359 3.559411 +C -1.020488 0.333313 5.447234 +H -0.438078 -0.500661 4.907633 +H -1.779961 -0.121217 6.145225 +C -0.053837 1.345086 6.224280 +H 0.772660 1.728092 5.544663 +H 0.365326 0.868806 7.144280 +H -0.645568 2.275599 6.634187 +26 +Frame 87, Iteration: 880 +C -6.273729 0.454506 0.000678 +H -7.259894 0.936217 -0.292863 +H -6.559521 -0.406907 0.789925 +H -5.759928 -0.041392 -0.905543 +C -5.316316 1.534115 0.740883 +H -5.917449 2.260348 1.385527 +H -4.730219 2.033627 -0.033745 +C -4.437062 0.604909 1.635678 +H -3.781190 -0.182652 1.043567 +H -5.184991 0.096186 2.310987 +C -3.627830 1.388418 2.637331 +H -4.257983 2.074665 3.269039 +H -2.838452 1.950196 2.069045 +C -2.828916 0.320154 3.578852 +H -2.395183 -0.541160 2.911047 +H -3.571279 -0.100567 4.302913 +C -1.707584 1.193420 4.310675 +H -2.070060 2.123668 4.709061 +H -0.939296 1.497714 3.571320 +C -1.028439 0.327548 5.456808 +H -0.420719 -0.493072 4.932170 +H -1.779270 -0.140880 6.123996 +C -0.054060 1.345366 6.224121 +H 0.780081 1.727299 5.538480 +H 0.357795 0.871264 7.164143 +H -0.655092 2.266150 6.656763 +26 +Frame 88, Iteration: 890 +C -6.273907 0.454720 0.000818 +H -7.248981 0.914040 -0.271356 +H -6.549552 -0.375507 0.797630 +H -5.754291 -0.054290 -0.899463 +C -5.321070 1.533062 0.734942 +H -5.907231 2.258245 1.370752 +H -4.723307 2.035744 -0.008457 +C -4.441601 0.602921 1.626030 +H -3.794793 -0.167520 1.037512 +H -5.158846 0.095416 2.315797 +C -3.628496 1.386988 2.644276 +H -4.282285 2.077266 3.292194 +H -2.811348 1.948312 2.079753 +C -2.831680 0.317504 3.575060 +H -2.408136 -0.537626 2.905545 +H -3.566816 -0.101021 4.336414 +C -1.697869 1.186674 4.304239 +H -2.097626 2.117221 4.710240 +H -0.917869 1.487475 3.575216 +C -1.037176 0.324451 5.463102 +H -0.406342 -0.483186 4.956425 +H -1.777697 -0.163931 6.112100 +C -0.054227 1.345472 6.223855 +H 0.787494 1.714218 5.534798 +H 0.355806 0.864821 7.174815 +H -0.656929 2.257520 6.662939 +26 +Frame 89, Iteration: 900 +C -6.274086 0.454645 0.000952 +H -7.245880 0.905721 -0.264953 +H -6.533320 -0.343894 0.799216 +H -5.751729 -0.056341 -0.893054 +C -5.326807 1.531744 0.725701 +H -5.896613 2.259819 1.353787 +H -4.703974 2.044610 0.005760 +C -4.446929 0.598099 1.619932 +H -3.822545 -0.148551 1.034358 +H -5.116709 0.086898 2.318056 +C -3.625676 1.385738 2.650373 +H -4.303066 2.072972 3.311335 +H -2.788073 1.957155 2.090457 +C -2.832992 0.312912 3.570015 +H -2.414049 -0.530426 2.909199 +H -3.553329 -0.101879 4.364910 +C -1.688023 1.181810 4.299925 +H -2.116172 2.102800 4.725685 +H -0.897965 1.482797 3.569303 +C -1.044943 0.319355 5.467566 +H -0.391075 -0.472605 4.974026 +H -1.782607 -0.174710 6.108292 +C -0.054659 1.345543 6.224008 +H 0.788736 1.688992 5.527718 +H 0.356163 0.855683 7.179509 +H -0.652417 2.250773 6.658243 +26 +Frame 90, Iteration: 910 +C -6.274157 0.454704 0.000983 +H -7.242353 0.904593 -0.267932 +H -6.513102 -0.317609 0.796282 +H -5.744430 -0.058186 -0.882731 +C -5.332816 1.531472 0.714422 +H -5.879528 2.266858 1.333201 +H -4.684075 2.056042 -0.001202 +C -4.450525 0.590610 1.614493 +H -3.858058 -0.132095 1.027660 +H -5.079496 0.070413 2.322554 +C -3.621138 1.386517 2.656439 +H -4.310925 2.058203 3.325796 +H -2.777822 1.966695 2.112385 +C -2.833854 0.308415 3.565342 +H -2.417181 -0.520775 2.922259 +H -3.537574 -0.102378 4.384009 +C -1.679725 1.180039 4.295641 +H -2.121074 2.083443 4.743702 +H -0.884960 1.485250 3.560701 +C -1.051539 0.311572 5.471535 +H -0.375079 -0.469110 4.983968 +H -1.794080 -0.173470 6.112134 +C -0.054668 1.345509 6.224351 +H 0.783202 1.658193 5.523483 +H 0.359173 0.844559 7.177331 +H -0.644037 2.236052 6.649192 +26 +Frame 91, Iteration: 920 +C -6.273860 0.454676 0.000863 +H -7.246265 0.922827 -0.276405 +H -6.494831 -0.294410 0.794465 +H -5.736726 -0.058868 -0.877025 +C -5.339928 1.530639 0.704038 +H -5.867967 2.277557 1.319909 +H -4.664445 2.064677 -0.024168 +C -4.452749 0.583629 1.608132 +H -3.890976 -0.123207 1.020112 +H -5.057929 0.040938 2.333131 +C -3.614366 1.389078 2.662710 +H -4.304259 2.036338 3.324432 +H -2.782100 1.972719 2.132822 +C -2.834445 0.303715 3.560510 +H -2.418060 -0.509036 2.949642 +H -3.517400 -0.106952 4.395079 +C -1.673157 1.177616 4.289853 +H -2.118410 2.073171 4.759098 +H -0.879547 1.486601 3.546897 +C -1.056677 0.302089 5.473500 +H -0.361901 -0.470142 4.994019 +H -1.809346 -0.165700 6.120020 +C -0.054632 1.345506 6.224181 +H 0.769524 1.633050 5.523958 +H 0.367249 0.831498 7.167583 +H -0.633066 2.226122 6.637725 +26 +Frame 92, Iteration: 930 +C -6.273914 0.454513 0.000838 +H -7.248958 0.940326 -0.290236 +H -6.486945 -0.272609 0.803427 +H -5.734691 -0.054961 -0.867572 +C -5.345640 1.531785 0.695404 +H -5.860623 2.285277 1.319575 +H -4.649463 2.069910 -0.056862 +C -4.452498 0.576375 1.602616 +H -3.911028 -0.130062 1.002357 +H -5.055635 0.013514 2.348081 +C -3.608628 1.393079 2.665444 +H -4.286694 2.023680 3.312580 +H -2.795592 1.978677 2.154797 +C -2.834059 0.299324 3.559056 +H -2.416243 -0.497892 2.965918 +H -3.501267 -0.111376 4.398504 +C -1.665849 1.175191 4.281654 +H -2.106578 2.067558 4.770695 +H -0.880456 1.483928 3.528273 +C -1.059393 0.293977 5.473926 +H -0.356171 -0.468007 5.005489 +H -1.825429 -0.154254 6.127022 +C -0.054439 1.345889 6.223970 +H 0.756569 1.614527 5.517218 +H 0.382360 0.826729 7.149369 +H -0.620708 2.219145 6.623095 +26 +Frame 93, Iteration: 940 +C -6.273745 0.454188 0.000907 +H -7.247216 0.951135 -0.310600 +H -6.487592 -0.267163 0.818758 +H -5.741303 -0.046848 -0.856644 +C -5.351590 1.534850 0.686245 +H -5.851802 2.288375 1.320119 +H -4.642207 2.065210 -0.086021 +C -4.452753 0.569319 1.600316 +H -3.916027 -0.143316 0.974063 +H -5.063926 -0.004536 2.362067 +C -3.601754 1.397299 2.664896 +H -4.263720 2.015758 3.299353 +H -2.816780 1.985203 2.175351 +C -2.832147 0.297073 3.560174 +H -2.408622 -0.498496 2.966115 +H -3.488635 -0.109481 4.396386 +C -1.657227 1.170890 4.270610 +H -2.083261 2.059915 4.781880 +H -0.879395 1.479287 3.516221 +C -1.060004 0.289253 5.472878 +H -0.360187 -0.472508 5.021592 +H -1.840118 -0.141625 6.122257 +C -0.054512 1.346055 6.223642 +H 0.750214 1.601305 5.507703 +H 0.399783 0.821422 7.131334 +H -0.613445 2.221805 6.608350 +26 +Frame 94, Iteration: 950 +C -6.273657 0.454008 0.000854 +H -7.249472 0.958254 -0.333941 +H -6.501114 -0.276187 0.832946 +H -5.747564 -0.032395 -0.850338 +C -5.357043 1.537420 0.675624 +H -5.856352 2.291390 1.316953 +H -4.648027 2.047451 -0.113243 +C -4.454065 0.563228 1.600791 +H -3.910269 -0.154730 0.933450 +H -5.080739 -0.020643 2.371696 +C -3.592012 1.399875 2.662917 +H -4.242768 2.016411 3.297171 +H -2.833208 1.993134 2.189196 +C -2.829723 0.297719 3.564397 +H -2.399974 -0.510744 2.955598 +H -3.482243 -0.108374 4.392167 +C -1.649326 1.167341 4.259652 +H -2.050567 2.048580 4.789494 +H -0.887754 1.471913 3.512836 +C -1.057931 0.286373 5.471196 +H -0.371761 -0.485617 5.042862 +H -1.846873 -0.133489 6.116424 +C -0.054267 1.346185 6.223536 +H 0.754101 1.595405 5.497246 +H 0.415662 0.804015 7.112894 +H -0.620412 2.228889 6.597351 +26 +Frame 95, Iteration: 960 +C -6.273386 0.454074 0.001035 +H -7.248519 0.966064 -0.356396 +H -6.520248 -0.287677 0.838482 +H -5.755430 -0.024612 -0.848885 +C -5.359231 1.539926 0.663155 +H -5.868716 2.289570 1.316559 +H -4.660272 2.024649 -0.134639 +C -4.457213 0.558031 1.601730 +H -3.896344 -0.161018 0.894091 +H -5.092974 -0.030959 2.369185 +C -3.581834 1.402109 2.660487 +H -4.237245 2.021260 3.305432 +H -2.844053 2.009356 2.189589 +C -2.827408 0.299836 3.570076 +H -2.396131 -0.528883 2.940748 +H -3.479135 -0.102858 4.385999 +C -1.643732 1.165720 4.250374 +H -2.020156 2.035398 4.790395 +H -0.897569 1.471196 3.506639 +C -1.055163 0.283634 5.469351 +H -0.391981 -0.509037 5.069848 +H -1.847795 -0.126623 6.114423 +C -0.054138 1.346389 6.223577 +H 0.760392 1.594993 5.487202 +H 0.430929 0.783079 7.098003 +H -0.634803 2.240186 6.588978 +26 +Frame 96, Iteration: 970 +C -6.273636 0.454193 0.000986 +H -7.243618 0.972209 -0.376238 +H -6.537157 -0.301554 0.839552 +H -5.753023 -0.023264 -0.853889 +C -5.358177 1.544217 0.650403 +H -5.888748 2.286523 1.313538 +H -4.679985 2.011201 -0.148661 +C -4.459656 0.554202 1.603796 +H -3.885893 -0.164934 0.866420 +H -5.103959 -0.033943 2.350574 +C -3.574466 1.405071 2.655612 +H -4.242892 2.023971 3.316975 +H -2.843474 2.031222 2.167237 +C -2.826311 0.300522 3.577812 +H -2.394229 -0.547250 2.934474 +H -3.477098 -0.095161 4.377018 +C -1.639510 1.162166 4.242009 +H -1.997168 2.021381 4.790298 +H -0.891915 1.473912 3.500130 +C -1.051182 0.280429 5.468072 +H -0.416119 -0.533055 5.110559 +H -1.839914 -0.120486 6.108522 +C -0.054087 1.346330 6.223642 +H 0.763067 1.596819 5.475033 +H 0.447781 0.767769 7.086838 +H -0.647416 2.247183 6.581837 +26 +Frame 97, Iteration: 980 +C -6.273684 0.454313 0.000997 +H -7.230700 0.975065 -0.396305 +H -6.555673 -0.317590 0.826215 +H -5.746782 -0.030794 -0.861911 +C -5.357951 1.548298 0.639829 +H -5.912409 2.290530 1.307377 +H -4.703915 2.000802 -0.159075 +C -4.460861 0.551303 1.605203 +H -3.878395 -0.167720 0.851391 +H -5.109856 -0.030977 2.326860 +C -3.568681 1.407366 2.648470 +H -4.262099 2.030791 3.330672 +H -2.824486 2.052882 2.133505 +C -2.826853 0.299642 3.584596 +H -2.395733 -0.556477 2.936296 +H -3.482248 -0.091016 4.371700 +C -1.634458 1.156097 4.234400 +H -1.978008 2.009616 4.784888 +H -0.882635 1.469822 3.496154 +C -1.045276 0.279107 5.466506 +H -0.440537 -0.554812 5.153496 +H -1.827151 -0.112146 6.107968 +C -0.053883 1.346325 6.223815 +H 0.765492 1.600821 5.458968 +H 0.463839 0.759990 7.085902 +H -0.655743 2.251194 6.575280 +26 +Frame 98, Iteration: 990 +C -6.273520 0.454298 0.000697 +H -7.213514 0.973957 -0.420827 +H -6.582305 -0.330901 0.801214 +H -5.740424 -0.046323 -0.873503 +C -5.355188 1.551483 0.631297 +H -5.938150 2.284947 1.304207 +H -4.723557 1.997099 -0.164230 +C -4.462243 0.550817 1.607432 +H -3.876822 -0.157709 0.856206 +H -5.110476 -0.029963 2.298766 +C -3.562990 1.406439 2.639936 +H -4.281876 2.035698 3.340931 +H -2.806915 2.072179 2.096073 +C -2.828939 0.297778 3.588591 +H -2.396568 -0.560778 2.936259 +H -3.490585 -0.087706 4.375339 +C -1.630626 1.148148 4.230007 +H -1.958074 2.013986 4.764993 +H -0.877912 1.470094 3.494327 +C -1.039513 0.280147 5.463489 +H -0.463754 -0.574244 5.189893 +H -1.817638 -0.097303 6.111299 +C -0.054106 1.346276 6.223727 +H 0.769100 1.613497 5.447377 +H 0.478373 0.768849 7.086009 +H -0.658065 2.260969 6.572957 +26 +Frame 99, Iteration: 1000 +C -6.273242 0.454506 0.000915 +H -7.195488 0.970831 -0.443295 +H -6.610388 -0.338123 0.771010 +H -5.731293 -0.067083 -0.887342 +C -5.352239 1.552785 0.627442 +H -5.956715 2.273041 1.294383 +H -4.731912 2.003523 -0.170530 +C -4.463006 0.552171 1.608051 +H -3.872164 -0.142173 0.871133 +H -5.104782 -0.032173 2.273207 +C -3.557718 1.402353 2.630649 +H -4.293650 2.038801 3.337501 +H -2.794990 2.087208 2.066485 +C -2.831498 0.296852 3.591028 +H -2.400492 -0.552102 2.936514 +H -3.504064 -0.088555 4.379431 +C -1.627635 1.140913 4.227034 +H -1.947703 2.031334 4.749339 +H -0.881392 1.472809 3.491984 +C -1.035333 0.281347 5.459453 +H -0.480357 -0.594018 5.210090 +H -1.808565 -0.085727 6.116013 +C -0.053979 1.346403 6.223565 +H 0.766097 1.632988 5.439286 +H 0.492427 0.785836 7.088395 +H -0.652651 2.268979 6.570039 diff --git a/sim/src/tests/dynamics/test_0002.test b/sim/src/tests/dynamics/test_0002.test new file mode 100755 index 000000000..a8625e496 --- /dev/null +++ b/sim/src/tests/dynamics/test_0002.test @@ -0,0 +1,3 @@ +# ground, thermostat, and thermometer test +TYPE dyn +#PROGRAM simulator -f100 -t300 -i10 -x test_0002.mmp diff --git a/sim/src/tests/dynamics/test_small_bearing_01.md5sums b/sim/src/tests/dynamics/test_small_bearing_01.md5sums new file mode 100755 index 000000000..b4be1dbfa --- /dev/null +++ b/sim/src/tests/dynamics/test_small_bearing_01.md5sums @@ -0,0 +1,4 @@ +stdout D41D8CD98F00B204E9800998ECF8427E +stderr D41D8CD98F00B204E9800998ECF8427E +test_small_bearing_01.trc B6BE1D209E30182FE60F49CA198D0076 +test_small_bearing_01.xyz E20AD903026817174160F3FC4687CC0C diff --git a/sim/src/tests/dynamics/test_small_bearing_01.mmp b/sim/src/tests/dynamics/test_small_bearing_01.mmp new file mode 100755 index 000000000..af900ead1 --- /dev/null +++ b/sim/src/tests/dynamics/test_small_bearing_01.mmp @@ -0,0 +1,420 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (test_0003) +info opengroup open = True +mol (Bushing) def +atom 1 (6) (-2976, -6081, 1321) def +atom 2 (6) (-2585, -5283, 18) def +bond1 1 +atom 3 (6) (-2973, -6084, -1284) def +bond1 2 +atom 4 (14) (-4879, -6031, 1172) def +bond1 1 +atom 5 (14) (-4876, -6034, -1139) def +bond1 3 4 +atom 6 (8) (-3180, -3942, 16) def +bond1 2 +atom 7 (6) (-5299, -4170, 1322) def +bond1 4 +atom 8 (6) (-4610, -3631, 13) def +bond1 6 7 +atom 9 (6) (-5296, -4173, -1294) def +bond1 5 8 +atom 10 (14) (-7004, -3321, 1166) def +bond1 7 +atom 11 (14) (-7001, -3325, -1144) def +bond1 9 10 +atom 12 (8) (-4566, -2165, 12) def +bond1 8 +atom 13 (6) (-6594, -1463, 1313) def +bond1 10 +atom 14 (6) (-5730, -1272, 9) def +bond1 12 13 +atom 15 (6) (-6591, -1467, -1296) def +bond1 11 14 +atom 16 (14) (-7751, 50, 1161) def +bond1 13 +atom 17 (14) (-7749, 45, -1151) def +bond1 15 16 +atom 18 (8) (-5060, 33, 8) def +bond1 14 +atom 19 (6) (-6572, 1548, 1309) def +bond1 16 +atom 20 (6) (-5713, 1345, 4) def +bond1 18 19 +atom 21 (6) (-6570, 1543, -1302) def +bond1 17 20 +atom 22 (14) (-6968, 3409, 1155) def +bond1 19 +atom 23 (14) (-6966, 3404, -1156) def +bond1 21 22 +atom 24 (8) (-4541, 2228, 4) def +bond1 20 +atom 25 (6) (-5258, 4246, 1306) def +bond1 22 +atom 26 (6) (-4573, 3695, 0) def +bond1 24 25 +atom 27 (6) (-5256, 4239, -1308) def +bond1 23 26 +atom 28 (14) (-4819, 6102, 1150) def +bond1 25 +atom 29 (14) (-4818, 6096, -1162) def +bond1 27 28 +atom 30 (8) (-3140, 3996, 1) def +bond1 26 +atom 31 (6) (-2915, 6137, 1298) def +bond1 28 +atom 32 (6) (-2533, 5332, -2) def +bond1 30 31 +atom 33 (6) (-2914, 6130, -1308) def +bond1 29 32 +atom 34 (14) (-1702, 7602, 1146) def +bond1 31 +atom 35 (14) (-1701, 7595, -1164) def +bond1 33 34 +atom 36 (8) (-1112, 4967, 0) def +bond1 32 +atom 37 (6) (16, 6779, 1302) def +bond1 34 +atom 38 (6) (14, 5902, -3) def +bond1 36 37 +atom 39 (6) (17, 6770, -1315) def +bond1 35 38 +atom 40 (14) (1740, 7593, 1146) def +bond1 37 +atom 41 (14) (1741, 7586, -1164) def +bond1 39 40 +atom 42 (8) (1136, 4963, 0) def +bond1 38 +atom 43 (6) (2948, 6123, 1298) def +bond1 40 +atom 44 (6) (2558, 5319, -1) def +bond1 42 43 +atom 45 (6) (2948, 6115, -1306) def +bond1 41 44 +atom 46 (14) (4850, 6073, 1151) def +bond1 43 +atom 47 (14) (4850, 6065, -1159) def +bond1 45 46 +atom 48 (8) (3153, 3978, 2) def +bond1 44 +atom 49 (6) (5270, 4212, 1310) def +bond1 46 +atom 50 (6) (4583, 3667, 3) def +bond1 48 49 +atom 51 (6) (5270, 4204, -1306) def +bond1 47 50 +atom 52 (14) (6975, 3363, 1159) def +bond1 49 +atom 53 (14) (6975, 3356, -1151) def +bond1 51 52 +atom 54 (8) (4539, 2202, 8) def +bond1 50 +atom 55 (6) (6565, 1506, 1314) def +bond1 52 +atom 56 (6) (5703, 1308, 10) def +bond1 54 55 +atom 57 (6) (6566, 1498, -1294) def +bond1 53 56 +atom 58 (14) (7722, -8, 1171) def +bond1 55 +atom 59 (14) (7723, -14, -1141) def +bond1 57 58 +atom 60 (8) (5033, 3, 14) def +bond1 56 +atom 61 (6) (6544, -1506, 1324) def +bond1 58 +atom 62 (6) (5686, -1309, 17) def +bond1 60 61 +atom 63 (6) (6544, -1512, -1287) def +bond1 59 62 +atom 64 (14) (6939, -3367, 1178) def +bond1 61 +atom 65 (14) (6941, -3373, -1132) def +bond1 63 64 +atom 66 (8) (4514, -2192, 19) def +bond1 62 +atom 67 (6) (5229, -4204, 1331) def +bond1 64 +atom 68 (6) (4546, -3659, 22) def +bond1 66 67 +atom 69 (6) (5230, -4209, -1283) def +bond1 65 68 +atom 70 (14) (4790, -6060, 1183) def +bond1 67 +atom 71 (14) (4793, -6065, -1128) def +bond1 69 70 +atom 72 (8) (3113, -3959, 22) def +bond1 68 +atom 73 (6) (2886, -6095, 1328) def +bond1 70 +atom 74 (6) (2505, -5295, 23) def +bond1 72 73 +atom 75 (6) (2889, -6099, -1277) def +bond1 71 74 +atom 76 (14) (1673, -7560, 1181) def +bond1 73 +atom 77 (14) (1675, -7564, -1129) def +bond1 75 76 +atom 78 (8) (1085, -4930, 21) def +bond1 74 +atom 79 (6) (-45, -6737, 1331) def +bond1 76 +atom 80 (6) (-41, -5865, 21) def +bond1 78 79 +atom 81 (6) (-42, -6740, -1285) def +bond1 77 80 +atom 82 (14) (-1769, -7552, 1177) def +bond1 1 79 +atom 83 (14) (-1766, -7555, -1133) def +bond1 3 81 82 +atom 84 (8) (-1163, -4926, 19) def +bond1 2 80 +atom 85 (1) (-2715, -5552, 2229) def +bond1 1 +atom 86 (1) (-2710, -5559, -2192) def +bond1 3 +atom 87 (1) (-5693, -7023, 1923) def +bond1 4 +atom 88 (1) (-5688, -7027, -1891) def +bond1 5 +atom 89 (1) (-4805, -3777, 2207) def +bond1 7 +atom 90 (1) (-4800, -3782, -2180) def +bond1 9 +atom 91 (1) (-8161, -3872, 1918) def +bond1 10 +atom 92 (1) (-8157, -3877, -1898) def +bond1 11 +atom 93 (1) (-6002, -1341, 2213) def +bond1 13 +atom 94 (1) (-5997, -1348, -2195) def +bond1 15 +atom 95 (1) (-9035, 59, 1910) def +bond1 16 +atom 96 (1) (-9031, 53, -1903) def +bond1 17 +atom 97 (1) (-5973, 1420, 2205) def +bond1 19 +atom 98 (1) (-5969, 1411, -2196) def +bond1 21 +atom 99 (1) (-8121, 3972, 1905) def +bond1 22 +atom 100 (1) (-8118, 3963, -1911) def +bond1 23 +atom 101 (1) (-4772, 3853, 2195) def +bond1 25 +atom 102 (1) (-4769, 3842, -2195) def +bond1 27 +atom 103 (1) (-5624, 7104, 1897) def +bond1 28 +atom 104 (1) (-5622, 7094, -1916) def +bond1 29 +atom 105 (1) (-2651, 5609, 2205) def +bond1 31 +atom 106 (1) (-2649, 5596, -2212) def +bond1 33 +atom 107 (1) (-1978, 8856, 1895) def +bond1 34 +atom 108 (1) (-1977, 8844, -1922) def +bond1 35 +atom 109 (1) (14, 6147, 2188) def +bond1 37 +atom 110 (1) (15, 6133, -2196) def +bond1 39 +atom 111 (1) (2023, 8846, 1895) def +bond1 40 +atom 112 (1) (2023, 8834, -1921) def +bond1 41 +atom 113 (1) (2685, 5598, 2208) def +bond1 43 +atom 114 (1) (2685, 5585, -2213) def +bond1 45 +atom 115 (1) (5664, 7068, 1899) def +bond1 46 +atom 116 (1) (5663, 7055, -1915) def +bond1 47 +atom 117 (1) (4775, 3823, 2196) def +bond1 49 +atom 118 (1) (4775, 3809, -2190) def +bond1 51 +atom 119 (1) (8132, 3917, 1910) def +bond1 52 +atom 120 (1) (8132, 3905, -1906) def +bond1 53 +atom 121 (1) (5972, 1388, 2214) def +bond1 55 +atom 122 (1) (5973, 1375, -2193) def +bond1 57 +atom 123 (1) (9006, -14, 1921) def +bond1 58 +atom 124 (1) (9007, -25, -1891) def +bond1 59 +atom 125 (1) (5943, -1373, 2218) def +bond1 61 +atom 126 (1) (5944, -1385, -2182) def +bond1 63 +atom 127 (1) (8090, -3926, 1933) def +bond1 64 +atom 128 (1) (8093, -3935, -1883) def +bond1 65 +atom 129 (1) (4742, -3807, 2218) def +bond1 67 +atom 130 (1) (4745, -3816, -2172) def +bond1 69 +atom 131 (1) (5594, -7059, 1937) def +bond1 70 +atom 132 (1) (5598, -7066, -1876) def +bond1 71 +atom 133 (1) (2621, -5562, 2233) def +bond1 73 +atom 134 (1) (2626, -5570, -2184) def +bond1 75 +atom 135 (1) (1949, -8811, 1936) def +bond1 76 +atom 136 (1) (1952, -8816, -1880) def +bond1 77 +atom 137 (1) (-44, -6101, 2214) def +bond1 79 +atom 138 (1) (-39, -6106, -2170) def +bond1 81 +atom 139 (1) (-2052, -8801, 1931) def +bond1 82 +atom 140 (1) (-2048, -8806, -1885) def +bond1 83 +ground (Anchor) (0, 0, 0) 103 104 115 116 87 88 131 132 +mol (Shaft) def +atom 141 (6) (-2117, 1157, -2481) def +atom 142 (6) (-2057, -1237, -2475) def +atom 143 (6) (-73, 2407, -2482) def +atom 144 (6) (2031, 1262, -2479) def +atom 145 (6) (2092, -1132, -2474) def +atom 146 (6) (47, -2382, -2472) def +atom 147 (6) (-1319, -789, -3758) def +bond1 142 +atom 148 (6) (-1357, 742, -3762) def +bond1 141 147 +atom 149 (6) (-50, 1541, -3763) def +bond1 143 148 +atom 150 (6) (1294, 809, -3761) def +bond1 144 149 +atom 151 (6) (1333, -722, -3758) def +bond1 145 150 +atom 152 (6) (26, -1522, -3756) def +bond1 146 147 151 +atom 153 (16) (-3537, -76, -2550) def +bond1 141 142 +atom 154 (16) (-1852, 3019, -2554) def +bond1 141 143 +atom 155 (16) (1673, 3108, -2551) def +bond1 143 144 +atom 156 (16) (3512, 100, -2547) def +bond1 144 145 +atom 157 (16) (1827, -2994, -2539) def +bond1 145 146 +atom 158 (16) (-1698, -3083, -2539) def +bond1 142 146 +atom 159 (6) (-2119, 1168, 2501) def +atom 160 (6) (-75, 2418, 2498) def +atom 161 (6) (-2059, -1226, 2506) def +atom 162 (6) (45, -2372, 2509) def +atom 163 (6) (2090, -1121, 2508) def +atom 164 (6) (2029, 1273, 2502) def +atom 165 (6) (-54, 1558, 3783) def +bond1 160 +atom 166 (6) (-1361, 758, 3784) def +bond1 159 165 +atom 167 (6) (-1322, -773, 3788) def +bond1 161 166 +atom 168 (6) (23, -1505, 3790) def +bond1 162 167 +atom 169 (6) (1330, -706, 3789) def +bond1 163 168 +atom 170 (6) (1291, 825, 3785) def +bond1 164 165 169 +atom 171 (16) (-1855, 3030, 2565) def +bond1 159 160 +atom 172 (16) (-3540, -65, 2573) def +bond1 159 161 +atom 173 (16) (-1700, -3073, 2577) def +bond1 161 162 +atom 174 (16) (1825, -2983, 2580) def +bond1 162 163 +atom 175 (16) (3510, 112, 2576) def +bond1 163 164 +atom 176 (16) (1671, 3120, 2565) def +bond1 160 164 +atom 177 (6) (1289, 817, 1222) def +bond1 164 +atom 178 (6) (-52, 1548, 1220) def +bond1 160 177 +atom 179 (6) (-1357, 751, 1221) def +bond1 159 178 +atom 180 (6) (-1318, -776, 1225) def +bond1 161 179 +atom 181 (6) (24, -1507, 1227) def +bond1 162 180 +atom 182 (6) (1328, -710, 1226) def +bond1 163 177 181 +atom 183 (8) (-73, 2383, 8) def +bond1 178 +atom 184 (8) (2005, 1252, 11) def +bond1 177 +atom 185 (8) (2064, -1113, 16) def +bond1 182 +atom 186 (8) (-2092, 1148, 10) def +bond1 179 +atom 187 (8) (-2032, -1216, 15) def +bond1 180 +atom 188 (8) (45, -2347, 18) def +bond1 181 +atom 189 (6) (25, -1512, -1193) def +bond1 146 188 +atom 190 (6) (-1317, -782, -1195) def +bond1 142 187 189 +atom 191 (6) (-1356, 745, -1199) def +bond1 141 186 190 +atom 192 (6) (-51, 1543, -1200) def +bond1 143 183 191 +atom 193 (6) (1290, 812, -1198) def +bond1 144 184 192 +atom 194 (6) (1329, -715, -1194) def +bond1 145 185 189 193 +atom 195 (1) (-1880, -1135, -4632) def +bond1 147 +atom 196 (1) (-1935, 1054, -4637) def +bond1 148 +atom 197 (1) (-67, 2198, -4638) def +bond1 149 +atom 198 (1) (1857, 1151, -4635) def +bond1 150 +atom 199 (1) (1912, -1039, -4631) def +bond1 151 +atom 200 (1) (43, -2182, -4629) def +bond1 152 +atom 201 (1) (-71, 2218, 4655) def +bond1 165 +atom 202 (1) (-1939, 1075, 4658) def +bond1 166 +atom 203 (1) (-1884, -1115, 4662) def +bond1 167 +atom 204 (1) (39, -2162, 4665) def +bond1 168 +atom 205 (1) (1908, -1018, 4664) def +bond1 169 +atom 206 (1) (1853, 1171, 4659) def +bond1 170 +rmotor (Rotary Motor) (127, 127, 127) 0.100000 100.000000 (-7, 50, 2494) (-5, -3, -999) 10.000 1.000 0.150 +shaft 159 160 161 162 163 164 +stat (Stat-32) (0, 0, 153) (300) 1 140 31 +egroup (test_0003) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part test_0003 diff --git a/sim/src/tests/enabled_disabled_jigs/001_disabled_anchors.mmp b/sim/src/tests/enabled_disabled_jigs/001_disabled_anchors.mmp new file mode 100755 index 000000000..fe96741a2 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/001_disabled_anchors.mmp @@ -0,0 +1,30 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.607146) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (001_disabled_anchors) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) def +forward_ref (161962904) # ground (Anchor-4) +forward_ref (161962984) # ground (Anchor-5) +mol (Chunk-H18-frag6) tub +atom 2 (1) (560, 14, 0) def +bond1 1 +thermo (Thermo-10) (153, 0, 51) 1 1 1 +thermo (Thermo-11) (153, 0, 51) 2 2 2 +egroup (001_disabled_anchors) +end1 +group (Clipboard) +info opengroup open = False +ground (Anchor-4) (0, 0, 0) 1 +info leaf disabled = True +info leaf forwarded = 161962904 +ground (Anchor-5) (0, 0, 0) 2 +info leaf disabled = True +info leaf forwarded = 161962984 +egroup (Clipboard) +end molecular machine part 001_disabled_anchors diff --git a/sim/src/tests/enabled_disabled_jigs/002_one_anchor_enabled_other_disabled.mmp b/sim/src/tests/enabled_disabled_jigs/002_one_anchor_enabled_other_disabled.mmp new file mode 100755 index 000000000..84b03cb0b --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/002_one_anchor_enabled_other_disabled.mmp @@ -0,0 +1,27 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.581075) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (002_one_anchor_enabled_other_disabled) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) def +ground (Anchor-4) (0, 0, 0) 1 +forward_ref (161962984) # ground (Anchor-5) +mol (Chunk-H18-frag6) tub +atom 2 (1) (560, 14, 0) def +bond1 1 +thermo (Thermo-10) (153, 0, 51) 1 1 1 +thermo (Thermo-11) (153, 0, 51) 2 2 2 +egroup (002_one_anchor_enabled_other_disabled) +end1 +group (Clipboard) +info opengroup open = False +ground (Anchor-5) (0, 0, 0) 2 +info leaf disabled = True +info leaf forwarded = 161962984 +egroup (Clipboard) +end molecular machine part 002_one_anchor_enabled_other_disabled diff --git a/sim/src/tests/enabled_disabled_jigs/003_one_thermometer_enabled_other_disabled.mmp b/sim/src/tests/enabled_disabled_jigs/003_one_thermometer_enabled_other_disabled.mmp new file mode 100755 index 000000000..5ae2d656a --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/003_one_thermometer_enabled_other_disabled.mmp @@ -0,0 +1,29 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.881603) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (002_one_thermometer_enabled_other_disabled) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) def +ground (Anchor-4) (0, 0, 0) 1 +forward_ref (161962984) # ground (Anchor-5) +mol (Chunk-H18-frag6) tub +atom 2 (1) (560, 14, 0) def +bond1 1 +ground (Anchor-5) (0, 0, 0) 2 +info leaf forwarded = 161962984 +forward_ref (161976728) # thermo (Thermo-10) +thermo (Thermo-11) (153, 0, 51) 2 2 2 +egroup (002_one_thermometer_enabled_other_disabled) +end1 +group (Clipboard) +info opengroup open = False +thermo (Thermo-10) (153, 0, 51) 1 1 1 +info leaf disabled = True +info leaf forwarded = 161976728 +egroup (Clipboard) +end molecular machine part 002_one_thermometer_enabled_other_disabled diff --git a/sim/src/tests/enabled_disabled_jigs/004_one_thermostat_enabled_other_disabled.mmp b/sim/src/tests/enabled_disabled_jigs/004_one_thermostat_enabled_other_disabled.mmp new file mode 100755 index 000000000..40500bf76 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/004_one_thermostat_enabled_other_disabled.mmp @@ -0,0 +1,25 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.464043) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (004_one_thermostat_enabled_other_disabled) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) def +atom 2 (1) (560, 14, 0) def +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +stat (Stat-1- 10K) (0, 0, 153) (10) 1 2 1 +forward_ref (226976952) # stat (Stat-2 120 K) +egroup (004_one_thermostat_enabled_other_disabled) +end1 +group (Clipboard) +info opengroup open = False +stat (Stat-2 120 K) (0, 0, 153) (120) 1 2 1 +info leaf disabled = True +info leaf forwarded = 226976952 +egroup (Clipboard) +end molecular machine part 004_one_thermostat_enabled_other_disabled diff --git a/sim/src/tests/enabled_disabled_jigs/005_disabled_measure_distance_jig.mmp b/sim/src/tests/enabled_disabled_jigs/005_disabled_measure_distance_jig.mmp new file mode 100755 index 000000000..1dc14a6d5 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/005_disabled_measure_distance_jig.mmp @@ -0,0 +1,30 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.314410) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (005 disabled measure distance jig) +info opengroup open = True +mol (Chunk-H64) tub +atom 1 (1) (-2834, 208, 0) def +atom 2 (1) (-2214, 208, 0) def +bond1 1 +mol (Chunk-H67) tub +atom 3 (1) (2849, 189, 0) def +atom 4 (1) (3469, 189, 0) def +bond1 3 +mol (Chunk-H70) tub +atom 5 (1) (-267, 2823, 0) def +atom 6 (1) (352, 2823, 0) def +bond1 5 +mangle (Angle-23) (0, 0, 0) (Helvetica) 10 3 5 2 +mdihedral (Dihedral-24) (0, 0, 0) (Helvetica) 10 1 2 5 6 +mdistance (Distance-25) (0, 0, 0) (Helvetica) 10 4 6 +egroup (005 disabled measure distance jig) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 005 disabled measure distance jig diff --git a/sim/src/tests/enabled_disabled_jigs/006_one_rotarymotor_enabled_and_other_disabled.mmp b/sim/src/tests/enabled_disabled_jigs/006_one_rotarymotor_enabled_and_other_disabled.mmp new file mode 100755 index 000000000..ecb8c6e2b --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/006_one_rotarymotor_enabled_and_other_disabled.mmp @@ -0,0 +1,63 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (9.460642) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (006 one rotarymotor enabled and other disabled) +info opengroup open = True +mol (Chunk-Si131) def +atom 1 (14) (-50, 6016, 0) def +atom 2 (1) (808, 6875, 858) def +bond1 1 +atom 3 (1) (-909, 6875, -858) def +bond1 1 +atom 4 (1) (-909, 5157, 858) def +bond1 1 +atom 5 (1) (808, 5157, -858) def +bond1 1 +mol (Chunk-Si131-copy1) def +atom 6 (14) (-50, -5948, 0) def +atom 7 (1) (808, -5090, 858) def +bond1 6 +atom 8 (1) (-909, -5090, -858) def +bond1 6 +atom 9 (1) (-909, -6807, 858) def +bond1 6 +atom 10 (1) (808, -6807, -858) def +bond1 6 +mol (Chunk-C151) def +atom 11 (6) (5999, 0, 0) def +atom 12 (1) (6627, 627, 627) def +bond1 11 +atom 13 (1) (5371, 627, -627) def +bond1 11 +atom 14 (1) (5371, -627, 627) def +bond1 11 +atom 15 (1) (6627, -627, -627) def +bond1 11 +mol (Chunk-C151-copy2) def +atom 16 (1) (-5371, 627, 627) def +atom 17 (1) (-6627, 627, -627) def +atom 18 (1) (-6627, -627, 627) def +atom 19 (1) (-5371, -627, -627) def +atom 20 (6) (-5999, 0, 0) def +bond1 16 17 18 19 +forward_ref (165079480) # rmotor (Rotary Motor-37) +mdistance (Distance-40) (0, 0, 0) (Helvetica) 10 1 6 +mdistance (Distance-41) (0, 0, 0) (Helvetica) 10 20 11 +mangle (Angle-42) (0, 0, 0) (Helvetica) 10 1 20 6 +thermo (Thermo-43) (153, 0, 51) 1 5 1 +rmotor (Rotary Motor-81) (127, 127, 127) -0.60 1.00 (-24, 16, 0) (0, 0, -1000) 10.00 2.00 0.50 +shaft 20 1 11 6 +egroup (006 one rotarymotor enabled and other disabled) +end1 +group (Clipboard) +info opengroup open = True +rmotor (Rotary Motor-37) (127, 127, 127) 0.50 1.00 (-25, 16, 0) (0, 0, -1000) 10.00 2.00 0.50 +shaft 1 6 11 20 +info leaf disabled = True +info leaf forwarded = 165079480 +egroup (Clipboard) +end molecular machine part 006 one rotarymotor enabled and other disabled diff --git a/sim/src/tests/enabled_disabled_jigs/007_one_linearmotor_enabled_and_other_disabled.mmp b/sim/src/tests/enabled_disabled_jigs/007_one_linearmotor_enabled_and_other_disabled.mmp new file mode 100755 index 000000000..88f603924 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/007_one_linearmotor_enabled_and_other_disabled.mmp @@ -0,0 +1,39 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (29.761555) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (007 one linearmotor enabled and other disabled) +info opengroup open = True +mol (Chunk-Si551) def +atom 1 (14) (0, 0, 0) def +atom 2 (1) (819, 819, 819) def +bond1 1 +atom 3 (1) (-819, 819, -819) def +bond1 1 +atom 4 (1) (-819, -819, 819) def +bond1 1 +atom 5 (1) (819, -819, -819) def +bond1 1 +lmotor (Linear Motor-89) (127, 127, 127) 0.900000 0.100000 (0, 0, 0) (0, 0, -1000) 10.00 1.00 0.20 +shaft 1 +forward_ref (406769096) # lmotor (Linear Motor-90) +mol (Chunk-Si551-copy1) def +atom 6 (18) (20000, 0, 0) def +mol (Chunk-Si551-copy2) def +atom 7 (18) (0, 20000, 0) def +ground (Anchor-95) (0, 0, 0) 7 6 +mdistance (Distance-96) (0, 0, 0) (Helvetica) 10 7 1 +mdistance (Distance-97) (0, 0, 0) (Helvetica) 10 1 6 +egroup (007 one linearmotor enabled and other disabled) +end1 +group (Clipboard) +info opengroup open = True +lmotor (Linear Motor-90) (85, 170, 255) -1.000000 0.100000 (0, 0, 0) (-1000, 0, 0) 10.00 0.50 0.50 +shaft 1 +info leaf disabled = True +info leaf forwarded = 406769096 +egroup (Clipboard) +end molecular machine part 007 one linearmotor enabled and other disabled diff --git a/sim/src/tests/enabled_disabled_jigs/readme.txt b/sim/src/tests/enabled_disabled_jigs/readme.txt new file mode 100755 index 000000000..6a1b7432c --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/readme.txt @@ -0,0 +1,30 @@ +001 disabled anchors.mmp +- 2 Anchors and 2 Thermometers , attached to an H2 molecule +- The 2 Anchors are disabled +- Both the thermometers are enabled +- See the temperature readings + +002 one anchor enabled other disabled.mmp +- 2 Anchors and 2 Thermometers , attached to an H2 molecule +- 1 Anchor is disabled and the other enabled +- Both the thermometers are enabled +- See the temperature readings + +003 one thermometer enabled other disabled.mmp +- 2 Anchors and 2 Thermometers , attached to an H2 molecule +- 1 thermometer is disabled and the other enabled +- See the temperature readings + +004 one thermostat enabled other disabled.mmp +- 2 thermostats attached to the same chunk +- First one will set temperature to 10K during a simulation run and the other at 500 K +- Thermostat#2 is disabled +- It is expected that the temperature plot will show temperatures around 10 K +- Run this simulation at 1000 K + +005 to 007- other enabled -disabled jigs. + + + + + diff --git a/sim/src/tests/enabled_disabled_jigs/test_001_disabled_anchors.mmp b/sim/src/tests/enabled_disabled_jigs/test_001_disabled_anchors.mmp new file mode 100755 index 000000000..bce54d1bb --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_001_disabled_anchors.mmp @@ -0,0 +1,15 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (001_disabled_anchors) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) - +forward_ref (161962904) # ground (Anchor-4) +forward_ref (161962984) # ground (Anchor-5) +mol (Chunk-H18-frag6) tub +atom 2 (1) (560, 14, 0) - +bond1 1 +thermo (Thermo-10) (153, 0, 51) 1 1 1 +thermo (Thermo-11) (153, 0, 51) 2 2 2 +egroup (001_disabled_anchors) +end molecular machine part 001_disabled_anchors diff --git a/sim/src/tests/enabled_disabled_jigs/test_001_disabled_anchors.trc b/sim/src/tests/enabled_disabled_jigs/test_001_disabled_anchors.trc new file mode 100755 index 000000000..f746a0f5c --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_001_disabled_anchors.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_001_disabled_anchors.trc test_001_disabled_anchors.mmp +# Date and Time: Wed Apr 19 10:53:24 2006 +# Input File: test_001_disabled_anchors.mmp +# Output File: test_001_disabled_anchors.xyz +# Trace File: test_001_disabled_anchors.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Thermo-10: temperature (K) +# Thermo-11: temperature (K) +# +# Time T.meter T.meter +# picosec Thermo-10 Thermo-11 +# + 0.0100 368.11 368.11 +# Done: diff --git a/sim/src/tests/enabled_disabled_jigs/test_001_disabled_anchors.xyzcmp b/sim/src/tests/enabled_disabled_jigs/test_001_disabled_anchors.xyzcmp new file mode 100755 index 000000000..611c3e802 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_001_disabled_anchors.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H -0.160973 0.070554 0.087494 +H 0.537973 -0.042554 -0.087494 diff --git a/sim/src/tests/enabled_disabled_jigs/test_002_one_anchor_enabled_other_disabled.mmp b/sim/src/tests/enabled_disabled_jigs/test_002_one_anchor_enabled_other_disabled.mmp new file mode 100755 index 000000000..d8cf6dfb4 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_002_one_anchor_enabled_other_disabled.mmp @@ -0,0 +1,15 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (002_one_anchor_enabled_other_disabled) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) - +ground (Anchor-4) (0, 0, 0) 1 +forward_ref (161962984) # ground (Anchor-5) +mol (Chunk-H18-frag6) tub +atom 2 (1) (560, 14, 0) - +bond1 1 +thermo (Thermo-10) (153, 0, 51) 1 1 1 +thermo (Thermo-11) (153, 0, 51) 2 2 2 +egroup (002_one_anchor_enabled_other_disabled) +end molecular machine part 002_one_anchor_enabled_other_disabled diff --git a/sim/src/tests/enabled_disabled_jigs/test_002_one_anchor_enabled_other_disabled.trc b/sim/src/tests/enabled_disabled_jigs/test_002_one_anchor_enabled_other_disabled.trc new file mode 100755 index 000000000..53015cb0d --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_002_one_anchor_enabled_other_disabled.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_002_one_anchor_enabled_other_disabled.trc test_002_one_anchor_enabled_other_disabled.mmp +# Date and Time: Wed Apr 19 10:53:26 2006 +# Input File: test_002_one_anchor_enabled_other_disabled.mmp +# Output File: test_002_one_anchor_enabled_other_disabled.xyz +# Trace File: test_002_one_anchor_enabled_other_disabled.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 3 columns: +# Anchor-4: torque (nn-nm) +# Thermo-10: temperature (K) +# Thermo-11: temperature (K) +# +# Time Anchor T.meter T.meter +# picosec Anchor-4 Thermo-10 Thermo-11 +# + 0.0100 0.00 0.00 363.59 +# Done: diff --git a/sim/src/tests/enabled_disabled_jigs/test_002_one_anchor_enabled_other_disabled.xyzcmp b/sim/src/tests/enabled_disabled_jigs/test_002_one_anchor_enabled_other_disabled.xyzcmp new file mode 100755 index 000000000..db082fafa --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_002_one_anchor_enabled_other_disabled.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H -0.182965 0.014006 0.000009 +H 0.554515 -0.046329 -0.093335 diff --git a/sim/src/tests/enabled_disabled_jigs/test_003_one_thermometer_enabled_other_disabled.mmp b/sim/src/tests/enabled_disabled_jigs/test_003_one_thermometer_enabled_other_disabled.mmp new file mode 100755 index 000000000..5bd9b8ee4 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_003_one_thermometer_enabled_other_disabled.mmp @@ -0,0 +1,17 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (002_one_thermometer_enabled_other_disabled) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) - +ground (Anchor-4) (0, 0, 0) 1 +forward_ref (161962984) # ground (Anchor-5) +mol (Chunk-H18-frag6) tub +atom 2 (1) (560, 14, 0) - +bond1 1 +ground (Anchor-5) (0, 0, 0) 2 +info leaf forwarded = 161962984 +forward_ref (161976728) # thermo (Thermo-10) +thermo (Thermo-11) (153, 0, 51) 2 2 2 +egroup (002_one_thermometer_enabled_other_disabled) +end molecular machine part 002_one_thermometer_enabled_other_disabled diff --git a/sim/src/tests/enabled_disabled_jigs/test_003_one_thermometer_enabled_other_disabled.trc b/sim/src/tests/enabled_disabled_jigs/test_003_one_thermometer_enabled_other_disabled.trc new file mode 100755 index 000000000..9ff1f4045 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_003_one_thermometer_enabled_other_disabled.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_003_one_thermometer_enabled_other_disabled.trc test_003_one_thermometer_enabled_other_disabled.mmp +# Date and Time: Wed Apr 19 10:53:24 2006 +# Input File: test_003_one_thermometer_enabled_other_disabled.mmp +# Output File: test_003_one_thermometer_enabled_other_disabled.xyz +# Trace File: test_003_one_thermometer_enabled_other_disabled.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 3 columns: +# Anchor-4: torque (nn-nm) +# Anchor-5: torque (nn-nm) +# Thermo-11: temperature (K) +# +# Time Anchor Anchor T.meter +# picosec Anchor-4 Anchor-5 Thermo-11 +# + 0.0100 0.00 0.00 0.00 +# Done: diff --git a/sim/src/tests/enabled_disabled_jigs/test_003_one_thermometer_enabled_other_disabled.xyzcmp b/sim/src/tests/enabled_disabled_jigs/test_003_one_thermometer_enabled_other_disabled.xyzcmp new file mode 100755 index 000000000..4d8eaec3f --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_003_one_thermometer_enabled_other_disabled.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H -0.182969 0.014011 0.000017 +H 0.559969 0.013989 -0.000017 diff --git a/sim/src/tests/enabled_disabled_jigs/test_004_one_thermostat_enabled_other_disabled.mmp b/sim/src/tests/enabled_disabled_jigs/test_004_one_thermostat_enabled_other_disabled.mmp new file mode 100755 index 000000000..48a016299 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_004_one_thermostat_enabled_other_disabled.mmp @@ -0,0 +1,13 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (004_one_thermostat_enabled_other_disabled) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) - +atom 2 (1) (560, 14, 0) - +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +stat (Stat-1- 10K) (0, 0, 153) (10) 1 2 1 +forward_ref (226976952) # stat (Stat-2 120 K) +egroup (004_one_thermostat_enabled_other_disabled) +end molecular machine part 004_one_thermostat_enabled_other_disabled diff --git a/sim/src/tests/enabled_disabled_jigs/test_004_one_thermostat_enabled_other_disabled.trc b/sim/src/tests/enabled_disabled_jigs/test_004_one_thermostat_enabled_other_disabled.trc new file mode 100755 index 000000000..dc0db43fa --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_004_one_thermostat_enabled_other_disabled.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_004_one_thermostat_enabled_other_disabled.trc test_004_one_thermostat_enabled_other_disabled.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_004_one_thermostat_enabled_other_disabled.mmp +# Output File: test_004_one_thermostat_enabled_other_disabled.xyz +# Trace File: test_004_one_thermostat_enabled_other_disabled.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Thermo-1: temperature (K) +# Stat-1- 10K: energy added (zJ) +# +# Time T.meter T.stat +# picosec Thermo-1 Stat-1- 10K +# + 0.0100 200.49 -0.02 +# Done: diff --git a/sim/src/tests/enabled_disabled_jigs/test_004_one_thermostat_enabled_other_disabled.xyzcmp b/sim/src/tests/enabled_disabled_jigs/test_004_one_thermostat_enabled_other_disabled.xyzcmp new file mode 100755 index 000000000..dd55c6217 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_004_one_thermostat_enabled_other_disabled.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H -0.153438 0.046539 0.070874 +H 0.561608 -0.028992 -0.064084 diff --git a/sim/src/tests/enabled_disabled_jigs/test_005_disabled_measure_distance_jig.mmp b/sim/src/tests/enabled_disabled_jigs/test_005_disabled_measure_distance_jig.mmp new file mode 100755 index 000000000..09d32412c --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_005_disabled_measure_distance_jig.mmp @@ -0,0 +1,21 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (005 disabled measure distance jig) +info opengroup open = True +mol (Chunk-H64) tub +atom 1 (1) (-2834, 208, 0) - +atom 2 (1) (-2214, 208, 0) - +bond1 1 +mol (Chunk-H67) tub +atom 3 (1) (2849, 189, 0) - +atom 4 (1) (3469, 189, 0) - +bond1 3 +mol (Chunk-H70) tub +atom 5 (1) (-267, 2823, 0) - +atom 6 (1) (352, 2823, 0) - +bond1 5 +mangle (Angle-23) (0, 0, 0) (Helvetica) 10 3 5 2 +mdihedral (Dihedral-24) (0, 0, 0) (Helvetica) 10 1 2 5 6 +mdistance (Distance-25) (0, 0, 0) (Helvetica) 10 4 6 +egroup (005 disabled measure distance jig) +end molecular machine part 005 disabled measure distance jig diff --git a/sim/src/tests/enabled_disabled_jigs/test_005_disabled_measure_distance_jig.trc b/sim/src/tests/enabled_disabled_jigs/test_005_disabled_measure_distance_jig.trc new file mode 100755 index 000000000..ed94fd5b2 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_005_disabled_measure_distance_jig.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_005_disabled_measure_distance_jig.trc test_005_disabled_measure_distance_jig.mmp +# Date and Time: Wed Apr 19 10:53:31 2006 +# Input File: test_005_disabled_measure_distance_jig.mmp +# Output File: test_005_disabled_measure_distance_jig.xyz +# Trace File: test_005_disabled_measure_distance_jig.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 6 +# +# 3 columns: +# Angle-23: angle (degrees) +# Dihedral-24: dihedral (degrees) +# Distance-25: distance (angstroms) +# +# Time Angle Dihedral Distance +# picosec Angle-23 Dihedral-24 Distance-25 +# + 0.0100 83.67256 -167.61926 3.8336 +# Done: diff --git a/sim/src/tests/enabled_disabled_jigs/test_005_disabled_measure_distance_jig.xyzcmp b/sim/src/tests/enabled_disabled_jigs/test_005_disabled_measure_distance_jig.xyzcmp new file mode 100755 index 000000000..f5e0e8d13 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_005_disabled_measure_distance_jig.xyzcmp @@ -0,0 +1,8 @@ +6 +Frame 0, Iteration: 100 +H -2.949537 0.286811 -0.007809 +H -2.223041 0.191145 -0.156061 +H 2.749872 0.101852 0.056096 +H 3.482782 0.203813 0.169914 +H -0.226813 2.838828 -0.003357 +H 0.521738 2.817551 -0.058784 diff --git a/sim/src/tests/enabled_disabled_jigs/test_006_one_rotarymotor_enabled_and_other_disabled.mmp b/sim/src/tests/enabled_disabled_jigs/test_006_one_rotarymotor_enabled_and_other_disabled.mmp new file mode 100755 index 000000000..68333b360 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_006_one_rotarymotor_enabled_and_other_disabled.mmp @@ -0,0 +1,50 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (006 one rotarymotor enabled and other disabled) +info opengroup open = True +mol (Chunk-Si131) - +atom 1 (14) (-50, 6016, 0) - +atom 2 (1) (808, 6875, 858) - +bond1 1 +atom 3 (1) (-909, 6875, -858) - +bond1 1 +atom 4 (1) (-909, 5157, 858) - +bond1 1 +atom 5 (1) (808, 5157, -858) - +bond1 1 +mol (Chunk-Si131-copy1) - +atom 6 (14) (-50, -5948, 0) - +atom 7 (1) (808, -5090, 858) - +bond1 6 +atom 8 (1) (-909, -5090, -858) - +bond1 6 +atom 9 (1) (-909, -6807, 858) - +bond1 6 +atom 10 (1) (808, -6807, -858) - +bond1 6 +mol (Chunk-C151) - +atom 11 (6) (5999, 0, 0) - +atom 12 (1) (6627, 627, 627) - +bond1 11 +atom 13 (1) (5371, 627, -627) - +bond1 11 +atom 14 (1) (5371, -627, 627) - +bond1 11 +atom 15 (1) (6627, -627, -627) - +bond1 11 +mol (Chunk-C151-copy2) - +atom 16 (1) (-5371, 627, 627) - +atom 17 (1) (-6627, 627, -627) - +atom 18 (1) (-6627, -627, 627) - +atom 19 (1) (-5371, -627, -627) - +atom 20 (6) (-5999, 0, 0) - +bond1 16 17 18 19 +forward_ref (165079480) # rmotor (Rotary Motor-37) +mdistance (Distance-40) (0, 0, 0) (Helvetica) 10 1 6 +mdistance (Distance-41) (0, 0, 0) (Helvetica) 10 20 11 +mangle (Angle-42) (0, 0, 0) (Helvetica) 10 1 20 6 +thermo (Thermo-43) (153, 0, 51) 1 5 1 +rmotor (Rotary Motor-81) (127, 127, 127) -0.60 1.00 (-24, 16, 0) (0, 0, -1000) 10.00 2.00 0.50 +shaft 20 1 11 6 +egroup (006 one rotarymotor enabled and other disabled) +end molecular machine part 006 one rotarymotor enabled and other disabled diff --git a/sim/src/tests/enabled_disabled_jigs/test_006_one_rotarymotor_enabled_and_other_disabled.trc b/sim/src/tests/enabled_disabled_jigs/test_006_one_rotarymotor_enabled_and_other_disabled.trc new file mode 100755 index 000000000..6761366fe --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_006_one_rotarymotor_enabled_and_other_disabled.trc @@ -0,0 +1,33 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_006_one_rotarymotor_enabled_and_other_disabled.trc test_006_one_rotarymotor_enabled_and_other_disabled.mmp +# Date and Time: Wed Apr 19 10:53:26 2006 +# Input File: test_006_one_rotarymotor_enabled_and_other_disabled.mmp +# Output File: test_006_one_rotarymotor_enabled_and_other_disabled.xyz +# Trace File: test_006_one_rotarymotor_enabled_and_other_disabled.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 20 +# +# 6 columns: +# Distance-40: distance (angstroms) +# Distance-41: distance (angstroms) +# Angle-42: angle (degrees) +# Thermo-43: temperature (K) +# Rotary Motor-81: speed (GHz) +# Rotary Motor-81: torque (nn-nm) +# +# Time Distance Distance Angle T.meter speed torque +# picosec Distance-40 Distance-41 Angle-42 Thermo-43 Rotary Motor-81 +# + 0.0100 11.9826 11.9915 90.58298 446.35 1.289 -0.173 +# Done: diff --git a/sim/src/tests/enabled_disabled_jigs/test_006_one_rotarymotor_enabled_and_other_disabled.xyzcmp b/sim/src/tests/enabled_disabled_jigs/test_006_one_rotarymotor_enabled_and_other_disabled.xyzcmp new file mode 100755 index 000000000..133560ae9 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_006_one_rotarymotor_enabled_and_other_disabled.xyzcmp @@ -0,0 +1,22 @@ +20 +Frame 0, Iteration: 100 +Si -0.045487 6.020303 -0.011544 +H 0.735531 6.986314 0.766863 +H -0.878551 6.804354 -0.941789 +H -0.961555 5.213846 0.888233 +H 0.940080 5.210683 -0.843588 +Si -0.060836 -5.953663 -0.016476 +H 0.782354 -5.166708 0.925619 +H -0.943919 -5.220146 -0.951956 +H -0.920148 -6.799521 0.850322 +H 0.832563 -6.901472 -0.730201 +C 5.997957 -0.005826 0.035648 +H 6.619723 0.594515 0.694493 +H 5.382470 0.620779 -0.606856 +H 5.413686 -0.622969 0.720593 +H 6.672358 -0.562110 -0.611072 +H -5.424173 0.695046 0.644211 +H -6.520451 0.685704 -0.651628 +H -6.631532 -0.644680 0.605483 +H -5.408393 -0.638852 -0.635907 +C -5.991130 0.009454 0.015067 diff --git a/sim/src/tests/enabled_disabled_jigs/test_007_one_linearmotor_enabled_and_other_disabled.mmp b/sim/src/tests/enabled_disabled_jigs/test_007_one_linearmotor_enabled_and_other_disabled.mmp new file mode 100755 index 000000000..17630523c --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_007_one_linearmotor_enabled_and_other_disabled.mmp @@ -0,0 +1,26 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (007 one linearmotor enabled and other disabled) +info opengroup open = True +mol (Chunk-Si551) - +atom 1 (14) (0, 0, 0) - +atom 2 (1) (819, 819, 819) - +bond1 1 +atom 3 (1) (-819, 819, -819) - +bond1 1 +atom 4 (1) (-819, -819, 819) - +bond1 1 +atom 5 (1) (819, -819, -819) - +bond1 1 +lmotor (Linear Motor-89) (127, 127, 127) 0.900000 0.100000 (0, 0, 0) (0, 0, -1000) 10.00 1.00 0.20 +shaft 1 +forward_ref (406769096) # lmotor (Linear Motor-90) +mol (Chunk-Si551-copy1) - +atom 6 (18) (20000, 0, 0) - +mol (Chunk-Si551-copy2) - +atom 7 (18) (0, 20000, 0) - +ground (Anchor-95) (0, 0, 0) 7 6 +mdistance (Distance-96) (0, 0, 0) (Helvetica) 10 7 1 +mdistance (Distance-97) (0, 0, 0) (Helvetica) 10 1 6 +egroup (007 one linearmotor enabled and other disabled) +end molecular machine part 007 one linearmotor enabled and other disabled diff --git a/sim/src/tests/enabled_disabled_jigs/test_007_one_linearmotor_enabled_and_other_disabled.trc b/sim/src/tests/enabled_disabled_jigs/test_007_one_linearmotor_enabled_and_other_disabled.trc new file mode 100755 index 000000000..e96aa19c7 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_007_one_linearmotor_enabled_and_other_disabled.trc @@ -0,0 +1,31 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_007_one_linearmotor_enabled_and_other_disabled.trc test_007_one_linearmotor_enabled_and_other_disabled.mmp +# Date and Time: Wed Apr 19 10:53:26 2006 +# Input File: test_007_one_linearmotor_enabled_and_other_disabled.mmp +# Output File: test_007_one_linearmotor_enabled_and_other_disabled.xyz +# Trace File: test_007_one_linearmotor_enabled_and_other_disabled.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 7 +# +# 4 columns: +# Linear Motor-89: displacement (angstroms) +# Anchor-95: torque (nn-nm) +# Distance-96: distance (angstroms) +# Distance-97: distance (angstroms) +# +# Time Lmotor Anchor Distance Distance +# picosec Linear Motor-89 Anchor-95 Distance-96 Distance-97 +# + 0.0100 0.0223 0.00 20.0000 20.0000 +# Done: diff --git a/sim/src/tests/enabled_disabled_jigs/test_007_one_linearmotor_enabled_and_other_disabled.xyzcmp b/sim/src/tests/enabled_disabled_jigs/test_007_one_linearmotor_enabled_and_other_disabled.xyzcmp new file mode 100755 index 000000000..2ade72e94 --- /dev/null +++ b/sim/src/tests/enabled_disabled_jigs/test_007_one_linearmotor_enabled_and_other_disabled.xyzcmp @@ -0,0 +1,9 @@ +7 +Frame 0, Iteration: 100 +Si 0.000000 0.000000 -0.009495 +H 0.798919 0.976248 0.777102 +H -0.836247 0.803189 -0.951899 +H -0.921581 -0.816187 0.906254 +H 1.004755 -0.814765 -0.851041 +Ar 19.999999 0.000000 -0.000003 +Ar -0.000001 19.999997 0.000005 diff --git a/sim/src/tests/floppy_organics/Atom.py b/sim/src/tests/floppy_organics/Atom.py new file mode 100755 index 000000000..de10aca58 --- /dev/null +++ b/sim/src/tests/floppy_organics/Atom.py @@ -0,0 +1,66 @@ +#!/usr/bin/python + +"""MMP and XYZ files share a common Atom definition. This will +make it easy to move information back and forth between the two +formats. + +$Id$ +""" + +__author__ = "Will" + +import re +import os +import sys +import string +import random + +_PeriodicTable = [ + "X", # our singlet has element number zero + "H", "He", + "Li", "Be", "B", "C", "N", "O", "F", "Ne", + "Na", "Mg", "Al", "Si", "P", "S", "Cl", "Ar", + "K", "Ca" #Sc,Ti,V,Cr,Mn,Fe.... + ] + +_MmpAtomPattern = re.compile("^atom (\d+) \((\d+)\) " + + "\((\-?\d+), (\-?\d+), (\-?\d+)\)") + +class NotAtomException(Exception): + pass + +class Atom: + def fromMmp(self, line): + m = _MmpAtomPattern.match(line) + if m == None: + raise NotAtomException + groups = m.groups() + self.elem = elem = string.atoi(groups[1]) + str = "atom %s" % groups[0] + str += " (%s)" % groups[1] + str += " (%d, %d, %d)" + str += line[m.span()[1]:] # anything after position + self._mmpstr = str + self.x = 0.001 * string.atoi(groups[2]) + self.y = 0.001 * string.atoi(groups[3]) + self.z = 0.001 * string.atoi(groups[4]) + def clone(self): + "permit deep cloning of structure files" + a = Atom() + for key in self.__dict__.keys(): + setattr(a, key, getattr(self, key)) + return a + def fromXyz(self, element, x, y, z): + self.elem = _PeriodicTable.index(element) + self.x = x + self.y = y + self.z = z + def toMmpString(self): + return self._mmpstr % (int(self.x * 1000), + int(self.y * 1000), + int(self.z * 1000)) + def toXyzString(self): + element = _PeriodicTable[self.elem] + return "%s %f %f %f" % (element, self.x, self.y, self.z) + def __repr__(self): + return "<" + self.toXyzString() + ">" diff --git a/sim/src/tests/floppy_organics/C2H6.mmp b/sim/src/tests/floppy_organics/C2H6.mmp new file mode 100755 index 000000000..2e6360f7c --- /dev/null +++ b/sim/src/tests/floppy_organics/C2H6.mmp @@ -0,0 +1,31 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.206570) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C2H6) +info opengroup open = True +mol (C2H6.pdb) def +atom 1 (6) (-681, 350, 0) def +atom 2 (6) (681, -350, 0) def +bond1 1 +atom 3 (1) (-569, 1439, 0) def +bond1 1 +atom 4 (1) (-1269, 78, 883) def +bond1 1 +atom 5 (1) (-1269, 78, -883) def +bond1 1 +atom 6 (1) (569, -1439, 0) def +bond1 2 +atom 7 (1) (1269, -78, 883) def +bond1 2 +atom 8 (1) (1269, -78, -883) def +bond1 2 +egroup (C2H6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C2H6 diff --git a/sim/src/tests/floppy_organics/C2H6.pdb b/sim/src/tests/floppy_organics/C2H6.pdb new file mode 100755 index 000000000..029c986ca --- /dev/null +++ b/sim/src/tests/floppy_organics/C2H6.pdb @@ -0,0 +1,18 @@ +COMPND C2H6.pdb +HETATM 1 C -0.681 0.350 0.000 +HETATM 2 C 0.681 -0.350 0.000 +HETATM 3 H -0.569 1.439 0.000 +HETATM 4 H -1.269 0.078 0.883 +HETATM 5 H -1.269 0.078 -0.883 +HETATM 6 H 0.569 -1.439 0.000 +HETATM 7 H 1.269 -0.078 0.883 +HETATM 8 H 1.269 -0.078 -0.883 +CONECT 1 2 3 4 5 +CONECT 2 1 6 7 8 +CONECT 3 1 +CONECT 4 1 +CONECT 5 1 +CONECT 6 2 +CONECT 7 2 +CONECT 8 2 +END diff --git a/sim/src/tests/floppy_organics/C3H8.mmp b/sim/src/tests/floppy_organics/C3H8.mmp new file mode 100755 index 000000000..bdc444354 --- /dev/null +++ b/sim/src/tests/floppy_organics/C3H8.mmp @@ -0,0 +1,37 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.595080) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C3H8) +info opengroup open = True +mol (C3H8.pdb) def +atom 1 (6) (1396, -493, -2) def +atom 2 (6) (-137, -470, 13) def +bond1 1 +atom 3 (6) (-714, 948, 20) def +bond1 2 +atom 4 (1) (1777, -1520, 2) def +bond1 1 +atom 5 (1) (1809, 20, 874) def +bond1 1 +atom 6 (1) (1793, 7, -894) def +bond1 1 +atom 7 (1) (-500, -1016, 894) def +bond1 2 +atom 8 (1) (-519, -1016, -860) def +bond1 2 +atom 9 (1) (-1809, 942, 69) def +bond1 3 +atom 10 (1) (-426, 1495, -886) def +bond1 3 +atom 11 (1) (-346, 1520, 880) def +bond1 3 +egroup (C3H8) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H8 diff --git a/sim/src/tests/floppy_organics/C3H8.pdb b/sim/src/tests/floppy_organics/C3H8.pdb new file mode 100755 index 000000000..047582c21 --- /dev/null +++ b/sim/src/tests/floppy_organics/C3H8.pdb @@ -0,0 +1,24 @@ +COMPND C3H8.pdb +HETATM 1 C 1.396 -0.493 -0.002 +HETATM 2 C -0.137 -0.470 0.013 +HETATM 3 C -0.714 0.948 0.020 +HETATM 4 H 1.777 -1.520 0.002 +HETATM 5 H 1.809 0.020 0.874 +HETATM 6 H 1.793 0.007 -0.894 +HETATM 7 H -0.500 -1.017 0.894 +HETATM 8 H -0.519 -1.016 -0.860 +HETATM 9 H -1.809 0.942 0.069 +HETATM 10 H -0.426 1.495 -0.886 +HETATM 11 H -0.346 1.520 0.880 +CONECT 1 2 4 5 6 +CONECT 2 1 3 7 8 +CONECT 3 2 9 10 11 +CONECT 4 1 +CONECT 5 1 +CONECT 6 1 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 3 +END diff --git a/sim/src/tests/floppy_organics/C4H10a.mmp b/sim/src/tests/floppy_organics/C4H10a.mmp new file mode 100755 index 000000000..8ba08f334 --- /dev/null +++ b/sim/src/tests/floppy_organics/C4H10a.mmp @@ -0,0 +1,43 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.054739) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C4H10a) +info opengroup open = True +mol (C4H10a.pdb) def +atom 1 (6) (1795, -803, -5) def +atom 2 (6) (265, -719, -3) def +bond1 1 +atom 3 (6) (-265, 719, 3) def +bond1 2 +atom 4 (6) (-1795, 803, 5) def +bond1 3 +atom 5 (1) (2137, -1843, -10) def +bond1 1 +atom 6 (1) (2221, -317, 881) def +bond1 1 +atom 7 (1) (2219, -309, -887) def +bond1 1 +atom 8 (1) (-130, -1253, 873) def +bond1 2 +atom 9 (1) (-132, -1246, -882) def +bond1 2 +atom 10 (1) (130, 1253, -873) def +bond1 3 +atom 11 (1) (132, 1247, 882) def +bond1 3 +atom 12 (1) (-2137, 1843, 10) def +bond1 4 +atom 13 (1) (-2219, 309, 887) def +bond1 4 +atom 14 (1) (-2221, 317, -881) def +bond1 4 +egroup (C4H10a) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H10a diff --git a/sim/src/tests/floppy_organics/C4H10a.pdb b/sim/src/tests/floppy_organics/C4H10a.pdb new file mode 100755 index 000000000..42ed0ae12 --- /dev/null +++ b/sim/src/tests/floppy_organics/C4H10a.pdb @@ -0,0 +1,30 @@ +COMPND C4H10a.pdb +HETATM 1 C 1.795 -0.803 -0.005 +HETATM 2 C 0.265 -0.719 -0.003 +HETATM 3 C -0.265 0.719 0.003 +HETATM 4 C -1.795 0.803 0.005 +HETATM 5 H 2.137 -1.843 -0.010 +HETATM 6 H 2.221 -0.317 0.881 +HETATM 7 H 2.219 -0.309 -0.887 +HETATM 8 H -0.130 -1.253 0.873 +HETATM 9 H -0.132 -1.246 -0.882 +HETATM 10 H 0.130 1.253 -0.873 +HETATM 11 H 0.132 1.247 0.882 +HETATM 12 H -2.137 1.843 0.010 +HETATM 13 H -2.219 0.309 0.887 +HETATM 14 H -2.221 0.317 -0.881 +CONECT 1 2 5 6 7 +CONECT 2 1 3 8 9 +CONECT 3 2 4 10 11 +CONECT 4 3 12 13 14 +CONECT 5 1 +CONECT 6 1 +CONECT 7 1 +CONECT 8 2 +CONECT 9 2 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +END diff --git a/sim/src/tests/floppy_organics/C4H10b.mmp b/sim/src/tests/floppy_organics/C4H10b.mmp new file mode 100755 index 000000000..0148f02e0 --- /dev/null +++ b/sim/src/tests/floppy_organics/C4H10b.mmp @@ -0,0 +1,43 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.371581) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C4H10b) +info opengroup open = True +mol (C4H10b.pdb) def +atom 1 (6) (811, -628, -1443) def +atom 2 (6) (-541, -560, -723) def +bond1 1 +atom 3 (6) (-449, -600, 812) def +bond1 2 +atom 4 (6) (186, 648, 1435) def +bond1 3 +atom 5 (1) (681, -611, -2529) def +bond1 1 +atom 6 (1) (1346, -1551, -1185) def +bond1 1 +atom 7 (1) (1460, 214, -1176) def +bond1 1 +atom 8 (1) (-1168, -1395, -1062) def +bond1 2 +atom 9 (1) (-1070, 356, -1026) def +bond1 2 +atom 10 (1) (-1460, -729, 1220) def +bond1 3 +atom 11 (1) (118, -1491, 1116) def +bond1 3 +atom 12 (1) (193, 589, 2529) def +bond1 4 +atom 13 (1) (1222, 787, 1110) def +bond1 4 +atom 14 (1) (-372, 1551, 1157) def +bond1 4 +egroup (C4H10b) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H10b diff --git a/sim/src/tests/floppy_organics/C4H10b.pdb b/sim/src/tests/floppy_organics/C4H10b.pdb new file mode 100755 index 000000000..c7ad45195 --- /dev/null +++ b/sim/src/tests/floppy_organics/C4H10b.pdb @@ -0,0 +1,30 @@ +COMPND C4H10b.pdb +HETATM 1 C 0.811 -0.628 -1.443 +HETATM 2 C -0.541 -0.560 -0.723 +HETATM 3 C -0.449 -0.600 0.812 +HETATM 4 C 0.186 0.648 1.435 +HETATM 5 H 0.681 -0.611 -2.529 +HETATM 6 H 1.346 -1.551 -1.185 +HETATM 7 H 1.460 0.214 -1.176 +HETATM 8 H -1.168 -1.395 -1.062 +HETATM 9 H -1.070 0.356 -1.026 +HETATM 10 H -1.460 -0.729 1.220 +HETATM 11 H 0.118 -1.491 1.116 +HETATM 12 H 0.193 0.589 2.529 +HETATM 13 H 1.222 0.787 1.110 +HETATM 14 H -0.372 1.551 1.157 +CONECT 1 2 5 6 7 +CONECT 2 1 3 8 9 +CONECT 3 2 4 10 11 +CONECT 4 3 12 13 14 +CONECT 5 1 +CONECT 6 1 +CONECT 7 1 +CONECT 8 2 +CONECT 9 2 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +END diff --git a/sim/src/tests/floppy_organics/C4H10c.mmp b/sim/src/tests/floppy_organics/C4H10c.mmp new file mode 100755 index 000000000..be02d9b12 --- /dev/null +++ b/sim/src/tests/floppy_organics/C4H10c.mmp @@ -0,0 +1,43 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.326870) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C4H10c) +info opengroup open = True +mol (C4H10c.pdb) def +atom 1 (6) (741, 1312, -109) def +atom 2 (6) (87, -19, 291) def +bond1 1 +atom 3 (6) (-1330, -130, -290) def +bond1 2 +atom 4 (6) (958, -1211, -131) def +bond1 2 +atom 5 (1) (133, 2164, 214) def +bond1 1 +atom 6 (1) (850, 1375, -1200) def +bond1 1 +atom 7 (1) (1738, 1422, 333) def +bond1 1 +atom 8 (1) (4, -36, 1388) def +bond1 2 +atom 9 (1) (-1815, -1062, 20) def +bond1 3 +atom 10 (1) (-1962, 702, 36) def +bond1 3 +atom 11 (1) (-1310, -119, -1388) def +bond1 3 +atom 12 (1) (520, -2164, 187) def +bond1 4 +atom 13 (1) (1962, -1140, 300) def +bond1 4 +atom 14 (1) (1065, -1242, -1223) def +bond1 4 +egroup (C4H10c) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H10c diff --git a/sim/src/tests/floppy_organics/C4H10c.pdb b/sim/src/tests/floppy_organics/C4H10c.pdb new file mode 100755 index 000000000..1adcd4b5f --- /dev/null +++ b/sim/src/tests/floppy_organics/C4H10c.pdb @@ -0,0 +1,30 @@ +COMPND C4H10c.pdb +HETATM 1 C 0.741 1.312 -0.109 +HETATM 2 C 0.087 -0.019 0.291 +HETATM 3 C -1.330 -0.130 -0.290 +HETATM 4 C 0.958 -1.211 -0.131 +HETATM 5 H 0.133 2.164 0.214 +HETATM 6 H 0.850 1.375 -1.200 +HETATM 7 H 1.738 1.422 0.333 +HETATM 8 H 0.004 -0.036 1.388 +HETATM 9 H -1.815 -1.062 0.020 +HETATM 10 H -1.962 0.702 0.036 +HETATM 11 H -1.310 -0.119 -1.388 +HETATM 12 H 0.520 -2.164 0.187 +HETATM 13 H 1.962 -1.140 0.300 +HETATM 14 H 1.065 -1.242 -1.223 +CONECT 1 2 5 6 7 +CONECT 2 1 3 4 8 +CONECT 3 2 9 10 11 +CONECT 4 2 12 13 14 +CONECT 5 1 +CONECT 6 1 +CONECT 7 1 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +END diff --git a/sim/src/tests/floppy_organics/C4H8.mmp b/sim/src/tests/floppy_organics/C4H8.mmp new file mode 100755 index 000000000..91b82833d --- /dev/null +++ b/sim/src/tests/floppy_organics/C4H8.mmp @@ -0,0 +1,39 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.754946) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C4H8) +info opengroup open = True +mol (C4H8.pdb) def +atom 1 (6) (-1020, 594, -166) def +atom 2 (6) (503, 884, -77) def +bond1 1 +atom 3 (6) (-686, -918, -300) def +bond1 1 +atom 4 (6) (729, -615, 265) def +bond1 2 3 +atom 5 (1) (-1530, 813, 779) def +bond1 1 +atom 6 (1) (-1584, 1065, -977) def +bond1 1 +atom 7 (1) (838, 1629, 651) def +bond1 2 +atom 8 (1) (923, 1145, -1054) def +bond1 2 +atom 9 (1) (-1311, -1629, 250) def +bond1 3 +atom 10 (1) (-645, -1234, -1348) def +bond1 3 +atom 11 (1) (1584, -1120, -196) def +bond1 4 +atom 12 (1) (774, -775, 1348) def +bond1 4 +egroup (C4H8) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8 diff --git a/sim/src/tests/floppy_organics/C4H8.pdb b/sim/src/tests/floppy_organics/C4H8.pdb new file mode 100755 index 000000000..bad45ec9a --- /dev/null +++ b/sim/src/tests/floppy_organics/C4H8.pdb @@ -0,0 +1,26 @@ +COMPND C4H8.pdb +HETATM 1 C -1.020 0.594 -0.166 +HETATM 2 C 0.503 0.884 -0.077 +HETATM 3 C -0.686 -0.918 -0.300 +HETATM 4 C 0.729 -0.615 0.265 +HETATM 5 H -1.530 0.813 0.779 +HETATM 6 H -1.584 1.065 -0.977 +HETATM 7 H 0.838 1.629 0.651 +HETATM 8 H 0.923 1.145 -1.054 +HETATM 9 H -1.311 -1.629 0.250 +HETATM 10 H -0.645 -1.234 -1.348 +HETATM 11 H 1.584 -1.120 -0.196 +HETATM 12 H 0.774 -0.775 1.348 +CONECT 1 2 3 5 6 +CONECT 2 1 4 7 8 +CONECT 3 1 4 9 10 +CONECT 4 2 3 11 12 +CONECT 5 1 +CONECT 6 1 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 4 +CONECT 12 4 +END diff --git a/sim/src/tests/floppy_organics/C5H10.mmp b/sim/src/tests/floppy_organics/C5H10.mmp new file mode 100755 index 000000000..9df705547 --- /dev/null +++ b/sim/src/tests/floppy_organics/C5H10.mmp @@ -0,0 +1,45 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.344298) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C5H10) +info opengroup open = True +mol (C5H10.pdb) def +atom 1 (6) (-539, 1247, -246) def +atom 2 (6) (997, 1107, -42) def +bond1 1 +atom 3 (6) (-1128, -100, 214) def +bond1 1 +atom 4 (6) (-55, -1112, -220) def +bond1 3 +atom 5 (6) (1263, -412, 174) def +bond1 2 4 +atom 6 (1) (-960, 2100, 296) def +bond1 1 +atom 7 (1) (-769, 1403, -1307) def +bond1 1 +atom 8 (1) (1335, 1689, 823) def +bond1 2 +atom 9 (1) (1546, 1490, -908) def +bond1 2 +atom 10 (1) (-2121, -300, -200) def +bond1 3 +atom 11 (1) (-1217, -113, 1309) def +bond1 3 +atom 12 (1) (-173, -2100, 237) def +bond1 4 +atom 13 (1) (-97, -1241, -1309) def +bond1 4 +atom 14 (1) (2121, -775, -400) def +bond1 5 +atom 15 (1) (1484, -614, 1230) def +bond1 5 +egroup (C5H10) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10 diff --git a/sim/src/tests/floppy_organics/C5H10.pdb b/sim/src/tests/floppy_organics/C5H10.pdb new file mode 100755 index 000000000..d996cc093 --- /dev/null +++ b/sim/src/tests/floppy_organics/C5H10.pdb @@ -0,0 +1,32 @@ +COMPND C5H10.pdb +HETATM 1 C -0.539 1.247 -0.246 +HETATM 2 C 0.997 1.107 -0.042 +HETATM 3 C -1.128 -0.100 0.214 +HETATM 4 C -0.055 -1.112 -0.220 +HETATM 5 C 1.263 -0.412 0.174 +HETATM 6 H -0.960 2.100 0.296 +HETATM 7 H -0.769 1.403 -1.307 +HETATM 8 H 1.335 1.689 0.823 +HETATM 9 H 1.546 1.490 -0.908 +HETATM 10 H -2.121 -0.300 -0.200 +HETATM 11 H -1.217 -0.113 1.309 +HETATM 12 H -0.173 -2.100 0.237 +HETATM 13 H -0.097 -1.241 -1.309 +HETATM 14 H 2.121 -0.775 -0.400 +HETATM 15 H 1.484 -0.614 1.230 +CONECT 1 2 3 6 7 +CONECT 2 1 5 8 9 +CONECT 3 1 4 10 11 +CONECT 4 3 5 12 13 +CONECT 5 2 4 14 15 +CONECT 6 1 +CONECT 7 1 +CONECT 8 2 +CONECT 9 2 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 5 +CONECT 15 5 +END diff --git a/sim/src/tests/floppy_organics/C5H12a.mmp b/sim/src/tests/floppy_organics/C5H12a.mmp new file mode 100755 index 000000000..1d72cc9f3 --- /dev/null +++ b/sim/src/tests/floppy_organics/C5H12a.mmp @@ -0,0 +1,49 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.786294) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C5H12a) +info opengroup open = True +mol (C5H12a.pdb) def +atom 1 (6) (266, 124, -7) def +atom 2 (6) (-292, -1303, 15) def +bond1 1 +atom 3 (6) (-821, 1209, -28) def +bond1 1 +atom 4 (6) (790, -2384, -85) def +bond1 2 +atom 5 (6) (-257, 2628, 83) def +bond1 3 +atom 6 (1) (913, 271, 870) def +bond1 1 +atom 7 (1) (917, 249, -885) def +bond1 1 +atom 8 (1) (-1008, -1427, -807) def +bond1 2 +atom 9 (1) (-867, -1446, 941) def +bond1 2 +atom 10 (1) (-1402, 1115, -957) def +bond1 3 +atom 11 (1) (-1530, 1031, 791) def +bond1 3 +atom 12 (1) (356, -3387, -16) def +bond1 4 +atom 13 (1) (1530, -2285, 717) def +bond1 4 +atom 14 (1) (1327, -2319, -1039) def +bond1 4 +atom 15 (1) (-1045, 3387, 15) def +bond1 5 +atom 16 (1) (466, 2831, -715) def +bond1 5 +atom 17 (1) (259, 2773, 1039) def +bond1 5 +egroup (C5H12a) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H12a diff --git a/sim/src/tests/floppy_organics/C5H12a.pdb b/sim/src/tests/floppy_organics/C5H12a.pdb new file mode 100755 index 000000000..a325186db --- /dev/null +++ b/sim/src/tests/floppy_organics/C5H12a.pdb @@ -0,0 +1,36 @@ +COMPND C5H12a.pdb +HETATM 1 C 0.266 0.124 -0.007 +HETATM 2 C -0.292 -1.303 0.015 +HETATM 3 C -0.821 1.209 -0.028 +HETATM 4 C 0.790 -2.384 -0.085 +HETATM 5 C -0.257 2.628 0.083 +HETATM 6 H 0.913 0.271 0.870 +HETATM 7 H 0.917 0.249 -0.885 +HETATM 8 H -1.009 -1.427 -0.807 +HETATM 9 H -0.867 -1.446 0.941 +HETATM 10 H -1.402 1.115 -0.957 +HETATM 11 H -1.530 1.031 0.791 +HETATM 12 H 0.356 -3.387 -0.016 +HETATM 13 H 1.530 -2.285 0.717 +HETATM 14 H 1.327 -2.319 -1.039 +HETATM 15 H -1.045 3.387 0.015 +HETATM 16 H 0.466 2.831 -0.715 +HETATM 17 H 0.259 2.773 1.039 +CONECT 1 2 3 6 7 +CONECT 2 1 4 8 9 +CONECT 3 1 5 10 11 +CONECT 4 2 12 13 14 +CONECT 5 3 15 16 17 +CONECT 6 1 +CONECT 7 1 +CONECT 8 2 +CONECT 9 2 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 5 +END diff --git a/sim/src/tests/floppy_organics/C5H12b.mmp b/sim/src/tests/floppy_organics/C5H12b.mmp new file mode 100755 index 000000000..4b3166885 --- /dev/null +++ b/sim/src/tests/floppy_organics/C5H12b.mmp @@ -0,0 +1,49 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.718120) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C5H12b) +info opengroup open = True +mol (C5H12b.pdb) def +atom 1 (6) (-154, -214, -1348) def +atom 2 (6) (-894, -634, -66) def +bond1 1 +atom 3 (6) (-275, -165, 1263) def +bond1 2 +atom 4 (6) (1272, -761, -1462) def +bond1 1 +atom 5 (6) (-260, 1358, 1449) def +bond1 3 +atom 6 (1) (-741, -565, -2207) def +bond1 1 +atom 7 (1) (-137, 881, -1430) def +bond1 1 +atom 8 (1) (-1929, -270, -121) def +bond1 2 +atom 9 (1) (-961, -1732, -50) def +bond1 2 +atom 10 (1) (746, -552, 1357) def +bond1 3 +atom 11 (1) (-846, -619, 2083) def +bond1 3 +atom 12 (1) (1718, -503, -2428) def +bond1 4 +atom 13 (1) (1286, -1854, -1372) def +bond1 4 +atom 14 (1) (1929, -360, -683) def +bond1 4 +atom 15 (1) (144, 1634, 2428) def +bond1 5 +atom 16 (1) (-1272, 1773, 1376) def +bond1 5 +atom 17 (1) (355, 1854, 690) def +bond1 5 +egroup (C5H12b) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H12b diff --git a/sim/src/tests/floppy_organics/C5H12b.pdb b/sim/src/tests/floppy_organics/C5H12b.pdb new file mode 100755 index 000000000..213c826d7 --- /dev/null +++ b/sim/src/tests/floppy_organics/C5H12b.pdb @@ -0,0 +1,36 @@ +COMPND C5H12b.pdb +HETATM 1 C -0.154 -0.214 -1.348 +HETATM 2 C -0.894 -0.634 -0.066 +HETATM 3 C -0.275 -0.165 1.263 +HETATM 4 C 1.272 -0.761 -1.462 +HETATM 5 C -0.260 1.358 1.449 +HETATM 6 H -0.741 -0.565 -2.207 +HETATM 7 H -0.137 0.881 -1.430 +HETATM 8 H -1.929 -0.270 -0.121 +HETATM 9 H -0.961 -1.732 -0.050 +HETATM 10 H 0.746 -0.552 1.357 +HETATM 11 H -0.846 -0.619 2.083 +HETATM 12 H 1.718 -0.503 -2.428 +HETATM 13 H 1.286 -1.854 -1.372 +HETATM 14 H 1.929 -0.360 -0.683 +HETATM 15 H 0.144 1.634 2.428 +HETATM 16 H -1.272 1.773 1.376 +HETATM 17 H 0.355 1.854 0.690 +CONECT 1 2 4 6 7 +CONECT 2 1 3 8 9 +CONECT 3 2 5 10 11 +CONECT 4 1 12 13 14 +CONECT 5 3 15 16 17 +CONECT 6 1 +CONECT 7 1 +CONECT 8 2 +CONECT 9 2 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 5 +END diff --git a/sim/src/tests/floppy_organics/C5H12c.mmp b/sim/src/tests/floppy_organics/C5H12c.mmp new file mode 100755 index 000000000..2dd9ed000 --- /dev/null +++ b/sim/src/tests/floppy_organics/C5H12c.mmp @@ -0,0 +1,49 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.798053) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C5H12c) +info opengroup open = True +mol (C5H12c.pdb) def +atom 1 (6) (355, 621, 308) def +atom 2 (6) (46, -755, -312) def +bond1 1 +atom 3 (6) (-1318, -1307, 132) def +bond1 2 +atom 4 (6) (-579, 1758, -127) def +bond1 1 +atom 5 (6) (1169, -1753, 10) def +bond1 2 +atom 6 (1) (342, 535, 1405) def +bond1 1 +atom 7 (1) (1385, 898, 43) def +bond1 1 +atom 8 (1) (17, -627, -1405) def +bond1 2 +atom 9 (1) (-1497, -2298, -300) def +bond1 3 +atom 10 (1) (-2143, -656, -174) def +bond1 3 +atom 11 (1) (-1357, -1406, 1224) def +bond1 3 +atom 12 (1) (-242, 2716, 284) def +bond1 4 +atom 13 (1) (-594, 1852, -1219) def +bond1 4 +atom 14 (1) (-1609, 1600, 206) def +bond1 4 +atom 15 (1) (1004, -2716, -488) def +bond1 5 +atom 16 (1) (1229, -1945, 1088) def +bond1 5 +atom 17 (1) (2143, -1370, -315) def +bond1 5 +egroup (C5H12c) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H12c diff --git a/sim/src/tests/floppy_organics/C5H12c.pdb b/sim/src/tests/floppy_organics/C5H12c.pdb new file mode 100755 index 000000000..edae6b413 --- /dev/null +++ b/sim/src/tests/floppy_organics/C5H12c.pdb @@ -0,0 +1,36 @@ +COMPND C5H12c.pdb +HETATM 1 C 0.355 0.621 0.308 +HETATM 2 C 0.046 -0.755 -0.312 +HETATM 3 C -1.318 -1.307 0.132 +HETATM 4 C -0.579 1.758 -0.127 +HETATM 5 C 1.169 -1.753 0.010 +HETATM 6 H 0.342 0.535 1.405 +HETATM 7 H 1.385 0.898 0.043 +HETATM 8 H 0.017 -0.627 -1.405 +HETATM 9 H -1.497 -2.298 -0.300 +HETATM 10 H -2.143 -0.656 -0.174 +HETATM 11 H -1.357 -1.406 1.224 +HETATM 12 H -0.242 2.716 0.284 +HETATM 13 H -0.594 1.852 -1.219 +HETATM 14 H -1.609 1.600 0.206 +HETATM 15 H 1.005 -2.716 -0.488 +HETATM 16 H 1.229 -1.945 1.088 +HETATM 17 H 2.143 -1.370 -0.315 +CONECT 1 2 4 6 7 +CONECT 2 1 3 5 8 +CONECT 3 2 9 10 11 +CONECT 4 1 12 13 14 +CONECT 5 2 15 16 17 +CONECT 6 1 +CONECT 7 1 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 5 +END diff --git a/sim/src/tests/floppy_organics/C5H12d.mmp b/sim/src/tests/floppy_organics/C5H12d.mmp new file mode 100755 index 000000000..8a28ebd09 --- /dev/null +++ b/sim/src/tests/floppy_organics/C5H12d.mmp @@ -0,0 +1,49 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.761358) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C5H12d) +info opengroup open = True +mol (C5H12d.pdb) def +atom 1 (6) (13, -608, 662) def +atom 2 (6) (-55, 907, 363) def +bond1 1 +atom 3 (6) (-1300, -1335, 334) def +bond1 1 +atom 4 (6) (1208, -1289, -23) def +bond1 1 +atom 5 (6) (-257, 1298, -1109) def +bond1 2 +atom 6 (1) (169, -697, 1746) def +bond1 1 +atom 7 (1) (871, 1371, 727) def +bond1 2 +atom 8 (1) (-868, 1344, 959) def +bond1 2 +atom 9 (1) (-1249, -2388, 634) def +bond1 3 +atom 10 (1) (-1524, -1311, -738) def +bond1 3 +atom 11 (1) (-2150, -883, 861) def +bond1 3 +atom 12 (1) (1310, -2329, 308) def +bond1 4 +atom 13 (1) (2150, -776, 210) def +bond1 4 +atom 14 (1) (1100, -1308, -1113) def +bond1 4 +atom 15 (1) (-257, 2388, -1216) def +bond1 5 +atom 16 (1) (-1211, 933, -1503) def +bond1 5 +atom 17 (1) (542, 907, -1746) def +bond1 5 +egroup (C5H12d) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H12d diff --git a/sim/src/tests/floppy_organics/C5H12d.pdb b/sim/src/tests/floppy_organics/C5H12d.pdb new file mode 100755 index 000000000..36dc907d8 --- /dev/null +++ b/sim/src/tests/floppy_organics/C5H12d.pdb @@ -0,0 +1,36 @@ +COMPND C5H12d.pdb +HETATM 1 C 0.013 -0.608 0.662 +HETATM 2 C -0.055 0.907 0.363 +HETATM 3 C -1.300 -1.335 0.334 +HETATM 4 C 1.208 -1.289 -0.023 +HETATM 5 C -0.257 1.298 -1.109 +HETATM 6 H 0.169 -0.697 1.746 +HETATM 7 H 0.871 1.371 0.727 +HETATM 8 H -0.868 1.344 0.959 +HETATM 9 H -1.249 -2.388 0.634 +HETATM 10 H -1.524 -1.311 -0.738 +HETATM 11 H -2.150 -0.883 0.861 +HETATM 12 H 1.310 -2.329 0.308 +HETATM 13 H 2.150 -0.776 0.210 +HETATM 14 H 1.100 -1.308 -1.113 +HETATM 15 H -0.257 2.388 -1.216 +HETATM 16 H -1.211 0.933 -1.503 +HETATM 17 H 0.542 0.907 -1.746 +CONECT 1 2 3 4 6 +CONECT 2 1 5 7 8 +CONECT 3 1 9 10 11 +CONECT 4 1 12 13 14 +CONECT 5 2 15 16 17 +CONECT 6 1 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 5 +END diff --git a/sim/src/tests/floppy_organics/C5H12e.mmp b/sim/src/tests/floppy_organics/C5H12e.mmp new file mode 100755 index 000000000..2c1968d51 --- /dev/null +++ b/sim/src/tests/floppy_organics/C5H12e.mmp @@ -0,0 +1,49 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.586064) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C5H12e) +info opengroup open = True +mol (C5H12e.pdb) def +atom 1 (6) (1052, 1104, -711) def +atom 2 (6) (72, 55, -155) def +bond1 1 +atom 3 (6) (148, 48, 1385) def +bond1 2 +atom 4 (6) (453, -1335, -695) def +bond1 2 +atom 5 (6) (-1361, 400, -604) def +bond1 2 +atom 6 (1) (1025, 1135, -1807) def +bond1 1 +atom 7 (1) (811, 2110, -346) def +bond1 1 +atom 8 (1) (2083, 882, -412) def +bond1 1 +atom 9 (1) (-492, -736, 1807) def +bond1 3 +atom 10 (1) (-179, 1008, 1800) def +bond1 3 +atom 11 (1) (1173, -134, 1727) def +bond1 3 +atom 12 (1) (-230, -2110, -330) def +bond1 4 +atom 13 (1) (1468, -1616, -387) def +bond1 4 +atom 14 (1) (424, -1358, -1792) def +bond1 4 +atom 15 (1) (-2083, -332, -227) def +bond1 5 +atom 16 (1) (-1433, 408, -1698) def +bond1 5 +atom 17 (1) (-1669, 1389, -243) def +bond1 5 +egroup (C5H12e) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H12e diff --git a/sim/src/tests/floppy_organics/C5H12e.pdb b/sim/src/tests/floppy_organics/C5H12e.pdb new file mode 100755 index 000000000..f052c92c8 --- /dev/null +++ b/sim/src/tests/floppy_organics/C5H12e.pdb @@ -0,0 +1,36 @@ +COMPND C5H12e.pdb +HETATM 1 C 1.052 1.104 -0.711 +HETATM 2 C 0.072 0.055 -0.155 +HETATM 3 C 0.148 0.048 1.385 +HETATM 4 C 0.453 -1.335 -0.695 +HETATM 5 C -1.361 0.400 -0.604 +HETATM 6 H 1.025 1.135 -1.807 +HETATM 7 H 0.811 2.110 -0.346 +HETATM 8 H 2.083 0.882 -0.412 +HETATM 9 H -0.492 -0.736 1.807 +HETATM 10 H -0.179 1.009 1.800 +HETATM 11 H 1.173 -0.134 1.727 +HETATM 12 H -0.230 -2.110 -0.330 +HETATM 13 H 1.468 -1.616 -0.387 +HETATM 14 H 0.424 -1.358 -1.792 +HETATM 15 H -2.083 -0.332 -0.227 +HETATM 16 H -1.433 0.408 -1.698 +HETATM 17 H -1.669 1.389 -0.243 +CONECT 1 2 6 7 8 +CONECT 2 1 3 4 5 +CONECT 3 2 9 10 11 +CONECT 4 2 12 13 14 +CONECT 5 2 15 16 17 +CONECT 6 1 +CONECT 7 1 +CONECT 8 1 +CONECT 9 3 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 5 +END diff --git a/sim/src/tests/floppy_organics/C6H12a.mmp b/sim/src/tests/floppy_organics/C6H12a.mmp new file mode 100755 index 000000000..9c97d6661 --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H12a.mmp @@ -0,0 +1,50 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.785862) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H12a) +info opengroup open = True +mol (C6H12a.pdb) def +atom 1 (6) (-767, -9, -1273) def +atom 2 (6) (771, 10, -1271) def +bond1 1 +atom 3 (6) (1323, 671, 3) def +bond1 2 +atom 4 (6) (-771, -9, 1270) def +atom 5 (6) (-1323, -671, -3) def +bond1 1 4 +atom 6 (6) (767, 7, 1272) def +bond1 3 4 +atom 7 (1) (-1138, -528, -2166) def +bond1 1 +atom 8 (1) (-1136, 1025, -1338) def +bond1 1 +atom 9 (1) (1146, 531, -2161) def +bond1 2 +atom 10 (1) (1141, -1022, -1335) def +bond1 2 +atom 11 (1) (2420, 637, 4) def +bond1 3 +atom 12 (1) (1048, 1737, 4) def +bond1 3 +atom 13 (1) (-1146, -528, 2161) def +bond1 4 +atom 14 (1) (-1138, 1025, 1333) def +bond1 4 +atom 15 (1) (-2420, -636, -5) def +bond1 5 +atom 16 (1) (-1049, -1737, -2) def +bond1 5 +atom 17 (1) (1135, -1028, 1333) def +bond1 6 +atom 18 (1) (1140, 523, 2166) def +bond1 6 +egroup (C6H12a) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H12a diff --git a/sim/src/tests/floppy_organics/C6H12a.pdb b/sim/src/tests/floppy_organics/C6H12a.pdb new file mode 100755 index 000000000..987866f9e --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H12a.pdb @@ -0,0 +1,38 @@ +COMPND C6H12a.pdb +HETATM 1 C -0.767 -0.009 -1.273 +HETATM 2 C 0.771 0.010 -1.271 +HETATM 3 C 1.323 0.671 0.003 +HETATM 4 C -0.771 -0.009 1.270 +HETATM 5 C -1.323 -0.671 -0.003 +HETATM 6 C 0.767 0.007 1.272 +HETATM 7 H -1.138 -0.528 -2.166 +HETATM 8 H -1.136 1.025 -1.338 +HETATM 9 H 1.146 0.531 -2.161 +HETATM 10 H 1.141 -1.023 -1.335 +HETATM 11 H 2.420 0.637 0.004 +HETATM 12 H 1.048 1.737 0.004 +HETATM 13 H -1.146 -0.528 2.161 +HETATM 14 H -1.138 1.025 1.333 +HETATM 15 H -2.420 -0.636 -0.005 +HETATM 16 H -1.049 -1.737 -0.002 +HETATM 17 H 1.135 -1.028 1.333 +HETATM 18 H 1.140 0.523 2.166 +CONECT 1 2 5 7 8 +CONECT 2 1 3 9 10 +CONECT 3 2 6 11 12 +CONECT 4 5 6 13 14 +CONECT 5 1 4 15 16 +CONECT 6 3 4 17 18 +CONECT 7 1 +CONECT 8 1 +CONECT 9 2 +CONECT 10 2 +CONECT 11 3 +CONECT 12 3 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 6 +CONECT 18 6 +END diff --git a/sim/src/tests/floppy_organics/C6H12b.mmp b/sim/src/tests/floppy_organics/C6H12b.mmp new file mode 100755 index 000000000..f1a5c72f1 --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H12b.mmp @@ -0,0 +1,50 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.705229) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H12b) +info opengroup open = True +mol (C6H12b.pdb) def +atom 1 (6) (-758, -12, -1314) def +atom 2 (6) (757, 286, -1200) def +bond1 1 +atom 3 (6) (1378, -474, -22) def +bond1 2 +atom 4 (6) (-686, 471, 1187) def +atom 5 (6) (-1406, -291, 65) def +bond1 1 4 +atom 6 (6) (793, 24, 1321) def +bond1 3 4 +atom 7 (1) (-919, -877, -1968) def +bond1 1 +atom 8 (1) (-1260, 836, -1797) def +bond1 1 +atom 9 (1) (1262, 35, -2141) def +bond1 2 +atom 10 (1) (913, 1362, -1047) def +bond1 2 +atom 11 (1) (2470, -374, -21) def +bond1 3 +atom 12 (1) (1169, -1546, -143) def +bond1 3 +atom 13 (1) (-1209, 335, 2141) def +bond1 4 +atom 14 (1) (-732, 1546, 968) def +bond1 4 +atom 15 (1) (-2470, -27, 45) def +bond1 5 +atom 16 (1) (-1366, -1367, 283) def +bond1 5 +atom 17 (1) (879, -768, 2075) def +bond1 6 +atom 18 (1) (1389, 866, 1695) def +bond1 6 +egroup (C6H12b) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H12b diff --git a/sim/src/tests/floppy_organics/C6H12b.pdb b/sim/src/tests/floppy_organics/C6H12b.pdb new file mode 100755 index 000000000..533033f4c --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H12b.pdb @@ -0,0 +1,38 @@ +COMPND C6H12b.pdb +HETATM 1 C -0.758 -0.012 -1.314 +HETATM 2 C 0.757 0.286 -1.200 +HETATM 3 C 1.378 -0.474 -0.022 +HETATM 4 C -0.686 0.471 1.187 +HETATM 5 C -1.406 -0.291 0.065 +HETATM 6 C 0.793 0.024 1.321 +HETATM 7 H -0.919 -0.877 -1.968 +HETATM 8 H -1.260 0.836 -1.797 +HETATM 9 H 1.262 0.035 -2.141 +HETATM 10 H 0.913 1.362 -1.047 +HETATM 11 H 2.470 -0.374 -0.021 +HETATM 12 H 1.169 -1.546 -0.143 +HETATM 13 H -1.209 0.335 2.141 +HETATM 14 H -0.732 1.546 0.968 +HETATM 15 H -2.470 -0.027 0.045 +HETATM 16 H -1.366 -1.367 0.283 +HETATM 17 H 0.879 -0.768 2.075 +HETATM 18 H 1.389 0.866 1.695 +CONECT 1 2 5 7 8 +CONECT 2 1 3 9 10 +CONECT 3 2 6 11 12 +CONECT 4 5 6 13 14 +CONECT 5 1 4 15 16 +CONECT 6 3 4 17 18 +CONECT 7 1 +CONECT 8 1 +CONECT 9 2 +CONECT 10 2 +CONECT 11 3 +CONECT 12 3 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 6 +CONECT 18 6 +END diff --git a/sim/src/tests/floppy_organics/C6H14a.mmp b/sim/src/tests/floppy_organics/C6H14a.mmp new file mode 100755 index 000000000..cdefce51d --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H14a.mmp @@ -0,0 +1,55 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.564520) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H14a) +info opengroup open = True +mol (C6H14a.pdb) def +atom 1 (6) (829, -1793, -134) def +atom 2 (6) (735, -264, -37) def +bond1 1 +atom 3 (6) (2268, -2315, -76) def +bond1 1 +atom 4 (6) (-704, 262, 16) def +bond1 2 +atom 5 (6) (-802, 1793, -24) def +bond1 4 +atom 6 (6) (-2237, 2312, 109) def +bond1 5 +atom 7 (1) (357, -2123, -1070) def +bond1 1 +atom 8 (1) (243, -2246, 677) def +bond1 1 +atom 9 (1) (1275, 77, 858) def +bond1 2 +atom 10 (1) (1259, 183, -894) def +bond1 2 +atom 11 (1) (2306, -3405, -173) def +bond1 3 +atom 12 (1) (2744, -2049, 876) def +bond1 3 +atom 13 (1) (2879, -1888, -879) def +bond1 3 +atom 14 (1) (-1280, -158, -822) def +bond1 4 +atom 15 (1) (-1189, -109, 931) def +bond1 4 +atom 16 (1) (-367, 2155, -965) def +bond1 5 +atom 17 (1) (-184, 2219, 778) def +bond1 5 +atom 18 (1) (-2879, 1909, -683) def +bond1 6 +atom 19 (1) (-2277, 3405, 43) def +bond1 6 +atom 20 (1) (-2677, 2021, 1070) def +bond1 6 +egroup (C6H14a) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H14a diff --git a/sim/src/tests/floppy_organics/C6H14a.pdb b/sim/src/tests/floppy_organics/C6H14a.pdb new file mode 100755 index 000000000..11c9b876a --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H14a.pdb @@ -0,0 +1,42 @@ +COMPND C6H14a.pdb +HETATM 1 C 0.829 -1.793 -0.134 +HETATM 2 C 0.735 -0.264 -0.037 +HETATM 3 C 2.268 -2.315 -0.076 +HETATM 4 C -0.704 0.262 0.016 +HETATM 5 C -0.802 1.793 -0.024 +HETATM 6 C -2.237 2.312 0.109 +HETATM 7 H 0.357 -2.123 -1.070 +HETATM 8 H 0.243 -2.246 0.677 +HETATM 9 H 1.275 0.077 0.858 +HETATM 10 H 1.259 0.183 -0.894 +HETATM 11 H 2.306 -3.405 -0.173 +HETATM 12 H 2.744 -2.049 0.876 +HETATM 13 H 2.879 -1.888 -0.879 +HETATM 14 H -1.280 -0.158 -0.822 +HETATM 15 H -1.189 -0.109 0.931 +HETATM 16 H -0.367 2.155 -0.965 +HETATM 17 H -0.184 2.219 0.778 +HETATM 18 H -2.879 1.909 -0.683 +HETATM 19 H -2.277 3.405 0.043 +HETATM 20 H -2.677 2.021 1.070 +CONECT 1 2 3 7 8 +CONECT 2 1 4 9 10 +CONECT 3 1 11 12 13 +CONECT 4 2 5 14 15 +CONECT 5 4 6 16 17 +CONECT 6 5 18 19 20 +CONECT 7 1 +CONECT 8 1 +CONECT 9 2 +CONECT 10 2 +CONECT 11 3 +CONECT 12 3 +CONECT 13 3 +CONECT 14 4 +CONECT 15 4 +CONECT 16 5 +CONECT 17 5 +CONECT 18 6 +CONECT 19 6 +CONECT 20 6 +END diff --git a/sim/src/tests/floppy_organics/C6H14b.mmp b/sim/src/tests/floppy_organics/C6H14b.mmp new file mode 100755 index 000000000..63bb3149d --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H14b.mmp @@ -0,0 +1,55 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.839715) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H14b) +info opengroup open = True +mol (C6H14b.pdb) cpk +atom 1 (6) (40, -776, 0) def +atom 2 (6) (-41, 776, 0) def +bond1 1 +atom 3 (6) (-785, 1328, -1227) def +bond1 2 +atom 4 (6) (705, -1328, -1274) def +bond1 1 +atom 5 (6) (785, -1328, 1227) def +bond1 1 +atom 6 (6) (-705, 1328, 1274) def +bond1 2 +atom 7 (1) (-994, -1153, 35) def +bond1 1 +atom 8 (1) (993, 1153, -35) def +bond1 2 +atom 9 (1) (-837, 2422, -1185) def +bond1 3 +atom 10 (1) (-303, 1065, -2173) def +bond1 3 +atom 11 (1) (-1815, 951, -1264) def +bond1 3 +atom 12 (1) (758, -2422, -1238) def +bond1 4 +atom 13 (1) (1731, -953, -1374) def +bond1 4 +atom 14 (1) (162, -1062, -2186) def +bond1 4 +atom 15 (1) (837, -2422, 1185) def +bond1 5 +atom 16 (1) (303, -1064, 2173) def +bond1 5 +atom 17 (1) (1815, -951, 1263) def +bond1 5 +atom 18 (1) (-758, 2422, 1237) def +bond1 6 +atom 19 (1) (-1732, 953, 1374) def +bond1 6 +atom 20 (1) (-163, 1062, 2186) def +bond1 6 +egroup (C6H14b) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H14b diff --git a/sim/src/tests/floppy_organics/C6H14b.pdb b/sim/src/tests/floppy_organics/C6H14b.pdb new file mode 100755 index 000000000..5d21268ad --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H14b.pdb @@ -0,0 +1,42 @@ +COMPND C6H14b.pdb +HETATM 1 C 0.040 -0.776 0.000 +HETATM 2 C -0.041 0.776 0.000 +HETATM 3 C -0.785 1.328 -1.227 +HETATM 4 C 0.705 -1.328 -1.274 +HETATM 5 C 0.785 -1.328 1.227 +HETATM 6 C -0.705 1.328 1.274 +HETATM 7 H -0.994 -1.153 0.035 +HETATM 8 H 0.993 1.153 -0.035 +HETATM 9 H -0.837 2.422 -1.185 +HETATM 10 H -0.303 1.065 -2.173 +HETATM 11 H -1.815 0.951 -1.264 +HETATM 12 H 0.758 -2.422 -1.238 +HETATM 13 H 1.731 -0.953 -1.374 +HETATM 14 H 0.162 -1.062 -2.186 +HETATM 15 H 0.837 -2.422 1.185 +HETATM 16 H 0.303 -1.064 2.173 +HETATM 17 H 1.815 -0.951 1.263 +HETATM 18 H -0.758 2.422 1.237 +HETATM 19 H -1.732 0.953 1.374 +HETATM 20 H -0.163 1.062 2.186 +CONECT 1 2 4 5 7 +CONECT 2 1 3 6 8 +CONECT 3 2 9 10 11 +CONECT 4 1 12 13 14 +CONECT 5 1 15 16 17 +CONECT 6 2 18 19 20 +CONECT 7 1 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 5 +CONECT 18 6 +CONECT 19 6 +CONECT 20 6 +END diff --git a/sim/src/tests/floppy_organics/C6H14c.mmp b/sim/src/tests/floppy_organics/C6H14c.mmp new file mode 100755 index 000000000..98886bd72 --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H14c.mmp @@ -0,0 +1,55 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.032981) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H14c) +info opengroup open = True +mol (C6H14c.pdb) cpk +atom 1 (6) (40, -767, -57) def +atom 2 (6) (31, 786, -162) def +bond1 1 +atom 3 (6) (1182, 1422, 634) def +bond1 2 +atom 4 (6) (-294, -1296, 1346) def +bond1 1 +atom 5 (6) (-872, -1417, -1111) def +bond1 1 +atom 6 (6) (-1312, 1425, 230) def +bond1 2 +atom 7 (1) (1070, -1078, -287) def +bond1 1 +atom 8 (1) (206, 1020, -1223) def +bond1 2 +atom 9 (1) (1220, 2505, 475) def +bond1 3 +atom 10 (1) (1064, 1254, 1710) def +bond1 3 +atom 11 (1) (2151, 1006, 334) def +bond1 3 +atom 12 (1) (-203, -2387, 1379) def +bond1 4 +atom 13 (1) (-1322, -1048, 1635) def +bond1 4 +atom 14 (1) (372, -889, 2114) def +bond1 4 +atom 15 (1) (-745, -2505, -1121) def +bond1 5 +atom 16 (1) (-642, -1042, -2114) def +bond1 5 +atom 17 (1) (-1931, -1216, -913) def +bond1 5 +atom 18 (1) (-1523, 1296, 1298) def +bond1 6 +atom 19 (1) (-1300, 2503, 30) def +bond1 6 +atom 20 (1) (-2151, 1000, -330) def +bond1 6 +egroup (C6H14c) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H14c diff --git a/sim/src/tests/floppy_organics/C6H14c.pdb b/sim/src/tests/floppy_organics/C6H14c.pdb new file mode 100755 index 000000000..18b98d970 --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H14c.pdb @@ -0,0 +1,42 @@ +COMPND C6H14c.pdb +HETATM 1 C 0.040 -0.767 -0.057 +HETATM 2 C 0.031 0.786 -0.162 +HETATM 3 C 1.182 1.422 0.634 +HETATM 4 C -0.294 -1.296 1.346 +HETATM 5 C -0.872 -1.417 -1.111 +HETATM 6 C -1.312 1.425 0.230 +HETATM 7 H 1.070 -1.078 -0.287 +HETATM 8 H 0.206 1.020 -1.223 +HETATM 9 H 1.220 2.505 0.475 +HETATM 10 H 1.064 1.254 1.710 +HETATM 11 H 2.151 1.007 0.334 +HETATM 12 H -0.203 -2.387 1.379 +HETATM 13 H -1.322 -1.048 1.635 +HETATM 14 H 0.372 -0.889 2.114 +HETATM 15 H -0.745 -2.505 -1.121 +HETATM 16 H -0.642 -1.042 -2.114 +HETATM 17 H -1.931 -1.216 -0.913 +HETATM 18 H -1.523 1.296 1.298 +HETATM 19 H -1.300 2.503 0.030 +HETATM 20 H -2.151 1.000 -0.330 +CONECT 1 2 4 5 7 +CONECT 2 1 3 6 8 +CONECT 3 2 9 10 11 +CONECT 4 1 12 13 14 +CONECT 5 1 15 16 17 +CONECT 6 2 18 19 20 +CONECT 7 1 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 5 +CONECT 18 6 +CONECT 19 6 +CONECT 20 6 +END diff --git a/sim/src/tests/floppy_organics/C6H14d.mmp b/sim/src/tests/floppy_organics/C6H14d.mmp new file mode 100755 index 000000000..79567cb76 --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H14d.mmp @@ -0,0 +1,55 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.008495) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H14d) +info opengroup open = True +mol (C6H14d.pdb) cpk +atom 1 (6) (-18, -793, 11) def +atom 2 (6) (6, 756, 102) def +bond1 1 +atom 3 (6) (-1490, -1252, 0) def +bond1 1 +atom 4 (6) (664, -1277, -1284) def +bond1 1 +atom 5 (6) (687, -1423, 1227) def +bond1 1 +atom 6 (6) (1383, 1432, 65) def +bond1 2 +atom 7 (1) (-606, 1159, -716) def +bond1 2 +atom 8 (1) (-506, 1048, 1031) def +bond1 2 +atom 9 (1) (-1557, -2343, -86) def +bond1 3 +atom 10 (1) (-2037, -816, -845) def +bond1 3 +atom 11 (1) (-2004, -955, 921) def +bond1 3 +atom 12 (1) (600, -2367, -1375) def +bond1 4 +atom 13 (1) (1726, -1008, -1314) def +bond1 4 +atom 14 (1) (186, -841, -2170) def +bond1 4 +atom 15 (1) (627, -2516, 1189) def +bond1 5 +atom 16 (1) (229, -1100, 2170) def +bond1 5 +atom 17 (1) (1749, -1157, 1267) def +bond1 5 +atom 18 (1) (1898, 1257, -885) def +bond1 6 +atom 19 (1) (1277, 2516, 182) def +bond1 6 +atom 20 (1) (2037, 1081, 868) def +bond1 6 +egroup (C6H14d) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H14d diff --git a/sim/src/tests/floppy_organics/C6H14d.pdb b/sim/src/tests/floppy_organics/C6H14d.pdb new file mode 100755 index 000000000..e87ce69a5 --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H14d.pdb @@ -0,0 +1,42 @@ +COMPND C6H14d.pdb +HETATM 1 C -0.018 -0.793 0.011 +HETATM 2 C 0.006 0.756 0.102 +HETATM 3 C -1.490 -1.252 0.000 +HETATM 4 C 0.664 -1.277 -1.284 +HETATM 5 C 0.687 -1.423 1.227 +HETATM 6 C 1.383 1.432 0.065 +HETATM 7 H -0.606 1.159 -0.716 +HETATM 8 H -0.506 1.048 1.031 +HETATM 9 H -1.557 -2.343 -0.086 +HETATM 10 H -2.038 -0.816 -0.845 +HETATM 11 H -2.004 -0.955 0.921 +HETATM 12 H 0.600 -2.367 -1.375 +HETATM 13 H 1.726 -1.009 -1.314 +HETATM 14 H 0.186 -0.841 -2.170 +HETATM 15 H 0.627 -2.516 1.189 +HETATM 16 H 0.229 -1.100 2.170 +HETATM 17 H 1.749 -1.157 1.267 +HETATM 18 H 1.898 1.257 -0.885 +HETATM 19 H 1.277 2.516 0.182 +HETATM 20 H 2.038 1.081 0.868 +CONECT 1 2 3 4 5 +CONECT 2 1 6 7 8 +CONECT 3 1 9 10 11 +CONECT 4 1 12 13 14 +CONECT 5 1 15 16 17 +CONECT 6 2 18 19 20 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 5 +CONECT 18 6 +CONECT 19 6 +CONECT 20 6 +END diff --git a/sim/src/tests/floppy_organics/C6H14e.mmp b/sim/src/tests/floppy_organics/C6H14e.mmp new file mode 100755 index 000000000..7c6edfce9 --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H14e.mmp @@ -0,0 +1,55 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.924542, 0.375233, 0.063049, 0.021146) (7.209761) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H14e) +info opengroup open = True +mol (C6H14e.pdb) cpk +atom 1 (6) (-83, -325, -637) def +atom 2 (6) (-606, 1042, -152) def +bond1 1 +atom 3 (6) (1400, -539, -255) def +bond1 1 +atom 4 (6) (-971, -1492, -174) def +bond1 1 +atom 5 (6) (-1976, 1444, -707) def +bond1 2 +atom 6 (6) (1700, -675, 1244) def +bond1 3 +atom 7 (1) (-111, -308, -1738) def +bond1 1 +atom 8 (1) (-646, 1050, 947) def +bond1 2 +atom 9 (1) (126, 1812, -432) def +bond1 2 +atom 10 (1) (1763, -1440, -771) def +bond1 3 +atom 11 (1) (1987, 297, -660) def +bond1 3 +atom 12 (1) (-568, -2452, -514) def +bond1 4 +atom 13 (1) (-1989, -1400, -565) def +bond1 4 +atom 14 (1) (-1041, -1528, 920) def +bond1 4 +atom 15 (1) (-2773, 768, -382) def +bond1 5 +atom 16 (1) (-2252, 2452, -376) def +bond1 5 +atom 17 (1) (-1977, 1449, -1804) def +bond1 5 +atom 18 (1) (2773, -827, 1407) def +bond1 6 +atom 19 (1) (1178, -1528, 1688) def +bond1 6 +atom 20 (1) (1409, 220, 1804) def +bond1 6 +egroup (C6H14e) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H14e diff --git a/sim/src/tests/floppy_organics/C6H14e.pdb b/sim/src/tests/floppy_organics/C6H14e.pdb new file mode 100755 index 000000000..a43b30b82 --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H14e.pdb @@ -0,0 +1,42 @@ +COMPND C6H14e.pdb +HETATM 1 C -0.083 -0.325 -0.637 +HETATM 2 C -0.606 1.042 -0.152 +HETATM 3 C 1.400 -0.539 -0.255 +HETATM 4 C -0.971 -1.492 -0.174 +HETATM 5 C -1.976 1.444 -0.707 +HETATM 6 C 1.700 -0.675 1.244 +HETATM 7 H -0.111 -0.308 -1.738 +HETATM 8 H -0.646 1.050 0.947 +HETATM 9 H 0.126 1.812 -0.432 +HETATM 10 H 1.763 -1.440 -0.771 +HETATM 11 H 1.987 0.297 -0.660 +HETATM 12 H -0.568 -2.452 -0.514 +HETATM 13 H -1.989 -1.400 -0.565 +HETATM 14 H -1.041 -1.528 0.920 +HETATM 15 H -2.773 0.768 -0.382 +HETATM 16 H -2.252 2.452 -0.376 +HETATM 17 H -1.977 1.449 -1.804 +HETATM 18 H 2.773 -0.827 1.407 +HETATM 19 H 1.178 -1.528 1.688 +HETATM 20 H 1.409 0.220 1.804 +CONECT 1 2 3 4 7 +CONECT 2 1 5 8 9 +CONECT 3 1 6 10 11 +CONECT 4 1 12 13 14 +CONECT 5 2 15 16 17 +CONECT 6 3 18 19 20 +CONECT 7 1 +CONECT 8 2 +CONECT 9 2 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 5 +CONECT 18 6 +CONECT 19 6 +CONECT 20 6 +END diff --git a/sim/src/tests/floppy_organics/C6H14f.mmp b/sim/src/tests/floppy_organics/C6H14f.mmp new file mode 100755 index 000000000..8a82abe9c --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H14f.mmp @@ -0,0 +1,55 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.964532, -0.261868, -0.013408, -0.030374) (4.958572) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H14f) +info opengroup open = True +mol (C6H14f.pdb) cpk +atom 1 (6) (159, 884, -296) def +atom 2 (6) (-1048, 127, 307) def +bond1 1 +atom 3 (6) (-1247, -1292, -255) def +bond1 2 +atom 4 (6) (1565, 547, 236) def +bond1 1 +atom 5 (6) (-2330, 954, 112) def +bond1 2 +atom 6 (6) (2155, -805, -185) def +bond1 4 +atom 7 (1) (149, 762, -1391) def +bond1 1 +atom 8 (1) (-4, 1954, -116) def +bond1 1 +atom 9 (1) (-874, 36, 1391) def +bond1 2 +atom 10 (1) (-2154, -1744, 162) def +bond1 3 +atom 11 (1) (-411, -1954, -20) def +bond1 3 +atom 12 (1) (-1361, -1272, -1346) def +bond1 3 +atom 13 (1) (2243, 1339, -108) def +bond1 4 +atom 14 (1) (1564, 616, 1333) def +bond1 4 +atom 15 (1) (-2507, 1166, -950) def +bond1 5 +atom 16 (1) (-3211, 427, 495) def +bond1 5 +atom 17 (1) (-2263, 1916, 633) def +bond1 5 +atom 18 (1) (3211, -875, 100) def +bond1 6 +atom 19 (1) (2093, -944, -1270) def +bond1 6 +atom 20 (1) (1638, -1645, 288) def +bond1 6 +egroup (C6H14f) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H14f diff --git a/sim/src/tests/floppy_organics/C6H14f.pdb b/sim/src/tests/floppy_organics/C6H14f.pdb new file mode 100755 index 000000000..c5ab06f45 --- /dev/null +++ b/sim/src/tests/floppy_organics/C6H14f.pdb @@ -0,0 +1,42 @@ +COMPND C6H14f.pdb +HETATM 1 C 0.159 0.884 -0.296 +HETATM 2 C -1.048 0.127 0.307 +HETATM 3 C -1.247 -1.292 -0.255 +HETATM 4 C 1.565 0.547 0.236 +HETATM 5 C -2.330 0.954 0.112 +HETATM 6 C 2.155 -0.805 -0.185 +HETATM 7 H 0.149 0.762 -1.391 +HETATM 8 H -0.004 1.954 -0.116 +HETATM 9 H -0.874 0.036 1.391 +HETATM 10 H -2.154 -1.744 0.162 +HETATM 11 H -0.411 -1.954 -0.020 +HETATM 12 H -1.361 -1.272 -1.346 +HETATM 13 H 2.243 1.339 -0.108 +HETATM 14 H 1.564 0.616 1.333 +HETATM 15 H -2.507 1.166 -0.950 +HETATM 16 H -3.211 0.427 0.495 +HETATM 17 H -2.263 1.916 0.633 +HETATM 18 H 3.211 -0.875 0.100 +HETATM 19 H 2.093 -0.944 -1.270 +HETATM 20 H 1.638 -1.645 0.288 +CONECT 1 2 4 7 8 +CONECT 2 1 3 5 9 +CONECT 3 2 10 11 12 +CONECT 4 1 6 13 14 +CONECT 5 2 15 16 17 +CONECT 6 4 18 19 20 +CONECT 7 1 +CONECT 8 1 +CONECT 9 2 +CONECT 10 3 +CONECT 11 3 +CONECT 12 3 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 5 +CONECT 18 6 +CONECT 19 6 +CONECT 20 6 +END diff --git a/sim/src/tests/floppy_organics/C7H14a.mmp b/sim/src/tests/floppy_organics/C7H14a.mmp new file mode 100755 index 000000000..bcd804510 --- /dev/null +++ b/sim/src/tests/floppy_organics/C7H14a.mmp @@ -0,0 +1,56 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.932023, -0.360947, -0.011797, 0.030194) (3.547330) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C7H14a) +info opengroup open = True +mol (C7H14a.pdb) cpk +atom 1 (6) (283, -1520, -439) def +atom 2 (6) (1631, -800, -220) def +bond1 1 +atom 3 (6) (1583, 692, 175) def +bond1 2 +atom 4 (6) (-884, 1453, 233) def +atom 5 (6) (-869, -1145, 511) def +bond1 1 +atom 6 (6) (-1636, 122, 91) def +bond1 4 5 +atom 7 (6) (480, 1547, -475) def +bond1 3 4 +atom 8 (1) (472, -2598, -376) def +bond1 1 +atom 9 (1) (-58, -1345, -1470) def +bond1 1 +atom 10 (1) (2200, -1332, 555) def +bond1 2 +atom 11 (1) (2219, -910, -1141) def +bond1 2 +atom 12 (1) (2562, 1130, -58) def +bond1 3 +atom 13 (1) (1476, 776, 1264) def +bond1 3 +atom 14 (1) (-1534, 2255, -139) def +bond1 4 +atom 15 (1) (-727, 1666, 1300) def +bond1 4 +atom 16 (1) (-1586, -1976, 532) def +bond1 5 +atom 17 (1) (-500, -1040, 1542) def +bond1 5 +atom 18 (1) (-2562, 190, 677) def +bond1 6 +atom 19 (1) (-1953, -3, -956) def +bond1 6 +atom 20 (1) (797, 2598, -446) def +bond1 7 +atom 21 (1) (374, 1300, -1542) def +bond1 7 +egroup (C7H14a) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C7H14a diff --git a/sim/src/tests/floppy_organics/C7H14a.pdb b/sim/src/tests/floppy_organics/C7H14a.pdb new file mode 100755 index 000000000..aea7d58b3 --- /dev/null +++ b/sim/src/tests/floppy_organics/C7H14a.pdb @@ -0,0 +1,44 @@ +COMPND C7H14a.pdb +HETATM 1 C 0.283 -1.520 -0.439 +HETATM 2 C 1.631 -0.800 -0.220 +HETATM 3 C 1.583 0.692 0.175 +HETATM 4 C -0.884 1.453 0.233 +HETATM 5 C -0.869 -1.145 0.511 +HETATM 6 C -1.636 0.122 0.091 +HETATM 7 C 0.480 1.547 -0.475 +HETATM 8 H 0.472 -2.598 -0.376 +HETATM 9 H -0.058 -1.345 -1.470 +HETATM 10 H 2.200 -1.332 0.555 +HETATM 11 H 2.219 -0.910 -1.141 +HETATM 12 H 2.562 1.130 -0.058 +HETATM 13 H 1.476 0.776 1.264 +HETATM 14 H -1.534 2.255 -0.139 +HETATM 15 H -0.727 1.666 1.300 +HETATM 16 H -1.586 -1.976 0.532 +HETATM 17 H -0.500 -1.040 1.542 +HETATM 18 H -2.562 0.190 0.677 +HETATM 19 H -1.953 -0.003 -0.956 +HETATM 20 H 0.797 2.598 -0.446 +HETATM 21 H 0.374 1.300 -1.542 +CONECT 1 2 5 8 9 +CONECT 2 1 3 10 11 +CONECT 3 2 7 12 13 +CONECT 4 6 7 14 15 +CONECT 5 1 6 16 17 +CONECT 6 4 5 18 19 +CONECT 7 3 4 20 21 +CONECT 8 1 +CONECT 9 1 +CONECT 10 2 +CONECT 11 2 +CONECT 12 3 +CONECT 13 3 +CONECT 14 4 +CONECT 15 4 +CONECT 16 5 +CONECT 17 5 +CONECT 18 6 +CONECT 19 6 +CONECT 20 7 +CONECT 21 7 +END diff --git a/sim/src/tests/floppy_organics/C7H14b.mmp b/sim/src/tests/floppy_organics/C7H14b.mmp new file mode 100755 index 000000000..4b83d4592 --- /dev/null +++ b/sim/src/tests/floppy_organics/C7H14b.mmp @@ -0,0 +1,56 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.927860, -0.361381, 0.001607, -0.092069) (4.190606) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C7H14b) +info opengroup open = True +mol (C7H14b.pdb) cpk +atom 1 (6) (-904, 1188, 378) def +atom 2 (6) (510, 1610, -61) def +bond1 1 +atom 3 (6) (1646, 696, 419) def +bond1 2 +atom 4 (6) (350, -1555, 360) def +atom 5 (6) (-1561, 92, -477) def +bond1 1 +atom 6 (6) (-914, -1326, -486) def +bond1 4 5 +atom 7 (6) (1589, -753, -80) def +bond1 3 4 +atom 8 (1) (-1558, 2069, 328) def +bond1 1 +atom 9 (1) (-888, 897, 1438) def +bond1 1 +atom 10 (1) (707, 2624, 309) def +bond1 2 +atom 11 (1) (534, 1681, -1159) def +bond1 2 +atom 12 (1) (2604, 1135, 113) def +bond1 3 +atom 13 (1) (1657, 693, 1520) def +bond1 3 +atom 14 (1) (591, -2624, 296) def +bond1 4 +atom 15 (1) (146, -1364, 1423) def +bond1 4 +atom 16 (1) (-2604, -4, -151) def +bond1 5 +atom 17 (1) (-1612, 465, -1508) def +bond1 5 +atom 18 (1) (-1667, -2056, -161) def +bond1 6 +atom 19 (1) (-672, -1600, -1520) def +bond1 6 +atom 20 (1) (1649, -768, -1178) def +bond1 7 +atom 21 (1) (2490, -1270, 275) def +bond1 7 +egroup (C7H14b) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C7H14b diff --git a/sim/src/tests/floppy_organics/C7H14b.pdb b/sim/src/tests/floppy_organics/C7H14b.pdb new file mode 100755 index 000000000..6d31bd542 --- /dev/null +++ b/sim/src/tests/floppy_organics/C7H14b.pdb @@ -0,0 +1,44 @@ +COMPND C7H14b.pdb +HETATM 1 C -0.904 1.188 0.378 +HETATM 2 C 0.510 1.610 -0.061 +HETATM 3 C 1.646 0.696 0.419 +HETATM 4 C 0.350 -1.555 0.360 +HETATM 5 C -1.561 0.092 -0.477 +HETATM 6 C -0.914 -1.326 -0.486 +HETATM 7 C 1.589 -0.753 -0.080 +HETATM 8 H -1.558 2.069 0.328 +HETATM 9 H -0.888 0.897 1.438 +HETATM 10 H 0.707 2.624 0.309 +HETATM 11 H 0.534 1.681 -1.159 +HETATM 12 H 2.604 1.135 0.113 +HETATM 13 H 1.657 0.693 1.520 +HETATM 14 H 0.591 -2.624 0.296 +HETATM 15 H 0.146 -1.364 1.423 +HETATM 16 H -2.604 -0.004 -0.151 +HETATM 17 H -1.612 0.465 -1.508 +HETATM 18 H -1.667 -2.056 -0.161 +HETATM 19 H -0.672 -1.600 -1.520 +HETATM 20 H 1.649 -0.768 -1.178 +HETATM 21 H 2.490 -1.270 0.275 +CONECT 1 2 5 8 9 +CONECT 2 1 3 10 11 +CONECT 3 2 7 12 13 +CONECT 4 6 7 14 15 +CONECT 5 1 6 16 17 +CONECT 6 4 5 18 19 +CONECT 7 3 4 20 21 +CONECT 8 1 +CONECT 9 1 +CONECT 10 2 +CONECT 11 2 +CONECT 12 3 +CONECT 13 3 +CONECT 14 4 +CONECT 15 4 +CONECT 16 5 +CONECT 17 5 +CONECT 18 6 +CONECT 19 6 +CONECT 20 7 +CONECT 21 7 +END diff --git a/sim/src/tests/floppy_organics/C7H14c.mmp b/sim/src/tests/floppy_organics/C7H14c.mmp new file mode 100755 index 000000000..c9b420c63 --- /dev/null +++ b/sim/src/tests/floppy_organics/C7H14c.mmp @@ -0,0 +1,56 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.120499, -0.957702, -0.246747, 0.086039) (3.528416) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C7H14c) +info opengroup open = True +mol (C7H14c.pdb) cpk +atom 1 (6) (-828, 468, -1455) def +atom 2 (6) (690, 705, -1349) def +bond1 1 +atom 3 (6) (1324, 250, -23) def +bond1 2 +atom 4 (6) (-843, 249, 1444) def +atom 5 (6) (-1321, -872, -881) def +bond1 1 +atom 6 (6) (-1211, -1030, 670) def +bond1 4 5 +atom 7 (6) (629, 717, 1267) def +bond1 3 4 +atom 8 (1) (-1124, 530, -2510) def +bond1 1 +atom 9 (1) (-1363, 1286, -956) def +bond1 1 +atom 10 (1) (1200, 171, -2162) def +bond1 2 +atom 11 (1) (896, 1771, -1512) def +bond1 2 +atom 12 (1) (2370, 582, 0) def +bond1 3 +atom 13 (1) (1370, -847, -14) def +bond1 3 +atom 14 (1) (-1031, 73, 2510) def +bond1 4 +atom 15 (1) (-1530, 1054, 1157) def +bond1 4 +atom 16 (1) (-2370, -992, -1177) def +bond1 5 +atom 17 (1) (-779, -1690, -1374) def +bond1 5 +atom 18 (1) (-2169, -1400, 1053) def +bond1 6 +atom 19 (1) (-481, -1812, 915) def +bond1 6 +atom 20 (1) (1225, 340, 2107) def +bond1 7 +atom 21 (1) (671, 1812, 1339) def +bond1 7 +egroup (C7H14c) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C7H14c diff --git a/sim/src/tests/floppy_organics/C7H14c.pdb b/sim/src/tests/floppy_organics/C7H14c.pdb new file mode 100755 index 000000000..521e467f5 --- /dev/null +++ b/sim/src/tests/floppy_organics/C7H14c.pdb @@ -0,0 +1,44 @@ +COMPND C7H14c.pdb +HETATM 1 C -0.828 0.468 -1.455 +HETATM 2 C 0.690 0.705 -1.349 +HETATM 3 C 1.324 0.250 -0.023 +HETATM 4 C -0.843 0.249 1.444 +HETATM 5 C -1.321 -0.872 -0.881 +HETATM 6 C -1.211 -1.030 0.670 +HETATM 7 C 0.629 0.717 1.267 +HETATM 8 H -1.124 0.530 -2.510 +HETATM 9 H -1.363 1.286 -0.956 +HETATM 10 H 1.200 0.171 -2.162 +HETATM 11 H 0.896 1.771 -1.512 +HETATM 12 H 2.370 0.582 0.000 +HETATM 13 H 1.370 -0.847 -0.014 +HETATM 14 H -1.031 0.073 2.510 +HETATM 15 H -1.530 1.054 1.157 +HETATM 16 H -2.370 -0.992 -1.177 +HETATM 17 H -0.779 -1.690 -1.374 +HETATM 18 H -2.169 -1.400 1.053 +HETATM 19 H -0.481 -1.812 0.915 +HETATM 20 H 1.225 0.340 2.107 +HETATM 21 H 0.671 1.812 1.339 +CONECT 1 2 5 8 9 +CONECT 2 1 3 10 11 +CONECT 3 2 7 12 13 +CONECT 4 6 7 14 15 +CONECT 5 1 6 16 17 +CONECT 6 4 5 18 19 +CONECT 7 3 4 20 21 +CONECT 8 1 +CONECT 9 1 +CONECT 10 2 +CONECT 11 2 +CONECT 12 3 +CONECT 13 3 +CONECT 14 4 +CONECT 15 4 +CONECT 16 5 +CONECT 17 5 +CONECT 18 6 +CONECT 19 6 +CONECT 20 7 +CONECT 21 7 +END diff --git a/sim/src/tests/floppy_organics/CH4.mmp b/sim/src/tests/floppy_organics/CH4.mmp new file mode 100755 index 000000000..4f268c21c --- /dev/null +++ b/sim/src/tests/floppy_organics/CH4.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.583308, -0.320020, 0.715625, -0.212650) (3.159698) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (CH4) +info opengroup open = True +mol (CH4.pdb) cpk +atom 1 (6) (205, 296, 6) def +atom 2 (1) (-771, 787, 18) def +bond1 1 +atom 3 (1) (67, -787, 6) def +bond1 1 +atom 4 (1) (771, 592, 892) def +bond1 1 +atom 5 (1) (750, 594, -892) def +bond1 1 +egroup (CH4) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH4 diff --git a/sim/src/tests/floppy_organics/CH4.pdb b/sim/src/tests/floppy_organics/CH4.pdb new file mode 100755 index 000000000..211e52e93 --- /dev/null +++ b/sim/src/tests/floppy_organics/CH4.pdb @@ -0,0 +1,12 @@ +COMPND CH4.pdb +HETATM 1 C 0.205 0.296 0.006 +HETATM 2 H -0.771 0.787 0.018 +HETATM 3 H 0.067 -0.787 0.006 +HETATM 4 H 0.771 0.592 0.892 +HETATM 5 H 0.750 0.594 -0.892 +CONECT 1 2 3 4 5 +CONECT 2 1 +CONECT 3 1 +CONECT 4 1 +CONECT 5 1 +END diff --git a/sim/src/tests/floppy_organics/CreateTests.py b/sim/src/tests/floppy_organics/CreateTests.py new file mode 100755 index 000000000..a96fe319f --- /dev/null +++ b/sim/src/tests/floppy_organics/CreateTests.py @@ -0,0 +1,38 @@ +#!/usr/bin/python + +import os +import sys +import MmpFile +import XyzFile + +damianFiles = filter(lambda x: x, + os.popen("ls C*.mmp").read().split("\n")) + +for df in damianFiles: + prefix = df[:df.index(".")] + testPrefix = "test_" + prefix + damianMmp = MmpFile.MmpFile() + damianMmp.read(df) + + # Generate the xyzcmp file + xyzcmpFilename = testPrefix + ".xyzcmp" + outf = open(xyzcmpFilename, "w") + xyzcmp = damianMmp.convertToXyz() + xyzcmp.write(df, outf) + outf.close() + + # Make a perturbed copy of the MMP, use it for test_{foo}.mmp + dmClone = damianMmp.clone() + dmClone.perturb() + testMmpFilename = testPrefix + ".mmp" + outf = open(testMmpFilename, "w") + dmClone.write(outf) + outf.close() + + # Create test_{foo}.test + testTestFilename = testPrefix + ".test" + outf = open(testTestFilename, "w") + outf.write("TYPE struct\n") + outf.close() + + print "Test input files generated for " + testPrefix diff --git a/sim/src/tests/floppy_organics/MmpFile.py b/sim/src/tests/floppy_organics/MmpFile.py new file mode 100755 index 000000000..9a2e9d81d --- /dev/null +++ b/sim/src/tests/floppy_organics/MmpFile.py @@ -0,0 +1,123 @@ +#!/usr/bin/python + +"""Grab one of Damian's minimized MMP files, perturb each atom's +position by some fraction of an angstrom, write out the result as +another MMP file, which becomes an input file for the test. + +$Id$ +""" + +__author__ = "Will" + +import re +import os +import sys +import string +import Atom + +class MmpFile: + """This is meant to be a Python class representing a MMP file. It + is not intended to represent ALL the information in a MMP file, + although it might do that in some distant-future version. Right + now, its biggest strength is that it allows us to easily modify + the positions of the atoms in an MMP file, and write out the + resulting modified MMP file.""" + class _Line: + def fromMmp(self, line): + self._str = line + def str(self): + return self._str + def clone(self, owner): + ln = MmpFile._Line() + ln._str = self._str + return ln + class _AtomHolder: + """Atom holders are indices into the MmpFile.atoms list, + and that's done so that an entry in MmpFile.lines can be + a pointer into the MmpFile.atoms list. When a file is + cloned, we clone the atoms but keep the same lines. + """ + def __init__(self, owner): + self._owner = owner + def fromMmp(self, line): + atoms = self._owner.atoms + self._index = len(atoms) + a = Atom.Atom() + a.fromMmp(line) + atoms.append(a) + def str(self): + a = self._owner.atoms[self._index] + return a.toMmpString() + def clone(self, newowner): + other = MmpFile._AtomHolder(newowner) + other._index = self._index + return other + def __init__(self): + self.atoms = [ ] + self.lines = [ ] + def clone(self): + other = MmpFile() + for x in self.lines: + other.lines.append(x.clone(other)) + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + for line in lines.split("\n"): + try: + atm = MmpFile._AtomHolder(self) + atm.fromMmp(line) + except Atom.NotAtomException: + atm = MmpFile._Line() + atm.fromMmp(line) + self.lines.append(atm) + def write(self, outf=None): + if outf == None: + outf = sys.stdout + for ln in self.lines: + outf.write(ln.str() + "\n") + def convertToXyz(self): + import XyzFile + xyz = XyzFile.XyzFile() + for a in self.atoms: + xyz.atoms.append(a) + return xyz + def perturb(self): + import random + A = 0.5 # some small number of angstroms + A = A / (3 ** .5) # amount in one dimension + for i in range(len(self)): + x, y, z = self[i] + x += random.normalvariate(0.0, A) + y += random.normalvariate(0.0, A) + z += random.normalvariate(0.0, A) + self[i] = (x, y, z) + +if __name__ == "__main__": + """What follows is a specific usage of the MmpFile class. It's not + the only way it could be used, but it demonstrates something we're + going to want to do very soon as we generate test cases from + Damian's MMP files.""" + m = MmpFile() + #input = "C14H20.mmp" + input = "C3H8.mmp" + m.read(input) + m.perturb() + #outf = os.popen("diff -u - %s | less" % input, "w") + outf = os.popen("diff -u - %s" % input, "w") + m.write(outf) + outf.close() diff --git a/sim/src/tests/floppy_organics/XyzFile.py b/sim/src/tests/floppy_organics/XyzFile.py new file mode 100755 index 000000000..e614f1129 --- /dev/null +++ b/sim/src/tests/floppy_organics/XyzFile.py @@ -0,0 +1,89 @@ +#!/usr/bin/python + +import sys +import string +import Atom + +class XyzFile: + """Python class to contain information from an XYZ file""" + def __init__(self): + self.atoms = [ ] + def clone(self): + other = XyzFile() + other.atoms = [ ] + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + lines = lines.split("\n") + numAtoms = string.atoi(lines[0]) + lines = lines[2:] + for i in range(numAtoms): + element, x, y, z = lines[i].split() + x, y, z = map(string.atof, (x, y, z)) + a = Atom.Atom() + a.fromXyz(element, x, y, z) + self.atoms.append(a) + def write(self, title, outf=None): + if outf == None: + outf = sys.stdout + outf.write("%d\n%s\n" % (len(self.atoms), title)) + for atm in self.atoms: + outf.write(atm.toXyzString() + "\n") + +if __name__ == "__main__": + # do a little test + class StringCollector: + def __init__(self): + self.contents = "" + def write(self, x): + self.contents += x + import sys + example_xyz_file = """15 +RMS=0.994508 +C -0.193641 2.900593 -0.026523 +X 0.093601 3.502437 0.394872 +X -0.623522 3.154064 -0.637458 +C -1.079249 2.005273 0.890906 +X -1.803795 1.958430 0.584626 +X -1.090331 2.310792 1.617200 +C 0.986482 2.029986 -0.552402 +X 0.945121 1.985940 -1.338110 +X 1.667645 2.347089 -0.314849 +C -0.443634 0.583852 0.936816 +X -0.955793 0.061908 0.643109 +X -0.248030 0.411844 1.680547 +C 0.839719 0.603152 0.054672 +X 1.466374 0.446893 0.504740 +X 0.762053 0.079748 -0.528147 +""" + xyz = XyzFile() + xyz.readstring(example_xyz_file) + # test 1 + sc = StringCollector() + ss, sys.stdout = sys.stdout, sc + xyz.write("RMS=0.994508") + sys.stdout = ss + assert sc.contents == example_xyz_file + # test 2 + for i in range(len(xyz)): + print xyz.getAtom(i) + print + for i in range(8): + xyz[i] = (1.0, 2.0, 3.0) + for i in range(len(xyz)): + print xyz.getAtom(i) diff --git a/sim/src/tests/floppy_organics/test_C2H6.md5sums b/sim/src/tests/floppy_organics/test_C2H6.md5sums new file mode 100755 index 000000000..b990b9989 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C2H6.md5sums @@ -0,0 +1,2 @@ +stdout 15F493B2143BA2ED7C40A960453C2F1F +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C2H6.mmp b/sim/src/tests/floppy_organics/test_C2H6.mmp new file mode 100755 index 000000000..139ac117c --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C2H6.mmp @@ -0,0 +1,32 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.206570) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C2H6) +info opengroup open = True +mol (C2H6.pdb) def +atom 1 (6) (-938, 872, -98) def +atom 2 (6) (842, -168, -396) def +bond1 1 +atom 3 (1) (-396, 1886, 149) def +bond1 1 +atom 4 (1) (-1544, 340, 943) def +bond1 1 +atom 5 (1) (-951, 66, -735) def +bond1 1 +atom 6 (1) (714, -1196, -306) def +bond1 2 +atom 7 (1) (842, 164, 1046) def +bond1 2 +atom 8 (1) (1401, -452, -707) def +bond1 2 +egroup (C2H6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C2H6 + diff --git a/sim/src/tests/floppy_organics/test_C2H6.test b/sim/src/tests/floppy_organics/test_C2H6.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C2H6.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C2H6.xyzcmp b/sim/src/tests/floppy_organics/test_C2H6.xyzcmp new file mode 100755 index 000000000..84d490c11 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C2H6.xyzcmp @@ -0,0 +1,10 @@ +8 +C2H6.mmp +C -0.681000 0.350000 0.000000 +C 0.681000 -0.350000 0.000000 +H -0.569000 1.439000 0.000000 +H -1.269000 0.078000 0.883000 +H -1.269000 0.078000 -0.883000 +H 0.569000 -1.439000 0.000000 +H 1.269000 -0.078000 0.883000 +H 1.269000 -0.078000 -0.883000 diff --git a/sim/src/tests/floppy_organics/test_C3H8.md5sums b/sim/src/tests/floppy_organics/test_C3H8.md5sums new file mode 100755 index 000000000..d4529fbd6 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C3H8.md5sums @@ -0,0 +1,2 @@ +stdout 08237E44ACFEDE237B81C8159D0F1E6D +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C3H8.mmp b/sim/src/tests/floppy_organics/test_C3H8.mmp new file mode 100755 index 000000000..ed362503b --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C3H8.mmp @@ -0,0 +1,38 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.595080) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C3H8) +info opengroup open = True +mol (C3H8.pdb) def +atom 1 (6) (1146, -423, -208) def +atom 2 (6) (176, 96, 345) def +bond1 1 +atom 3 (6) (-494, 1154, 299) def +bond1 2 +atom 4 (1) (1725, -1240, -104) def +bond1 1 +atom 5 (1) (1805, 209, 1090) def +bond1 1 +atom 6 (1) (1428, 301, -436) def +bond1 1 +atom 7 (1) (-988, -771, 998) def +bond1 2 +atom 8 (1) (-243, -1299, -775) def +bond1 2 +atom 9 (1) (-1838, 587, 345) def +bond1 3 +atom 10 (1) (-325, 881, -1344) def +bond1 3 +atom 11 (1) (-368, 1408, 1208) def +bond1 3 +egroup (C3H8) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H8 + diff --git a/sim/src/tests/floppy_organics/test_C3H8.test b/sim/src/tests/floppy_organics/test_C3H8.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C3H8.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C3H8.xyzcmp b/sim/src/tests/floppy_organics/test_C3H8.xyzcmp new file mode 100755 index 000000000..78e3ffbf7 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C3H8.xyzcmp @@ -0,0 +1,13 @@ +11 +C3H8.mmp +C 1.396000 -0.493000 -0.002000 +C -0.137000 -0.470000 0.013000 +C -0.714000 0.948000 0.020000 +H 1.777000 -1.520000 0.002000 +H 1.809000 0.020000 0.874000 +H 1.793000 0.007000 -0.894000 +H -0.500000 -1.016000 0.894000 +H -0.519000 -1.016000 -0.860000 +H -1.809000 0.942000 0.069000 +H -0.426000 1.495000 -0.886000 +H -0.346000 1.520000 0.880000 diff --git a/sim/src/tests/floppy_organics/test_C4H10a.md5sums b/sim/src/tests/floppy_organics/test_C4H10a.md5sums new file mode 100755 index 000000000..7e6572f79 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H10a.md5sums @@ -0,0 +1,2 @@ +stdout D636C3AB1718CB15CB178A17FEC2375B +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C4H10a.mmp b/sim/src/tests/floppy_organics/test_C4H10a.mmp new file mode 100755 index 000000000..66047cbd1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H10a.mmp @@ -0,0 +1,44 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.054739) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C4H10a) +info opengroup open = True +mol (C4H10a.pdb) def +atom 1 (6) (2463, -643, 125) def +atom 2 (6) (287, -650, -117) def +bond1 1 +atom 3 (6) (-449, 895, -23) def +bond1 2 +atom 4 (6) (-1580, 805, 192) def +bond1 3 +atom 5 (1) (2644, -2514, 501) def +bond1 1 +atom 6 (1) (2031, -373, 678) def +bond1 1 +atom 7 (1) (1811, -242, -1167) def +bond1 1 +atom 8 (1) (-1072, -1006, 915) def +bond1 2 +atom 9 (1) (-454, -1331, -765) def +bond1 2 +atom 10 (1) (-40, 1758, -964) def +bond1 3 +atom 11 (1) (335, 1288, 900) def +bond1 3 +atom 12 (1) (-1969, 2015, -217) def +bond1 4 +atom 13 (1) (-2338, 778, 818) def +bond1 4 +atom 14 (1) (-2004, 27, -1225) def +bond1 4 +egroup (C4H10a) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H10a + diff --git a/sim/src/tests/floppy_organics/test_C4H10a.test b/sim/src/tests/floppy_organics/test_C4H10a.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H10a.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C4H10a.xyzcmp b/sim/src/tests/floppy_organics/test_C4H10a.xyzcmp new file mode 100755 index 000000000..f5594b525 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H10a.xyzcmp @@ -0,0 +1,16 @@ +14 +C4H10a.mmp +C 1.795000 -0.803000 -0.005000 +C 0.265000 -0.719000 -0.003000 +C -0.265000 0.719000 0.003000 +C -1.795000 0.803000 0.005000 +H 2.137000 -1.843000 -0.010000 +H 2.221000 -0.317000 0.881000 +H 2.219000 -0.309000 -0.887000 +H -0.130000 -1.253000 0.873000 +H -0.132000 -1.246000 -0.882000 +H 0.130000 1.253000 -0.873000 +H 0.132000 1.247000 0.882000 +H -2.137000 1.843000 0.010000 +H -2.219000 0.309000 0.887000 +H -2.221000 0.317000 -0.881000 diff --git a/sim/src/tests/floppy_organics/test_C4H10b.md5sums b/sim/src/tests/floppy_organics/test_C4H10b.md5sums new file mode 100755 index 000000000..250c0aa98 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H10b.md5sums @@ -0,0 +1,2 @@ +stdout FAB0D7F17FEC227D842D487AA53C5BC8 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C4H10b.mmp b/sim/src/tests/floppy_organics/test_C4H10b.mmp new file mode 100755 index 000000000..9bdc0c298 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H10b.mmp @@ -0,0 +1,44 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.371581) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C4H10b) +info opengroup open = True +mol (C4H10b.pdb) def +atom 1 (6) (733, -425, -1122) def +atom 2 (6) (-560, -241, -730) def +bond1 1 +atom 3 (6) (91, -541, 729) def +bond1 2 +atom 4 (6) (29, 591, 1104) def +bond1 3 +atom 5 (1) (94, -686, -2394) def +bond1 1 +atom 6 (1) (1065, -1644, -1271) def +bond1 1 +atom 7 (1) (1578, 421, -1410) def +bond1 1 +atom 8 (1) (-972, -1988, -1158) def +bond1 2 +atom 9 (1) (-999, 741, -1415) def +bond1 2 +atom 10 (1) (-1479, -919, 1022) def +bond1 3 +atom 11 (1) (-128, -1373, 1113) def +bond1 3 +atom 12 (1) (267, 571, 2777) def +bond1 4 +atom 13 (1) (637, 1183, 1134) def +bond1 4 +atom 14 (1) (-481, 1503, 1251) def +bond1 4 +egroup (C4H10b) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H10b + diff --git a/sim/src/tests/floppy_organics/test_C4H10b.test b/sim/src/tests/floppy_organics/test_C4H10b.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H10b.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C4H10b.xyzcmp b/sim/src/tests/floppy_organics/test_C4H10b.xyzcmp new file mode 100755 index 000000000..3ec3a749c --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H10b.xyzcmp @@ -0,0 +1,16 @@ +14 +C4H10b.mmp +C 0.811000 -0.628000 -1.443000 +C -0.541000 -0.560000 -0.723000 +C -0.449000 -0.600000 0.812000 +C 0.186000 0.648000 1.435000 +H 0.681000 -0.611000 -2.529000 +H 1.346000 -1.551000 -1.185000 +H 1.460000 0.214000 -1.176000 +H -1.168000 -1.395000 -1.062000 +H -1.070000 0.356000 -1.026000 +H -1.460000 -0.729000 1.220000 +H 0.118000 -1.491000 1.116000 +H 0.193000 0.589000 2.529000 +H 1.222000 0.787000 1.110000 +H -0.372000 1.551000 1.157000 diff --git a/sim/src/tests/floppy_organics/test_C4H10c.md5sums b/sim/src/tests/floppy_organics/test_C4H10c.md5sums new file mode 100755 index 000000000..8dfce122e --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H10c.md5sums @@ -0,0 +1,2 @@ +stdout 24B6DA39827462D507CED18110552E3C +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C4H10c.mmp b/sim/src/tests/floppy_organics/test_C4H10c.mmp new file mode 100755 index 000000000..37af005b6 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H10c.mmp @@ -0,0 +1,44 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.326870) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C4H10c) +info opengroup open = True +mol (C4H10c.pdb) def +atom 1 (6) (965, 1541, -654) def +atom 2 (6) (294, -148, 255) def +bond1 1 +atom 3 (6) (-1485, -42, -770) def +bond1 2 +atom 4 (6) (895, -1280, 349) def +bond1 2 +atom 5 (1) (-34, 1894, 583) def +bond1 1 +atom 6 (1) (567, 1145, -888) def +bond1 1 +atom 7 (1) (1134, 982, 419) def +bond1 1 +atom 8 (1) (-159, -68, 1636) def +bond1 2 +atom 9 (1) (-1273, -989, 203) def +bond1 3 +atom 10 (1) (-2431, 563, -227) def +bond1 3 +atom 11 (1) (-1372, 195, -1326) def +bond1 3 +atom 12 (1) (354, -2042, 9) def +bond1 4 +atom 13 (1) (2084, -1431, 147) def +bond1 4 +atom 14 (1) (1108, -869, -990) def +bond1 4 +egroup (C4H10c) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H10c + diff --git a/sim/src/tests/floppy_organics/test_C4H10c.test b/sim/src/tests/floppy_organics/test_C4H10c.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H10c.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C4H10c.xyzcmp b/sim/src/tests/floppy_organics/test_C4H10c.xyzcmp new file mode 100755 index 000000000..380df9367 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H10c.xyzcmp @@ -0,0 +1,16 @@ +14 +C4H10c.mmp +C 0.741000 1.312000 -0.109000 +C 0.087000 -0.019000 0.291000 +C -1.330000 -0.130000 -0.290000 +C 0.958000 -1.211000 -0.131000 +H 0.133000 2.164000 0.214000 +H 0.850000 1.375000 -1.200000 +H 1.738000 1.422000 0.333000 +H 0.004000 -0.036000 1.388000 +H -1.815000 -1.062000 0.020000 +H -1.962000 0.702000 0.036000 +H -1.310000 -0.119000 -1.388000 +H 0.520000 -2.164000 0.187000 +H 1.962000 -1.140000 0.300000 +H 1.065000 -1.242000 -1.223000 diff --git a/sim/src/tests/floppy_organics/test_C4H8.md5sums b/sim/src/tests/floppy_organics/test_C4H8.md5sums new file mode 100755 index 000000000..5e623405b --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H8.md5sums @@ -0,0 +1,2 @@ +stdout E410DA6C5DB9B2565BDABB97EBF12FE6 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C4H8.mmp b/sim/src/tests/floppy_organics/test_C4H8.mmp new file mode 100755 index 000000000..581e36dcc --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H8.mmp @@ -0,0 +1,40 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.754946) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C4H8) +info opengroup open = True +mol (C4H8.pdb) def +atom 1 (6) (-1601, 415, 80) def +atom 2 (6) (586, 1095, 251) def +bond1 1 +atom 3 (6) (-356, -896, -23) def +bond1 1 +atom 4 (6) (661, -887, 247) def +bond1 2 3 +atom 5 (1) (-1396, 703, 508) def +bond1 1 +atom 6 (1) (-1514, 1286, -820) def +bond1 1 +atom 7 (1) (618, 1882, 1292) def +bond1 2 +atom 8 (1) (788, 1972, -649) def +bond1 2 +atom 9 (1) (-1456, -1655, -81) def +bond1 3 +atom 10 (1) (-512, -1525, -1479) def +bond1 3 +atom 11 (1) (1144, -1192, -46) def +bond1 4 +atom 12 (1) (699, -735, 1415) def +bond1 4 +egroup (C4H8) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8 + diff --git a/sim/src/tests/floppy_organics/test_C4H8.test b/sim/src/tests/floppy_organics/test_C4H8.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H8.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C4H8.xyzcmp b/sim/src/tests/floppy_organics/test_C4H8.xyzcmp new file mode 100755 index 000000000..9213335e0 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C4H8.xyzcmp @@ -0,0 +1,14 @@ +12 +C4H8.mmp +C -1.020000 0.594000 -0.166000 +C 0.503000 0.884000 -0.077000 +C -0.686000 -0.918000 -0.300000 +C 0.729000 -0.615000 0.265000 +H -1.530000 0.813000 0.779000 +H -1.584000 1.065000 -0.977000 +H 0.838000 1.629000 0.651000 +H 0.923000 1.145000 -1.054000 +H -1.311000 -1.629000 0.250000 +H -0.645000 -1.234000 -1.348000 +H 1.584000 -1.120000 -0.196000 +H 0.774000 -0.775000 1.348000 diff --git a/sim/src/tests/floppy_organics/test_C5H10.md5sums b/sim/src/tests/floppy_organics/test_C5H10.md5sums new file mode 100755 index 000000000..b72c3070a --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H10.md5sums @@ -0,0 +1,2 @@ +stdout 094731161AAF72FB24C7BE7C36BA6009 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C5H10.mmp b/sim/src/tests/floppy_organics/test_C5H10.mmp new file mode 100755 index 000000000..4131c9ee1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H10.mmp @@ -0,0 +1,46 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.344298) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C5H10) +info opengroup open = True +mol (C5H10.pdb) def +atom 1 (6) (-691, 1319, -463) def +atom 2 (6) (1279, 664, 61) def +bond1 1 +atom 3 (6) (-1223, 422, 436) def +bond1 1 +atom 4 (6) (-192, -1358, -449) def +bond1 3 +atom 5 (6) (1101, -300, 150) def +bond1 2 4 +atom 6 (1) (-835, 1840, 38) def +bond1 1 +atom 7 (1) (-550, 1185, -1641) def +bond1 1 +atom 8 (1) (1303, 1814, 190) def +bond1 2 +atom 9 (1) (2021, 1450, -1061) def +bond1 2 +atom 10 (1) (-1773, -403, -652) def +bond1 3 +atom 11 (1) (-1053, -630, 1647) def +bond1 3 +atom 12 (1) (418, -2218, 576) def +bond1 4 +atom 13 (1) (-14, -1145, -1503) def +bond1 4 +atom 14 (1) (2298, -1118, -124) def +bond1 5 +atom 15 (1) (1479, -806, 1325) def +bond1 5 +egroup (C5H10) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10 + diff --git a/sim/src/tests/floppy_organics/test_C5H10.test b/sim/src/tests/floppy_organics/test_C5H10.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H10.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C5H10.xyzcmp b/sim/src/tests/floppy_organics/test_C5H10.xyzcmp new file mode 100755 index 000000000..1cc1b485b --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H10.xyzcmp @@ -0,0 +1,17 @@ +15 +C5H10.mmp +C -0.539000 1.247000 -0.246000 +C 0.997000 1.107000 -0.042000 +C -1.128000 -0.100000 0.214000 +C -0.055000 -1.112000 -0.220000 +C 1.263000 -0.412000 0.174000 +H -0.960000 2.100000 0.296000 +H -0.769000 1.403000 -1.307000 +H 1.335000 1.689000 0.823000 +H 1.546000 1.490000 -0.908000 +H -2.121000 -0.300000 -0.200000 +H -1.217000 -0.113000 1.309000 +H -0.173000 -2.100000 0.237000 +H -0.097000 -1.241000 -1.309000 +H 2.121000 -0.775000 -0.400000 +H 1.484000 -0.614000 1.230000 diff --git a/sim/src/tests/floppy_organics/test_C5H12a.md5sums b/sim/src/tests/floppy_organics/test_C5H12a.md5sums new file mode 100755 index 000000000..2805c2b87 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12a.md5sums @@ -0,0 +1,2 @@ +stdout 6DC969E549D921201370AFF689C70E84 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C5H12a.mmp b/sim/src/tests/floppy_organics/test_C5H12a.mmp new file mode 100755 index 000000000..1ad846f9d --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12a.mmp @@ -0,0 +1,50 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.786294) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C5H12a) +info opengroup open = True +mol (C5H12a.pdb) def +atom 1 (6) (339, -22, -33) def +atom 2 (6) (-512, -1349, -179) def +bond1 1 +atom 3 (6) (-707, 1044, -160) def +bond1 1 +atom 4 (6) (304, -2344, -13) def +bond1 2 +atom 5 (6) (-291, 3093, 136) def +bond1 3 +atom 6 (1) (1202, 376, 1000) def +bond1 1 +atom 7 (1) (1204, 236, -122) def +bond1 1 +atom 8 (1) (-670, -1585, -1137) def +bond1 2 +atom 9 (1) (-926, -1781, 1321) def +bond1 2 +atom 10 (1) (-1223, 1294, -1403) def +bond1 3 +atom 11 (1) (-1248, 1306, 962) def +bond1 3 +atom 12 (1) (217, -3585, 15) def +bond1 4 +atom 13 (1) (1940, -1813, 1149) def +bond1 4 +atom 14 (1) (979, -2388, -623) def +bond1 4 +atom 15 (1) (-664, 3689, -187) def +bond1 5 +atom 16 (1) (681, 2405, -662) def +bond1 5 +atom 17 (1) (236, 2896, 1474) def +bond1 5 +egroup (C5H12a) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H12a + diff --git a/sim/src/tests/floppy_organics/test_C5H12a.test b/sim/src/tests/floppy_organics/test_C5H12a.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12a.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C5H12a.xyzcmp b/sim/src/tests/floppy_organics/test_C5H12a.xyzcmp new file mode 100755 index 000000000..83a7907ff --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12a.xyzcmp @@ -0,0 +1,19 @@ +17 +C5H12a.mmp +C 0.266000 0.124000 -0.007000 +C -0.292000 -1.303000 0.015000 +C -0.821000 1.209000 -0.028000 +C 0.790000 -2.384000 -0.085000 +C -0.257000 2.628000 0.083000 +H 0.913000 0.271000 0.870000 +H 0.917000 0.249000 -0.885000 +H -1.008000 -1.427000 -0.807000 +H -0.867000 -1.446000 0.941000 +H -1.402000 1.115000 -0.957000 +H -1.530000 1.031000 0.791000 +H 0.356000 -3.387000 -0.016000 +H 1.530000 -2.285000 0.717000 +H 1.327000 -2.319000 -1.039000 +H -1.045000 3.387000 0.015000 +H 0.466000 2.831000 -0.715000 +H 0.259000 2.773000 1.039000 diff --git a/sim/src/tests/floppy_organics/test_C5H12b.md5sums b/sim/src/tests/floppy_organics/test_C5H12b.md5sums new file mode 100755 index 000000000..8e25e14f7 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12b.md5sums @@ -0,0 +1,2 @@ +stdout B9F6AECABE3DEE142423DF45A7F6AA97 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C5H12b.mmp b/sim/src/tests/floppy_organics/test_C5H12b.mmp new file mode 100755 index 000000000..a50b30d18 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12b.mmp @@ -0,0 +1,50 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.718120) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C5H12b) +info opengroup open = True +mol (C5H12b.pdb) def +atom 1 (6) (-75, 43, -913) def +atom 2 (6) (-1270, -858, -386) def +bond1 1 +atom 3 (6) (-7, -78, 944) def +bond1 2 +atom 4 (6) (1478, -606, -1138) def +bond1 1 +atom 5 (6) (-51, 1433, 1306) def +bond1 3 +atom 6 (1) (-555, -941, -2255) def +bond1 1 +atom 7 (1) (-559, 727, -1488) def +bond1 1 +atom 8 (1) (-2275, -60, -244) def +bond1 2 +atom 9 (1) (-1020, -1484, 364) def +bond1 2 +atom 10 (1) (819, -675, 1466) def +bond1 3 +atom 11 (1) (-538, -750, 2127) def +bond1 3 +atom 12 (1) (1555, -654, -2199) def +bond1 4 +atom 13 (1) (1110, -1433, -1570) def +bond1 4 +atom 14 (1) (2026, -436, -579) def +bond1 4 +atom 15 (1) (352, 1869, 1888) def +bond1 5 +atom 16 (1) (-1180, 1923, 1444) def +bond1 5 +atom 17 (1) (697, 1889, 565) def +bond1 5 +egroup (C5H12b) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H12b + diff --git a/sim/src/tests/floppy_organics/test_C5H12b.test b/sim/src/tests/floppy_organics/test_C5H12b.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12b.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C5H12b.xyzcmp b/sim/src/tests/floppy_organics/test_C5H12b.xyzcmp new file mode 100755 index 000000000..0837fa3fb --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12b.xyzcmp @@ -0,0 +1,19 @@ +17 +C5H12b.mmp +C -0.154000 -0.214000 -1.348000 +C -0.894000 -0.634000 -0.066000 +C -0.275000 -0.165000 1.263000 +C 1.272000 -0.761000 -1.462000 +C -0.260000 1.358000 1.449000 +H -0.741000 -0.565000 -2.207000 +H -0.137000 0.881000 -1.430000 +H -1.929000 -0.270000 -0.121000 +H -0.961000 -1.732000 -0.050000 +H 0.746000 -0.552000 1.357000 +H -0.846000 -0.619000 2.083000 +H 1.718000 -0.503000 -2.428000 +H 1.286000 -1.854000 -1.372000 +H 1.929000 -0.360000 -0.683000 +H 0.144000 1.634000 2.428000 +H -1.272000 1.773000 1.376000 +H 0.355000 1.854000 0.690000 diff --git a/sim/src/tests/floppy_organics/test_C5H12c.md5sums b/sim/src/tests/floppy_organics/test_C5H12c.md5sums new file mode 100755 index 000000000..0d5cf8063 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12c.md5sums @@ -0,0 +1,2 @@ +stdout 8B9C968BA8CFD9FB99604B73617C2B00 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C5H12c.mmp b/sim/src/tests/floppy_organics/test_C5H12c.mmp new file mode 100755 index 000000000..4384aa6a7 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12c.mmp @@ -0,0 +1,50 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.798053) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C5H12c) +info opengroup open = True +mol (C5H12c.pdb) def +atom 1 (6) (196, 724, 74) def +atom 2 (6) (25, -432, -564) def +bond1 1 +atom 3 (6) (-1056, -1492, 64) def +bond1 2 +atom 4 (6) (-760, 1977, -112) def +bond1 1 +atom 5 (6) (1588, -1741, 5) def +bond1 2 +atom 6 (1) (418, 706, 1370) def +bond1 1 +atom 7 (1) (1437, 1303, 330) def +bond1 1 +atom 8 (1) (198, -564, -1653) def +bond1 2 +atom 9 (1) (-999, -2856, -209) def +bond1 3 +atom 10 (1) (-2059, -486, -610) def +bond1 3 +atom 11 (1) (-1420, -1796, 1535) def +bond1 3 +atom 12 (1) (-516, 2463, -260) def +bond1 4 +atom 13 (1) (-392, 1866, -697) def +bond1 4 +atom 14 (1) (-1256, 1502, -159) def +bond1 4 +atom 15 (1) (1314, -2879, -864) def +bond1 5 +atom 16 (1) (1261, -2197, 846) def +bond1 5 +atom 17 (1) (2448, -1125, -107) def +bond1 5 +egroup (C5H12c) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H12c + diff --git a/sim/src/tests/floppy_organics/test_C5H12c.test b/sim/src/tests/floppy_organics/test_C5H12c.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12c.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C5H12c.xyzcmp b/sim/src/tests/floppy_organics/test_C5H12c.xyzcmp new file mode 100755 index 000000000..8af39fdd6 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12c.xyzcmp @@ -0,0 +1,19 @@ +17 +C5H12c.mmp +C 0.355000 0.621000 0.308000 +C 0.046000 -0.755000 -0.312000 +C -1.318000 -1.307000 0.132000 +C -0.579000 1.758000 -0.127000 +C 1.169000 -1.753000 0.010000 +H 0.342000 0.535000 1.405000 +H 1.385000 0.898000 0.043000 +H 0.017000 -0.627000 -1.405000 +H -1.497000 -2.298000 -0.300000 +H -2.143000 -0.656000 -0.174000 +H -1.357000 -1.406000 1.224000 +H -0.242000 2.716000 0.284000 +H -0.594000 1.852000 -1.219000 +H -1.609000 1.600000 0.206000 +H 1.004000 -2.716000 -0.488000 +H 1.229000 -1.945000 1.088000 +H 2.143000 -1.370000 -0.315000 diff --git a/sim/src/tests/floppy_organics/test_C5H12d.md5sums b/sim/src/tests/floppy_organics/test_C5H12d.md5sums new file mode 100755 index 000000000..2017581d2 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12d.md5sums @@ -0,0 +1,2 @@ +stdout 505C1502BCA07B91A791A8B7816C3187 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C5H12d.mmp b/sim/src/tests/floppy_organics/test_C5H12d.mmp new file mode 100755 index 000000000..24d32a682 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12d.mmp @@ -0,0 +1,50 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.761358) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C5H12d) +info opengroup open = True +mol (C5H12d.pdb) def +atom 1 (6) (-168, -389, 707) def +atom 2 (6) (-24, 1036, 183) def +bond1 1 +atom 3 (6) (-1067, -1125, 793) def +bond1 1 +atom 4 (6) (1091, -1472, -225) def +bond1 1 +atom 5 (6) (-232, 1503, -911) def +bond1 2 +atom 6 (1) (-115, -302, 1712) def +bond1 1 +atom 7 (1) (965, 1424, 1210) def +bond1 2 +atom 8 (1) (-1226, 1349, 841) def +bond1 2 +atom 9 (1) (-1042, -2398, 215) def +bond1 3 +atom 10 (1) (-863, -1131, -640) def +bond1 3 +atom 11 (1) (-1906, -1280, 1045) def +bond1 3 +atom 12 (1) (1748, -2235, 294) def +bond1 4 +atom 13 (1) (1988, -595, 467) def +bond1 4 +atom 14 (1) (1252, -951, -673) def +bond1 4 +atom 15 (1) (-250, 2245, -955) def +bond1 5 +atom 16 (1) (-679, 1252, -1577) def +bond1 5 +atom 17 (1) (794, 505, -2003) def +bond1 5 +egroup (C5H12d) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H12d + diff --git a/sim/src/tests/floppy_organics/test_C5H12d.test b/sim/src/tests/floppy_organics/test_C5H12d.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12d.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C5H12d.xyzcmp b/sim/src/tests/floppy_organics/test_C5H12d.xyzcmp new file mode 100755 index 000000000..99a6cea75 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12d.xyzcmp @@ -0,0 +1,19 @@ +17 +C5H12d.mmp +C 0.013000 -0.608000 0.662000 +C -0.055000 0.907000 0.363000 +C -1.300000 -1.335000 0.334000 +C 1.208000 -1.289000 -0.023000 +C -0.257000 1.298000 -1.109000 +H 0.169000 -0.697000 1.746000 +H 0.871000 1.371000 0.727000 +H -0.868000 1.344000 0.959000 +H -1.249000 -2.388000 0.634000 +H -1.524000 -1.311000 -0.738000 +H -2.150000 -0.883000 0.861000 +H 1.310000 -2.329000 0.308000 +H 2.150000 -0.776000 0.210000 +H 1.100000 -1.308000 -1.113000 +H -0.257000 2.388000 -1.216000 +H -1.211000 0.933000 -1.503000 +H 0.542000 0.907000 -1.746000 diff --git a/sim/src/tests/floppy_organics/test_C5H12e.md5sums b/sim/src/tests/floppy_organics/test_C5H12e.md5sums new file mode 100755 index 000000000..5627be771 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12e.md5sums @@ -0,0 +1,2 @@ +stdout A8216F61EDC69C61614D18831133158F +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C5H12e.mmp b/sim/src/tests/floppy_organics/test_C5H12e.mmp new file mode 100755 index 000000000..dc4309769 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12e.mmp @@ -0,0 +1,50 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.586064) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C5H12e) +info opengroup open = True +mol (C5H12e.pdb) def +atom 1 (6) (1224, 997, -758) def +atom 2 (6) (-35, -19, -474) def +bond1 1 +atom 3 (6) (119, 142, 1576) def +bond1 2 +atom 4 (6) (86, -1036, -358) def +bond1 2 +atom 5 (6) (-1086, -283, -761) def +bond1 2 +atom 6 (1) (1207, 1375, -1691) def +bond1 1 +atom 7 (1) (626, 1580, -140) def +bond1 1 +atom 8 (1) (2288, 1435, -266) def +bond1 1 +atom 9 (1) (-655, -87, 2098) def +bond1 3 +atom 10 (1) (-197, 750, 1918) def +bond1 3 +atom 11 (1) (812, 77, 2165) def +bond1 3 +atom 12 (1) (77, -2034, -67) def +bond1 4 +atom 13 (1) (1238, -1571, 251) def +bond1 4 +atom 14 (1) (51, -1708, -1883) def +bond1 4 +atom 15 (1) (-1779, -567, -476) def +bond1 5 +atom 16 (1) (-1294, 1017, -1421) def +bond1 5 +atom 17 (1) (-1545, 1304, -334) def +bond1 5 +egroup (C5H12e) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H12e + diff --git a/sim/src/tests/floppy_organics/test_C5H12e.test b/sim/src/tests/floppy_organics/test_C5H12e.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12e.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C5H12e.xyzcmp b/sim/src/tests/floppy_organics/test_C5H12e.xyzcmp new file mode 100755 index 000000000..ec197ef14 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C5H12e.xyzcmp @@ -0,0 +1,19 @@ +17 +C5H12e.mmp +C 1.052000 1.104000 -0.711000 +C 0.072000 0.055000 -0.155000 +C 0.148000 0.048000 1.385000 +C 0.453000 -1.335000 -0.695000 +C -1.361000 0.400000 -0.604000 +H 1.025000 1.135000 -1.807000 +H 0.811000 2.110000 -0.346000 +H 2.083000 0.882000 -0.412000 +H -0.492000 -0.736000 1.807000 +H -0.179000 1.008000 1.800000 +H 1.173000 -0.134000 1.727000 +H -0.230000 -2.110000 -0.330000 +H 1.468000 -1.616000 -0.387000 +H 0.424000 -1.358000 -1.792000 +H -2.083000 -0.332000 -0.227000 +H -1.433000 0.408000 -1.698000 +H -1.669000 1.389000 -0.243000 diff --git a/sim/src/tests/floppy_organics/test_C6H12a.md5sums b/sim/src/tests/floppy_organics/test_C6H12a.md5sums new file mode 100755 index 000000000..2ea93539f --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H12a.md5sums @@ -0,0 +1,2 @@ +stdout 6EA9B0F0B744D11000BEE8A1FF728090 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C6H12a.mmp b/sim/src/tests/floppy_organics/test_C6H12a.mmp new file mode 100755 index 000000000..b9733053c --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H12a.mmp @@ -0,0 +1,51 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.785862) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H12a) +info opengroup open = True +mol (C6H12a.pdb) def +atom 1 (6) (-544, 14, -1523) def +atom 2 (6) (349, -387, -1192) def +bond1 1 +atom 3 (6) (1637, 662, 118) def +bond1 2 +atom 4 (6) (-1009, -428, 1124) def +atom 5 (6) (-1272, -181, -178) def +bond1 1 4 +atom 6 (6) (621, -163, 1170) def +bond1 3 4 +atom 7 (1) (-1388, -587, -2190) def +bond1 1 +atom 8 (1) (-850, 1227, -1200) def +bond1 1 +atom 9 (1) (1541, 691, -2296) def +bond1 2 +atom 10 (1) (1524, -836, -1233) def +bond1 2 +atom 11 (1) (2654, 349, 155) def +bond1 3 +atom 12 (1) (422, 1799, 344) def +bond1 3 +atom 13 (1) (-1072, -225, 1998) def +bond1 4 +atom 14 (1) (-1047, 1180, 1511) def +bond1 4 +atom 15 (1) (-2241, -418, -628) def +bond1 5 +atom 16 (1) (-784, -1934, -424) def +bond1 5 +atom 17 (1) (1412, -955, 980) def +bond1 6 +atom 18 (1) (731, 630, 1901) def +bond1 6 +egroup (C6H12a) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H12a + diff --git a/sim/src/tests/floppy_organics/test_C6H12a.test b/sim/src/tests/floppy_organics/test_C6H12a.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H12a.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C6H12a.xyzcmp b/sim/src/tests/floppy_organics/test_C6H12a.xyzcmp new file mode 100755 index 000000000..d34b21b31 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H12a.xyzcmp @@ -0,0 +1,20 @@ +18 +C6H12a.mmp +C -0.767000 -0.009000 -1.273000 +C 0.771000 0.010000 -1.271000 +C 1.323000 0.671000 0.003000 +C -0.771000 -0.009000 1.270000 +C -1.323000 -0.671000 -0.003000 +C 0.767000 0.007000 1.272000 +H -1.138000 -0.528000 -2.166000 +H -1.136000 1.025000 -1.338000 +H 1.146000 0.531000 -2.161000 +H 1.141000 -1.022000 -1.335000 +H 2.420000 0.637000 0.004000 +H 1.048000 1.737000 0.004000 +H -1.146000 -0.528000 2.161000 +H -1.138000 1.025000 1.333000 +H -2.420000 -0.636000 -0.005000 +H -1.049000 -1.737000 -0.002000 +H 1.135000 -1.028000 1.333000 +H 1.140000 0.523000 2.166000 diff --git a/sim/src/tests/floppy_organics/test_C6H12b.md5sums b/sim/src/tests/floppy_organics/test_C6H12b.md5sums new file mode 100755 index 000000000..e4e29a1ef --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H12b.md5sums @@ -0,0 +1,2 @@ +stdout 561AF0CC5CC4ADAE0D7E93F1BA33B8AB +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C6H12b.mmp b/sim/src/tests/floppy_organics/test_C6H12b.mmp new file mode 100755 index 000000000..e05141668 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H12b.mmp @@ -0,0 +1,51 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.705229) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H12b) +info opengroup open = True +mol (C6H12b.pdb) def +atom 1 (6) (-438, -99, -1505) def +atom 2 (6) (844, 669, -1097) def +bond1 1 +atom 3 (6) (1218, -652, -583) def +bond1 2 +atom 4 (6) (-672, 645, 1226) def +atom 5 (6) (-1855, -230, -638) def +bond1 1 4 +atom 6 (6) (386, -486, 1259) def +bond1 3 4 +atom 7 (1) (-990, -721, -1755) def +bond1 1 +atom 8 (1) (-1509, 1167, -1511) def +bond1 1 +atom 9 (1) (945, -46, -1809) def +bond1 2 +atom 10 (1) (1060, 1176, -1038) def +bond1 2 +atom 11 (1) (2055, -62, -56) def +bond1 3 +atom 12 (1) (1094, -1538, -134) def +bond1 3 +atom 13 (1) (-1317, 356, 1946) def +bond1 4 +atom 14 (1) (-741, 1166, 1301) def +bond1 4 +atom 15 (1) (-2021, 44, -54) def +bond1 5 +atom 16 (1) (-1686, -1814, 549) def +bond1 5 +atom 17 (1) (582, -814, 1988) def +bond1 6 +atom 18 (1) (1105, 571, 1341) def +bond1 6 +egroup (C6H12b) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H12b + diff --git a/sim/src/tests/floppy_organics/test_C6H12b.test b/sim/src/tests/floppy_organics/test_C6H12b.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H12b.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C6H12b.xyzcmp b/sim/src/tests/floppy_organics/test_C6H12b.xyzcmp new file mode 100755 index 000000000..bcda38f0e --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H12b.xyzcmp @@ -0,0 +1,20 @@ +18 +C6H12b.mmp +C -0.758000 -0.012000 -1.314000 +C 0.757000 0.286000 -1.200000 +C 1.378000 -0.474000 -0.022000 +C -0.686000 0.471000 1.187000 +C -1.406000 -0.291000 0.065000 +C 0.793000 0.024000 1.321000 +H -0.919000 -0.877000 -1.968000 +H -1.260000 0.836000 -1.797000 +H 1.262000 0.035000 -2.141000 +H 0.913000 1.362000 -1.047000 +H 2.470000 -0.374000 -0.021000 +H 1.169000 -1.546000 -0.143000 +H -1.209000 0.335000 2.141000 +H -0.732000 1.546000 0.968000 +H -2.470000 -0.027000 0.045000 +H -1.366000 -1.367000 0.283000 +H 0.879000 -0.768000 2.075000 +H 1.389000 0.866000 1.695000 diff --git a/sim/src/tests/floppy_organics/test_C6H14a.md5sums b/sim/src/tests/floppy_organics/test_C6H14a.md5sums new file mode 100755 index 000000000..a85adb3e7 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14a.md5sums @@ -0,0 +1,2 @@ +stdout 2EB271A377CB2FD1E788D95FE693DCE8 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C6H14a.mmp b/sim/src/tests/floppy_organics/test_C6H14a.mmp new file mode 100755 index 000000000..fba3efe75 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14a.mmp @@ -0,0 +1,56 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.564520) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H14a) +info opengroup open = True +mol (C6H14a.pdb) def +atom 1 (6) (1191, -1724, -388) def +atom 2 (6) (443, -232, -187) def +bond1 1 +atom 3 (6) (2365, -2771, 133) def +bond1 1 +atom 4 (6) (-904, 81, -418) def +bond1 2 +atom 5 (6) (-943, 2667, -177) def +bond1 4 +atom 6 (6) (-2039, 1988, -289) def +bond1 5 +atom 7 (1) (-266, -2380, -866) def +bond1 1 +atom 8 (1) (668, -2068, 715) def +bond1 1 +atom 9 (1) (1460, -162, 795) def +bond1 2 +atom 10 (1) (1153, 347, -556) def +bond1 2 +atom 11 (1) (2144, -3589, -590) def +bond1 3 +atom 12 (1) (3004, -2113, 798) def +bond1 3 +atom 13 (1) (3310, -1622, -756) def +bond1 3 +atom 14 (1) (-1245, -466, -935) def +bond1 4 +atom 15 (1) (-801, -105, 621) def +bond1 4 +atom 16 (1) (-744, 2197, -1457) def +bond1 5 +atom 17 (1) (-78, 2391, 1141) def +bond1 5 +atom 18 (1) (-2741, 2126, -616) def +bond1 6 +atom 19 (1) (-1838, 2979, 323) def +bond1 6 +atom 20 (1) (-2860, 1423, 719) def +bond1 6 +egroup (C6H14a) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H14a + diff --git a/sim/src/tests/floppy_organics/test_C6H14a.test b/sim/src/tests/floppy_organics/test_C6H14a.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14a.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C6H14a.xyzcmp b/sim/src/tests/floppy_organics/test_C6H14a.xyzcmp new file mode 100755 index 000000000..700a56aee --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14a.xyzcmp @@ -0,0 +1,22 @@ +20 +C6H14a.mmp +C 0.829000 -1.793000 -0.134000 +C 0.735000 -0.264000 -0.037000 +C 2.268000 -2.315000 -0.076000 +C -0.704000 0.262000 0.016000 +C -0.802000 1.793000 -0.024000 +C -2.237000 2.312000 0.109000 +H 0.357000 -2.123000 -1.070000 +H 0.243000 -2.246000 0.677000 +H 1.275000 0.077000 0.858000 +H 1.259000 0.183000 -0.894000 +H 2.306000 -3.405000 -0.173000 +H 2.744000 -2.049000 0.876000 +H 2.879000 -1.888000 -0.879000 +H -1.280000 -0.158000 -0.822000 +H -1.189000 -0.109000 0.931000 +H -0.367000 2.155000 -0.965000 +H -0.184000 2.219000 0.778000 +H -2.879000 1.909000 -0.683000 +H -2.277000 3.405000 0.043000 +H -2.677000 2.021000 1.070000 diff --git a/sim/src/tests/floppy_organics/test_C6H14b.md5sums b/sim/src/tests/floppy_organics/test_C6H14b.md5sums new file mode 100755 index 000000000..09572b691 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14b.md5sums @@ -0,0 +1,2 @@ +stdout 896158A61332577FE2B4277E67DE2EAF +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C6H14b.mmp b/sim/src/tests/floppy_organics/test_C6H14b.mmp new file mode 100755 index 000000000..26f303703 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14b.mmp @@ -0,0 +1,56 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.839715) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H14b) +info opengroup open = True +mol (C6H14b.pdb) cpk +atom 1 (6) (416, -995, 142) def +atom 2 (6) (428, 1305, -180) def +bond1 1 +atom 3 (6) (-1007, 1683, -1413) def +bond1 2 +atom 4 (6) (767, -1302, -1615) def +bond1 1 +atom 5 (6) (827, -1246, 1138) def +bond1 1 +atom 6 (6) (-591, 1832, 1126) def +bond1 2 +atom 7 (1) (-779, -1351, -164) def +bond1 1 +atom 8 (1) (1262, 1318, 336) def +bond1 2 +atom 9 (1) (-1154, 3000, -1210) def +bond1 3 +atom 10 (1) (-472, 1366, -1817) def +bond1 3 +atom 11 (1) (-1670, 735, -1359) def +bond1 3 +atom 12 (1) (1297, -2702, -1352) def +bond1 4 +atom 13 (1) (1960, -846, -1634) def +bond1 4 +atom 14 (1) (102, -1040, -2060) def +bond1 4 +atom 15 (1) (1237, -2511, 1352) def +bond1 5 +atom 16 (1) (533, -1169, 1848) def +bond1 5 +atom 17 (1) (2086, -765, 1056) def +bond1 5 +atom 18 (1) (-927, 2488, 1326) def +bond1 6 +atom 19 (1) (-1735, 934, 699) def +bond1 6 +atom 20 (1) (208, 1548, 2396) def +bond1 6 +egroup (C6H14b) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H14b + diff --git a/sim/src/tests/floppy_organics/test_C6H14b.test b/sim/src/tests/floppy_organics/test_C6H14b.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14b.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C6H14b.xyzcmp b/sim/src/tests/floppy_organics/test_C6H14b.xyzcmp new file mode 100755 index 000000000..df9d82f2b --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14b.xyzcmp @@ -0,0 +1,22 @@ +20 +C6H14b.mmp +C 0.040000 -0.776000 0.000000 +C -0.041000 0.776000 0.000000 +C -0.785000 1.328000 -1.227000 +C 0.705000 -1.328000 -1.274000 +C 0.785000 -1.328000 1.227000 +C -0.705000 1.328000 1.274000 +H -0.994000 -1.153000 0.035000 +H 0.993000 1.153000 -0.035000 +H -0.837000 2.422000 -1.185000 +H -0.303000 1.065000 -2.173000 +H -1.815000 0.951000 -1.264000 +H 0.758000 -2.422000 -1.238000 +H 1.731000 -0.953000 -1.374000 +H 0.162000 -1.062000 -2.186000 +H 0.837000 -2.422000 1.185000 +H 0.303000 -1.064000 2.173000 +H 1.815000 -0.951000 1.263000 +H -0.758000 2.422000 1.237000 +H -1.732000 0.953000 1.374000 +H -0.163000 1.062000 2.186000 diff --git a/sim/src/tests/floppy_organics/test_C6H14c.md5sums b/sim/src/tests/floppy_organics/test_C6H14c.md5sums new file mode 100755 index 000000000..e5894d0e9 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14c.md5sums @@ -0,0 +1,2 @@ +stdout A419E6B2E84D0884976270BD0A3AE113 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C6H14c.mmp b/sim/src/tests/floppy_organics/test_C6H14c.mmp new file mode 100755 index 000000000..f1455d8ba --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14c.mmp @@ -0,0 +1,56 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.032981) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H14c) +info opengroup open = True +mol (C6H14c.pdb) cpk +atom 1 (6) (-292, -311, 495) def +atom 2 (6) (-181, 1044, -85) def +bond1 1 +atom 3 (6) (1319, 1496, 644) def +bond1 2 +atom 4 (6) (-355, -1341, 1333) def +bond1 1 +atom 5 (6) (-493, -1368, -904) def +bond1 1 +atom 6 (6) (-1636, 1509, 61) def +bond1 2 +atom 7 (1) (1130, -1030, -361) def +bond1 1 +atom 8 (1) (37, 824, -1400) def +bond1 2 +atom 9 (1) (1180, 2346, 842) def +bond1 3 +atom 10 (1) (1179, 1689, 1494) def +bond1 3 +atom 11 (1) (2000, 873, 219) def +bond1 3 +atom 12 (1) (112, -2298, 1691) def +bond1 4 +atom 13 (1) (-1523, -932, 1551) def +bond1 4 +atom 14 (1) (-129, -758, 2084) def +bond1 4 +atom 15 (1) (-515, -2120, -986) def +bond1 5 +atom 16 (1) (-768, -1186, -2114) def +bond1 5 +atom 17 (1) (-2005, -1543, -1267) def +bond1 5 +atom 18 (1) (-1141, 1470, 1319) def +bond1 6 +atom 19 (1) (-1430, 2233, -388) def +bond1 6 +atom 20 (1) (-2321, 1120, 250) def +bond1 6 +egroup (C6H14c) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H14c + diff --git a/sim/src/tests/floppy_organics/test_C6H14c.test b/sim/src/tests/floppy_organics/test_C6H14c.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14c.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C6H14c.xyzcmp b/sim/src/tests/floppy_organics/test_C6H14c.xyzcmp new file mode 100755 index 000000000..85135b00c --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14c.xyzcmp @@ -0,0 +1,22 @@ +20 +C6H14c.mmp +C 0.040000 -0.767000 -0.057000 +C 0.031000 0.786000 -0.162000 +C 1.182000 1.422000 0.634000 +C -0.294000 -1.296000 1.346000 +C -0.872000 -1.417000 -1.111000 +C -1.312000 1.425000 0.230000 +H 1.070000 -1.078000 -0.287000 +H 0.206000 1.020000 -1.223000 +H 1.220000 2.505000 0.475000 +H 1.064000 1.254000 1.710000 +H 2.151000 1.006000 0.334000 +H -0.203000 -2.387000 1.379000 +H -1.322000 -1.048000 1.635000 +H 0.372000 -0.889000 2.114000 +H -0.745000 -2.505000 -1.121000 +H -0.642000 -1.042000 -2.114000 +H -1.931000 -1.216000 -0.913000 +H -1.523000 1.296000 1.298000 +H -1.300000 2.503000 0.030000 +H -2.151000 1.000000 -0.330000 diff --git a/sim/src/tests/floppy_organics/test_C6H14d.md5sums b/sim/src/tests/floppy_organics/test_C6H14d.md5sums new file mode 100755 index 000000000..13554a07e --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14d.md5sums @@ -0,0 +1,2 @@ +stdout DEEB02B006DECB1AB9201DF6C35ACED0 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C6H14d.mmp b/sim/src/tests/floppy_organics/test_C6H14d.mmp new file mode 100755 index 000000000..513e7d8dd --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14d.mmp @@ -0,0 +1,56 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.008495) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H14d) +info opengroup open = True +mol (C6H14d.pdb) cpk +atom 1 (6) (135, -1218, -308) def +atom 2 (6) (30, 1024, 400) def +bond1 1 +atom 3 (6) (-1638, -1600, -173) def +bond1 1 +atom 4 (6) (706, -1611, -1214) def +bond1 1 +atom 5 (6) (677, -1559, 851) def +bond1 1 +atom 6 (6) (1935, 1447, 253) def +bond1 2 +atom 7 (1) (-1175, 1400, -913) def +bond1 2 +atom 8 (1) (-849, 979, 1158) def +bond1 2 +atom 9 (1) (-1863, -2395, -332) def +bond1 3 +atom 10 (1) (-1690, -1059, -392) def +bond1 3 +atom 11 (1) (-1891, -1213, 846) def +bond1 3 +atom 12 (1) (1162, -2615, -1673) def +bond1 4 +atom 13 (1) (1553, -1152, -1329) def +bond1 4 +atom 14 (1) (50, -1470, -2441) def +bond1 4 +atom 15 (1) (769, -2671, 1147) def +bond1 5 +atom 16 (1) (171, -465, 2779) def +bond1 5 +atom 17 (1) (1776, -989, 909) def +bond1 5 +atom 18 (1) (1543, 1397, -664) def +bond1 6 +atom 19 (1) (1540, 2636, 94) def +bond1 6 +atom 20 (1) (1734, 681, 1213) def +bond1 6 +egroup (C6H14d) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H14d + diff --git a/sim/src/tests/floppy_organics/test_C6H14d.test b/sim/src/tests/floppy_organics/test_C6H14d.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14d.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C6H14d.xyzcmp b/sim/src/tests/floppy_organics/test_C6H14d.xyzcmp new file mode 100755 index 000000000..3d27615c1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14d.xyzcmp @@ -0,0 +1,22 @@ +20 +C6H14d.mmp +C -0.018000 -0.793000 0.011000 +C 0.006000 0.756000 0.102000 +C -1.490000 -1.252000 0.000000 +C 0.664000 -1.277000 -1.284000 +C 0.687000 -1.423000 1.227000 +C 1.383000 1.432000 0.065000 +H -0.606000 1.159000 -0.716000 +H -0.506000 1.048000 1.031000 +H -1.557000 -2.343000 -0.086000 +H -2.037000 -0.816000 -0.845000 +H -2.004000 -0.955000 0.921000 +H 0.600000 -2.367000 -1.375000 +H 1.726000 -1.008000 -1.314000 +H 0.186000 -0.841000 -2.170000 +H 0.627000 -2.516000 1.189000 +H 0.229000 -1.100000 2.170000 +H 1.749000 -1.157000 1.267000 +H 1.898000 1.257000 -0.885000 +H 1.277000 2.516000 0.182000 +H 2.037000 1.081000 0.868000 diff --git a/sim/src/tests/floppy_organics/test_C6H14e.md5sums b/sim/src/tests/floppy_organics/test_C6H14e.md5sums new file mode 100755 index 000000000..69ded73fd --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14e.md5sums @@ -0,0 +1,2 @@ +stdout DCB3EB975668E655434A31B7080F9BE9 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C6H14e.mmp b/sim/src/tests/floppy_organics/test_C6H14e.mmp new file mode 100755 index 000000000..ab43174b3 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14e.mmp @@ -0,0 +1,56 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.924542, 0.375233, 0.063049, 0.021146) (7.209761) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H14e) +info opengroup open = True +mol (C6H14e.pdb) cpk +atom 1 (6) (22, -436, -564) def +atom 2 (6) (-605, 1125, -24) def +bond1 1 +atom 3 (6) (1083, -689, -285) def +bond1 1 +atom 4 (6) (-889, -1300, -265) def +bond1 1 +atom 5 (6) (-2044, 755, -541) def +bond1 2 +atom 6 (6) (2120, -1097, 1241) def +bond1 3 +atom 7 (1) (-393, -563, -1782) def +bond1 1 +atom 8 (1) (-370, 1344, 1345) def +bond1 2 +atom 9 (1) (524, 1585, -535) def +bond1 2 +atom 10 (1) (1848, -1692, -440) def +bond1 3 +atom 11 (1) (2016, 290, -800) def +bond1 3 +atom 12 (1) (-468, -2244, 8) def +bond1 4 +atom 13 (1) (-1706, -1366, -282) def +bond1 4 +atom 14 (1) (-875, -1819, 1081) def +bond1 4 +atom 15 (1) (-3102, 968, -295) def +bond1 5 +atom 16 (1) (-1948, 2703, -446) def +bond1 5 +atom 17 (1) (-2071, 1707, -1903) def +bond1 5 +atom 18 (1) (2523, -949, 1389) def +bond1 6 +atom 19 (1) (722, -1112, 1562) def +bond1 6 +atom 20 (1) (1077, 73, 2188) def +bond1 6 +egroup (C6H14e) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H14e + diff --git a/sim/src/tests/floppy_organics/test_C6H14e.test b/sim/src/tests/floppy_organics/test_C6H14e.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14e.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C6H14e.xyzcmp b/sim/src/tests/floppy_organics/test_C6H14e.xyzcmp new file mode 100755 index 000000000..0288cf2f3 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14e.xyzcmp @@ -0,0 +1,22 @@ +20 +C6H14e.mmp +C -0.083000 -0.325000 -0.637000 +C -0.606000 1.042000 -0.152000 +C 1.400000 -0.539000 -0.255000 +C -0.971000 -1.492000 -0.174000 +C -1.976000 1.444000 -0.707000 +C 1.700000 -0.675000 1.244000 +H -0.111000 -0.308000 -1.738000 +H -0.646000 1.050000 0.947000 +H 0.126000 1.812000 -0.432000 +H 1.763000 -1.440000 -0.771000 +H 1.987000 0.297000 -0.660000 +H -0.568000 -2.452000 -0.514000 +H -1.989000 -1.400000 -0.565000 +H -1.041000 -1.528000 0.920000 +H -2.773000 0.768000 -0.382000 +H -2.252000 2.452000 -0.376000 +H -1.977000 1.449000 -1.804000 +H 2.773000 -0.827000 1.407000 +H 1.178000 -1.528000 1.688000 +H 1.409000 0.220000 1.804000 diff --git a/sim/src/tests/floppy_organics/test_C6H14f.md5sums b/sim/src/tests/floppy_organics/test_C6H14f.md5sums new file mode 100755 index 000000000..2530bd41c --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14f.md5sums @@ -0,0 +1,2 @@ +stdout CE765DFD348D67C8299DF698C42C4991 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C6H14f.mmp b/sim/src/tests/floppy_organics/test_C6H14f.mmp new file mode 100755 index 000000000..488aff3a5 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14f.mmp @@ -0,0 +1,56 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.964532, -0.261868, -0.013408, -0.030374) (4.958572) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C6H14f) +info opengroup open = True +mol (C6H14f.pdb) cpk +atom 1 (6) (292, 1484, -279) def +atom 2 (6) (-825, -46, -138) def +bond1 1 +atom 3 (6) (-1194, -1489, -415) def +bond1 2 +atom 4 (6) (1434, 432, -352) def +bond1 1 +atom 5 (6) (-2450, 1152, -125) def +bond1 2 +atom 6 (6) (2317, -1072, -124) def +bond1 4 +atom 7 (1) (193, 1023, -1280) def +bond1 1 +atom 8 (1) (30, 1807, 159) def +bond1 1 +atom 9 (1) (-758, -476, 1766) def +bond1 2 +atom 10 (1) (-1894, -1660, -231) def +bond1 3 +atom 11 (1) (-821, -1388, -152) def +bond1 3 +atom 12 (1) (-1267, -1452, -974) def +bond1 3 +atom 13 (1) (1890, 1218, 139) def +bond1 4 +atom 14 (1) (1371, 582, 1136) def +bond1 4 +atom 15 (1) (-2093, 1433, -1501) def +bond1 5 +atom 16 (1) (-3659, 516, 446) def +bond1 5 +atom 17 (1) (-2412, 2051, 858) def +bond1 5 +atom 18 (1) (3092, -1153, -421) def +bond1 6 +atom 19 (1) (1862, -918, -1168) def +bond1 6 +atom 20 (1) (1634, -959, 599) def +bond1 6 +egroup (C6H14f) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C6H14f + diff --git a/sim/src/tests/floppy_organics/test_C6H14f.test b/sim/src/tests/floppy_organics/test_C6H14f.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14f.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C6H14f.xyzcmp b/sim/src/tests/floppy_organics/test_C6H14f.xyzcmp new file mode 100755 index 000000000..a5d7c3e8a --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C6H14f.xyzcmp @@ -0,0 +1,22 @@ +20 +C6H14f.mmp +C 0.159000 0.884000 -0.296000 +C -1.048000 0.127000 0.307000 +C -1.247000 -1.292000 -0.255000 +C 1.565000 0.547000 0.236000 +C -2.330000 0.954000 0.112000 +C 2.155000 -0.805000 -0.185000 +H 0.149000 0.762000 -1.391000 +H -0.004000 1.954000 -0.116000 +H -0.874000 0.036000 1.391000 +H -2.154000 -1.744000 0.162000 +H -0.411000 -1.954000 -0.020000 +H -1.361000 -1.272000 -1.346000 +H 2.243000 1.339000 -0.108000 +H 1.564000 0.616000 1.333000 +H -2.507000 1.166000 -0.950000 +H -3.211000 0.427000 0.495000 +H -2.263000 1.916000 0.633000 +H 3.211000 -0.875000 0.100000 +H 2.093000 -0.944000 -1.270000 +H 1.638000 -1.645000 0.288000 diff --git a/sim/src/tests/floppy_organics/test_C7H14a.md5sums b/sim/src/tests/floppy_organics/test_C7H14a.md5sums new file mode 100755 index 000000000..0f9db7a1f --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C7H14a.md5sums @@ -0,0 +1,2 @@ +stdout 3748A0A0AB4EC20699E76DE52F9F0B75 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C7H14a.mmp b/sim/src/tests/floppy_organics/test_C7H14a.mmp new file mode 100755 index 000000000..513eebc40 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C7H14a.mmp @@ -0,0 +1,57 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.932023, -0.360947, -0.011797, 0.030194) (3.547330) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C7H14a) +info opengroup open = True +mol (C7H14a.pdb) cpk +atom 1 (6) (282, -1685, -323) def +atom 2 (6) (1922, -983, -188) def +bond1 1 +atom 3 (6) (2064, 706, 287) def +bond1 2 +atom 4 (6) (-604, 1696, 74) def +atom 5 (6) (-1317, -1722, 239) def +bond1 1 +atom 6 (6) (-1253, 93, 565) def +bond1 4 5 +atom 7 (6) (156, 1890, -166) def +bond1 3 4 +atom 8 (1) (405, -2380, -333) def +bond1 1 +atom 9 (1) (236, -1457, -1213) def +bond1 1 +atom 10 (1) (2048, -1412, 449) def +bond1 2 +atom 11 (1) (2063, -1291, -968) def +bond1 2 +atom 12 (1) (2899, 1206, -742) def +bond1 3 +atom 13 (1) (1470, 957, 1103) def +bond1 3 +atom 14 (1) (-1027, 2268, -160) def +bond1 4 +atom 15 (1) (-1095, 1602, 1277) def +bond1 4 +atom 16 (1) (-1693, -2166, 888) def +bond1 5 +atom 17 (1) (-140, -1260, 1395) def +bond1 5 +atom 18 (1) (-2685, -327, 880) def +bond1 6 +atom 19 (1) (-2333, -201, -824) def +bond1 6 +atom 20 (1) (870, 2746, -460) def +bond1 7 +atom 21 (1) (559, 1093, -1328) def +bond1 7 +egroup (C7H14a) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C7H14a + diff --git a/sim/src/tests/floppy_organics/test_C7H14a.test b/sim/src/tests/floppy_organics/test_C7H14a.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C7H14a.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C7H14a.xyzcmp b/sim/src/tests/floppy_organics/test_C7H14a.xyzcmp new file mode 100755 index 000000000..72403b3bb --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C7H14a.xyzcmp @@ -0,0 +1,23 @@ +21 +C7H14a.mmp +C 0.283000 -1.520000 -0.439000 +C 1.631000 -0.800000 -0.220000 +C 1.583000 0.692000 0.175000 +C -0.884000 1.453000 0.233000 +C -0.869000 -1.145000 0.511000 +C -1.636000 0.122000 0.091000 +C 0.480000 1.547000 -0.475000 +H 0.472000 -2.598000 -0.376000 +H -0.058000 -1.345000 -1.470000 +H 2.200000 -1.332000 0.555000 +H 2.219000 -0.910000 -1.141000 +H 2.562000 1.130000 -0.058000 +H 1.476000 0.776000 1.264000 +H -1.534000 2.255000 -0.139000 +H -0.727000 1.666000 1.300000 +H -1.586000 -1.976000 0.532000 +H -0.500000 -1.040000 1.542000 +H -2.562000 0.190000 0.677000 +H -1.953000 -0.003000 -0.956000 +H 0.797000 2.598000 -0.446000 +H 0.374000 1.300000 -1.542000 diff --git a/sim/src/tests/floppy_organics/test_C7H14b.md5sums b/sim/src/tests/floppy_organics/test_C7H14b.md5sums new file mode 100755 index 000000000..e880aac53 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C7H14b.md5sums @@ -0,0 +1,2 @@ +stdout 2773B0759BB16CF45599927DACFB5B4E +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C7H14b.mmp b/sim/src/tests/floppy_organics/test_C7H14b.mmp new file mode 100755 index 000000000..174a5a23a --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C7H14b.mmp @@ -0,0 +1,57 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.927860, -0.361381, 0.001607, -0.092069) (4.190606) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C7H14b) +info opengroup open = True +mol (C7H14b.pdb) cpk +atom 1 (6) (-692, 1363, 658) def +atom 2 (6) (620, 1679, -233) def +bond1 1 +atom 3 (6) (1956, 547, 514) def +bond1 2 +atom 4 (6) (326, -1096, 362) def +atom 5 (6) (-1766, 17, -162) def +bond1 1 +atom 6 (6) (-877, -1042, -341) def +bond1 4 5 +atom 7 (6) (1633, -657, -143) def +bond1 3 4 +atom 8 (1) (-1445, 1764, 392) def +bond1 1 +atom 9 (1) (-622, 599, 1187) def +bond1 1 +atom 10 (1) (317, 2352, -76) def +bond1 2 +atom 11 (1) (783, 2069, -1679) def +bond1 2 +atom 12 (1) (2915, 1364, -59) def +bond1 3 +atom 13 (1) (1560, 1217, 1686) def +bond1 3 +atom 14 (1) (337, -2726, -349) def +bond1 4 +atom 15 (1) (47, -1784, 1667) def +bond1 4 +atom 16 (1) (-2731, -68, 362) def +bond1 5 +atom 17 (1) (-1394, 1003, -1625) def +bond1 5 +atom 18 (1) (-1502, -1880, -42) def +bond1 6 +atom 19 (1) (-346, -1638, -1686) def +bond1 6 +atom 20 (1) (1258, -638, -974) def +bond1 7 +atom 21 (1) (2525, -1570, 295) def +bond1 7 +egroup (C7H14b) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C7H14b + diff --git a/sim/src/tests/floppy_organics/test_C7H14b.test b/sim/src/tests/floppy_organics/test_C7H14b.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C7H14b.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C7H14b.xyzcmp b/sim/src/tests/floppy_organics/test_C7H14b.xyzcmp new file mode 100755 index 000000000..bae4785bc --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C7H14b.xyzcmp @@ -0,0 +1,23 @@ +21 +C7H14b.mmp +C -0.904000 1.188000 0.378000 +C 0.510000 1.610000 -0.061000 +C 1.646000 0.696000 0.419000 +C 0.350000 -1.555000 0.360000 +C -1.561000 0.092000 -0.477000 +C -0.914000 -1.326000 -0.486000 +C 1.589000 -0.753000 -0.080000 +H -1.558000 2.069000 0.328000 +H -0.888000 0.897000 1.438000 +H 0.707000 2.624000 0.309000 +H 0.534000 1.681000 -1.159000 +H 2.604000 1.135000 0.113000 +H 1.657000 0.693000 1.520000 +H 0.591000 -2.624000 0.296000 +H 0.146000 -1.364000 1.423000 +H -2.604000 -0.004000 -0.151000 +H -1.612000 0.465000 -1.508000 +H -1.667000 -2.056000 -0.161000 +H -0.672000 -1.600000 -1.520000 +H 1.649000 -0.768000 -1.178000 +H 2.490000 -1.270000 0.275000 diff --git a/sim/src/tests/floppy_organics/test_C7H14c.md5sums b/sim/src/tests/floppy_organics/test_C7H14c.md5sums new file mode 100755 index 000000000..c61f166f1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C7H14c.md5sums @@ -0,0 +1,2 @@ +stdout 804C5D9A21BC602DBE75E4713DBCE4B5 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_C7H14c.mmp b/sim/src/tests/floppy_organics/test_C7H14c.mmp new file mode 100755 index 000000000..8d479c143 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C7H14c.mmp @@ -0,0 +1,57 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.120499, -0.957702, -0.246747, 0.086039) (3.528416) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C7H14c) +info opengroup open = True +mol (C7H14c.pdb) cpk +atom 1 (6) (-989, 55, -1774) def +atom 2 (6) (287, 1179, -1162) def +bond1 1 +atom 3 (6) (1755, 339, 60) def +bond1 2 +atom 4 (6) (-1372, -91, 1515) def +atom 5 (6) (-1141, -463, -626) def +bond1 1 +atom 6 (6) (-1533, -1443, 660) def +bond1 4 5 +atom 7 (6) (1077, 571, 1424) def +bond1 3 4 +atom 8 (1) (-893, 863, -2342) def +bond1 1 +atom 9 (1) (-1041, 980, -1435) def +bond1 1 +atom 10 (1) (839, 242, -2186) def +bond1 2 +atom 11 (1) (521, 1726, -1594) def +bond1 2 +atom 12 (1) (2259, 395, -138) def +bond1 3 +atom 13 (1) (1514, -883, 181) def +bond1 3 +atom 14 (1) (-1266, 151, 2752) def +bond1 4 +atom 15 (1) (-1188, 1461, 1360) def +bond1 4 +atom 16 (1) (-2393, -1166, -1195) def +bond1 5 +atom 17 (1) (-1171, -1586, -929) def +bond1 5 +atom 18 (1) (-2274, -1804, 1331) def +bond1 6 +atom 19 (1) (-271, -1955, 1323) def +bond1 6 +atom 20 (1) (1257, 268, 2681) def +bond1 7 +atom 21 (1) (746, 1835, 1539) def +bond1 7 +egroup (C7H14c) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C7H14c + diff --git a/sim/src/tests/floppy_organics/test_C7H14c.test b/sim/src/tests/floppy_organics/test_C7H14c.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C7H14c.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_C7H14c.xyzcmp b/sim/src/tests/floppy_organics/test_C7H14c.xyzcmp new file mode 100755 index 000000000..72ca76cb4 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_C7H14c.xyzcmp @@ -0,0 +1,23 @@ +21 +C7H14c.mmp +C -0.828000 0.468000 -1.455000 +C 0.690000 0.705000 -1.349000 +C 1.324000 0.250000 -0.023000 +C -0.843000 0.249000 1.444000 +C -1.321000 -0.872000 -0.881000 +C -1.211000 -1.030000 0.670000 +C 0.629000 0.717000 1.267000 +H -1.124000 0.530000 -2.510000 +H -1.363000 1.286000 -0.956000 +H 1.200000 0.171000 -2.162000 +H 0.896000 1.771000 -1.512000 +H 2.370000 0.582000 0.000000 +H 1.370000 -0.847000 -0.014000 +H -1.031000 0.073000 2.510000 +H -1.530000 1.054000 1.157000 +H -2.370000 -0.992000 -1.177000 +H -0.779000 -1.690000 -1.374000 +H -2.169000 -1.400000 1.053000 +H -0.481000 -1.812000 0.915000 +H 1.225000 0.340000 2.107000 +H 0.671000 1.812000 1.339000 diff --git a/sim/src/tests/floppy_organics/test_CH4.md5sums b/sim/src/tests/floppy_organics/test_CH4.md5sums new file mode 100755 index 000000000..99317d077 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_CH4.md5sums @@ -0,0 +1,2 @@ +stdout DB2A29D576CC75E2F21AB1A7C5CF6935 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/floppy_organics/test_CH4.mmp b/sim/src/tests/floppy_organics/test_CH4.mmp new file mode 100755 index 000000000..6fdbafe6f --- /dev/null +++ b/sim/src/tests/floppy_organics/test_CH4.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.583308, -0.320020, 0.715625, -0.212650) (3.159698) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (CH4) +info opengroup open = True +mol (CH4.pdb) cpk +atom 1 (6) (-231, 155, 324) def +atom 2 (1) (-646, 895, -128) def +bond1 1 +atom 3 (1) (145, -385, 85) def +bond1 1 +atom 4 (1) (467, 1010, 1079) def +bond1 1 +atom 5 (1) (1184, 877, -589) def +bond1 1 +egroup (CH4) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH4 + diff --git a/sim/src/tests/floppy_organics/test_CH4.test b/sim/src/tests/floppy_organics/test_CH4.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/floppy_organics/test_CH4.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/floppy_organics/test_CH4.xyzcmp b/sim/src/tests/floppy_organics/test_CH4.xyzcmp new file mode 100755 index 000000000..67295eaaa --- /dev/null +++ b/sim/src/tests/floppy_organics/test_CH4.xyzcmp @@ -0,0 +1,7 @@ +5 +CH4.mmp +C 0.205000 0.296000 0.006000 +H -0.771000 0.787000 0.018000 +H 0.067000 -0.787000 0.006000 +H 0.771000 0.592000 0.892000 +H 0.750000 0.594000 -0.892000 diff --git a/sim/src/tests/heteroatom_organics/ADAM_AlH2_Cs.mmp b/sim/src/tests/heteroatom_organics/ADAM_AlH2_Cs.mmp new file mode 100755 index 000000000..d3a919e29 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_AlH2_Cs.mmp @@ -0,0 +1,71 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.775577) (-0.132500, -0.227000, -0.000000) (1.000000) +egroup (View Data) +group (ADAM_AlH2_Cs) +info opengroup open = True +mol (ADAM_AlH2_Cs.pdb) cpk +atom 1 (6) (656, -28, 0) def +atom 2 (6) (31, -686, -1261) def +bond1 1 +atom 3 (6) (31, -686, 1261) def +bond1 1 +atom 4 (6) (262, 1486, 0) def +bond1 1 +atom 5 (13) (2639, -153, 0) def +bond1 1 +atom 6 (6) (-1275, 1649, 0) def +bond1 4 +atom 7 (6) (-1506, -524, -1261) def +bond1 2 +atom 8 (6) (-1506, -524, 1261) def +bond1 3 +atom 9 (6) (-2094, -1190, 0) def +bond1 7 8 +atom 10 (6) (-1862, 979, -1259) def +bond1 6 7 +atom 11 (6) (-1862, 979, 1259) def +bond1 6 8 +atom 12 (1) (443, -237, -2176) def +bond1 2 +atom 13 (1) (443, -237, 2176) def +bond1 3 +atom 14 (1) (285, -1756, -1303) def +bond1 2 +atom 15 (1) (285, -1756, 1303) def +bond1 3 +atom 16 (1) (678, 1991, -885) def +bond1 4 +atom 17 (1) (678, 1991, 885) def +bond1 4 +atom 18 (1) (3454, -179, -1371) def +bond1 5 +atom 19 (1) (3454, -179, 1371) def +bond1 5 +atom 20 (1) (-1530, 2719, 0) def +bond1 6 +atom 21 (1) (-1924, -998, -2159) def +bond1 7 +atom 22 (1) (-1924, -998, 2159) def +bond1 8 +atom 23 (1) (-3189, -1099, 0) def +bond1 9 +atom 24 (1) (-1864, -2265, 0) def +bond1 9 +atom 25 (1) (-2953, 1105, -1284) def +bond1 10 +atom 26 (1) (-2953, 1105, 1284) def +bond1 11 +atom 27 (1) (-1467, 1460, -2165) def +bond1 10 +atom 28 (1) (-1467, 1460, 2165) def +bond1 11 +egroup (ADAM_AlH2_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_AlH2_Cs diff --git a/sim/src/tests/heteroatom_organics/ADAM_AlH2_Cs.pdb b/sim/src/tests/heteroatom_organics/ADAM_AlH2_Cs.pdb new file mode 100755 index 000000000..af4b80e27 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_AlH2_Cs.pdb @@ -0,0 +1,60 @@ +COMPND ADAM_AlH2_Cs.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 0.656 -0.028 0.000 1.00 0.00 C +ATOM 2 C UNK 0 0.031 -0.686 -1.261 1.00 0.00 C +ATOM 3 C UNK 0 0.031 -0.686 1.261 1.00 0.00 C +ATOM 4 C UNK 0 0.262 1.486 0.000 1.00 0.00 C +ATOM 5 AL UNK 0 2.639 -0.153 0.000 1.00 0.00 AL +ATOM 6 C UNK 0 -1.275 1.649 0.000 1.00 0.00 C +ATOM 7 C UNK 0 -1.506 -0.524 -1.261 1.00 0.00 C +ATOM 8 C UNK 0 -1.506 -0.524 1.261 1.00 0.00 C +ATOM 9 C UNK 0 -2.094 -1.190 0.000 1.00 0.00 C +ATOM 10 C UNK 0 -1.862 0.979 -1.259 1.00 0.00 C +ATOM 11 C UNK 0 -1.862 0.979 1.259 1.00 0.00 C +ATOM 12 H UNK 0 0.443 -0.237 -2.176 1.00 0.00 H +ATOM 13 H UNK 0 0.443 -0.237 2.176 1.00 0.00 H +ATOM 14 H UNK 0 0.285 -1.756 -1.303 1.00 0.00 H +ATOM 15 H UNK 0 0.285 -1.756 1.303 1.00 0.00 H +ATOM 16 H UNK 0 0.678 1.991 -0.885 1.00 0.00 H +ATOM 17 H UNK 0 0.678 1.991 0.885 1.00 0.00 H +ATOM 18 H UNK 0 3.454 -0.179 -1.371 1.00 0.00 H +ATOM 19 H UNK 0 3.454 -0.179 1.371 1.00 0.00 H +ATOM 20 H UNK 0 -1.530 2.719 0.000 1.00 0.00 H +ATOM 21 H UNK 0 -1.924 -0.998 -2.159 1.00 0.00 H +ATOM 22 H UNK 0 -1.924 -0.998 2.159 1.00 0.00 H +ATOM 23 H UNK 0 -3.189 -1.099 0.000 1.00 0.00 H +ATOM 24 H UNK 0 -1.864 -2.265 0.000 1.00 0.00 H +ATOM 25 H UNK 0 -2.953 1.105 -1.284 1.00 0.00 H +ATOM 26 H UNK 0 -2.953 1.105 1.284 1.00 0.00 H +ATOM 27 H UNK 0 -1.467 1.460 -2.165 1.00 0.00 H +ATOM 28 H UNK 0 -1.467 1.460 2.165 1.00 0.00 H +CONECT 1 2 5 4 3 +CONECT 2 12 14 7 1 +CONECT 3 1 8 15 13 +CONECT 4 16 6 1 17 +CONECT 5 18 1 19 +CONECT 6 10 20 4 11 +CONECT 7 21 2 10 9 +CONECT 8 9 11 3 22 +CONECT 9 7 23 24 8 +CONECT 10 27 25 7 6 +CONECT 11 6 8 26 28 +CONECT 12 2 +CONECT 13 3 +CONECT 14 2 +CONECT 15 3 +CONECT 16 4 +CONECT 17 4 +CONECT 18 5 +CONECT 19 5 +CONECT 20 6 +CONECT 21 7 +CONECT 22 8 +CONECT 23 9 +CONECT 24 9 +CONECT 25 10 +CONECT 26 11 +CONECT 27 10 +CONECT 28 11 +MASTER 0 0 0 0 0 0 0 0 28 0 28 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAM_BH2.mmp b/sim/src/tests/heteroatom_organics/ADAM_BH2.mmp new file mode 100755 index 000000000..48e949c79 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_BH2.mmp @@ -0,0 +1,72 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.521928, 0.477683, 0.285949, 0.646253) (3.792202) (0.490796, 0.868929, 0.441401) (1.000000) +egroup (View Data) +group (ADAM_BH2) +info opengroup open = True +mol (ADAM_BH2.pdb) cpk +atom 1 (6) (708, -87, 0) def +atom 2 (6) (71, -724, -1262) def +bond1 1 +atom 3 (6) (71, -724, 1262) def +bond1 1 +atom 4 (6) (349, 1452, 0) def +bond1 1 +atom 5 (5) (2269, -42, 0) def +bond1 1 +atom 6 (6) (-1187, 1628, 0) def +bond1 4 +atom 7 (6) (-1459, -538, -1261) def +bond1 2 +atom 8 (6) (-1459, -538, 1261) def +bond1 3 +atom 9 (6) (-2060, -1194, 0) def +bond1 7 8 +atom 10 (6) (-1787, 971, -1259) def +bond1 6 7 +atom 11 (6) (-1787, 971, 1259) def +bond1 6 8 +atom 12 (1) (502, -278, -2169) def +bond1 2 +atom 13 (1) (502, -278, 2169) def +bond1 3 +atom 14 (1) (317, -1795, -1298) def +bond1 2 +atom 15 (1) (317, -1795, 1298) def +bond1 3 +atom 16 (1) (774, 1944, -885) def +bond1 4 +atom 17 (1) (774, 1944, 885) def +bond1 4 +atom 18 (1) (2877, 22, -1031) def +bond1 5 +atom 19 (1) (2877, 22, 1031) def +bond1 5 +atom 20 (1) (-1418, 2703, 0) def +bond1 6 +atom 21 (1) (-1886, -1004, -2159) def +bond1 7 +atom 22 (1) (-1886, -1004, 2159) def +bond1 8 +atom 23 (1) (-3152, -1083, 0) def +bond1 9 +atom 24 (1) (-1847, -2272, 0) def +bond1 9 +atom 25 (1) (-2874, 1122, -1281) def +bond1 10 +atom 26 (1) (-2874, 1122, 1281) def +bond1 11 +atom 27 (1) (-1384, 1444, -2165) def +bond1 10 +atom 28 (1) (-1384, 1444, 2165) def +bond1 11 +egroup (ADAM_BH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_BH2 + diff --git a/sim/src/tests/heteroatom_organics/ADAM_BH2.pdb b/sim/src/tests/heteroatom_organics/ADAM_BH2.pdb new file mode 100755 index 000000000..0e41ebef8 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_BH2.pdb @@ -0,0 +1,61 @@ +COMPND ADAM_BH2.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 0.708 -0.087 0.000 1.00 0.00 C +ATOM 2 C UNK 0 0.071 -0.724 -1.262 1.00 0.00 C +ATOM 3 C UNK 0 0.071 -0.724 1.262 1.00 0.00 C +ATOM 4 C UNK 0 0.349 1.452 0.000 1.00 0.00 C +ATOM 5 B UNK 0 2.269 -0.042 0.000 1.00 0.00 B +ATOM 6 C UNK 0 -1.187 1.628 0.000 1.00 0.00 C +ATOM 7 C UNK 0 -1.459 -0.538 -1.261 1.00 0.00 C +ATOM 8 C UNK 0 -1.459 -0.538 1.261 1.00 0.00 C +ATOM 9 C UNK 0 -2.060 -1.194 0.000 1.00 0.00 C +ATOM 10 C UNK 0 -1.787 0.971 -1.259 1.00 0.00 C +ATOM 11 C UNK 0 -1.787 0.971 1.259 1.00 0.00 C +ATOM 12 H UNK 0 0.502 -0.278 -2.169 1.00 0.00 H +ATOM 13 H UNK 0 0.502 -0.278 2.169 1.00 0.00 H +ATOM 14 H UNK 0 0.317 -1.795 -1.298 1.00 0.00 H +ATOM 15 H UNK 0 0.317 -1.795 1.298 1.00 0.00 H +ATOM 16 H UNK 0 0.774 1.944 -0.885 1.00 0.00 H +ATOM 17 H UNK 0 0.774 1.944 0.885 1.00 0.00 H +ATOM 18 H UNK 0 2.877 0.022 -1.031 1.00 0.00 H +ATOM 19 H UNK 0 2.877 0.022 1.031 1.00 0.00 H +ATOM 20 H UNK 0 -1.418 2.703 0.000 1.00 0.00 H +ATOM 21 H UNK 0 -1.886 -1.004 -2.159 1.00 0.00 H +ATOM 22 H UNK 0 -1.886 -1.004 2.159 1.00 0.00 H +ATOM 23 H UNK 0 -3.152 -1.083 0.000 1.00 0.00 H +ATOM 24 H UNK 0 -1.847 -2.272 0.000 1.00 0.00 H +ATOM 25 H UNK 0 -2.874 1.122 -1.281 1.00 0.00 H +ATOM 26 H UNK 0 -2.874 1.122 1.281 1.00 0.00 H +ATOM 27 H UNK 0 -1.384 1.444 -2.165 1.00 0.00 H +ATOM 28 H UNK 0 -1.384 1.444 2.165 1.00 0.00 H +CONECT 1 2 5 4 3 +CONECT 2 12 14 7 1 +CONECT 3 1 8 15 13 +CONECT 4 16 6 1 17 +CONECT 5 18 1 19 +CONECT 6 10 20 4 11 +CONECT 7 21 2 10 9 +CONECT 8 9 11 3 22 +CONECT 9 7 24 23 8 +CONECT 10 27 25 7 6 +CONECT 11 6 8 26 28 +CONECT 12 2 +CONECT 13 3 +CONECT 14 2 +CONECT 15 3 +CONECT 16 4 +CONECT 17 4 +CONECT 18 5 +CONECT 19 5 +CONECT 20 6 +CONECT 21 7 +CONECT 22 8 +CONECT 23 9 +CONECT 24 9 +CONECT 25 10 +CONECT 26 11 +CONECT 27 10 +CONECT 28 11 +MASTER 0 0 0 0 0 0 0 0 28 0 28 0 +END + diff --git a/sim/src/tests/heteroatom_organics/ADAM_Cl_c3v.mmp b/sim/src/tests/heteroatom_organics/ADAM_Cl_c3v.mmp new file mode 100755 index 000000000..64cf1bd61 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_Cl_c3v.mmp @@ -0,0 +1,65 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.408235) (0.001500, -0.000000, -0.072500) (1.000000) +egroup (View Data) +group (ADAM_Cl_c3v) +info opengroup open = True +mol (ADAM_Cl_c3v.pdb) cpk +atom 1 (6) (-727, 1258, 480) def +atom 2 (6) (-727, -1258, 480) def +atom 3 (6) (1453, 0, 480) def +atom 4 (6) (0, 0, 973) def +bond1 1 2 3 +atom 5 (6) (-727, 1259, -1071) def +bond1 1 +atom 6 (6) (-727, -1259, -1071) def +bond1 2 +atom 7 (6) (1454, 0, -1071) def +bond1 3 +atom 8 (17) (0, 0, 2825) def +bond1 4 +atom 9 (6) (728, -1261, -1582) def +bond1 6 7 +atom 10 (6) (728, 1261, -1582) def +bond1 5 7 +atom 11 (6) (-1456, 0, -1582) def +bond1 5 6 +atom 12 (1) (-225, 2156, 859) def +bond1 1 +atom 13 (1) (-1755, -1273, 859) def +bond1 2 +atom 14 (1) (1980, 883, 859) def +bond1 3 +atom 15 (1) (-1755, 1273, 859) def +bond1 1 +atom 16 (1) (-225, -2156, 859) def +bond1 2 +atom 17 (1) (1980, -883, 859) def +bond1 3 +atom 18 (1) (-1247, 2160, -1421) def +bond1 5 +atom 19 (1) (-1247, -2160, -1421) def +bond1 6 +atom 20 (1) (2494, 0, -1421) def +bond1 7 +atom 21 (1) (744, -1289, -2680) def +bond1 9 +atom 22 (1) (744, 1289, -2680) def +bond1 10 +atom 23 (1) (-1489, 0, -2680) def +bond1 11 +atom 24 (1) (1249, -2163, -1235) def +bond1 9 +atom 25 (1) (1249, 2163, -1235) def +bond1 10 +atom 26 (1) (-2497, 0, -1235) def +bond1 11 +egroup (ADAM_Cl_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_Cl_c3v diff --git a/sim/src/tests/heteroatom_organics/ADAM_Cl_c3v.pdb b/sim/src/tests/heteroatom_organics/ADAM_Cl_c3v.pdb new file mode 100755 index 000000000..99cded513 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_Cl_c3v.pdb @@ -0,0 +1,56 @@ +COMPND ADAM_Cl_c3v.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 -0.727 1.258 0.480 1.00 0.00 C +ATOM 2 C UNK 0 -0.727 -1.258 0.480 1.00 0.00 C +ATOM 3 C UNK 0 1.453 0.000 0.480 1.00 0.00 C +ATOM 4 C UNK 0 0.000 0.000 0.973 1.00 0.00 C +ATOM 5 C UNK 0 -0.727 1.259 -1.071 1.00 0.00 C +ATOM 6 C UNK 0 -0.727 -1.259 -1.071 1.00 0.00 C +ATOM 7 C UNK 0 1.454 0.000 -1.071 1.00 0.00 C +ATOM 8 CL UNK 0 0.000 0.000 2.825 1.00 0.00 CL +ATOM 9 C UNK 0 0.728 -1.261 -1.582 1.00 0.00 C +ATOM 10 C UNK 0 0.728 1.261 -1.582 1.00 0.00 C +ATOM 11 C UNK 0 -1.456 0.000 -1.582 1.00 0.00 C +ATOM 12 H UNK 0 -0.225 2.156 0.859 1.00 0.00 H +ATOM 13 H UNK 0 -1.755 -1.273 0.859 1.00 0.00 H +ATOM 14 H UNK 0 1.980 0.883 0.859 1.00 0.00 H +ATOM 15 H UNK 0 -1.755 1.273 0.859 1.00 0.00 H +ATOM 16 H UNK 0 -0.225 -2.156 0.859 1.00 0.00 H +ATOM 17 H UNK 0 1.980 -0.883 0.859 1.00 0.00 H +ATOM 18 H UNK 0 -1.247 2.160 -1.421 1.00 0.00 H +ATOM 19 H UNK 0 -1.247 -2.160 -1.421 1.00 0.00 H +ATOM 20 H UNK 0 2.494 0.000 -1.421 1.00 0.00 H +ATOM 21 H UNK 0 0.744 -1.289 -2.680 1.00 0.00 H +ATOM 22 H UNK 0 0.744 1.289 -2.680 1.00 0.00 H +ATOM 23 H UNK 0 -1.489 0.000 -2.680 1.00 0.00 H +ATOM 24 H UNK 0 1.249 -2.163 -1.235 1.00 0.00 H +ATOM 25 H UNK 0 1.249 2.163 -1.235 1.00 0.00 H +ATOM 26 H UNK 0 -2.497 0.000 -1.235 1.00 0.00 H +CONECT 1 5 15 12 4 +CONECT 2 6 16 13 4 +CONECT 3 7 17 14 4 +CONECT 4 3 2 1 8 +CONECT 5 10 11 18 1 +CONECT 6 9 11 19 2 +CONECT 7 9 10 20 3 +CONECT 8 4 +CONECT 9 21 24 6 7 +CONECT 10 22 25 5 7 +CONECT 11 23 26 5 6 +CONECT 12 1 +CONECT 13 2 +CONECT 14 3 +CONECT 15 1 +CONECT 16 2 +CONECT 17 3 +CONECT 18 5 +CONECT 19 6 +CONECT 20 7 +CONECT 21 9 +CONECT 22 10 +CONECT 23 11 +CONECT 24 9 +CONECT 25 10 +CONECT 26 11 +MASTER 0 0 0 0 0 0 0 0 26 0 26 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAM_F_c3v.mmp b/sim/src/tests/heteroatom_organics/ADAM_F_c3v.mmp new file mode 100755 index 000000000..056b822a3 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_F_c3v.mmp @@ -0,0 +1,65 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.273025) (0.002000, -0.000000, 0.134500) (1.000000) +egroup (View Data) +group (ADAM_F_c3v) +info opengroup open = True +mol (ADAM_F_c3v.pdb) cpk +atom 1 (6) (-725, 1256, 494) def +atom 2 (6) (-725, -1256, 494) def +atom 3 (6) (1450, 0, 494) def +atom 4 (6) (0, 0, 988) def +bond1 1 2 3 +atom 5 (6) (-728, 1261, -1054) def +bond1 1 +atom 6 (6) (-728, -1261, -1054) def +bond1 2 +atom 7 (6) (1457, 0, -1054) def +bond1 3 +atom 8 (9) (0, 0, 2394) def +bond1 4 +atom 9 (6) (728, -1260, -1565) def +bond1 6 7 +atom 10 (6) (728, 1260, -1565) def +bond1 5 7 +atom 11 (6) (-1455, 0, -1565) def +bond1 5 6 +atom 12 (1) (-220, 2149, 881) def +bond1 1 +atom 13 (1) (-1751, -1265, 881) def +bond1 2 +atom 14 (1) (1971, 884, 881) def +bond1 3 +atom 15 (1) (-1751, 1265, 881) def +bond1 1 +atom 16 (1) (-220, -2149, 881) def +bond1 2 +atom 17 (1) (1971, -884, 881) def +bond1 3 +atom 18 (1) (-1247, 2160, -1410) def +bond1 5 +atom 19 (1) (-1247, -2160, -1410) def +bond1 6 +atom 20 (1) (2494, 0, -1410) def +bond1 7 +atom 21 (1) (744, -1289, -2663) def +bond1 9 +atom 22 (1) (744, 1289, -2663) def +bond1 10 +atom 23 (1) (-1488, 0, -2663) def +bond1 11 +atom 24 (1) (1249, -2163, -1219) def +bond1 9 +atom 25 (1) (1249, 2163, -1219) def +bond1 10 +atom 26 (1) (-2498, 0, -1219) def +bond1 11 +egroup (ADAM_F_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_F_c3v diff --git a/sim/src/tests/heteroatom_organics/ADAM_F_c3v.pdb b/sim/src/tests/heteroatom_organics/ADAM_F_c3v.pdb new file mode 100755 index 000000000..bf170f325 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_F_c3v.pdb @@ -0,0 +1,56 @@ +COMPND ADAM_F_c3v.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 -0.725 1.256 0.494 1.00 0.00 C +ATOM 2 C UNK 0 -0.725 -1.256 0.494 1.00 0.00 C +ATOM 3 C UNK 0 1.450 0.000 0.494 1.00 0.00 C +ATOM 4 C UNK 0 0.000 0.000 0.988 1.00 0.00 C +ATOM 5 C UNK 0 -0.728 1.261 -1.054 1.00 0.00 C +ATOM 6 C UNK 0 -0.728 -1.261 -1.054 1.00 0.00 C +ATOM 7 C UNK 0 1.457 0.000 -1.054 1.00 0.00 C +ATOM 8 F UNK 0 0.000 0.000 2.394 1.00 0.00 F +ATOM 9 C UNK 0 0.728 -1.260 -1.565 1.00 0.00 C +ATOM 10 C UNK 0 0.728 1.260 -1.565 1.00 0.00 C +ATOM 11 C UNK 0 -1.455 0.000 -1.565 1.00 0.00 C +ATOM 12 H UNK 0 -0.220 2.149 0.881 1.00 0.00 H +ATOM 13 H UNK 0 -1.751 -1.265 0.881 1.00 0.00 H +ATOM 14 H UNK 0 1.971 0.884 0.881 1.00 0.00 H +ATOM 15 H UNK 0 -1.751 1.265 0.881 1.00 0.00 H +ATOM 16 H UNK 0 -0.220 -2.149 0.881 1.00 0.00 H +ATOM 17 H UNK 0 1.971 -0.884 0.881 1.00 0.00 H +ATOM 18 H UNK 0 -1.247 2.160 -1.410 1.00 0.00 H +ATOM 19 H UNK 0 -1.247 -2.160 -1.410 1.00 0.00 H +ATOM 20 H UNK 0 2.494 0.000 -1.410 1.00 0.00 H +ATOM 21 H UNK 0 0.744 -1.289 -2.663 1.00 0.00 H +ATOM 22 H UNK 0 0.744 1.289 -2.663 1.00 0.00 H +ATOM 23 H UNK 0 -1.488 0.000 -2.663 1.00 0.00 H +ATOM 24 H UNK 0 1.249 -2.163 -1.219 1.00 0.00 H +ATOM 25 H UNK 0 1.249 2.163 -1.219 1.00 0.00 H +ATOM 26 H UNK 0 -2.498 0.000 -1.219 1.00 0.00 H +CONECT 1 5 15 12 4 +CONECT 2 6 16 13 4 +CONECT 3 7 17 14 4 +CONECT 4 3 2 1 8 +CONECT 5 10 11 18 1 +CONECT 6 9 11 19 2 +CONECT 7 9 10 20 3 +CONECT 8 4 +CONECT 9 21 24 6 7 +CONECT 10 22 25 5 7 +CONECT 11 23 26 5 6 +CONECT 12 1 +CONECT 13 2 +CONECT 14 3 +CONECT 15 1 +CONECT 16 2 +CONECT 17 3 +CONECT 18 5 +CONECT 19 6 +CONECT 20 7 +CONECT 21 9 +CONECT 22 10 +CONECT 23 11 +CONECT 24 9 +CONECT 25 10 +CONECT 26 11 +MASTER 0 0 0 0 0 0 0 0 26 0 26 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAM_NH2_Cs.mmp b/sim/src/tests/heteroatom_organics/ADAM_NH2_Cs.mmp new file mode 100755 index 000000000..ea8b7c280 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_NH2_Cs.mmp @@ -0,0 +1,71 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.470234) (0.266000, -0.222000, -0.000000) (1.000000) +egroup (View Data) +group (ADAM_NH2_Cs) +info opengroup open = True +mol (ADAM_NH2_Cs.pdb) cpk +atom 1 (6) (722, -66, 0) def +atom 2 (6) (100, -718, -1253) def +bond1 1 +atom 3 (6) (100, -718, 1253) def +bond1 1 +atom 4 (6) (361, 1445, 0) def +bond1 1 +atom 5 (7) (2166, -335, 0) def +bond1 1 +atom 6 (6) (-1169, 1639, 0) def +bond1 4 +atom 7 (6) (-1430, -531, -1260) def +bond1 2 +atom 8 (6) (-1430, -531, 1260) def +bond1 3 +atom 9 (6) (-2031, -1189, 0) def +bond1 7 8 +atom 10 (6) (-1766, 977, -1259) def +bond1 6 7 +atom 11 (6) (-1766, 977, 1259) def +bond1 6 8 +atom 12 (1) (534, -268, -2159) def +bond1 2 +atom 13 (1) (534, -268, 2159) def +bond1 3 +atom 14 (1) (368, -1782, -1271) def +bond1 2 +atom 15 (1) (368, -1782, 1271) def +bond1 3 +atom 16 (1) (805, 1924, -884) def +bond1 4 +atom 17 (1) (805, 1924, 884) def +bond1 4 +atom 18 (1) (2591, 111, -813) def +bond1 5 +atom 19 (1) (2591, 111, 813) def +bond1 5 +atom 20 (1) (-1408, 2711, 0) def +bond1 6 +atom 21 (1) (-1851, -1000, -2159) def +bond1 7 +atom 22 (1) (-1851, -1000, 2159) def +bond1 8 +atom 23 (1) (-3123, -1076, 0) def +bond1 9 +atom 24 (1) (-1818, -2267, 0) def +bond1 9 +atom 25 (1) (-2855, 1118, -1284) def +bond1 10 +atom 26 (1) (-2855, 1118, 1284) def +bond1 11 +atom 27 (1) (-1365, 1452, -2165) def +bond1 10 +atom 28 (1) (-1365, 1452, 2165) def +bond1 11 +egroup (ADAM_NH2_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_NH2_Cs diff --git a/sim/src/tests/heteroatom_organics/ADAM_NH2_Cs.pdb b/sim/src/tests/heteroatom_organics/ADAM_NH2_Cs.pdb new file mode 100755 index 000000000..ac3805ef7 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_NH2_Cs.pdb @@ -0,0 +1,60 @@ +COMPND ADAM_NH2_Cs.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 0.722 -0.066 0.000 1.00 0.00 C +ATOM 2 C UNK 0 0.100 -0.718 -1.253 1.00 0.00 C +ATOM 3 C UNK 0 0.100 -0.718 1.253 1.00 0.00 C +ATOM 4 C UNK 0 0.361 1.445 0.000 1.00 0.00 C +ATOM 5 N UNK 0 2.166 -0.335 0.000 1.00 0.00 N +ATOM 6 C UNK 0 -1.169 1.639 0.000 1.00 0.00 C +ATOM 7 C UNK 0 -1.430 -0.531 -1.260 1.00 0.00 C +ATOM 8 C UNK 0 -1.430 -0.531 1.260 1.00 0.00 C +ATOM 9 C UNK 0 -2.031 -1.189 0.000 1.00 0.00 C +ATOM 10 C UNK 0 -1.766 0.977 -1.259 1.00 0.00 C +ATOM 11 C UNK 0 -1.766 0.977 1.259 1.00 0.00 C +ATOM 12 H UNK 0 0.534 -0.268 -2.159 1.00 0.00 H +ATOM 13 H UNK 0 0.534 -0.268 2.159 1.00 0.00 H +ATOM 14 H UNK 0 0.368 -1.782 -1.271 1.00 0.00 H +ATOM 15 H UNK 0 0.368 -1.782 1.271 1.00 0.00 H +ATOM 16 H UNK 0 0.805 1.924 -0.884 1.00 0.00 H +ATOM 17 H UNK 0 0.805 1.924 0.884 1.00 0.00 H +ATOM 18 H UNK 0 2.591 0.111 -0.813 1.00 0.00 H +ATOM 19 H UNK 0 2.591 0.111 0.813 1.00 0.00 H +ATOM 20 H UNK 0 -1.408 2.711 0.000 1.00 0.00 H +ATOM 21 H UNK 0 -1.851 -1.001 -2.159 1.00 0.00 H +ATOM 22 H UNK 0 -1.851 -1.001 2.159 1.00 0.00 H +ATOM 23 H UNK 0 -3.123 -1.076 0.000 1.00 0.00 H +ATOM 24 H UNK 0 -1.818 -2.267 0.000 1.00 0.00 H +ATOM 25 H UNK 0 -2.855 1.118 -1.284 1.00 0.00 H +ATOM 26 H UNK 0 -2.855 1.118 1.284 1.00 0.00 H +ATOM 27 H UNK 0 -1.365 1.452 -2.165 1.00 0.00 H +ATOM 28 H UNK 0 -1.365 1.452 2.165 1.00 0.00 H +CONECT 1 2 5 4 3 +CONECT 2 12 14 7 1 +CONECT 3 1 8 15 13 +CONECT 4 16 6 1 17 +CONECT 5 18 1 19 +CONECT 6 10 20 4 11 +CONECT 7 21 10 2 9 +CONECT 8 9 3 11 22 +CONECT 9 7 23 24 8 +CONECT 10 27 25 7 6 +CONECT 11 6 8 26 28 +CONECT 12 2 +CONECT 13 3 +CONECT 14 2 +CONECT 15 3 +CONECT 16 4 +CONECT 17 4 +CONECT 18 5 +CONECT 19 5 +CONECT 20 6 +CONECT 21 7 +CONECT 22 8 +CONECT 23 9 +CONECT 24 9 +CONECT 25 10 +CONECT 26 11 +CONECT 27 10 +CONECT 28 11 +MASTER 0 0 0 0 0 0 0 0 28 0 28 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAM_OH_Cs.mmp b/sim/src/tests/heteroatom_organics/ADAM_OH_Cs.mmp new file mode 100755 index 000000000..b974157ed --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_OH_Cs.mmp @@ -0,0 +1,69 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.396648) (0.002000, -0.072500, -0.000000) (1.000000) +egroup (View Data) +group (ADAM_OH_Cs) +info opengroup open = True +mol (ADAM_OH_Cs.pdb) cpk +atom 1 (6) (1397, 587, 0) def +atom 2 (6) (-65, 1063, 0) def +bond1 1 +atom 3 (6) (1448, -956, 0) def +bond1 1 +atom 4 (6) (-776, 520, 1256) def +bond1 2 +atom 5 (6) (-776, 520, -1256) def +bond1 2 +atom 6 (8) (-27, 2492, 0) def +bond1 2 +atom 7 (6) (-735, -1024, 1262) def +bond1 4 +atom 8 (6) (-735, -1024, -1262) def +bond1 5 +atom 9 (6) (736, -1493, 1259) def +bond1 3 7 +atom 10 (6) (736, -1493, -1259) def +bond1 3 8 +atom 11 (6) (-1445, -1558, 0) def +bond1 7 8 +atom 12 (1) (1903, 994, 884) def +bond1 1 +atom 13 (1) (1903, 994, -884) def +bond1 1 +atom 14 (1) (2496, -1283, 0) def +bond1 3 +atom 15 (1) (-1819, 868, 1273) def +bond1 4 +atom 16 (1) (-1819, 868, -1273) def +bond1 5 +atom 17 (1) (-287, 927, 2151) def +bond1 4 +atom 18 (1) (-287, 927, -2151) def +bond1 5 +atom 19 (1) (-944, 2802, 0) def +bond1 6 +atom 20 (1) (-1242, -1401, 2160) def +bond1 7 +atom 21 (1) (-1242, -1401, -2160) def +bond1 8 +atom 22 (1) (778, -2590, 1284) def +bond1 9 +atom 23 (1) (778, -2590, -1284) def +bond1 10 +atom 24 (1) (1244, -1136, 2165) def +bond1 9 +atom 25 (1) (1244, -1136, -2165) def +bond1 10 +atom 26 (1) (-1439, -2657, 0) def +bond1 11 +atom 27 (1) (-2500, -1252, 0) def +bond1 11 +egroup (ADAM_OH_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_OH_Cs diff --git a/sim/src/tests/heteroatom_organics/ADAM_OH_Cs.pdb b/sim/src/tests/heteroatom_organics/ADAM_OH_Cs.pdb new file mode 100755 index 000000000..d98a3abe7 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_OH_Cs.pdb @@ -0,0 +1,58 @@ +COMPND ADAM_OH_Cs.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 1.397 0.587 0.000 1.00 0.00 C +ATOM 2 C UNK 0 -0.065 1.063 0.000 1.00 0.00 C +ATOM 3 C UNK 0 1.448 -0.956 0.000 1.00 0.00 C +ATOM 4 C UNK 0 -0.776 0.520 1.256 1.00 0.00 C +ATOM 5 C UNK 0 -0.776 0.520 -1.256 1.00 0.00 C +ATOM 6 O UNK 0 -0.027 2.492 0.000 1.00 0.00 O +ATOM 7 C UNK 0 -0.735 -1.024 1.262 1.00 0.00 C +ATOM 8 C UNK 0 -0.735 -1.024 -1.262 1.00 0.00 C +ATOM 9 C UNK 0 0.736 -1.493 1.259 1.00 0.00 C +ATOM 10 C UNK 0 0.736 -1.493 -1.259 1.00 0.00 C +ATOM 11 C UNK 0 -1.445 -1.558 0.000 1.00 0.00 C +ATOM 12 H UNK 0 1.903 0.994 0.884 1.00 0.00 H +ATOM 13 H UNK 0 1.903 0.994 -0.884 1.00 0.00 H +ATOM 14 H UNK 0 2.496 -1.283 0.000 1.00 0.00 H +ATOM 15 H UNK 0 -1.819 0.868 1.273 1.00 0.00 H +ATOM 16 H UNK 0 -1.819 0.868 -1.273 1.00 0.00 H +ATOM 17 H UNK 0 -0.287 0.927 2.151 1.00 0.00 H +ATOM 18 H UNK 0 -0.287 0.927 -2.151 1.00 0.00 H +ATOM 19 H UNK 0 -0.944 2.802 0.000 1.00 0.00 H +ATOM 20 H UNK 0 -1.242 -1.401 2.160 1.00 0.00 H +ATOM 21 H UNK 0 -1.242 -1.401 -2.160 1.00 0.00 H +ATOM 22 H UNK 0 0.778 -2.590 1.284 1.00 0.00 H +ATOM 23 H UNK 0 0.778 -2.590 -1.284 1.00 0.00 H +ATOM 24 H UNK 0 1.244 -1.136 2.165 1.00 0.00 H +ATOM 25 H UNK 0 1.244 -1.136 -2.165 1.00 0.00 H +ATOM 26 H UNK 0 -1.439 -2.657 0.000 1.00 0.00 H +ATOM 27 H UNK 0 -2.500 -1.252 0.000 1.00 0.00 H +CONECT 1 13 3 2 12 +CONECT 2 5 6 1 4 +CONECT 3 10 14 1 9 +CONECT 4 2 7 15 17 +CONECT 5 18 16 8 2 +CONECT 6 19 2 +CONECT 7 11 4 9 20 +CONECT 8 21 10 5 11 +CONECT 9 3 7 22 24 +CONECT 10 25 23 8 3 +CONECT 11 8 27 26 7 +CONECT 12 1 +CONECT 13 1 +CONECT 14 3 +CONECT 15 4 +CONECT 16 5 +CONECT 17 4 +CONECT 18 5 +CONECT 19 6 +CONECT 20 7 +CONECT 21 8 +CONECT 22 9 +CONECT 23 10 +CONECT 24 9 +CONECT 25 10 +CONECT 26 11 +CONECT 27 11 +MASTER 0 0 0 0 0 0 0 0 27 0 27 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAM_PH2_Cs.mmp b/sim/src/tests/heteroatom_organics/ADAM_PH2_Cs.mmp new file mode 100755 index 000000000..270be00a8 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_PH2_Cs.mmp @@ -0,0 +1,71 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.591431) (0.141500, -0.221500, -0.000000) (1.000000) +egroup (View Data) +group (ADAM_PH2_Cs) +info opengroup open = True +mol (ADAM_PH2_Cs.pdb) cpk +atom 1 (6) (678, -114, 0) def +atom 2 (6) (40, -759, -1258) def +bond1 1 +atom 3 (6) (40, -759, 1258) def +bond1 1 +atom 4 (6) (360, 1401, 0) def +bond1 1 +atom 5 (15) (2527, -507, 0) def +bond1 1 +atom 6 (6) (-1169, 1625, 0) def +bond1 4 +atom 7 (6) (-1488, -535, -1259) def +bond1 2 +atom 8 (6) (-1488, -535, 1259) def +bond1 3 +atom 9 (6) (-2104, -1179, 0) def +bond1 7 8 +atom 10 (6) (-1782, 980, -1259) def +bond1 6 7 +atom 11 (6) (-1782, 980, 1259) def +bond1 6 8 +atom 12 (1) (475, -324, -2169) def +bond1 2 +atom 13 (1) (475, -324, 2169) def +bond1 3 +atom 14 (1) (267, -1833, -1284) def +bond1 2 +atom 15 (1) (267, -1833, 1284) def +bond1 3 +atom 16 (1) (807, 1876, -883) def +bond1 4 +atom 17 (1) (807, 1876, 883) def +bond1 4 +atom 18 (1) (2910, 393, -1040) def +bond1 5 +atom 19 (1) (2910, 393, 1040) def +bond1 5 +atom 20 (1) (-1377, 2704, 0) def +bond1 6 +atom 21 (1) (-1917, -995, -2159) def +bond1 7 +atom 22 (1) (-1917, -995, 2159) def +bond1 8 +atom 23 (1) (-3193, -1038, 0) def +bond1 9 +atom 24 (1) (-1917, -2261, 0) def +bond1 9 +atom 25 (1) (-2867, 1154, -1286) def +bond1 10 +atom 26 (1) (-2867, 1154, 1286) def +bond1 11 +atom 27 (1) (-1366, 1443, -2165) def +bond1 10 +atom 28 (1) (-1366, 1443, 2165) def +bond1 11 +egroup (ADAM_PH2_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_PH2_Cs diff --git a/sim/src/tests/heteroatom_organics/ADAM_PH2_Cs.pdb b/sim/src/tests/heteroatom_organics/ADAM_PH2_Cs.pdb new file mode 100755 index 000000000..15c727d26 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_PH2_Cs.pdb @@ -0,0 +1,60 @@ +COMPND ADAM_PH2_Cs.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 0.678 -0.114 0.000 1.00 0.00 C +ATOM 2 C UNK 0 0.040 -0.759 -1.258 1.00 0.00 C +ATOM 3 C UNK 0 0.040 -0.759 1.258 1.00 0.00 C +ATOM 4 C UNK 0 0.360 1.401 0.000 1.00 0.00 C +ATOM 5 P UNK 0 2.527 -0.507 0.000 1.00 0.00 P +ATOM 6 C UNK 0 -1.169 1.625 0.000 1.00 0.00 C +ATOM 7 C UNK 0 -1.488 -0.535 -1.259 1.00 0.00 C +ATOM 8 C UNK 0 -1.488 -0.535 1.259 1.00 0.00 C +ATOM 9 C UNK 0 -2.104 -1.179 0.000 1.00 0.00 C +ATOM 10 C UNK 0 -1.782 0.980 -1.259 1.00 0.00 C +ATOM 11 C UNK 0 -1.782 0.980 1.259 1.00 0.00 C +ATOM 12 H UNK 0 0.475 -0.324 -2.169 1.00 0.00 H +ATOM 13 H UNK 0 0.475 -0.324 2.169 1.00 0.00 H +ATOM 14 H UNK 0 0.267 -1.833 -1.284 1.00 0.00 H +ATOM 15 H UNK 0 0.267 -1.833 1.284 1.00 0.00 H +ATOM 16 H UNK 0 0.807 1.876 -0.883 1.00 0.00 H +ATOM 17 H UNK 0 0.807 1.876 0.883 1.00 0.00 H +ATOM 18 H UNK 0 2.910 0.393 -1.040 1.00 0.00 H +ATOM 19 H UNK 0 2.910 0.393 1.040 1.00 0.00 H +ATOM 20 H UNK 0 -1.377 2.704 0.000 1.00 0.00 H +ATOM 21 H UNK 0 -1.917 -0.995 -2.159 1.00 0.00 H +ATOM 22 H UNK 0 -1.917 -0.995 2.159 1.00 0.00 H +ATOM 23 H UNK 0 -3.193 -1.038 0.000 1.00 0.00 H +ATOM 24 H UNK 0 -1.917 -2.261 0.000 1.00 0.00 H +ATOM 25 H UNK 0 -2.867 1.154 -1.286 1.00 0.00 H +ATOM 26 H UNK 0 -2.867 1.154 1.286 1.00 0.00 H +ATOM 27 H UNK 0 -1.366 1.443 -2.165 1.00 0.00 H +ATOM 28 H UNK 0 -1.366 1.443 2.165 1.00 0.00 H +CONECT 1 2 5 4 3 +CONECT 2 12 14 7 1 +CONECT 3 1 8 15 13 +CONECT 4 16 6 1 17 +CONECT 5 18 1 19 +CONECT 6 10 20 4 11 +CONECT 7 21 10 2 9 +CONECT 8 9 3 11 22 +CONECT 9 7 23 24 8 +CONECT 10 27 25 7 6 +CONECT 11 6 8 26 28 +CONECT 12 2 +CONECT 13 3 +CONECT 14 2 +CONECT 15 3 +CONECT 16 4 +CONECT 17 4 +CONECT 18 5 +CONECT 19 5 +CONECT 20 6 +CONECT 21 7 +CONECT 22 8 +CONECT 23 9 +CONECT 24 9 +CONECT 25 10 +CONECT 26 11 +CONECT 27 10 +CONECT 28 11 +MASTER 0 0 0 0 0 0 0 0 28 0 28 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAM_SH_Cs.mmp b/sim/src/tests/heteroatom_organics/ADAM_SH_Cs.mmp new file mode 100755 index 000000000..e0b95cd47 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_SH_Cs.mmp @@ -0,0 +1,69 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.492281) (-0.004500, -0.213500, -0.000000) (1.000000) +egroup (View Data) +group (ADAM_SH_Cs) +info opengroup open = True +mol (ADAM_SH_Cs.pdb) cpk +atom 1 (6) (1425, 546, 0) def +atom 2 (6) (-40, 1039, 0) def +bond1 1 +atom 3 (6) (1456, -1000, 0) def +bond1 1 +atom 4 (6) (-756, 504, 1258) def +bond1 2 +atom 5 (6) (-756, 504, -1258) def +bond1 2 +atom 6 (16) (29, 2898, 0) def +bond1 2 +atom 7 (6) (-725, -1044, 1259) def +bond1 4 +atom 8 (6) (-725, -1044, -1259) def +bond1 5 +atom 9 (6) (739, -1527, 1260) def +bond1 3 7 +atom 10 (6) (739, -1527, -1260) def +bond1 3 8 +atom 11 (6) (-1442, -1572, 0) def +bond1 7 8 +atom 12 (1) (1945, 935, 885) def +bond1 1 +atom 13 (1) (1945, 935, -885) def +bond1 1 +atom 14 (1) (2502, -1332, 0) def +bond1 3 +atom 15 (1) (-1798, 852, 1275) def +bond1 4 +atom 16 (1) (-1798, 852, -1275) def +bond1 5 +atom 17 (1) (-274, 897, 2161) def +bond1 4 +atom 18 (1) (-274, 897, -2161) def +bond1 5 +atom 19 (1) (-1306, 3098, 0) def +bond1 6 +atom 20 (1) (-1236, -1409, 2160) def +bond1 7 +atom 21 (1) (-1236, -1409, -2160) def +bond1 8 +atom 22 (1) (773, -2624, 1285) def +bond1 9 +atom 23 (1) (773, -2624, -1285) def +bond1 10 +atom 24 (1) (1251, -1173, 2165) def +bond1 9 +atom 25 (1) (1251, -1173, -2165) def +bond1 10 +atom 26 (1) (-1446, -2671, 0) def +bond1 11 +atom 27 (1) (-2493, -1255, 0) def +bond1 11 +egroup (ADAM_SH_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_SH_Cs diff --git a/sim/src/tests/heteroatom_organics/ADAM_SH_Cs.pdb b/sim/src/tests/heteroatom_organics/ADAM_SH_Cs.pdb new file mode 100755 index 000000000..6690a927b --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_SH_Cs.pdb @@ -0,0 +1,58 @@ +COMPND ADAM_SH_Cs.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 1.425 0.546 0.000 1.00 0.00 C +ATOM 2 C UNK 0 -0.040 1.039 0.000 1.00 0.00 C +ATOM 3 C UNK 0 1.456 -1.000 0.000 1.00 0.00 C +ATOM 4 C UNK 0 -0.756 0.504 1.258 1.00 0.00 C +ATOM 5 C UNK 0 -0.756 0.504 -1.258 1.00 0.00 C +ATOM 6 S UNK 0 0.029 2.898 0.000 1.00 0.00 S +ATOM 7 C UNK 0 -0.725 -1.044 1.259 1.00 0.00 C +ATOM 8 C UNK 0 -0.725 -1.044 -1.259 1.00 0.00 C +ATOM 9 C UNK 0 0.739 -1.527 1.260 1.00 0.00 C +ATOM 10 C UNK 0 0.739 -1.527 -1.260 1.00 0.00 C +ATOM 11 C UNK 0 -1.442 -1.572 0.000 1.00 0.00 C +ATOM 12 H UNK 0 1.945 0.935 0.885 1.00 0.00 H +ATOM 13 H UNK 0 1.945 0.935 -0.885 1.00 0.00 H +ATOM 14 H UNK 0 2.502 -1.332 0.000 1.00 0.00 H +ATOM 15 H UNK 0 -1.798 0.852 1.275 1.00 0.00 H +ATOM 16 H UNK 0 -1.798 0.852 -1.275 1.00 0.00 H +ATOM 17 H UNK 0 -0.274 0.897 2.161 1.00 0.00 H +ATOM 18 H UNK 0 -0.274 0.897 -2.161 1.00 0.00 H +ATOM 19 H UNK 0 -1.306 3.098 0.000 1.00 0.00 H +ATOM 20 H UNK 0 -1.236 -1.409 2.160 1.00 0.00 H +ATOM 21 H UNK 0 -1.236 -1.409 -2.160 1.00 0.00 H +ATOM 22 H UNK 0 0.773 -2.624 1.285 1.00 0.00 H +ATOM 23 H UNK 0 0.773 -2.624 -1.285 1.00 0.00 H +ATOM 24 H UNK 0 1.251 -1.173 2.165 1.00 0.00 H +ATOM 25 H UNK 0 1.251 -1.173 -2.165 1.00 0.00 H +ATOM 26 H UNK 0 -1.446 -2.671 0.000 1.00 0.00 H +ATOM 27 H UNK 0 -2.493 -1.255 0.000 1.00 0.00 H +CONECT 1 13 3 2 12 +CONECT 2 5 6 1 4 +CONECT 3 10 14 1 9 +CONECT 4 2 7 15 17 +CONECT 5 18 16 8 2 +CONECT 6 19 2 +CONECT 7 11 4 9 20 +CONECT 8 21 10 5 11 +CONECT 9 3 7 22 24 +CONECT 10 25 23 8 3 +CONECT 11 8 27 26 7 +CONECT 12 1 +CONECT 13 1 +CONECT 14 3 +CONECT 15 4 +CONECT 16 5 +CONECT 17 4 +CONECT 18 5 +CONECT 19 6 +CONECT 20 7 +CONECT 21 8 +CONECT 22 9 +CONECT 23 10 +CONECT 24 9 +CONECT 25 10 +CONECT 26 11 +CONECT 27 11 +MASTER 0 0 0 0 0 0 0 0 27 0 27 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAM_SiH3_C3v.mmp b/sim/src/tests/heteroatom_organics/ADAM_SiH3_C3v.mmp new file mode 100755 index 000000000..716fc3b14 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_SiH3_C3v.mmp @@ -0,0 +1,71 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.612284) (0.002000, -0.000000, -0.344000) (1.000000) +egroup (View Data) +group (ADAM_SiH3_C3v) +info opengroup open = True +mol (ADAM_SiH3_C3v.pdb) cpk +atom 1 (6) (-727, 1260, 432) def +atom 2 (6) (-727, -1260, 432) def +atom 3 (6) (1455, 0, 432) def +atom 4 (6) (0, 0, 975) def +bond1 1 2 3 +atom 5 (6) (-727, 1260, -1116) def +bond1 1 +atom 6 (6) (-727, -1260, -1116) def +bond1 2 +atom 7 (6) (1455, 0, -1116) def +bond1 3 +atom 8 (14) (0, 0, 2880) def +bond1 4 +atom 9 (6) (727, -1260, -1627) def +bond1 6 7 +atom 10 (6) (727, 1260, -1627) def +bond1 5 7 +atom 11 (6) (-1455, 0, -1627) def +bond1 5 6 +atom 12 (1) (-237, 2174, 795) def +bond1 1 +atom 13 (1) (-1764, -1292, 795) def +bond1 2 +atom 14 (1) (2001, 882, 795) def +bond1 3 +atom 15 (1) (-1764, 1292, 795) def +bond1 1 +atom 16 (1) (-237, -2174, 795) def +bond1 2 +atom 17 (1) (2001, -882, 795) def +bond1 3 +atom 18 (1) (-1246, 2159, -1474) def +bond1 5 +atom 19 (1) (-1246, -2159, -1474) def +bond1 6 +atom 20 (1) (2493, 0, -1474) def +bond1 7 +atom 21 (1) (744, -1289, -2725) def +bond1 9 +atom 22 (1) (744, 1289, -2725) def +bond1 10 +atom 23 (1) (-1489, 0, -2725) def +bond1 11 +atom 24 (1) (1248, -2162, -1280) def +bond1 9 +atom 25 (1) (1248, 2162, -1280) def +bond1 10 +atom 26 (1) (-2497, 0, -1280) def +bond1 11 +atom 27 (1) (697, -1208, 3413) def +bond1 8 +atom 28 (1) (697, 1208, 3413) def +bond1 8 +atom 29 (1) (-1395, 0, 3413) def +bond1 8 +egroup (ADAM_SiH3_C3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_SiH3_C3v diff --git a/sim/src/tests/heteroatom_organics/ADAM_SiH3_C3v.pdb b/sim/src/tests/heteroatom_organics/ADAM_SiH3_C3v.pdb new file mode 100755 index 000000000..246c88e04 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAM_SiH3_C3v.pdb @@ -0,0 +1,62 @@ +COMPND ADAM_SiH3_C3v.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 -0.727 1.260 0.432 1.00 0.00 C +ATOM 2 C UNK 0 -0.727 -1.260 0.432 1.00 0.00 C +ATOM 3 C UNK 0 1.455 0.000 0.432 1.00 0.00 C +ATOM 4 C UNK 0 0.000 0.000 0.975 1.00 0.00 C +ATOM 5 C UNK 0 -0.727 1.260 -1.116 1.00 0.00 C +ATOM 6 C UNK 0 -0.727 -1.260 -1.116 1.00 0.00 C +ATOM 7 C UNK 0 1.455 0.000 -1.116 1.00 0.00 C +ATOM 8 SI UNK 0 0.000 0.000 2.880 1.00 0.00 SI +ATOM 9 C UNK 0 0.727 -1.260 -1.627 1.00 0.00 C +ATOM 10 C UNK 0 0.727 1.260 -1.627 1.00 0.00 C +ATOM 11 C UNK 0 -1.455 0.000 -1.627 1.00 0.00 C +ATOM 12 H UNK 0 -0.237 2.174 0.795 1.00 0.00 H +ATOM 13 H UNK 0 -1.764 -1.292 0.795 1.00 0.00 H +ATOM 14 H UNK 0 2.001 0.882 0.795 1.00 0.00 H +ATOM 15 H UNK 0 -1.764 1.292 0.795 1.00 0.00 H +ATOM 16 H UNK 0 -0.237 -2.174 0.795 1.00 0.00 H +ATOM 17 H UNK 0 2.001 -0.882 0.795 1.00 0.00 H +ATOM 18 H UNK 0 -1.246 2.159 -1.474 1.00 0.00 H +ATOM 19 H UNK 0 -1.246 -2.159 -1.474 1.00 0.00 H +ATOM 20 H UNK 0 2.493 0.000 -1.474 1.00 0.00 H +ATOM 21 H UNK 0 0.744 -1.289 -2.725 1.00 0.00 H +ATOM 22 H UNK 0 0.744 1.289 -2.725 1.00 0.00 H +ATOM 23 H UNK 0 -1.489 0.000 -2.725 1.00 0.00 H +ATOM 24 H UNK 0 1.248 -2.162 -1.280 1.00 0.00 H +ATOM 25 H UNK 0 1.248 2.162 -1.280 1.00 0.00 H +ATOM 26 H UNK 0 -2.497 0.000 -1.280 1.00 0.00 H +ATOM 27 H UNK 0 0.697 -1.208 3.413 1.00 0.00 H +ATOM 28 H UNK 0 0.697 1.208 3.413 1.00 0.00 H +ATOM 29 H UNK 0 -1.395 0.000 3.413 1.00 0.00 H +CONECT 1 5 15 12 4 +CONECT 2 6 16 13 4 +CONECT 3 7 17 14 4 +CONECT 4 3 2 1 8 +CONECT 5 11 10 18 1 +CONECT 6 11 9 19 2 +CONECT 7 10 9 20 3 +CONECT 8 4 27 28 29 +CONECT 9 21 24 7 6 +CONECT 10 22 25 7 5 +CONECT 11 23 26 6 5 +CONECT 12 1 +CONECT 13 2 +CONECT 14 3 +CONECT 15 1 +CONECT 16 2 +CONECT 17 3 +CONECT 18 5 +CONECT 19 6 +CONECT 20 7 +CONECT 21 9 +CONECT 22 10 +CONECT 23 11 +CONECT 24 9 +CONECT 25 10 +CONECT 26 11 +CONECT 27 8 +CONECT 28 8 +CONECT 29 8 +MASTER 0 0 0 0 0 0 0 0 29 0 29 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_AlH_Cs.mmp b/sim/src/tests/heteroatom_organics/ADAMframe_AlH_Cs.mmp new file mode 100755 index 000000000..a116124fa --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_AlH_Cs.mmp @@ -0,0 +1,64 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.629140) (0.012000, -0.192500, -0.000000) (1.000000) +egroup (View Data) +group (ADAMframe_AlH_Cs) +info opengroup open = True +mol (ADAMframe_AlH_Cs.pdb) cpk +atom 1 (6) (-1277, -511, 1307) def +atom 2 (6) (-1277, -511, -1307) def +atom 3 (6) (-15, 382, 1494) def +bond1 1 +atom 4 (6) (-15, 382, -1494) def +bond1 2 +atom 5 (6) (-1253, -1343, 0) def +bond1 1 2 +atom 6 (6) (1264, -489, 1307) def +bond1 3 +atom 7 (6) (1264, -489, -1307) def +bond1 4 +atom 8 (13) (-18, 1670, 0) def +bond1 3 4 +atom 9 (6) (1254, -1321, 0) def +bond1 6 7 +atom 10 (6) (9, -2228, 0) def +bond1 5 9 +atom 11 (1) (-2199, 91, 1349) def +bond1 1 +atom 12 (1) (-2199, 91, -1349) def +bond1 2 +atom 13 (1) (-1356, -1223, 2145) def +bond1 1 +atom 14 (1) (-1356, -1223, -2145) def +bond1 2 +atom 15 (1) (-18, 796, 2510) def +bond1 3 +atom 16 (1) (-18, 796, -2510) def +bond1 4 +atom 17 (1) (-2145, -1986, 0) def +bond1 5 +atom 18 (1) (2175, 129, 1347) def +bond1 6 +atom 19 (1) (2175, 129, -1347) def +bond1 7 +atom 20 (1) (1356, -1199, 2145) def +bond1 6 +atom 21 (1) (1356, -1199, -2145) def +bond1 7 +atom 22 (1) (-18, 3264, 0) def +bond1 8 +atom 23 (1) (2158, -1947, 0) def +bond1 9 +atom 24 (1) (15, -2879, 884) def +bond1 10 +atom 25 (1) (15, -2879, -884) def +bond1 10 +egroup (ADAMframe_AlH_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_AlH_Cs diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_AlH_Cs.pdb b/sim/src/tests/heteroatom_organics/ADAMframe_AlH_Cs.pdb new file mode 100755 index 000000000..a0af96d43 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_AlH_Cs.pdb @@ -0,0 +1,54 @@ +COMPND ADAMframe_AlH_Cs.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 -1.277 -0.511 1.307 1.00 0.00 C +ATOM 2 C UNK 0 -1.277 -0.511 -1.307 1.00 0.00 C +ATOM 3 C UNK 0 -0.015 0.382 1.494 1.00 0.00 C +ATOM 4 C UNK 0 -0.015 0.382 -1.494 1.00 0.00 C +ATOM 5 C UNK 0 -1.253 -1.343 0.000 1.00 0.00 C +ATOM 6 C UNK 0 1.264 -0.489 1.307 1.00 0.00 C +ATOM 7 C UNK 0 1.264 -0.489 -1.307 1.00 0.00 C +ATOM 8 AL UNK 0 -0.018 1.670 0.000 1.00 0.00 AL +ATOM 9 C UNK 0 1.254 -1.321 0.000 1.00 0.00 C +ATOM 10 C UNK 0 0.009 -2.228 0.000 1.00 0.00 C +ATOM 11 H UNK 0 -2.199 0.091 1.349 1.00 0.00 H +ATOM 12 H UNK 0 -2.199 0.091 -1.349 1.00 0.00 H +ATOM 13 H UNK 0 -1.356 -1.223 2.145 1.00 0.00 H +ATOM 14 H UNK 0 -1.356 -1.223 -2.145 1.00 0.00 H +ATOM 15 H UNK 0 -0.018 0.796 2.510 1.00 0.00 H +ATOM 16 H UNK 0 -0.018 0.796 -2.510 1.00 0.00 H +ATOM 17 H UNK 0 -2.145 -1.986 0.000 1.00 0.00 H +ATOM 18 H UNK 0 2.175 0.129 1.347 1.00 0.00 H +ATOM 19 H UNK 0 2.175 0.129 -1.347 1.00 0.00 H +ATOM 20 H UNK 0 1.356 -1.199 2.145 1.00 0.00 H +ATOM 21 H UNK 0 1.356 -1.199 -2.145 1.00 0.00 H +ATOM 22 H UNK 0 -0.018 3.264 0.000 1.00 0.00 H +ATOM 23 H UNK 0 2.158 -1.947 0.000 1.00 0.00 H +ATOM 24 H UNK 0 0.015 -2.879 0.884 1.00 0.00 H +ATOM 25 H UNK 0 0.015 -2.879 -0.884 1.00 0.00 H +CONECT 1 5 11 3 13 +CONECT 2 14 4 12 5 +CONECT 3 8 1 6 15 +CONECT 4 16 7 2 8 +CONECT 5 2 17 10 1 +CONECT 6 9 18 3 20 +CONECT 7 21 4 19 9 +CONECT 8 4 22 3 +CONECT 9 7 10 23 6 +CONECT 10 25 9 5 24 +CONECT 11 1 +CONECT 12 2 +CONECT 13 1 +CONECT 14 2 +CONECT 15 3 +CONECT 16 4 +CONECT 17 5 +CONECT 18 6 +CONECT 19 7 +CONECT 20 6 +CONECT 21 7 +CONECT 22 8 +CONECT 23 9 +CONECT 24 10 +CONECT 25 10 +MASTER 0 0 0 0 0 0 0 0 25 0 25 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_BH_Cs.mmp b/sim/src/tests/heteroatom_organics/ADAMframe_BH_Cs.mmp new file mode 100755 index 000000000..17e129dc0 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_BH_Cs.mmp @@ -0,0 +1,64 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.241024) (0.011000, 0.190500, -0.000000) (1.000000) +egroup (View Data) +group (ADAMframe_BH_Cs) +info opengroup open = True +mol (ADAMframe_BH_Cs.pdb) cpk +atom 1 (6) (-1270, -480, 1269) def +atom 2 (6) (-1270, -480, -1269) def +atom 3 (6) (-14, 442, 1313) def +bond1 1 +atom 4 (6) (-14, 442, -1313) def +bond1 2 +atom 5 (6) (-1257, -1359, 0) def +bond1 1 2 +atom 6 (6) (1258, -459, 1269) def +bond1 3 +atom 7 (6) (1258, -459, -1269) def +bond1 4 +atom 8 (5) (-18, 1310, 0) def +bond1 3 4 +atom 9 (6) (1259, -1338, 0) def +bond1 6 7 +atom 10 (6) (9, -2239, 0) def +bond1 5 9 +atom 11 (1) (-2193, 116, 1303) def +bond1 1 +atom 12 (1) (-2193, 116, -1303) def +bond1 2 +atom 13 (1) (-1286, -1119, 2165) def +bond1 1 +atom 14 (1) (-1286, -1119, -2165) def +bond1 2 +atom 15 (1) (-18, 1029, 2240) def +bond1 3 +atom 16 (1) (-18, 1029, -2240) def +bond1 4 +atom 17 (1) (-2150, -1999, 0) def +bond1 5 +atom 18 (1) (2171, 152, 1303) def +bond1 6 +atom 19 (1) (2171, 152, -1303) def +bond1 7 +atom 20 (1) (1285, -1098, 2165) def +bond1 6 +atom 21 (1) (1285, -1098, -2165) def +bond1 7 +atom 22 (1) (-23, 2510, 0) def +bond1 8 +atom 23 (1) (2164, -1962, 0) def +bond1 9 +atom 24 (1) (14, -2891, 884) def +bond1 10 +atom 25 (1) (14, -2891, -884) def +bond1 10 +egroup (ADAMframe_BH_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_BH_Cs diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_BH_Cs.pdb b/sim/src/tests/heteroatom_organics/ADAMframe_BH_Cs.pdb new file mode 100755 index 000000000..b79d7f000 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_BH_Cs.pdb @@ -0,0 +1,54 @@ +COMPND ADAMframe_BH_Cs.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 -1.270 -0.480 1.269 1.00 0.00 C +ATOM 2 C UNK 0 -1.270 -0.480 -1.269 1.00 0.00 C +ATOM 3 C UNK 0 -0.014 0.442 1.313 1.00 0.00 C +ATOM 4 C UNK 0 -0.014 0.442 -1.313 1.00 0.00 C +ATOM 5 C UNK 0 -1.257 -1.359 0.000 1.00 0.00 C +ATOM 6 C UNK 0 1.258 -0.459 1.269 1.00 0.00 C +ATOM 7 C UNK 0 1.258 -0.459 -1.269 1.00 0.00 C +ATOM 8 B UNK 0 -0.018 1.310 0.000 1.00 0.00 B +ATOM 9 C UNK 0 1.259 -1.338 0.000 1.00 0.00 C +ATOM 10 C UNK 0 0.009 -2.239 0.000 1.00 0.00 C +ATOM 11 H UNK 0 -2.193 0.116 1.303 1.00 0.00 H +ATOM 12 H UNK 0 -2.193 0.116 -1.303 1.00 0.00 H +ATOM 13 H UNK 0 -1.286 -1.119 2.165 1.00 0.00 H +ATOM 14 H UNK 0 -1.286 -1.119 -2.165 1.00 0.00 H +ATOM 15 H UNK 0 -0.018 1.029 2.240 1.00 0.00 H +ATOM 16 H UNK 0 -0.018 1.029 -2.240 1.00 0.00 H +ATOM 17 H UNK 0 -2.150 -1.999 0.000 1.00 0.00 H +ATOM 18 H UNK 0 2.171 0.152 1.303 1.00 0.00 H +ATOM 19 H UNK 0 2.171 0.152 -1.303 1.00 0.00 H +ATOM 20 H UNK 0 1.285 -1.098 2.165 1.00 0.00 H +ATOM 21 H UNK 0 1.285 -1.098 -2.165 1.00 0.00 H +ATOM 22 H UNK 0 -0.023 2.510 0.000 1.00 0.00 H +ATOM 23 H UNK 0 2.164 -1.962 0.000 1.00 0.00 H +ATOM 24 H UNK 0 0.014 -2.891 0.884 1.00 0.00 H +ATOM 25 H UNK 0 0.014 -2.891 -0.884 1.00 0.00 H +CONECT 1 5 11 3 13 +CONECT 2 14 4 12 5 +CONECT 3 8 6 1 15 +CONECT 4 16 2 7 8 +CONECT 5 2 10 17 1 +CONECT 6 9 18 3 20 +CONECT 7 21 4 19 9 +CONECT 8 4 22 3 +CONECT 9 7 10 23 6 +CONECT 10 25 9 5 24 +CONECT 11 1 +CONECT 12 2 +CONECT 13 1 +CONECT 14 2 +CONECT 15 3 +CONECT 16 4 +CONECT 17 5 +CONECT 18 6 +CONECT 19 7 +CONECT 20 6 +CONECT 21 7 +CONECT 22 8 +CONECT 23 9 +CONECT 24 10 +CONECT 25 10 +MASTER 0 0 0 0 0 0 0 0 25 0 25 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_NH_Cs.mmp b/sim/src/tests/heteroatom_organics/ADAMframe_NH_Cs.mmp new file mode 100755 index 000000000..9247b888d --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_NH_Cs.mmp @@ -0,0 +1,64 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.032508) (0.024500, 0.484000, -0.000000) (1.000000) +egroup (View Data) +group (ADAMframe_NH_Cs) +info opengroup open = True +mol (ADAMframe_NH_Cs.pdb) cpk +atom 1 (6) (-1303, -494, 1250) def +atom 2 (6) (-1303, -494, -1250) def +atom 3 (6) (-81, 440, 1221) def +bond1 1 +atom 4 (6) (-81, 440, -1221) def +bond1 2 +atom 5 (6) (-1275, -1399, 0) def +bond1 1 2 +atom 6 (6) (1214, -407, 1253) def +bond1 3 +atom 7 (6) (1214, -407, -1253) def +bond1 4 +atom 8 (7) (-168, 1272, 0) def +bond1 3 4 +atom 9 (6) (1253, -1308, 0) def +bond1 6 7 +atom 10 (6) (23, -2240, 0) def +bond1 5 9 +atom 11 (1) (-2223, 102, 1269) def +bond1 1 +atom 12 (1) (-2223, 102, -1269) def +bond1 2 +atom 13 (1) (-1282, -1098, 2167) def +bond1 1 +atom 14 (1) (-1282, -1098, -2167) def +bond1 2 +atom 15 (1) (-110, 1119, 2081) def +bond1 3 +atom 16 (1) (-110, 1119, -2081) def +bond1 4 +atom 17 (1) (-2147, -2065, 0) def +bond1 5 +atom 18 (1) (2091, 255, 1276) def +bond1 6 +atom 19 (1) (2091, 255, -1276) def +bond1 7 +atom 20 (1) (1250, -1012, 2170) def +bond1 6 +atom 21 (1) (1250, -1012, -2170) def +bond1 7 +atom 22 (1) (616, 1924, 0) def +bond1 8 +atom 23 (1) (2174, -1906, 0) def +bond1 9 +atom 24 (1) (46, -2892, 883) def +bond1 10 +atom 25 (1) (46, -2892, -883) def +bond1 10 +egroup (ADAMframe_NH_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_NH_Cs diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_NH_Cs.pdb b/sim/src/tests/heteroatom_organics/ADAMframe_NH_Cs.pdb new file mode 100755 index 000000000..531ea3838 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_NH_Cs.pdb @@ -0,0 +1,54 @@ +COMPND ADAMframe_NH_Cs.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 -1.303 -0.494 1.250 1.00 0.00 C +ATOM 2 C UNK 0 -1.303 -0.494 -1.250 1.00 0.00 C +ATOM 3 C UNK 0 -0.081 0.440 1.221 1.00 0.00 C +ATOM 4 C UNK 0 -0.081 0.440 -1.221 1.00 0.00 C +ATOM 5 C UNK 0 -1.275 -1.399 0.000 1.00 0.00 C +ATOM 6 C UNK 0 1.214 -0.407 1.253 1.00 0.00 C +ATOM 7 C UNK 0 1.214 -0.407 -1.253 1.00 0.00 C +ATOM 8 N UNK 0 -0.168 1.272 0.000 1.00 0.00 N +ATOM 9 C UNK 0 1.253 -1.308 0.000 1.00 0.00 C +ATOM 10 C UNK 0 0.023 -2.240 0.000 1.00 0.00 C +ATOM 11 H UNK 0 -2.223 0.102 1.269 1.00 0.00 H +ATOM 12 H UNK 0 -2.223 0.102 -1.269 1.00 0.00 H +ATOM 13 H UNK 0 -1.282 -1.098 2.167 1.00 0.00 H +ATOM 14 H UNK 0 -1.282 -1.098 -2.167 1.00 0.00 H +ATOM 15 H UNK 0 -0.110 1.119 2.081 1.00 0.00 H +ATOM 16 H UNK 0 -0.110 1.119 -2.081 1.00 0.00 H +ATOM 17 H UNK 0 -2.147 -2.065 0.000 1.00 0.00 H +ATOM 18 H UNK 0 2.091 0.255 1.276 1.00 0.00 H +ATOM 19 H UNK 0 2.091 0.255 -1.276 1.00 0.00 H +ATOM 20 H UNK 0 1.250 -1.012 2.170 1.00 0.00 H +ATOM 21 H UNK 0 1.250 -1.012 -2.170 1.00 0.00 H +ATOM 22 H UNK 0 0.616 1.924 0.000 1.00 0.00 H +ATOM 23 H UNK 0 2.174 -1.906 0.000 1.00 0.00 H +ATOM 24 H UNK 0 0.046 -2.892 0.883 1.00 0.00 H +ATOM 25 H UNK 0 0.046 -2.892 -0.883 1.00 0.00 H +CONECT 1 5 3 11 13 +CONECT 2 14 12 4 5 +CONECT 3 8 1 6 15 +CONECT 4 16 7 2 8 +CONECT 5 2 10 17 1 +CONECT 6 9 3 18 20 +CONECT 7 21 19 4 9 +CONECT 8 4 22 3 +CONECT 9 7 10 23 6 +CONECT 10 25 9 5 24 +CONECT 11 1 +CONECT 12 2 +CONECT 13 1 +CONECT 14 2 +CONECT 15 3 +CONECT 16 4 +CONECT 17 5 +CONECT 18 6 +CONECT 19 7 +CONECT 20 6 +CONECT 21 7 +CONECT 22 8 +CONECT 23 9 +CONECT 24 10 +CONECT 25 10 +MASTER 0 0 0 0 0 0 0 0 25 0 25 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_O_Cs.mmp b/sim/src/tests/heteroatom_organics/ADAMframe_O_Cs.mmp new file mode 100755 index 000000000..bbb1c8aea --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_O_Cs.mmp @@ -0,0 +1,62 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.823138) (-0.039000, 0.017000, -0.000000) (1.000000) +egroup (View Data) +group (ADAMframe_O_Cs) +info opengroup open = True +mol (ADAMframe_O_Cs.pdb) cpk +atom 1 (6) (400, 1257, 1243) def +atom 2 (6) (400, 1257, -1243) def +atom 3 (6) (1304, 14, 1195) def +bond1 1 +atom 4 (6) (1304, 14, -1195) def +bond1 2 +atom 5 (6) (-513, 1246, 0) def +bond1 1 2 +atom 6 (6) (448, -1265, 1243) def +bond1 3 +atom 7 (6) (448, -1265, -1243) def +bond1 4 +atom 8 (8) (2105, 27, 0) def +bond1 3 4 +atom 9 (6) (-466, -1288, 0) def +bond1 6 7 +atom 10 (6) (-1375, -39, 0) def +bond1 5 9 +atom 11 (1) (1018, 2164, 1257) def +bond1 1 +atom 12 (1) (1018, 2164, -1257) def +bond1 2 +atom 13 (1) (-189, 1248, 2170) def +bond1 1 +atom 14 (1) (-189, 1248, -2170) def +bond1 2 +atom 15 (1) (2027, 27, 2017) def +bond1 3 +atom 16 (1) (2027, 27, -2017) def +bond1 4 +atom 17 (1) (-1163, 2130, 0) def +bond1 5 +atom 18 (1) (1103, -2144, 1255) def +bond1 6 +atom 19 (1) (1103, -2144, -1255) def +bond1 7 +atom 20 (1) (-141, -1281, 2170) def +bond1 6 +atom 21 (1) (-141, -1281, -2170) def +bond1 7 +atom 22 (1) (-1079, -2198, 0) def +bond1 9 +atom 23 (1) (-2027, -51, 883) def +bond1 10 +atom 24 (1) (-2027, -51, -883) def +bond1 10 +egroup (ADAMframe_O_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_O_Cs diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_O_Cs.pdb b/sim/src/tests/heteroatom_organics/ADAMframe_O_Cs.pdb new file mode 100755 index 000000000..7648e94f1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_O_Cs.pdb @@ -0,0 +1,52 @@ +COMPND ADAMframe_O_Cs.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 0.400 1.257 1.243 1.00 0.00 C +ATOM 2 C UNK 0 0.400 1.257 -1.243 1.00 0.00 C +ATOM 3 C UNK 0 1.304 0.014 1.195 1.00 0.00 C +ATOM 4 C UNK 0 1.304 0.014 -1.195 1.00 0.00 C +ATOM 5 C UNK 0 -0.513 1.246 0.000 1.00 0.00 C +ATOM 6 C UNK 0 0.448 -1.265 1.243 1.00 0.00 C +ATOM 7 C UNK 0 0.448 -1.265 -1.243 1.00 0.00 C +ATOM 8 O UNK 0 2.105 0.027 0.000 1.00 0.00 O +ATOM 9 C UNK 0 -0.466 -1.288 0.000 1.00 0.00 C +ATOM 10 C UNK 0 -1.375 -0.039 0.000 1.00 0.00 C +ATOM 11 H UNK 0 1.018 2.164 1.257 1.00 0.00 H +ATOM 12 H UNK 0 1.018 2.164 -1.257 1.00 0.00 H +ATOM 13 H UNK 0 -0.189 1.248 2.170 1.00 0.00 H +ATOM 14 H UNK 0 -0.189 1.248 -2.170 1.00 0.00 H +ATOM 15 H UNK 0 2.027 0.027 2.017 1.00 0.00 H +ATOM 16 H UNK 0 2.027 0.027 -2.017 1.00 0.00 H +ATOM 17 H UNK 0 -1.163 2.130 0.000 1.00 0.00 H +ATOM 18 H UNK 0 1.103 -2.144 1.255 1.00 0.00 H +ATOM 19 H UNK 0 1.103 -2.144 -1.255 1.00 0.00 H +ATOM 20 H UNK 0 -0.141 -1.281 2.170 1.00 0.00 H +ATOM 21 H UNK 0 -0.141 -1.281 -2.170 1.00 0.00 H +ATOM 22 H UNK 0 -1.079 -2.198 0.000 1.00 0.00 H +ATOM 23 H UNK 0 -2.027 -0.051 0.883 1.00 0.00 H +ATOM 24 H UNK 0 -2.027 -0.051 -0.883 1.00 0.00 H +CONECT 1 5 3 11 13 +CONECT 2 14 12 4 5 +CONECT 3 8 6 1 15 +CONECT 4 16 2 7 8 +CONECT 5 2 10 17 1 +CONECT 6 9 3 18 20 +CONECT 7 21 19 4 9 +CONECT 8 4 3 +CONECT 9 7 10 22 6 +CONECT 10 24 9 5 23 +CONECT 11 1 +CONECT 12 2 +CONECT 13 1 +CONECT 14 2 +CONECT 15 3 +CONECT 16 4 +CONECT 17 5 +CONECT 18 6 +CONECT 19 7 +CONECT 20 6 +CONECT 21 7 +CONECT 22 9 +CONECT 23 10 +CONECT 24 10 +MASTER 0 0 0 0 0 0 0 0 24 0 24 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_PH_Cs.mmp b/sim/src/tests/heteroatom_organics/ADAMframe_PH_Cs.mmp new file mode 100755 index 000000000..749dcc63b --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_PH_Cs.mmp @@ -0,0 +1,64 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.196491) (-0.034500, 0.354500, -0.000000) (1.000000) +egroup (View Data) +group (ADAMframe_PH_Cs) +info opengroup open = True +mol (ADAMframe_PH_Cs.pdb) cpk +atom 1 (6) (-1220, -411, 1283) def +atom 2 (6) (-1220, -411, -1283) def +atom 3 (6) (81, 413, 1387) def +bond1 1 +atom 4 (6) (81, 413, -1387) def +bond1 2 +atom 5 (6) (-1248, -1271, 0) def +bond1 1 2 +atom 6 (6) (1311, -519, 1285) def +bond1 3 +atom 7 (6) (1311, -519, -1285) def +bond1 4 +atom 8 (15) (238, 1688, 0) def +bond1 3 4 +atom 9 (6) (1266, -1380, 0) def +bond1 6 7 +atom 10 (6) (-32, -2217, 0) def +bond1 5 9 +atom 11 (1) (-2093, 252, 1322) def +bond1 1 +atom 12 (1) (-2093, 252, -1322) def +bond1 2 +atom 13 (1) (-1296, -1080, 2154) def +bond1 1 +atom 14 (1) (-1296, -1080, -2154) def +bond1 2 +atom 15 (1) (109, 959, 2336) def +bond1 3 +atom 16 (1) (109, 959, -2336) def +bond1 4 +atom 17 (1) (-2174, -1862, 0) def +bond1 5 +atom 18 (1) (2243, 62, 1324) def +bond1 6 +atom 19 (1) (2243, 62, -1324) def +bond1 7 +atom 20 (1) (1326, -1188, 2157) def +bond1 6 +atom 21 (1) (1326, -1188, -2157) def +bond1 7 +atom 22 (1) (-1111, 2160, 0) def +bond1 8 +atom 23 (1) (2134, -2052, 0) def +bond1 9 +atom 24 (1) (-59, -2869, 883) def +bond1 10 +atom 25 (1) (-59, -2869, -883) def +bond1 10 +egroup (ADAMframe_PH_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_PH_Cs diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_PH_Cs.pdb b/sim/src/tests/heteroatom_organics/ADAMframe_PH_Cs.pdb new file mode 100755 index 000000000..58fde4565 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_PH_Cs.pdb @@ -0,0 +1,54 @@ +COMPND ADAMframe_PH_Cs.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 -1.220 -0.411 1.283 1.00 0.00 C +ATOM 2 C UNK 0 -1.220 -0.411 -1.283 1.00 0.00 C +ATOM 3 C UNK 0 0.081 0.413 1.387 1.00 0.00 C +ATOM 4 C UNK 0 0.081 0.413 -1.387 1.00 0.00 C +ATOM 5 C UNK 0 -1.248 -1.271 0.000 1.00 0.00 C +ATOM 6 C UNK 0 1.311 -0.519 1.285 1.00 0.00 C +ATOM 7 C UNK 0 1.311 -0.519 -1.285 1.00 0.00 C +ATOM 8 P UNK 0 0.238 1.688 0.000 1.00 0.00 P +ATOM 9 C UNK 0 1.266 -1.380 0.000 1.00 0.00 C +ATOM 10 C UNK 0 -0.032 -2.217 0.000 1.00 0.00 C +ATOM 11 H UNK 0 -2.093 0.252 1.322 1.00 0.00 H +ATOM 12 H UNK 0 -2.093 0.252 -1.322 1.00 0.00 H +ATOM 13 H UNK 0 -1.296 -1.080 2.154 1.00 0.00 H +ATOM 14 H UNK 0 -1.296 -1.080 -2.154 1.00 0.00 H +ATOM 15 H UNK 0 0.109 0.959 2.336 1.00 0.00 H +ATOM 16 H UNK 0 0.109 0.959 -2.336 1.00 0.00 H +ATOM 17 H UNK 0 -2.174 -1.862 0.000 1.00 0.00 H +ATOM 18 H UNK 0 2.243 0.062 1.324 1.00 0.00 H +ATOM 19 H UNK 0 2.243 0.062 -1.324 1.00 0.00 H +ATOM 20 H UNK 0 1.326 -1.188 2.157 1.00 0.00 H +ATOM 21 H UNK 0 1.326 -1.188 -2.157 1.00 0.00 H +ATOM 22 H UNK 0 -1.111 2.160 0.000 1.00 0.00 H +ATOM 23 H UNK 0 2.134 -2.052 0.000 1.00 0.00 H +ATOM 24 H UNK 0 -0.059 -2.869 0.883 1.00 0.00 H +ATOM 25 H UNK 0 -0.059 -2.869 -0.883 1.00 0.00 H +CONECT 1 5 11 3 13 +CONECT 2 14 4 12 5 +CONECT 3 8 1 6 15 +CONECT 4 16 7 2 8 +CONECT 5 2 17 10 1 +CONECT 6 9 18 3 20 +CONECT 7 21 4 19 9 +CONECT 8 4 22 3 +CONECT 9 7 10 23 6 +CONECT 10 25 9 5 24 +CONECT 11 1 +CONECT 12 2 +CONECT 13 1 +CONECT 14 2 +CONECT 15 3 +CONECT 16 4 +CONECT 17 5 +CONECT 18 6 +CONECT 19 7 +CONECT 20 6 +CONECT 21 7 +CONECT 22 8 +CONECT 23 9 +CONECT 24 10 +CONECT 25 10 +MASTER 0 0 0 0 0 0 0 0 25 0 25 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_S_Cs.mmp b/sim/src/tests/heteroatom_organics/ADAMframe_S_Cs.mmp new file mode 100755 index 000000000..10a309d98 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_S_Cs.mmp @@ -0,0 +1,62 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.007176) (-0.275000, 0.010000, -0.000000) (1.000000) +egroup (View Data) +group (ADAMframe_S_Cs) +info opengroup open = True +mol (ADAMframe_S_Cs.pdb) cpk +atom 1 (6) (393, 1262, 1279) def +atom 2 (6) (393, 1262, -1279) def +atom 3 (6) (1289, 14, 1367) def +bond1 1 +atom 4 (6) (1289, 14, -1367) def +bond1 2 +atom 5 (6) (-473, 1238, 0) def +bond1 1 2 +atom 6 (6) (442, -1269, 1280) def +bond1 3 +atom 7 (6) (442, -1269, -1280) def +bond1 4 +atom 8 (16) (2544, 34, 0) def +bond1 3 4 +atom 9 (6) (-424, -1278, 0) def +bond1 6 7 +atom 10 (6) (-1342, -39, 0) def +bond1 5 9 +atom 11 (1) (1004, 2171, 1315) def +bond1 1 +atom 12 (1) (1004, 2171, -1315) def +bond1 2 +atom 13 (1) (-269, 1284, 2158) def +bond1 1 +atom 14 (1) (-269, 1284, -2158) def +bond1 2 +atom 15 (1) (1883, 25, 2286) def +bond1 3 +atom 16 (1) (1883, 25, -2286) def +bond1 4 +atom 17 (1) (-1122, 2124, 0) def +bond1 5 +atom 18 (1) (1092, -2151, 1315) def +bond1 6 +atom 19 (1) (1092, -2151, -1315) def +bond1 7 +atom 20 (1) (-219, -1320, 2158) def +bond1 6 +atom 21 (1) (-219, -1320, -2158) def +bond1 7 +atom 22 (1) (-1036, -2191, 0) def +bond1 9 +atom 23 (1) (-1994, -51, 883) def +bond1 10 +atom 24 (1) (-1994, -51, -883) def +bond1 10 +egroup (ADAMframe_S_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_S_Cs diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_S_Cs.pdb b/sim/src/tests/heteroatom_organics/ADAMframe_S_Cs.pdb new file mode 100755 index 000000000..ad0a1fb2e --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_S_Cs.pdb @@ -0,0 +1,52 @@ +COMPND ADAMframe_S_Cs.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 0.393 1.262 1.279 1.00 0.00 C +ATOM 2 C UNK 0 0.393 1.262 -1.279 1.00 0.00 C +ATOM 3 C UNK 0 1.289 0.014 1.367 1.00 0.00 C +ATOM 4 C UNK 0 1.289 0.014 -1.367 1.00 0.00 C +ATOM 5 C UNK 0 -0.473 1.238 0.000 1.00 0.00 C +ATOM 6 C UNK 0 0.442 -1.269 1.280 1.00 0.00 C +ATOM 7 C UNK 0 0.442 -1.269 -1.280 1.00 0.00 C +ATOM 8 S UNK 0 2.544 0.034 0.000 1.00 0.00 S +ATOM 9 C UNK 0 -0.424 -1.278 0.000 1.00 0.00 C +ATOM 10 C UNK 0 -1.342 -0.039 0.000 1.00 0.00 C +ATOM 11 H UNK 0 1.005 2.171 1.315 1.00 0.00 H +ATOM 12 H UNK 0 1.005 2.171 -1.315 1.00 0.00 H +ATOM 13 H UNK 0 -0.269 1.284 2.158 1.00 0.00 H +ATOM 14 H UNK 0 -0.269 1.284 -2.158 1.00 0.00 H +ATOM 15 H UNK 0 1.883 0.025 2.286 1.00 0.00 H +ATOM 16 H UNK 0 1.883 0.025 -2.286 1.00 0.00 H +ATOM 17 H UNK 0 -1.122 2.124 0.000 1.00 0.00 H +ATOM 18 H UNK 0 1.092 -2.151 1.315 1.00 0.00 H +ATOM 19 H UNK 0 1.092 -2.151 -1.315 1.00 0.00 H +ATOM 20 H UNK 0 -0.219 -1.320 2.158 1.00 0.00 H +ATOM 21 H UNK 0 -0.219 -1.320 -2.158 1.00 0.00 H +ATOM 22 H UNK 0 -1.036 -2.191 0.000 1.00 0.00 H +ATOM 23 H UNK 0 -1.994 -0.051 0.883 1.00 0.00 H +ATOM 24 H UNK 0 -1.994 -0.051 -0.883 1.00 0.00 H +CONECT 1 5 11 3 13 +CONECT 2 14 4 12 5 +CONECT 3 8 1 6 15 +CONECT 4 16 7 2 8 +CONECT 5 2 10 17 1 +CONECT 6 9 18 3 20 +CONECT 7 21 4 19 9 +CONECT 8 4 3 +CONECT 9 7 22 10 6 +CONECT 10 24 5 9 23 +CONECT 11 1 +CONECT 12 2 +CONECT 13 1 +CONECT 14 2 +CONECT 15 3 +CONECT 16 4 +CONECT 17 5 +CONECT 18 6 +CONECT 19 7 +CONECT 20 6 +CONECT 21 7 +CONECT 22 9 +CONECT 23 10 +CONECT 24 10 +MASTER 0 0 0 0 0 0 0 0 24 0 24 0 +END diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_SiH2_c2v.mmp b/sim/src/tests/heteroatom_organics/ADAMframe_SiH2_c2v.mmp new file mode 100755 index 000000000..c801e0b1a --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_SiH2_c2v.mmp @@ -0,0 +1,66 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.335429) (-0.000000, -0.000000, 0.011000) (1.000000) +egroup (View Data) +group (ADAMframe_SiH2_c2v) +info opengroup open = True +mol (ADAMframe_SiH2_c2v.pdb) cpk +atom 1 (6) (-1433, 0, 566) def +atom 2 (6) (1433, 0, 566) def +atom 3 (6) (-1293, 1271, -313) def +bond1 1 +atom 4 (6) (1293, 1271, -313) def +bond1 2 +atom 5 (6) (-1293, -1271, -313) def +bond1 1 +atom 6 (6) (1293, -1271, -313) def +bond1 2 +atom 7 (14) (0, 0, 1815) def +bond1 1 2 +atom 8 (6) (0, 1256, -1167) def +bond1 3 4 +atom 9 (6) (0, -1256, -1167) def +bond1 5 6 +atom 10 (6) (0, 0, -2061) def +bond1 8 9 +atom 11 (1) (-2412, 0, 1060) def +bond1 1 +atom 12 (1) (2412, 0, 1060) def +bond1 2 +atom 13 (1) (-1318, 2176, 309) def +bond1 3 +atom 14 (1) (1318, 2176, 309) def +bond1 4 +atom 15 (1) (-1318, -2176, 309) def +bond1 5 +atom 16 (1) (1318, -2176, 309) def +bond1 6 +atom 17 (1) (-2154, 1342, -995) def +bond1 3 +atom 18 (1) (2154, 1342, -995) def +bond1 4 +atom 19 (1) (-2154, -1342, -995) def +bond1 5 +atom 20 (1) (2154, -1342, -995) def +bond1 6 +atom 21 (1) (0, 1212, 2690) def +bond1 7 +atom 22 (1) (0, -1212, 2690) def +bond1 7 +atom 23 (1) (0, 2153, -1801) def +bond1 8 +atom 24 (1) (0, -2153, -1801) def +bond1 9 +atom 25 (1) (-884, 0, -2712) def +bond1 10 +atom 26 (1) (884, 0, -2712) def +bond1 10 +egroup (ADAMframe_SiH2_c2v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_SiH2_c2v diff --git a/sim/src/tests/heteroatom_organics/ADAMframe_SiH2_c2v.pdb b/sim/src/tests/heteroatom_organics/ADAMframe_SiH2_c2v.pdb new file mode 100755 index 000000000..173eda382 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/ADAMframe_SiH2_c2v.pdb @@ -0,0 +1,56 @@ +COMPND ADAMframe_SiH2_c2v.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 -1.433 0.000 0.566 1.00 0.00 C +ATOM 2 C UNK 0 1.433 0.000 0.566 1.00 0.00 C +ATOM 3 C UNK 0 -1.293 1.271 -0.313 1.00 0.00 C +ATOM 4 C UNK 0 1.293 1.271 -0.313 1.00 0.00 C +ATOM 5 C UNK 0 -1.293 -1.271 -0.313 1.00 0.00 C +ATOM 6 C UNK 0 1.293 -1.271 -0.313 1.00 0.00 C +ATOM 7 SI UNK 0 0.000 0.000 1.815 1.00 0.00 SI +ATOM 8 C UNK 0 0.000 1.256 -1.167 1.00 0.00 C +ATOM 9 C UNK 0 0.000 -1.256 -1.167 1.00 0.00 C +ATOM 10 C UNK 0 0.000 0.000 -2.061 1.00 0.00 C +ATOM 11 H UNK 0 -2.412 0.000 1.060 1.00 0.00 H +ATOM 12 H UNK 0 2.412 0.000 1.060 1.00 0.00 H +ATOM 13 H UNK 0 -1.318 2.176 0.309 1.00 0.00 H +ATOM 14 H UNK 0 1.318 2.176 0.309 1.00 0.00 H +ATOM 15 H UNK 0 -1.318 -2.176 0.309 1.00 0.00 H +ATOM 16 H UNK 0 1.318 -2.176 0.309 1.00 0.00 H +ATOM 17 H UNK 0 -2.154 1.342 -0.995 1.00 0.00 H +ATOM 18 H UNK 0 2.154 1.342 -0.995 1.00 0.00 H +ATOM 19 H UNK 0 -2.154 -1.342 -0.995 1.00 0.00 H +ATOM 20 H UNK 0 2.154 -1.342 -0.995 1.00 0.00 H +ATOM 21 H UNK 0 0.000 1.212 2.690 1.00 0.00 H +ATOM 22 H UNK 0 0.000 -1.212 2.690 1.00 0.00 H +ATOM 23 H UNK 0 0.000 2.153 -1.801 1.00 0.00 H +ATOM 24 H UNK 0 0.000 -2.153 -1.801 1.00 0.00 H +ATOM 25 H UNK 0 -0.884 0.000 -2.712 1.00 0.00 H +ATOM 26 H UNK 0 0.884 0.000 -2.712 1.00 0.00 H +CONECT 1 3 5 11 7 +CONECT 2 4 6 12 7 +CONECT 3 8 17 13 1 +CONECT 4 8 18 14 2 +CONECT 5 9 19 15 1 +CONECT 6 9 20 16 2 +CONECT 7 2 1 21 22 +CONECT 8 10 23 3 4 +CONECT 9 10 24 5 6 +CONECT 10 26 25 8 9 +CONECT 11 1 +CONECT 12 2 +CONECT 13 3 +CONECT 14 4 +CONECT 15 5 +CONECT 16 6 +CONECT 17 3 +CONECT 18 4 +CONECT 19 5 +CONECT 20 6 +CONECT 21 7 +CONECT 22 7 +CONECT 23 8 +CONECT 24 9 +CONECT 25 10 +CONECT 26 10 +MASTER 0 0 0 0 0 0 0 0 26 0 26 0 +END diff --git a/sim/src/tests/heteroatom_organics/Al_ADAM_C3v.mmp b/sim/src/tests/heteroatom_organics/Al_ADAM_C3v.mmp new file mode 100755 index 000000000..cfca8b4d6 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/Al_ADAM_C3v.mmp @@ -0,0 +1,63 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.128452) (0.020500, -0.000000, 0.718000) (1.000000) +egroup (View Data) +group (Al_ADAM_C3v) +info opengroup open = True +mol (Al_ADAM_C3v.pdb) cpk +atom 1 (6) (-928, 1607, 502) def +atom 2 (6) (-928, -1607, 502) def +atom 3 (6) (1855, 0, 502) def +atom 4 (13) (0, 0, 1142) def +bond1 1 2 3 +atom 5 (6) (-756, 1309, -1035) def +bond1 1 +atom 6 (6) (-756, -1309, -1035) def +bond1 2 +atom 7 (6) (1512, 0, -1035) def +bond1 3 +atom 8 (6) (731, -1265, -1479) def +bond1 6 7 +atom 9 (6) (731, 1265, -1479) def +bond1 5 7 +atom 10 (6) (-1461, 0, -1479) def +bond1 5 6 +atom 11 (1) (-460, 2568, 742) def +bond1 1 +atom 12 (1) (-1994, -1683, 742) def +bond1 2 +atom 13 (1) (2454, 886, 742) def +bond1 3 +atom 14 (1) (-1994, 1683, 742) def +bond1 1 +atom 15 (1) (-460, -2568, 742) def +bond1 2 +atom 16 (1) (2454, -886, 742) def +bond1 3 +atom 17 (1) (-1231, 2132, -1590) def +bond1 5 +atom 18 (1) (-1231, -2132, -1590) def +bond1 6 +atom 19 (1) (2462, 0, -1590) def +bond1 7 +atom 20 (1) (753, -1305, -2578) def +bond1 8 +atom 21 (1) (753, 1305, -2578) def +bond1 9 +atom 22 (1) (-1507, 0, -2578) def +bond1 10 +atom 23 (1) (1251, -2167, -1130) def +bond1 8 +atom 24 (1) (1251, 2167, -1130) def +bond1 9 +atom 25 (1) (-2503, 0, -1130) def +bond1 10 +egroup (Al_ADAM_C3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Al_ADAM_C3v diff --git a/sim/src/tests/heteroatom_organics/Al_ADAM_C3v.pdb b/sim/src/tests/heteroatom_organics/Al_ADAM_C3v.pdb new file mode 100755 index 000000000..fcb54515b --- /dev/null +++ b/sim/src/tests/heteroatom_organics/Al_ADAM_C3v.pdb @@ -0,0 +1,54 @@ +COMPND Al_ADAM_C3v.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 -0.928 1.607 0.502 1.00 0.00 C +ATOM 2 C UNK 0 -0.928 -1.607 0.502 1.00 0.00 C +ATOM 3 C UNK 0 1.855 0.000 0.502 1.00 0.00 C +ATOM 4 AL UNK 0 0.000 0.000 1.142 1.00 0.00 AL +ATOM 5 C UNK 0 -0.756 1.309 -1.035 1.00 0.00 C +ATOM 6 C UNK 0 -0.756 -1.309 -1.035 1.00 0.00 C +ATOM 7 C UNK 0 1.512 0.000 -1.035 1.00 0.00 C +ATOM 8 C UNK 0 0.731 -1.265 -1.479 1.00 0.00 C +ATOM 9 C UNK 0 0.731 1.265 -1.479 1.00 0.00 C +ATOM 10 C UNK 0 -1.461 0.000 -1.479 1.00 0.00 C +ATOM 11 H UNK 0 -0.460 2.568 0.742 1.00 0.00 H +ATOM 12 H UNK 0 -1.994 -1.683 0.742 1.00 0.00 H +ATOM 13 H UNK 0 2.454 0.886 0.742 1.00 0.00 H +ATOM 14 H UNK 0 -1.994 1.683 0.742 1.00 0.00 H +ATOM 15 H UNK 0 -0.460 -2.568 0.742 1.00 0.00 H +ATOM 16 H UNK 0 2.454 -0.886 0.742 1.00 0.00 H +ATOM 17 H UNK 0 -1.231 2.132 -1.590 1.00 0.00 H +ATOM 18 H UNK 0 -1.231 -2.132 -1.590 1.00 0.00 H +ATOM 19 H UNK 0 2.462 0.000 -1.590 1.00 0.00 H +ATOM 20 H UNK 0 0.753 -1.305 -2.578 1.00 0.00 H +ATOM 21 H UNK 0 0.753 1.305 -2.578 1.00 0.00 H +ATOM 22 H UNK 0 -1.507 0.000 -2.578 1.00 0.00 H +ATOM 23 H UNK 0 1.251 -2.167 -1.130 1.00 0.00 H +ATOM 24 H UNK 0 1.251 2.167 -1.130 1.00 0.00 H +ATOM 25 H UNK 0 -2.503 0.000 -1.130 1.00 0.00 H +CONECT 1 5 14 11 4 +CONECT 2 6 15 12 4 +CONECT 3 7 16 13 4 +CONECT 4 3 2 1 +CONECT 5 17 9 10 1 +CONECT 6 18 8 10 2 +CONECT 7 19 8 9 3 +CONECT 8 20 23 6 7 +CONECT 9 21 24 5 7 +CONECT 10 22 25 5 6 +CONECT 11 1 +CONECT 12 2 +CONECT 13 3 +CONECT 14 1 +CONECT 15 2 +CONECT 16 3 +CONECT 17 5 +CONECT 18 6 +CONECT 19 7 +CONECT 20 8 +CONECT 21 9 +CONECT 22 10 +CONECT 23 8 +CONECT 24 9 +CONECT 25 10 +MASTER 0 0 0 0 0 0 0 0 25 0 25 0 +END diff --git a/sim/src/tests/heteroatom_organics/Atom.py b/sim/src/tests/heteroatom_organics/Atom.py new file mode 100755 index 000000000..de10aca58 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/Atom.py @@ -0,0 +1,66 @@ +#!/usr/bin/python + +"""MMP and XYZ files share a common Atom definition. This will +make it easy to move information back and forth between the two +formats. + +$Id$ +""" + +__author__ = "Will" + +import re +import os +import sys +import string +import random + +_PeriodicTable = [ + "X", # our singlet has element number zero + "H", "He", + "Li", "Be", "B", "C", "N", "O", "F", "Ne", + "Na", "Mg", "Al", "Si", "P", "S", "Cl", "Ar", + "K", "Ca" #Sc,Ti,V,Cr,Mn,Fe.... + ] + +_MmpAtomPattern = re.compile("^atom (\d+) \((\d+)\) " + + "\((\-?\d+), (\-?\d+), (\-?\d+)\)") + +class NotAtomException(Exception): + pass + +class Atom: + def fromMmp(self, line): + m = _MmpAtomPattern.match(line) + if m == None: + raise NotAtomException + groups = m.groups() + self.elem = elem = string.atoi(groups[1]) + str = "atom %s" % groups[0] + str += " (%s)" % groups[1] + str += " (%d, %d, %d)" + str += line[m.span()[1]:] # anything after position + self._mmpstr = str + self.x = 0.001 * string.atoi(groups[2]) + self.y = 0.001 * string.atoi(groups[3]) + self.z = 0.001 * string.atoi(groups[4]) + def clone(self): + "permit deep cloning of structure files" + a = Atom() + for key in self.__dict__.keys(): + setattr(a, key, getattr(self, key)) + return a + def fromXyz(self, element, x, y, z): + self.elem = _PeriodicTable.index(element) + self.x = x + self.y = y + self.z = z + def toMmpString(self): + return self._mmpstr % (int(self.x * 1000), + int(self.y * 1000), + int(self.z * 1000)) + def toXyzString(self): + element = _PeriodicTable[self.elem] + return "%s %f %f %f" % (element, self.x, self.y, self.z) + def __repr__(self): + return "<" + self.toXyzString() + ">" diff --git a/sim/src/tests/heteroatom_organics/B_ADAM_C3v.mmp b/sim/src/tests/heteroatom_organics/B_ADAM_C3v.mmp new file mode 100755 index 000000000..bd8da21d2 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/B_ADAM_C3v.mmp @@ -0,0 +1,63 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.892641) (0.001500, -0.000000, 0.902500) (1.000000) +egroup (View Data) +group (B_ADAM_C3v) +info opengroup open = True +mol (B_ADAM_C3v.pdb) cpk +atom 1 (6) (-771, 1336, 518) def +atom 2 (6) (-771, -1336, 518) def +atom 3 (6) (1543, 0, 518) def +atom 4 (5) (0, 0, 817) def +bond1 1 2 3 +atom 5 (6) (-736, 1274, -1062) def +bond1 1 +atom 6 (6) (-736, -1274, -1062) def +bond1 2 +atom 7 (6) (1471, 0, -1062) def +bond1 3 +atom 8 (6) (729, -1262, -1554) def +bond1 6 7 +atom 9 (6) (729, 1262, -1554) def +bond1 5 7 +atom 10 (6) (-1457, 0, -1554) def +bond1 5 6 +atom 11 (1) (-275, 2256, 848) def +bond1 1 +atom 12 (1) (-1817, -1366, 848) def +bond1 2 +atom 13 (1) (2091, 890, 848) def +bond1 3 +atom 14 (1) (-1817, 1366, 848) def +bond1 1 +atom 15 (1) (-275, -2256, 848) def +bond1 2 +atom 16 (1) (2091, -890, 848) def +bond1 3 +atom 17 (1) (-1247, 2160, -1462) def +bond1 5 +atom 18 (1) (-1247, -2160, -1462) def +bond1 6 +atom 19 (1) (2494, 0, -1462) def +bond1 7 +atom 20 (1) (749, -1297, -2653) def +bond1 8 +atom 21 (1) (749, 1297, -2653) def +bond1 9 +atom 22 (1) (-1497, 0, -2653) def +bond1 10 +atom 23 (1) (1249, -2163, -1202) def +bond1 8 +atom 24 (1) (1249, 2163, -1202) def +bond1 9 +atom 25 (1) (-2497, 0, -1202) def +bond1 10 +egroup (B_ADAM_C3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part B_ADAM_C3v diff --git a/sim/src/tests/heteroatom_organics/B_ADAM_C3v.pdb b/sim/src/tests/heteroatom_organics/B_ADAM_C3v.pdb new file mode 100755 index 000000000..d60e63abd --- /dev/null +++ b/sim/src/tests/heteroatom_organics/B_ADAM_C3v.pdb @@ -0,0 +1,54 @@ +COMPND B_ADAM_C3v.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 -0.771 1.336 0.518 1.00 0.00 C +ATOM 2 C UNK 0 -0.771 -1.336 0.518 1.00 0.00 C +ATOM 3 C UNK 0 1.543 0.000 0.518 1.00 0.00 C +ATOM 4 B UNK 0 0.000 0.000 0.817 1.00 0.00 B +ATOM 5 C UNK 0 -0.736 1.274 -1.062 1.00 0.00 C +ATOM 6 C UNK 0 -0.736 -1.274 -1.062 1.00 0.00 C +ATOM 7 C UNK 0 1.471 0.000 -1.062 1.00 0.00 C +ATOM 8 C UNK 0 0.729 -1.262 -1.554 1.00 0.00 C +ATOM 9 C UNK 0 0.729 1.262 -1.554 1.00 0.00 C +ATOM 10 C UNK 0 -1.457 0.000 -1.554 1.00 0.00 C +ATOM 11 H UNK 0 -0.275 2.256 0.848 1.00 0.00 H +ATOM 12 H UNK 0 -1.817 -1.366 0.848 1.00 0.00 H +ATOM 13 H UNK 0 2.091 0.890 0.848 1.00 0.00 H +ATOM 14 H UNK 0 -1.817 1.366 0.848 1.00 0.00 H +ATOM 15 H UNK 0 -0.275 -2.256 0.848 1.00 0.00 H +ATOM 16 H UNK 0 2.091 -0.890 0.848 1.00 0.00 H +ATOM 17 H UNK 0 -1.247 2.160 -1.462 1.00 0.00 H +ATOM 18 H UNK 0 -1.247 -2.160 -1.462 1.00 0.00 H +ATOM 19 H UNK 0 2.494 0.000 -1.462 1.00 0.00 H +ATOM 20 H UNK 0 0.749 -1.297 -2.653 1.00 0.00 H +ATOM 21 H UNK 0 0.749 1.297 -2.653 1.00 0.00 H +ATOM 22 H UNK 0 -1.497 0.000 -2.653 1.00 0.00 H +ATOM 23 H UNK 0 1.249 -2.163 -1.202 1.00 0.00 H +ATOM 24 H UNK 0 1.249 2.163 -1.202 1.00 0.00 H +ATOM 25 H UNK 0 -2.497 0.000 -1.202 1.00 0.00 H +CONECT 1 5 4 14 11 +CONECT 2 6 4 15 12 +CONECT 3 7 4 16 13 +CONECT 4 3 2 1 +CONECT 5 9 10 17 1 +CONECT 6 8 10 18 2 +CONECT 7 8 9 19 3 +CONECT 8 20 23 6 7 +CONECT 9 21 24 5 7 +CONECT 10 22 25 5 6 +CONECT 11 1 +CONECT 12 2 +CONECT 13 3 +CONECT 14 1 +CONECT 15 2 +CONECT 16 3 +CONECT 17 5 +CONECT 18 6 +CONECT 19 7 +CONECT 20 8 +CONECT 21 9 +CONECT 22 10 +CONECT 23 8 +CONECT 24 9 +CONECT 25 10 +MASTER 0 0 0 0 0 0 0 0 25 0 25 0 +END diff --git a/sim/src/tests/heteroatom_organics/C3H6AlH.mmp b/sim/src/tests/heteroatom_organics/C3H6AlH.mmp new file mode 100755 index 000000000..99a4e64ff --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6AlH.mmp @@ -0,0 +1,37 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.373432) (-0.004000, -0.137500, -0.033000) (1.000000) +egroup (View Data) +group (C3H6AlH) +info opengroup open = True +mol (C3H6AlH.pdb) def +atom 1 (13) (702, 1004, -91) def +atom 2 (6) (166, -486, -1271) def +bond1 1 +atom 3 (6) (288, -372, 1261) def +bond1 1 +atom 4 (6) (-138, -1285, 51) def +bond1 2 3 +atom 5 (1) (1213, 2515, -185) def +bond1 1 +atom 6 (1) (954, -951, -1875) def +bond1 2 +atom 7 (1) (-706, -375, -1924) def +bond1 2 +atom 8 (1) (1141, -779, 1818) def +bond1 3 +atom 9 (1) (-511, -207, 1990) def +bond1 3 +atom 10 (1) (-1205, -1526, 115) def +bond1 4 +atom 11 (1) (402, -2240, 69) def +bond1 4 +egroup (C3H6AlH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6AlH diff --git a/sim/src/tests/heteroatom_organics/C3H6AlH.pdb b/sim/src/tests/heteroatom_organics/C3H6AlH.pdb new file mode 100755 index 000000000..6b5a291d6 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6AlH.pdb @@ -0,0 +1,26 @@ +COMPND C3H6AlH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 AL LIG 1 0.702 1.004 -0.091 1.00 0.00 AL +HETATM 2 C LIG 1 0.166 -0.486 -1.271 1.00 0.00 C +HETATM 3 C LIG 1 0.288 -0.372 1.261 1.00 0.00 C +HETATM 4 C LIG 1 -0.138 -1.285 0.051 1.00 0.00 C +HETATM 5 H LIG 1 1.213 2.515 -0.185 1.00 0.00 H +HETATM 6 H LIG 1 0.954 -0.951 -1.875 1.00 0.00 H +HETATM 7 H LIG 1 -0.706 -0.375 -1.924 1.00 0.00 H +HETATM 8 H LIG 1 1.141 -0.779 1.818 1.00 0.00 H +HETATM 9 H LIG 1 -0.511 -0.207 1.990 1.00 0.00 H +HETATM 10 H LIG 1 -1.205 -1.526 0.115 1.00 0.00 H +HETATM 11 H LIG 1 0.402 -2.240 0.069 1.00 0.00 H +CONECT 1 2 5 3 +CONECT 2 7 6 1 4 +CONECT 3 1 4 8 9 +CONECT 4 2 11 10 3 +CONECT 5 1 +CONECT 6 2 +CONECT 7 2 +CONECT 8 3 +CONECT 9 3 +CONECT 10 4 +CONECT 11 4 +MASTER 0 0 0 0 0 0 0 0 11 0 11 0 +END diff --git a/sim/src/tests/heteroatom_organics/C3H6BH.mmp b/sim/src/tests/heteroatom_organics/C3H6BH.mmp new file mode 100755 index 000000000..ef1418a98 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6BH.mmp @@ -0,0 +1,37 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.019343) (0.005500, -0.013500, -0.001000) (1.000000) +egroup (View Data) +group (C3H6BH) +info opengroup open = True +mol (C3H6BH.pdb) def +atom 1 (5) (324, 897, -40) def +atom 2 (6) (67, -217, -1138) def +bond1 1 +atom 3 (6) (171, -155, 1133) def +bond1 1 +atom 4 (6) (-84, -1244, 35) def +bond1 2 3 +atom 5 (1) (545, 2072, -83) def +bond1 1 +atom 6 (1) (903, -410, -1823) def +bond1 2 +atom 7 (1) (-823, -83, -1767) def +bond1 2 +atom 8 (1) (1060, -315, 1757) def +bond1 3 +atom 9 (1) (-664, 19, 1825) def +bond1 3 +atom 10 (1) (-1071, -1713, 94) def +bond1 4 +atom 11 (1) (663, -2045, 23) def +bond1 4 +egroup (C3H6BH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6BH diff --git a/sim/src/tests/heteroatom_organics/C3H6BH.pdb b/sim/src/tests/heteroatom_organics/C3H6BH.pdb new file mode 100755 index 000000000..3a26325da --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6BH.pdb @@ -0,0 +1,26 @@ +COMPND C3H6BH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 B LIG 1 0.324 0.897 -0.040 1.00 0.00 B +HETATM 2 C LIG 1 0.067 -0.217 -1.138 1.00 0.00 C +HETATM 3 C LIG 1 0.171 -0.155 1.133 1.00 0.00 C +HETATM 4 C LIG 1 -0.084 -1.244 0.035 1.00 0.00 C +HETATM 5 H LIG 1 0.545 2.072 -0.083 1.00 0.00 H +HETATM 6 H LIG 1 0.903 -0.410 -1.823 1.00 0.00 H +HETATM 7 H LIG 1 -0.823 -0.083 -1.767 1.00 0.00 H +HETATM 8 H LIG 1 1.060 -0.315 1.757 1.00 0.00 H +HETATM 9 H LIG 1 -0.664 0.019 1.825 1.00 0.00 H +HETATM 10 H LIG 1 -1.071 -1.713 0.094 1.00 0.00 H +HETATM 11 H LIG 1 0.663 -2.045 0.023 1.00 0.00 H +CONECT 1 2 5 3 +CONECT 2 6 7 1 4 +CONECT 3 1 4 8 9 +CONECT 4 2 11 10 3 +CONECT 5 1 +CONECT 6 2 +CONECT 7 2 +CONECT 8 3 +CONECT 9 3 +CONECT 10 4 +CONECT 11 4 +MASTER 0 0 0 0 0 0 0 0 11 0 11 0 +END diff --git a/sim/src/tests/heteroatom_organics/C3H6NH.mmp b/sim/src/tests/heteroatom_organics/C3H6NH.mmp new file mode 100755 index 000000000..2d2d15a98 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6NH.mmp @@ -0,0 +1,37 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.044590) (-0.004000, -0.023500, 0.001000) (1.000000) +egroup (View Data) +group (C3H6NH) +info opengroup open = True +mol (C3H6NH.pdb) def +atom 1 (7) (-229, 1225, 70) def +atom 2 (6) (-243, 285, -1079) def +bond1 1 +atom 3 (6) (-278, 85, 1018) def +bond1 1 +atom 4 (6) (214, -842, -121) def +bond1 2 3 +atom 5 (1) (-1018, 1864, 118) def +bond1 1 +atom 6 (1) (426, 562, -1903) def +bond1 2 +atom 7 (1) (-1243, 86, -1494) def +bond1 2 +atom 8 (1) (363, 198, 1901) def +bond1 3 +atom 9 (1) (-1291, -186, 1358) def +bond1 3 +atom 10 (1) (-268, -1817, -223) def +bond1 4 +atom 11 (1) (1299, -970, -114) def +bond1 4 +egroup (C3H6NH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6NH diff --git a/sim/src/tests/heteroatom_organics/C3H6NH.pdb b/sim/src/tests/heteroatom_organics/C3H6NH.pdb new file mode 100755 index 000000000..17673982a --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6NH.pdb @@ -0,0 +1,26 @@ +COMPND C3H6NH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 -0.229 1.225 0.070 1.00 0.00 N +HETATM 2 C LIG 1 -0.243 0.285 -1.079 1.00 0.00 C +HETATM 3 C LIG 1 -0.278 0.085 1.019 1.00 0.00 C +HETATM 4 C LIG 1 0.214 -0.842 -0.121 1.00 0.00 C +HETATM 5 H LIG 1 -1.019 1.864 0.118 1.00 0.00 H +HETATM 6 H LIG 1 0.426 0.562 -1.903 1.00 0.00 H +HETATM 7 H LIG 1 -1.243 0.086 -1.494 1.00 0.00 H +HETATM 8 H LIG 1 0.363 0.198 1.901 1.00 0.00 H +HETATM 9 H LIG 1 -1.291 -0.186 1.358 1.00 0.00 H +HETATM 10 H LIG 1 -0.268 -1.817 -0.223 1.00 0.00 H +HETATM 11 H LIG 1 1.299 -0.970 -0.114 1.00 0.00 H +CONECT 1 2 5 3 +CONECT 2 6 7 4 1 +CONECT 3 4 1 9 8 +CONECT 4 2 10 11 3 +CONECT 5 1 +CONECT 6 2 +CONECT 7 2 +CONECT 8 3 +CONECT 9 3 +CONECT 10 4 +CONECT 11 4 +MASTER 0 0 0 0 0 0 0 0 11 0 11 0 +END diff --git a/sim/src/tests/heteroatom_organics/C3H6O.mmp b/sim/src/tests/heteroatom_organics/C3H6O.mmp new file mode 100755 index 000000000..47683ce4a --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6O.mmp @@ -0,0 +1,35 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.772987) (0.064000, 0.212000, -0.079500) (1.000000) +egroup (View Data) +group (C3H6O) +info opengroup open = True +mol (C3H6O.pdb) def +atom 1 (8) (-236, 916, -1092) def +atom 2 (6) (912, 170, -626) def +bond1 1 +atom 3 (6) (-1079, 337, -69) def +bond1 1 +atom 4 (6) (108, -438, 543) def +bond1 2 3 +atom 5 (1) (1746, 829, -350) def +bond1 2 +atom 6 (1) (1267, -549, -1376) def +bond1 2 +atom 7 (1) (-1537, 1102, 570) def +bond1 3 +atom 8 (1) (-1874, -288, -498) def +bond1 3 +atom 9 (1) (16, -1526, 543) def +bond1 4 +atom 10 (1) (416, -102, 1535) def +bond1 4 +egroup (C3H6O) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6O diff --git a/sim/src/tests/heteroatom_organics/C3H6O.pdb b/sim/src/tests/heteroatom_organics/C3H6O.pdb new file mode 100755 index 000000000..3264f9005 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6O.pdb @@ -0,0 +1,24 @@ +COMPND C3H6O.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 O LIG 1 -0.236 0.916 -1.092 1.00 0.00 O +HETATM 2 C LIG 1 0.912 0.170 -0.626 1.00 0.00 C +HETATM 3 C LIG 1 -1.079 0.337 -0.069 1.00 0.00 C +HETATM 4 C LIG 1 0.108 -0.438 0.543 1.00 0.00 C +HETATM 5 H LIG 1 1.746 0.829 -0.350 1.00 0.00 H +HETATM 6 H LIG 1 1.267 -0.549 -1.376 1.00 0.00 H +HETATM 7 H LIG 1 -1.537 1.102 0.570 1.00 0.00 H +HETATM 8 H LIG 1 -1.874 -0.288 -0.498 1.00 0.00 H +HETATM 9 H LIG 1 0.016 -1.526 0.543 1.00 0.00 H +HETATM 10 H LIG 1 0.416 -0.102 1.535 1.00 0.00 H +CONECT 1 2 3 +CONECT 2 6 1 5 4 +CONECT 3 1 8 4 7 +CONECT 4 2 3 9 10 +CONECT 5 2 +CONECT 6 2 +CONECT 7 3 +CONECT 8 3 +CONECT 9 4 +CONECT 10 4 +MASTER 0 0 0 0 0 0 0 0 10 0 10 0 +END diff --git a/sim/src/tests/heteroatom_organics/C3H6PH.mmp b/sim/src/tests/heteroatom_organics/C3H6PH.mmp new file mode 100755 index 000000000..a65991683 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6PH.mmp @@ -0,0 +1,37 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.160304) (-0.016000, 0.179000, 0.148500) (1.000000) +egroup (View Data) +group (C3H6PH) +info opengroup open = True +mol (C3H6PH.pdb) def +atom 1 (15) (226, 1418, -93) def +atom 2 (6) (443, -215, -1052) def +bond1 1 +atom 3 (6) (-240, 42, 1142) def +bond1 1 +atom 4 (6) (-418, -970, -14) def +bond1 2 3 +atom 5 (1) (-1114, 1646, -536) def +bond1 1 +atom 6 (1) (1497, -510, -1006) def +bond1 2 +atom 7 (1) (121, -239, -2096) def +bond1 2 +atom 8 (1) (635, -185, 1760) def +bond1 3 +atom 9 (1) (-1095, 215, 1799) def +bond1 3 +atom 10 (1) (-1465, -992, -337) def +bond1 4 +atom 11 (1) (-115, -2004, 200) def +bond1 4 +egroup (C3H6PH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6PH diff --git a/sim/src/tests/heteroatom_organics/C3H6PH.pdb b/sim/src/tests/heteroatom_organics/C3H6PH.pdb new file mode 100755 index 000000000..ec75a4fe5 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6PH.pdb @@ -0,0 +1,26 @@ +COMPND C3H6PH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 P LIG 1 0.226 1.418 -0.093 1.00 0.00 P +HETATM 2 C LIG 1 0.443 -0.215 -1.052 1.00 0.00 C +HETATM 3 C LIG 1 -0.240 0.042 1.142 1.00 0.00 C +HETATM 4 C LIG 1 -0.418 -0.970 -0.014 1.00 0.00 C +HETATM 5 H LIG 1 -1.114 1.646 -0.536 1.00 0.00 H +HETATM 6 H LIG 1 1.497 -0.510 -1.006 1.00 0.00 H +HETATM 7 H LIG 1 0.121 -0.239 -2.096 1.00 0.00 H +HETATM 8 H LIG 1 0.635 -0.185 1.760 1.00 0.00 H +HETATM 9 H LIG 1 -1.095 0.215 1.799 1.00 0.00 H +HETATM 10 H LIG 1 -1.465 -0.992 -0.337 1.00 0.00 H +HETATM 11 H LIG 1 -0.115 -2.004 0.200 1.00 0.00 H +CONECT 1 2 5 3 +CONECT 2 7 6 1 4 +CONECT 3 1 4 8 9 +CONECT 4 2 10 11 3 +CONECT 5 1 +CONECT 6 2 +CONECT 7 2 +CONECT 8 3 +CONECT 9 3 +CONECT 10 4 +CONECT 11 4 +MASTER 0 0 0 0 0 0 0 0 11 0 11 0 +END diff --git a/sim/src/tests/heteroatom_organics/C3H6S.mmp b/sim/src/tests/heteroatom_organics/C3H6S.mmp new file mode 100755 index 000000000..609026cf1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6S.mmp @@ -0,0 +1,35 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.894965) (0.002500, 0.013500, 0.001500) (1.000000) +egroup (View Data) +group (C3H6S) +info opengroup open = True +mol (C3H6S.pdb) cpk +atom 1 (16) (-305, 1622, 195) def +atom 2 (6) (1075, 416, -144) def +bond1 1 +atom 3 (6) (-1182, -8, -8) def +bond1 1 +atom 4 (6) (146, -781, 150) def +bond1 2 3 +atom 5 (1) (1943, 534, 508) def +bond1 2 +atom 6 (1) (1395, 477, -1188) def +bond1 2 +atom 7 (1) (-1948, -198, 747) def +bond1 3 +atom 8 (1) (-1624, -93, -1004) def +bond1 3 +atom 9 (1) (269, -1649, -507) def +bond1 4 +atom 10 (1) (269, -1111, 1185) def +bond1 4 +egroup (C3H6S) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6S diff --git a/sim/src/tests/heteroatom_organics/C3H6S.pdb b/sim/src/tests/heteroatom_organics/C3H6S.pdb new file mode 100755 index 000000000..9e41d26e3 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6S.pdb @@ -0,0 +1,24 @@ +COMPND C3H6S.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 S LIG 1 -0.305 1.622 0.195 1.00 0.00 S +HETATM 2 C LIG 1 1.075 0.416 -0.144 1.00 0.00 C +HETATM 3 C LIG 1 -1.182 -0.008 -0.008 1.00 0.00 C +HETATM 4 C LIG 1 0.146 -0.781 0.150 1.00 0.00 C +HETATM 5 H LIG 1 1.943 0.534 0.508 1.00 0.00 H +HETATM 6 H LIG 1 1.395 0.477 -1.188 1.00 0.00 H +HETATM 7 H LIG 1 -1.948 -0.198 0.747 1.00 0.00 H +HETATM 8 H LIG 1 -1.624 -0.093 -1.004 1.00 0.00 H +HETATM 9 H LIG 1 0.269 -1.649 -0.507 1.00 0.00 H +HETATM 10 H LIG 1 0.269 -1.111 1.185 1.00 0.00 H +CONECT 1 2 3 +CONECT 2 6 4 1 5 +CONECT 3 8 4 1 7 +CONECT 4 9 2 3 10 +CONECT 5 2 +CONECT 6 2 +CONECT 7 3 +CONECT 8 3 +CONECT 9 4 +CONECT 10 4 +MASTER 0 0 0 0 0 0 0 0 10 0 10 0 +END diff --git a/sim/src/tests/heteroatom_organics/C3H6SiH2.mmp b/sim/src/tests/heteroatom_organics/C3H6SiH2.mmp new file mode 100755 index 000000000..35593aa7c --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6SiH2.mmp @@ -0,0 +1,39 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.569971) (0.098500, 0.075000, 0.011000) (1.000000) +egroup (View Data) +group (C3H6SiH2) +info opengroup open = True +mol (C3H6SiH2.pdb) cpk +atom 1 (14) (282, 1026, -83) def +atom 2 (6) (-127, -436, -1242) def +bond1 1 +atom 3 (6) (-24, -379, 1171) def +bond1 1 +atom 4 (6) (-737, -1152, 11) def +bond1 2 3 +atom 5 (1) (-765, 2089, -64) def +bond1 1 +atom 6 (1) (1618, 1691, -155) def +bond1 1 +atom 7 (1) (782, -943, -1585) def +bond1 2 +atom 8 (1) (-797, -314, -2095) def +bond1 2 +atom 9 (1) (912, -869, 1462) def +bond1 3 +atom 10 (1) (-619, -214, 2073) def +bond1 3 +atom 11 (1) (-1815, -958, 54) def +bond1 4 +atom 12 (1) (-598, -2239, 31) def +bond1 4 +egroup (C3H6SiH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6SiH2 diff --git a/sim/src/tests/heteroatom_organics/C3H6SiH2.pdb b/sim/src/tests/heteroatom_organics/C3H6SiH2.pdb new file mode 100755 index 000000000..9735306c5 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C3H6SiH2.pdb @@ -0,0 +1,28 @@ +COMPND C3H6SiH2.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 SI LIG 1 0.282 1.026 -0.083 1.00 0.00 SI +HETATM 2 C LIG 1 -0.127 -0.436 -1.242 1.00 0.00 C +HETATM 3 C LIG 1 -0.024 -0.379 1.171 1.00 0.00 C +HETATM 4 C LIG 1 -0.737 -1.152 0.011 1.00 0.00 C +HETATM 5 H LIG 1 -0.765 2.089 -0.064 1.00 0.00 H +HETATM 6 H LIG 1 1.618 1.691 -0.155 1.00 0.00 H +HETATM 7 H LIG 1 0.782 -0.943 -1.585 1.00 0.00 H +HETATM 8 H LIG 1 -0.797 -0.314 -2.095 1.00 0.00 H +HETATM 9 H LIG 1 0.912 -0.869 1.462 1.00 0.00 H +HETATM 10 H LIG 1 -0.619 -0.214 2.073 1.00 0.00 H +HETATM 11 H LIG 1 -1.815 -0.958 0.054 1.00 0.00 H +HETATM 12 H LIG 1 -0.598 -2.239 0.031 1.00 0.00 H +CONECT 1 2 6 5 3 +CONECT 2 8 7 1 4 +CONECT 3 1 4 9 10 +CONECT 4 2 12 11 3 +CONECT 5 1 +CONECT 6 1 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 4 +CONECT 12 4 +MASTER 0 0 0 0 0 0 0 0 12 0 12 0 +END diff --git a/sim/src/tests/heteroatom_organics/C4H8AlH.mmp b/sim/src/tests/heteroatom_organics/C4H8AlH.mmp new file mode 100755 index 000000000..e4480851f --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8AlH.mmp @@ -0,0 +1,43 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.905912, 0.303482, 0.292644, 0.039768) (6.752806) (-0.150500, -0.145000, 0.013000) (1.000000) +egroup (View Data) +group (C4H8AlH) +info opengroup open = True +mol (C4H8AlH.pdb) cpk +atom 1 (13) (1063, 1039, 49) def +atom 2 (6) (2, 149, 1456) def +bond1 1 +atom 3 (6) (300, 43, -1484) def +bond1 1 +atom 4 (6) (-1051, -601, 597) def +bond1 2 +atom 5 (6) (-426, -1105, -728) def +bond1 3 4 +atom 6 (1) (2172, 2180, 125) def +bond1 1 +atom 7 (1) (-457, 781, 2223) def +bond1 2 +atom 8 (1) (627, -575, 2001) def +bond1 2 +atom 9 (1) (987, -333, -2249) def +bond1 3 +atom 10 (1) (-436, 665, -2019) def +bond1 3 +atom 11 (1) (-1508, -1439, 1140) def +bond1 4 +atom 12 (1) (-1871, 90, 350) def +bond1 4 +atom 13 (1) (305, -1890, -486) def +bond1 5 +atom 14 (1) (-1196, -1584, -1349) def +bond1 5 +egroup (C4H8AlH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8AlH diff --git a/sim/src/tests/heteroatom_organics/C4H8AlH.pdb b/sim/src/tests/heteroatom_organics/C4H8AlH.pdb new file mode 100755 index 000000000..8671f6ba0 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8AlH.pdb @@ -0,0 +1,32 @@ +COMPND C4H8AlH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 AL LIG 1 1.063 1.039 0.049 1.00 0.00 AL +HETATM 2 C LIG 1 0.002 0.149 1.456 1.00 0.00 C +HETATM 3 C LIG 1 0.300 0.043 -1.484 1.00 0.00 C +HETATM 4 C LIG 1 -1.051 -0.601 0.597 1.00 0.00 C +HETATM 5 C LIG 1 -0.426 -1.105 -0.728 1.00 0.00 C +HETATM 6 H LIG 1 2.172 2.180 0.125 1.00 0.00 H +HETATM 7 H LIG 1 -0.457 0.781 2.223 1.00 0.00 H +HETATM 8 H LIG 1 0.627 -0.575 2.002 1.00 0.00 H +HETATM 9 H LIG 1 0.987 -0.333 -2.249 1.00 0.00 H +HETATM 10 H LIG 1 -0.436 0.665 -2.019 1.00 0.00 H +HETATM 11 H LIG 1 -1.508 -1.439 1.140 1.00 0.00 H +HETATM 12 H LIG 1 -1.871 0.090 0.350 1.00 0.00 H +HETATM 13 H LIG 1 0.305 -1.890 -0.486 1.00 0.00 H +HETATM 14 H LIG 1 -1.196 -1.584 -1.349 1.00 0.00 H +CONECT 1 3 6 2 +CONECT 2 1 4 8 7 +CONECT 3 9 10 5 1 +CONECT 4 5 12 11 2 +CONECT 5 3 14 13 4 +CONECT 6 1 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 4 +CONECT 12 4 +CONECT 13 5 +CONECT 14 5 +MASTER 0 0 0 0 0 0 0 0 14 0 14 0 +END diff --git a/sim/src/tests/heteroatom_organics/C4H8BH.mmp b/sim/src/tests/heteroatom_organics/C4H8BH.mmp new file mode 100755 index 000000000..f870e2a7e --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8BH.mmp @@ -0,0 +1,43 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.415266) (0.072500, -0.000000, -0.001000) (1.000000) +egroup (View Data) +group (C4H8BH) +info opengroup open = True +mol (C4H8BH.pdb) def +atom 1 (5) (461, 959, -10) def +atom 2 (6) (158, 56, -1263) def +bond1 1 +atom 3 (6) (290, 65, 1273) def +bond1 1 +atom 4 (6) (-383, -1232, 758) def +bond1 3 +atom 5 (6) (104, -1387, -699) def +bond1 2 4 +atom 6 (1) (766, 2115, -31) def +bond1 1 +atom 7 (1) (792, 185, -2146) def +bond1 2 +atom 8 (1) (-855, 370, -1584) def +bond1 2 +atom 9 (1) (1329, -153, 1590) def +bond1 3 +atom 10 (1) (-188, 519, 2148) def +bond1 3 +atom 11 (1) (-1474, -1098, 766) def +bond1 4 +atom 12 (1) (-169, -2115, 1370) def +bond1 4 +atom 13 (1) (-525, -2066, -1286) def +bond1 5 +atom 14 (1) (1117, -1811, -702) def +bond1 5 +egroup (C4H8BH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8BH diff --git a/sim/src/tests/heteroatom_organics/C4H8BH.pdb b/sim/src/tests/heteroatom_organics/C4H8BH.pdb new file mode 100755 index 000000000..c1ad48c06 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8BH.pdb @@ -0,0 +1,32 @@ +COMPND C4H8BH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 B LIG 1 0.461 0.959 -0.010 1.00 0.00 B +HETATM 2 C LIG 1 0.158 0.056 -1.263 1.00 0.00 C +HETATM 3 C LIG 1 0.290 0.065 1.273 1.00 0.00 C +HETATM 4 C LIG 1 -0.383 -1.232 0.758 1.00 0.00 C +HETATM 5 C LIG 1 0.104 -1.387 -0.699 1.00 0.00 C +HETATM 6 H LIG 1 0.766 2.115 -0.031 1.00 0.00 H +HETATM 7 H LIG 1 0.792 0.185 -2.146 1.00 0.00 H +HETATM 8 H LIG 1 -0.855 0.370 -1.584 1.00 0.00 H +HETATM 9 H LIG 1 1.329 -0.153 1.590 1.00 0.00 H +HETATM 10 H LIG 1 -0.188 0.519 2.148 1.00 0.00 H +HETATM 11 H LIG 1 -1.474 -1.098 0.766 1.00 0.00 H +HETATM 12 H LIG 1 -0.169 -2.115 1.370 1.00 0.00 H +HETATM 13 H LIG 1 -0.525 -2.066 -1.286 1.00 0.00 H +HETATM 14 H LIG 1 1.117 -1.811 -0.702 1.00 0.00 H +CONECT 1 2 6 3 +CONECT 2 7 8 5 1 +CONECT 3 1 4 9 10 +CONECT 4 5 11 3 12 +CONECT 5 13 2 14 4 +CONECT 6 1 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 4 +CONECT 12 4 +CONECT 13 5 +CONECT 14 5 +MASTER 0 0 0 0 0 0 0 0 14 0 14 0 +END diff --git a/sim/src/tests/heteroatom_organics/C4H8NH.mmp b/sim/src/tests/heteroatom_organics/C4H8NH.mmp new file mode 100755 index 000000000..092a2791a --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8NH.mmp @@ -0,0 +1,43 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.272305) (-0.052500, -0.077000, -0.035500) (1.000000) +egroup (View Data) +group (C4H8NH) +info opengroup open = True +mol (C4H8NH.pdb) def +atom 1 (7) (348, 1276, 398) def +atom 2 (6) (1154, 121, -18) def +bond1 1 +atom 3 (6) (-1082, 982, 146) def +bond1 1 +atom 4 (6) (-1137, -526, -200) def +bond1 3 +atom 5 (6) (226, -1061, 277) def +bond1 2 4 +atom 6 (1) (646, 2134, -52) def +bond1 1 +atom 7 (1) (2091, 78, 552) def +bond1 2 +atom 8 (1) (1423, 127, -1091) def +bond1 2 +atom 9 (1) (-1670, 1207, 1047) def +bond1 3 +atom 10 (1) (-1505, 1587, -668) def +bond1 3 +atom 11 (1) (-1986, -1036, 264) def +bond1 4 +atom 12 (1) (-1222, -657, -1284) def +bond1 4 +atom 13 (1) (530, -1980, -232) def +bond1 5 +atom 14 (1) (205, -1254, 1355) def +bond1 5 +egroup (C4H8NH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8NH diff --git a/sim/src/tests/heteroatom_organics/C4H8NH.pdb b/sim/src/tests/heteroatom_organics/C4H8NH.pdb new file mode 100755 index 000000000..3e648a0f2 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8NH.pdb @@ -0,0 +1,32 @@ +COMPND C4H8NH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 0.348 1.276 0.398 1.00 0.00 N +HETATM 2 C LIG 1 1.154 0.121 -0.018 1.00 0.00 C +HETATM 3 C LIG 1 -1.082 0.982 0.146 1.00 0.00 C +HETATM 4 C LIG 1 -1.137 -0.526 -0.200 1.00 0.00 C +HETATM 5 C LIG 1 0.226 -1.061 0.277 1.00 0.00 C +HETATM 6 H LIG 1 0.646 2.134 -0.052 1.00 0.00 H +HETATM 7 H LIG 1 2.091 0.078 0.552 1.00 0.00 H +HETATM 8 H LIG 1 1.423 0.127 -1.091 1.00 0.00 H +HETATM 9 H LIG 1 -1.670 1.207 1.047 1.00 0.00 H +HETATM 10 H LIG 1 -1.505 1.587 -0.668 1.00 0.00 H +HETATM 11 H LIG 1 -1.986 -1.036 0.264 1.00 0.00 H +HETATM 12 H LIG 1 -1.222 -0.657 -1.284 1.00 0.00 H +HETATM 13 H LIG 1 0.530 -1.980 -0.232 1.00 0.00 H +HETATM 14 H LIG 1 0.205 -1.254 1.355 1.00 0.00 H +CONECT 1 6 2 3 +CONECT 2 8 5 1 7 +CONECT 3 10 4 1 9 +CONECT 4 12 3 11 5 +CONECT 5 13 4 2 14 +CONECT 6 1 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 4 +CONECT 12 4 +CONECT 13 5 +CONECT 14 5 +MASTER 0 0 0 0 0 0 0 0 14 0 14 0 +END diff --git a/sim/src/tests/heteroatom_organics/C4H8O.mmp b/sim/src/tests/heteroatom_organics/C4H8O.mmp new file mode 100755 index 000000000..aa168af20 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8O.mmp @@ -0,0 +1,41 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.938570) (0.088500, 0.196500, -0.007000) (1.000000) +egroup (View Data) +group (C4H8O) +info opengroup open = True +mol (C4H8O.pdb) def +atom 1 (8) (-59, 1291, -515) def +atom 2 (6) (1119, 482, -387) def +bond1 1 +atom 3 (6) (-1185, 589, 15) def +bond1 1 +atom 4 (6) (-805, -893, -23) def +bond1 3 +atom 5 (6) (692, -817, 321) def +bond1 2 4 +atom 6 (1) (1884, 1033, 174) def +bond1 2 +atom 7 (1) (1517, 281, -1391) def +bond1 2 +atom 8 (1) (-1386, 910, 1051) def +bond1 3 +atom 9 (1) (-2061, 837, -593) def +bond1 3 +atom 10 (1) (-1384, -1504, 676) def +bond1 4 +atom 11 (1) (-947, -1294, -1033) def +bond1 4 +atom 12 (1) (1269, -1684, -12) def +bond1 5 +atom 13 (1) (822, -724, 1405) def +bond1 5 +egroup (C4H8O) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8O diff --git a/sim/src/tests/heteroatom_organics/C4H8O.pdb b/sim/src/tests/heteroatom_organics/C4H8O.pdb new file mode 100755 index 000000000..1b4b2a571 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8O.pdb @@ -0,0 +1,30 @@ +COMPND C4H8O.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 O LIG 1 -0.059 1.291 -0.515 1.00 0.00 O +HETATM 2 C LIG 1 1.119 0.482 -0.387 1.00 0.00 C +HETATM 3 C LIG 1 -1.185 0.589 0.015 1.00 0.00 C +HETATM 4 C LIG 1 -0.805 -0.893 -0.023 1.00 0.00 C +HETATM 5 C LIG 1 0.692 -0.817 0.321 1.00 0.00 C +HETATM 6 H LIG 1 1.884 1.033 0.174 1.00 0.00 H +HETATM 7 H LIG 1 1.517 0.281 -1.391 1.00 0.00 H +HETATM 8 H LIG 1 -1.386 0.910 1.051 1.00 0.00 H +HETATM 9 H LIG 1 -2.061 0.837 -0.593 1.00 0.00 H +HETATM 10 H LIG 1 -1.384 -1.504 0.676 1.00 0.00 H +HETATM 11 H LIG 1 -0.947 -1.294 -1.033 1.00 0.00 H +HETATM 12 H LIG 1 1.269 -1.684 -0.012 1.00 0.00 H +HETATM 13 H LIG 1 0.822 -0.724 1.405 1.00 0.00 H +CONECT 1 2 3 +CONECT 2 7 1 6 5 +CONECT 3 9 1 4 8 +CONECT 4 11 3 5 10 +CONECT 5 2 4 12 13 +CONECT 6 2 +CONECT 7 2 +CONECT 8 3 +CONECT 9 3 +CONECT 10 4 +CONECT 11 4 +CONECT 12 5 +CONECT 13 5 +MASTER 0 0 0 0 0 0 0 0 13 0 13 0 +END diff --git a/sim/src/tests/heteroatom_organics/C4H8PH.mmp b/sim/src/tests/heteroatom_organics/C4H8PH.mmp new file mode 100755 index 000000000..fc43854c7 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8PH.mmp @@ -0,0 +1,43 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.228079) (-0.037000, -0.063000, -0.031000) (1.000000) +egroup (View Data) +group (C4H8PH) +info opengroup open = True +mol (C4H8PH.pdb) def +atom 1 (15) (463, 1834, 94) def +atom 2 (6) (1287, 117, 50) def +bond1 1 +atom 3 (6) (-1254, 1073, 278) def +bond1 1 +atom 4 (6) (-1152, -377, -221) def +bond1 3 +atom 5 (6) (181, -933, 303) def +bond1 2 4 +atom 6 (1) (397, 2023, -1320) def +bond1 1 +atom 7 (1) (2074, 63, 806) def +bond1 2 +atom 8 (1) (1764, -27, -924) def +bond1 2 +atom 9 (1) (-1520, 1099, 1340) def +bond1 3 +atom 10 (1) (-2000, 1667, -259) def +bond1 3 +atom 11 (1) (-1999, -990, 110) def +bond1 4 +atom 12 (1) (-1157, -387, -1320) def +bond1 4 +atom 13 (1) (428, -1897, -156) def +bond1 5 +atom 14 (1) (89, -1109, 1382) def +bond1 5 +egroup (C4H8PH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8PH diff --git a/sim/src/tests/heteroatom_organics/C4H8PH.pdb b/sim/src/tests/heteroatom_organics/C4H8PH.pdb new file mode 100755 index 000000000..189849353 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8PH.pdb @@ -0,0 +1,32 @@ +COMPND C4H8PH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 P LIG 1 0.463 1.834 0.094 1.00 0.00 P +HETATM 2 C LIG 1 1.287 0.117 0.050 1.00 0.00 C +HETATM 3 C LIG 1 -1.254 1.073 0.278 1.00 0.00 C +HETATM 4 C LIG 1 -1.152 -0.377 -0.221 1.00 0.00 C +HETATM 5 C LIG 1 0.181 -0.933 0.303 1.00 0.00 C +HETATM 6 H LIG 1 0.397 2.023 -1.320 1.00 0.00 H +HETATM 7 H LIG 1 2.074 0.063 0.806 1.00 0.00 H +HETATM 8 H LIG 1 1.764 -0.027 -0.924 1.00 0.00 H +HETATM 9 H LIG 1 -1.520 1.099 1.340 1.00 0.00 H +HETATM 10 H LIG 1 -2.000 1.667 -0.259 1.00 0.00 H +HETATM 11 H LIG 1 -1.999 -0.990 0.110 1.00 0.00 H +HETATM 12 H LIG 1 -1.157 -0.387 -1.320 1.00 0.00 H +HETATM 13 H LIG 1 0.428 -1.897 -0.156 1.00 0.00 H +HETATM 14 H LIG 1 0.089 -1.109 1.382 1.00 0.00 H +CONECT 1 6 2 3 +CONECT 2 8 1 5 7 +CONECT 3 10 4 1 9 +CONECT 4 12 11 3 5 +CONECT 5 4 13 2 14 +CONECT 6 1 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 4 +CONECT 12 4 +CONECT 13 5 +CONECT 14 5 +MASTER 0 0 0 0 0 0 0 0 14 0 14 0 +END diff --git a/sim/src/tests/heteroatom_organics/C4H8S.mmp b/sim/src/tests/heteroatom_organics/C4H8S.mmp new file mode 100755 index 000000000..fd4f50440 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8S.mmp @@ -0,0 +1,41 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.168692) (0.006500, -0.017500, -0.000000) (1.000000) +egroup (View Data) +group (C4H8S) +info opengroup open = True +mol (C4H8S.pdb) def +atom 1 (16) (394, 1848, 275) def +atom 2 (6) (1196, 196, 12) def +bond1 1 +atom 3 (6) (-1324, 1149, 258) def +bond1 1 +atom 4 (6) (-1204, -289, -263) def +bond1 3 +atom 5 (6) (114, -855, 281) def +bond1 2 4 +atom 6 (1) (2051, 104, 685) def +bond1 2 +atom 7 (1) (1558, 139, -1018) def +bond1 2 +atom 8 (1) (-1725, 1170, 1275) def +bond1 3 +atom 9 (1) (-1956, 1774, -376) def +bond1 3 +atom 10 (1) (-2064, -893, 49) def +bond1 4 +atom 11 (1) (-1188, -289, -1361) def +bond1 4 +atom 12 (1) (370, -1813, -185) def +bond1 5 +atom 13 (1) (22, -1024, 1361) def +bond1 5 +egroup (C4H8S) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8S diff --git a/sim/src/tests/heteroatom_organics/C4H8S.pdb b/sim/src/tests/heteroatom_organics/C4H8S.pdb new file mode 100755 index 000000000..61e0a0683 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8S.pdb @@ -0,0 +1,30 @@ +COMPND C4H8S.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 S LIG 1 0.394 1.848 0.275 1.00 0.00 S +HETATM 2 C LIG 1 1.196 0.196 0.012 1.00 0.00 C +HETATM 3 C LIG 1 -1.324 1.149 0.258 1.00 0.00 C +HETATM 4 C LIG 1 -1.204 -0.289 -0.263 1.00 0.00 C +HETATM 5 C LIG 1 0.114 -0.855 0.281 1.00 0.00 C +HETATM 6 H LIG 1 2.051 0.104 0.685 1.00 0.00 H +HETATM 7 H LIG 1 1.558 0.139 -1.019 1.00 0.00 H +HETATM 8 H LIG 1 -1.725 1.170 1.275 1.00 0.00 H +HETATM 9 H LIG 1 -1.956 1.774 -0.376 1.00 0.00 H +HETATM 10 H LIG 1 -2.064 -0.893 0.049 1.00 0.00 H +HETATM 11 H LIG 1 -1.188 -0.289 -1.361 1.00 0.00 H +HETATM 12 H LIG 1 0.370 -1.813 -0.185 1.00 0.00 H +HETATM 13 H LIG 1 0.022 -1.024 1.361 1.00 0.00 H +CONECT 1 2 3 +CONECT 2 7 1 5 6 +CONECT 3 9 4 1 8 +CONECT 4 11 10 3 5 +CONECT 5 4 12 2 13 +CONECT 6 2 +CONECT 7 2 +CONECT 8 3 +CONECT 9 3 +CONECT 10 4 +CONECT 11 4 +CONECT 12 5 +CONECT 13 5 +MASTER 0 0 0 0 0 0 0 0 13 0 13 0 +END diff --git a/sim/src/tests/heteroatom_organics/C4H8SiH2.mmp b/sim/src/tests/heteroatom_organics/C4H8SiH2.mmp new file mode 100755 index 000000000..361a437cf --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8SiH2.mmp @@ -0,0 +1,45 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.874463) (-0.094500, -0.065000, 0.003000) (1.000000) +egroup (View Data) +group (C4H8SiH2) +info opengroup open = True +mol (C4H8SiH2.pdb) def +atom 1 (14) (718, 746, -67) def +atom 2 (6) (225, -428, 1360) def +bond1 1 +atom 3 (6) (-541, 51, -1324) def +bond1 1 +atom 4 (6) (-1089, -1080, 857) def +bond1 2 +atom 5 (6) (-998, -1278, -669) def +bond1 3 4 +atom 6 (1) (2140, 581, -490) def +bond1 1 +atom 7 (1) (505, 2191, 241) def +bond1 1 +atom 8 (1) (99, 69, 2327) def +bond1 2 +atom 9 (1) (1004, -1189, 1489) def +bond1 2 +atom 10 (1) (-145, -96, -2333) def +bond1 3 +atom 11 (1) (-1390, 740, -1407) def +bond1 3 +atom 12 (1) (-1291, -2028, 1371) def +bond1 4 +atom 13 (1) (-1933, -415, 1084) def +bond1 4 +atom 14 (1) (-256, -2061, -885) def +bond1 5 +atom 15 (1) (-1951, -1634, -1079) def +bond1 5 +egroup (C4H8SiH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8SiH2 diff --git a/sim/src/tests/heteroatom_organics/C4H8SiH2.pdb b/sim/src/tests/heteroatom_organics/C4H8SiH2.pdb new file mode 100755 index 000000000..41222479c --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C4H8SiH2.pdb @@ -0,0 +1,34 @@ +COMPND C4H8SiH2.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 SI LIG 1 0.718 0.746 -0.067 1.00 0.00 SI +HETATM 2 C LIG 1 0.225 -0.428 1.360 1.00 0.00 C +HETATM 3 C LIG 1 -0.541 0.051 -1.324 1.00 0.00 C +HETATM 4 C LIG 1 -1.089 -1.080 0.857 1.00 0.00 C +HETATM 5 C LIG 1 -0.998 -1.278 -0.669 1.00 0.00 C +HETATM 6 H LIG 1 2.140 0.581 -0.490 1.00 0.00 H +HETATM 7 H LIG 1 0.505 2.191 0.241 1.00 0.00 H +HETATM 8 H LIG 1 0.099 0.069 2.327 1.00 0.00 H +HETATM 9 H LIG 1 1.004 -1.189 1.489 1.00 0.00 H +HETATM 10 H LIG 1 -0.145 -0.096 -2.333 1.00 0.00 H +HETATM 11 H LIG 1 -1.390 0.740 -1.407 1.00 0.00 H +HETATM 12 H LIG 1 -1.291 -2.028 1.371 1.00 0.00 H +HETATM 13 H LIG 1 -1.933 -0.415 1.084 1.00 0.00 H +HETATM 14 H LIG 1 -0.256 -2.061 -0.885 1.00 0.00 H +HETATM 15 H LIG 1 -1.951 -1.634 -1.079 1.00 0.00 H +CONECT 1 3 6 7 2 +CONECT 2 1 4 9 8 +CONECT 3 10 11 5 1 +CONECT 4 5 13 2 12 +CONECT 5 3 15 14 4 +CONECT 6 1 +CONECT 7 1 +CONECT 8 2 +CONECT 9 2 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 5 +CONECT 15 5 +MASTER 0 0 0 0 0 0 0 0 15 0 15 0 +END diff --git a/sim/src/tests/heteroatom_organics/C5H10AlH.mmp b/sim/src/tests/heteroatom_organics/C5H10AlH.mmp new file mode 100755 index 000000000..ae0b92fce --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10AlH.mmp @@ -0,0 +1,49 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.027119) (-0.043500, -0.156000, -0.011000) (1.000000) +egroup (View Data) +group (C5H10AlH) +info opengroup open = True +mol (C5H10AlH.pdb) def +atom 1 (13) (1004, 1315, 55) def +atom 2 (6) (376, 420, 1695) def +bond1 1 +atom 3 (6) (698, 161, -1512) def +bond1 1 +atom 4 (6) (-674, -672, 1359) def +bond1 2 +atom 5 (6) (-329, -1569, 151) def +bond1 4 +atom 6 (6) (-415, -879, -1227) def +bond1 3 5 +atom 7 (1) (1728, 2737, 11) def +bond1 1 +atom 8 (1) (-11, 1106, 2459) def +bond1 2 +atom 9 (1) (1254, -57, 2164) def +bond1 2 +atom 10 (1) (1645, -369, -1713) def +bond1 3 +atom 11 (1) (485, 713, -2437) def +bond1 3 +atom 12 (1) (-843, -1315, 2234) def +bond1 4 +atom 13 (1) (-1641, -189, 1156) def +bond1 4 +atom 14 (1) (677, -1995, 286) def +bond1 5 +atom 15 (1) (-1018, -2425, 151) def +bond1 5 +atom 16 (1) (-417, -1653, -2008) def +bond1 6 +atom 17 (1) (-1394, -383, -1299) def +bond1 6 +egroup (C5H10AlH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10AlH diff --git a/sim/src/tests/heteroatom_organics/C5H10AlH.pdb b/sim/src/tests/heteroatom_organics/C5H10AlH.pdb new file mode 100755 index 000000000..6662a45b7 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10AlH.pdb @@ -0,0 +1,38 @@ +COMPND C5H10AlH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 AL LIG 1 1.005 1.315 0.055 1.00 0.00 AL +HETATM 2 C LIG 1 0.376 0.420 1.695 1.00 0.00 C +HETATM 3 C LIG 1 0.698 0.161 -1.512 1.00 0.00 C +HETATM 4 C LIG 1 -0.674 -0.672 1.359 1.00 0.00 C +HETATM 5 C LIG 1 -0.329 -1.569 0.151 1.00 0.00 C +HETATM 6 C LIG 1 -0.415 -0.879 -1.227 1.00 0.00 C +HETATM 7 H LIG 1 1.728 2.737 0.011 1.00 0.00 H +HETATM 8 H LIG 1 -0.011 1.106 2.459 1.00 0.00 H +HETATM 9 H LIG 1 1.254 -0.057 2.164 1.00 0.00 H +HETATM 10 H LIG 1 1.645 -0.369 -1.713 1.00 0.00 H +HETATM 11 H LIG 1 0.485 0.713 -2.437 1.00 0.00 H +HETATM 12 H LIG 1 -0.843 -1.315 2.234 1.00 0.00 H +HETATM 13 H LIG 1 -1.641 -0.189 1.156 1.00 0.00 H +HETATM 14 H LIG 1 0.677 -1.995 0.286 1.00 0.00 H +HETATM 15 H LIG 1 -1.018 -2.425 0.151 1.00 0.00 H +HETATM 16 H LIG 1 -0.417 -1.653 -2.008 1.00 0.00 H +HETATM 17 H LIG 1 -1.394 -0.383 -1.299 1.00 0.00 H +CONECT 1 3 7 2 +CONECT 2 1 4 9 8 +CONECT 3 11 10 6 1 +CONECT 4 5 13 2 12 +CONECT 5 6 15 14 4 +CONECT 6 16 3 17 5 +CONECT 7 1 +CONECT 8 2 +CONECT 9 2 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 5 +CONECT 15 5 +CONECT 16 6 +CONECT 17 6 +MASTER 0 0 0 0 0 0 0 0 17 0 17 0 +END diff --git a/sim/src/tests/heteroatom_organics/C5H10BH.mmp b/sim/src/tests/heteroatom_organics/C5H10BH.mmp new file mode 100755 index 000000000..e4b750ae8 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10BH.mmp @@ -0,0 +1,49 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.764580) (-0.008500, -0.033500, -0.042000) (1.000000) +egroup (View Data) +group (C5H10BH) +info opengroup open = True +mol (C5H10BH.pdb) def +atom 1 (5) (-740, 1307, 349) def +atom 2 (6) (-280, 367, 1518) def +bond1 1 +atom 3 (6) (-628, 834, -1144) def +bond1 1 +atom 4 (6) (-424, -682, -1348) def +bond1 3 +atom 5 (6) (-117, -1120, 1145) def +bond1 2 +atom 6 (6) (472, -1302, -262) def +bond1 4 5 +atom 7 (1) (-1075, 2435, 592) def +bond1 1 +atom 8 (1) (-887, 499, 2424) def +bond1 2 +atom 9 (1) (705, 787, 1804) def +bond1 2 +atom 10 (1) (-1450, 1223, -1760) def +bond1 3 +atom 11 (1) (258, 1385, -1518) def +bond1 3 +atom 12 (1) (-7, -892, -2340) def +bond1 4 +atom 13 (1) (-1401, -1186, -1318) def +bond1 4 +atom 14 (1) (506, -1640, 1885) def +bond1 5 +atom 15 (1) (-1098, -1616, 1181) def +bond1 5 +atom 16 (1) (627, -2368, -469) def +bond1 6 +atom 17 (1) (1467, -831, -303) def +bond1 6 +egroup (C5H10BH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10BH diff --git a/sim/src/tests/heteroatom_organics/C5H10BH.pdb b/sim/src/tests/heteroatom_organics/C5H10BH.pdb new file mode 100755 index 000000000..988541ade --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10BH.pdb @@ -0,0 +1,38 @@ +COMPND C5H10BH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 B LIG 1 -0.740 1.307 0.349 1.00 0.00 B +HETATM 2 C LIG 1 -0.280 0.367 1.518 1.00 0.00 C +HETATM 3 C LIG 1 -0.628 0.834 -1.144 1.00 0.00 C +HETATM 4 C LIG 1 -0.424 -0.682 -1.348 1.00 0.00 C +HETATM 5 C LIG 1 -0.117 -1.120 1.145 1.00 0.00 C +HETATM 6 C LIG 1 0.472 -1.302 -0.262 1.00 0.00 C +HETATM 7 H LIG 1 -1.075 2.435 0.592 1.00 0.00 H +HETATM 8 H LIG 1 -0.887 0.499 2.424 1.00 0.00 H +HETATM 9 H LIG 1 0.705 0.787 1.804 1.00 0.00 H +HETATM 10 H LIG 1 -1.450 1.223 -1.760 1.00 0.00 H +HETATM 11 H LIG 1 0.258 1.385 -1.518 1.00 0.00 H +HETATM 12 H LIG 1 -0.007 -0.892 -2.340 1.00 0.00 H +HETATM 13 H LIG 1 -1.401 -1.186 -1.318 1.00 0.00 H +HETATM 14 H LIG 1 0.506 -1.640 1.885 1.00 0.00 H +HETATM 15 H LIG 1 -1.098 -1.616 1.181 1.00 0.00 H +HETATM 16 H LIG 1 0.627 -2.368 -0.469 1.00 0.00 H +HETATM 17 H LIG 1 1.467 -0.831 -0.303 1.00 0.00 H +CONECT 1 3 7 2 +CONECT 2 1 5 9 8 +CONECT 3 10 11 4 1 +CONECT 4 12 13 3 6 +CONECT 5 6 15 2 14 +CONECT 6 4 16 17 5 +CONECT 7 1 +CONECT 8 2 +CONECT 9 2 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 5 +CONECT 15 5 +CONECT 16 6 +CONECT 17 6 +MASTER 0 0 0 0 0 0 0 0 17 0 17 0 +END diff --git a/sim/src/tests/heteroatom_organics/C5H10NH.mmp b/sim/src/tests/heteroatom_organics/C5H10NH.mmp new file mode 100755 index 000000000..021750c93 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10NH.mmp @@ -0,0 +1,49 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.601761) (-0.024000, -0.009000, 0.002000) (1.000000) +egroup (View Data) +group (C5H10NH) +info opengroup open = True +mol (C5H10NH.pdb) def +atom 1 (7) (-193, 1462, 54) def +atom 2 (6) (277, 774, 1259) def +bond1 1 +atom 3 (6) (284, 826, -1177) def +bond1 1 +atom 4 (6) (-242, -611, -1254) def +bond1 3 +atom 5 (6) (-248, -665, 1273) def +bond1 2 +atom 6 (6) (170, -1407, -7) def +bond1 4 5 +atom 7 (1) (108, 2432, 77) def +bond1 1 +atom 8 (1) (-91, 1323, 2134) def +bond1 2 +atom 9 (1) (1384, 750, 1332) def +bond1 2 +atom 10 (1) (-79, 1412, -2029) def +bond1 3 +atom 11 (1) (1392, 805, -1245) def +bond1 3 +atom 12 (1) (131, -1095, -2166) def +bond1 4 +atom 13 (1) (-1337, -582, -1326) def +bond1 4 +atom 14 (1) (125, -1189, 2162) def +bond1 5 +atom 15 (1) (-1344, -641, 1343) def +bond1 5 +atom 16 (1) (-263, -2414, -30) def +bond1 6 +atom 17 (1) (1263, -1531, -7) def +bond1 6 +egroup (C5H10NH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10NH diff --git a/sim/src/tests/heteroatom_organics/C5H10NH.pdb b/sim/src/tests/heteroatom_organics/C5H10NH.pdb new file mode 100755 index 000000000..c0b331cb4 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10NH.pdb @@ -0,0 +1,38 @@ +COMPND C5H10NH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 -0.193 1.462 0.054 1.00 0.00 N +HETATM 2 C LIG 1 0.277 0.774 1.259 1.00 0.00 C +HETATM 3 C LIG 1 0.284 0.826 -1.177 1.00 0.00 C +HETATM 4 C LIG 1 -0.242 -0.611 -1.254 1.00 0.00 C +HETATM 5 C LIG 1 -0.248 -0.665 1.273 1.00 0.00 C +HETATM 6 C LIG 1 0.170 -1.407 -0.007 1.00 0.00 C +HETATM 7 H LIG 1 0.108 2.432 0.077 1.00 0.00 H +HETATM 8 H LIG 1 -0.091 1.323 2.134 1.00 0.00 H +HETATM 9 H LIG 1 1.384 0.750 1.332 1.00 0.00 H +HETATM 10 H LIG 1 -0.079 1.412 -2.029 1.00 0.00 H +HETATM 11 H LIG 1 1.392 0.805 -1.245 1.00 0.00 H +HETATM 12 H LIG 1 0.131 -1.095 -2.166 1.00 0.00 H +HETATM 13 H LIG 1 -1.337 -0.582 -1.326 1.00 0.00 H +HETATM 14 H LIG 1 0.125 -1.189 2.162 1.00 0.00 H +HETATM 15 H LIG 1 -1.344 -0.641 1.343 1.00 0.00 H +HETATM 16 H LIG 1 -0.263 -2.414 -0.030 1.00 0.00 H +HETATM 17 H LIG 1 1.263 -1.531 -0.007 1.00 0.00 H +CONECT 1 3 7 2 +CONECT 2 1 5 9 8 +CONECT 3 10 4 11 1 +CONECT 4 12 13 3 6 +CONECT 5 6 2 15 14 +CONECT 6 4 16 17 5 +CONECT 7 1 +CONECT 8 2 +CONECT 9 2 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 5 +CONECT 15 5 +CONECT 16 6 +CONECT 17 6 +MASTER 0 0 0 0 0 0 0 0 17 0 17 0 +END diff --git a/sim/src/tests/heteroatom_organics/C5H10O.mmp b/sim/src/tests/heteroatom_organics/C5H10O.mmp new file mode 100755 index 000000000..3457de528 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10O.mmp @@ -0,0 +1,47 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.492590) (-0.005000, 0.126500, 0.009500) (1.000000) +egroup (View Data) +group (C5H10O) +info opengroup open = True +mol (C5H10O.pdb) def +atom 1 (8) (-172, 1665, 284) def +atom 2 (6) (407, 840, 1291) def +bond1 1 +atom 3 (6) (128, 1199, -1027) def +bond1 1 +atom 4 (6) (-401, -218, -1264) def +bond1 3 +atom 5 (6) (-111, -598, 1209) def +bond1 2 +atom 6 (6) (146, -1175, -190) def +bond1 4 5 +atom 7 (1) (151, 1303, 2249) def +bond1 2 +atom 8 (1) (1508, 848, 1193) def +bond1 2 +atom 9 (1) (-328, 1917, -1715) def +bond1 3 +atom 10 (1) (1221, 1220, -1188) def +bond1 3 +atom 11 (1) (-120, -558, -2268) def +bond1 4 +atom 12 (1) (-1498, -200, -1218) def +bond1 4 +atom 13 (1) (367, -1209, 1986) def +bond1 5 +atom 14 (1) (-1189, -596, 1415) def +bond1 5 +atom 15 (1) (-302, -2170, -291) def +bond1 6 +atom 16 (1) (1228, -1298, -337) def +bond1 6 +egroup (C5H10O) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10O diff --git a/sim/src/tests/heteroatom_organics/C5H10O.pdb b/sim/src/tests/heteroatom_organics/C5H10O.pdb new file mode 100755 index 000000000..444bedd64 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10O.pdb @@ -0,0 +1,36 @@ +COMPND C5H10O.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 O LIG 1 -0.172 1.665 0.284 1.00 0.00 O +HETATM 2 C LIG 1 0.407 0.840 1.291 1.00 0.00 C +HETATM 3 C LIG 1 0.128 1.199 -1.027 1.00 0.00 C +HETATM 4 C LIG 1 -0.401 -0.218 -1.264 1.00 0.00 C +HETATM 5 C LIG 1 -0.111 -0.598 1.209 1.00 0.00 C +HETATM 6 C LIG 1 0.146 -1.175 -0.190 1.00 0.00 C +HETATM 7 H LIG 1 0.151 1.303 2.249 1.00 0.00 H +HETATM 8 H LIG 1 1.508 0.848 1.193 1.00 0.00 H +HETATM 9 H LIG 1 -0.328 1.917 -1.715 1.00 0.00 H +HETATM 10 H LIG 1 1.221 1.220 -1.188 1.00 0.00 H +HETATM 11 H LIG 1 -0.120 -0.558 -2.268 1.00 0.00 H +HETATM 12 H LIG 1 -1.498 -0.200 -1.218 1.00 0.00 H +HETATM 13 H LIG 1 0.367 -1.209 1.986 1.00 0.00 H +HETATM 14 H LIG 1 -1.189 -0.596 1.415 1.00 0.00 H +HETATM 15 H LIG 1 -0.302 -2.170 -0.291 1.00 0.00 H +HETATM 16 H LIG 1 1.228 -1.298 -0.337 1.00 0.00 H +CONECT 1 3 2 +CONECT 2 1 8 5 7 +CONECT 3 9 4 10 1 +CONECT 4 11 12 3 6 +CONECT 5 6 2 14 13 +CONECT 6 4 16 15 5 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 4 +CONECT 12 4 +CONECT 13 5 +CONECT 14 5 +CONECT 15 6 +CONECT 16 6 +MASTER 0 0 0 0 0 0 0 0 16 0 16 0 +END diff --git a/sim/src/tests/heteroatom_organics/C5H10PH.mmp b/sim/src/tests/heteroatom_organics/C5H10PH.mmp new file mode 100755 index 000000000..0e6693a53 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10PH.mmp @@ -0,0 +1,49 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.925915) (-0.012000, -0.003000, -0.008000) (1.000000) +egroup (View Data) +group (C5H10PH) +info opengroup open = True +mol (C5H10PH.pdb) def +atom 1 (15) (-335, 1618, 236) def +atom 2 (6) (456, 349, 1379) def +bond1 1 +atom 3 (6) (123, 775, -1384) def +bond1 1 +atom 4 (6) (-425, -662, -1419) def +bond1 3 +atom 5 (6) (-128, -1048, 1108) def +bond1 2 +atom 6 (6) (162, -1558, -314) def +bond1 4 5 +atom 7 (1) (717, 2582, 255) def +bond1 1 +atom 8 (1) (262, 651, 2414) def +bond1 2 +atom 9 (1) (1544, 330, 1241) def +bond1 2 +atom 10 (1) (-294, 1363, -2209) def +bond1 3 +atom 11 (1) (1213, 762, -1509) def +bond1 3 +atom 12 (1) (-208, -1106, -2398) def +bond1 4 +atom 13 (1) (-1520, -642, -1323) def +bond1 4 +atom 14 (1) (279, -1756, 1843) def +bond1 5 +atom 15 (1) (-1215, -1033, 1267) def +bond1 5 +atom 16 (1) (-232, -2576, -423) def +bond1 6 +atom 17 (1) (1251, -1631, -453) def +bond1 6 +egroup (C5H10PH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10PH diff --git a/sim/src/tests/heteroatom_organics/C5H10PH.pdb b/sim/src/tests/heteroatom_organics/C5H10PH.pdb new file mode 100755 index 000000000..04fc5835b --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10PH.pdb @@ -0,0 +1,38 @@ +COMPND C5H10PH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 P LIG 1 -0.335 1.618 0.236 1.00 0.00 P +HETATM 2 C LIG 1 0.456 0.349 1.379 1.00 0.00 C +HETATM 3 C LIG 1 0.123 0.775 -1.384 1.00 0.00 C +HETATM 4 C LIG 1 -0.425 -0.662 -1.419 1.00 0.00 C +HETATM 5 C LIG 1 -0.128 -1.048 1.108 1.00 0.00 C +HETATM 6 C LIG 1 0.162 -1.558 -0.314 1.00 0.00 C +HETATM 7 H LIG 1 0.717 2.582 0.255 1.00 0.00 H +HETATM 8 H LIG 1 0.262 0.651 2.414 1.00 0.00 H +HETATM 9 H LIG 1 1.544 0.330 1.241 1.00 0.00 H +HETATM 10 H LIG 1 -0.294 1.363 -2.209 1.00 0.00 H +HETATM 11 H LIG 1 1.213 0.762 -1.509 1.00 0.00 H +HETATM 12 H LIG 1 -0.208 -1.106 -2.398 1.00 0.00 H +HETATM 13 H LIG 1 -1.520 -0.642 -1.323 1.00 0.00 H +HETATM 14 H LIG 1 0.279 -1.756 1.843 1.00 0.00 H +HETATM 15 H LIG 1 -1.215 -1.033 1.267 1.00 0.00 H +HETATM 16 H LIG 1 -0.232 -2.576 -0.423 1.00 0.00 H +HETATM 17 H LIG 1 1.251 -1.631 -0.453 1.00 0.00 H +CONECT 1 3 7 2 +CONECT 2 1 5 9 8 +CONECT 3 10 11 4 1 +CONECT 4 12 3 13 6 +CONECT 5 6 15 2 14 +CONECT 6 4 17 16 5 +CONECT 7 1 +CONECT 8 2 +CONECT 9 2 +CONECT 10 3 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 5 +CONECT 15 5 +CONECT 16 6 +CONECT 17 6 +MASTER 0 0 0 0 0 0 0 0 17 0 17 0 +END diff --git a/sim/src/tests/heteroatom_organics/C5H10S.mmp b/sim/src/tests/heteroatom_organics/C5H10S.mmp new file mode 100755 index 000000000..e3264238c --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10S.mmp @@ -0,0 +1,47 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.616154) (-0.008500, -0.031000, 0.015500) (1.000000) +egroup (View Data) +group (C5H10S) +info opengroup open = True +mol (C5H10S.pdb) def +atom 1 (16) (-249, 2132, 225) def +atom 2 (6) (439, 859, 1357) def +bond1 1 +atom 3 (6) (110, 1282, -1366) def +bond1 1 +atom 4 (6) (-421, -154, -1418) def +bond1 3 +atom 5 (6) (-133, -538, 1101) def +bond1 2 +atom 6 (6) (166, -1052, -315) def +bond1 4 5 +atom 7 (1) (205, 1204, 2369) def +bond1 2 +atom 8 (1) (1532, 853, 1258) def +bond1 2 +atom 9 (1) (-356, 1903, -2136) def +bond1 3 +atom 10 (1) (1194, 1300, -1538) def +bond1 3 +atom 11 (1) (-183, -581, -2400) def +bond1 4 +atom 12 (1) (-1515, -137, -1331) def +bond1 4 +atom 13 (1) (289, -1230, 1844) def +bond1 5 +atom 14 (1) (-1218, -519, 1261) def +bond1 5 +atom 15 (1) (-224, -2070, -426) def +bond1 6 +atom 16 (1) (1256, -1121, -450) def +bond1 6 +egroup (C5H10S) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10S diff --git a/sim/src/tests/heteroatom_organics/C5H10S.pdb b/sim/src/tests/heteroatom_organics/C5H10S.pdb new file mode 100755 index 000000000..d1c92d87d --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10S.pdb @@ -0,0 +1,36 @@ +COMPND C5H10S.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 S LIG 1 -0.249 2.132 0.225 1.00 0.00 S +HETATM 2 C LIG 1 0.439 0.859 1.357 1.00 0.00 C +HETATM 3 C LIG 1 0.110 1.282 -1.366 1.00 0.00 C +HETATM 4 C LIG 1 -0.421 -0.154 -1.418 1.00 0.00 C +HETATM 5 C LIG 1 -0.133 -0.538 1.101 1.00 0.00 C +HETATM 6 C LIG 1 0.166 -1.052 -0.315 1.00 0.00 C +HETATM 7 H LIG 1 0.205 1.204 2.369 1.00 0.00 H +HETATM 8 H LIG 1 1.532 0.853 1.258 1.00 0.00 H +HETATM 9 H LIG 1 -0.356 1.903 -2.136 1.00 0.00 H +HETATM 10 H LIG 1 1.194 1.300 -1.538 1.00 0.00 H +HETATM 11 H LIG 1 -0.183 -0.581 -2.400 1.00 0.00 H +HETATM 12 H LIG 1 -1.515 -0.137 -1.331 1.00 0.00 H +HETATM 13 H LIG 1 0.289 -1.230 1.844 1.00 0.00 H +HETATM 14 H LIG 1 -1.218 -0.519 1.261 1.00 0.00 H +HETATM 15 H LIG 1 -0.224 -2.070 -0.426 1.00 0.00 H +HETATM 16 H LIG 1 1.256 -1.121 -0.450 1.00 0.00 H +CONECT 1 3 2 +CONECT 2 1 5 8 7 +CONECT 3 9 10 4 1 +CONECT 4 11 3 12 6 +CONECT 5 6 14 2 13 +CONECT 6 4 16 15 5 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 4 +CONECT 12 4 +CONECT 13 5 +CONECT 14 5 +CONECT 15 6 +CONECT 16 6 +MASTER 0 0 0 0 0 0 0 0 16 0 16 0 +END diff --git a/sim/src/tests/heteroatom_organics/C5H10SiH2.mmp b/sim/src/tests/heteroatom_organics/C5H10SiH2.mmp new file mode 100755 index 000000000..eff6f2f3a --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10SiH2.mmp @@ -0,0 +1,51 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.120347) (-0.031000, -0.033500, -0.004000) (1.000000) +egroup (View Data) +group (C5H10SiH2) +info opengroup open = True +mol (C5H10SiH2.pdb) def +atom 1 (14) (835, 1012, -20) def +atom 2 (6) (202, 195, 1569) def +bond1 1 +atom 3 (6) (415, -225, -1396) def +bond1 1 +atom 4 (6) (-1192, -437, 1348) def +bond1 2 +atom 5 (6) (-1252, -1432, 173) def +bond1 4 +atom 6 (6) (-1008, -796, -1209) def +bond1 3 5 +atom 7 (1) (2298, 1308, 42) def +bond1 1 +atom 8 (1) (117, 2303, -253) def +bond1 1 +atom 9 (1) (171, 910, 2399) def +bond1 2 +atom 10 (1) (914, -590, 1863) def +bond1 2 +atom 11 (1) (1149, -1043, -1356) def +bond1 3 +atom 12 (1) (518, 225, -2391) def +bond1 3 +atom 13 (1) (-1511, -949, 2266) def +bond1 4 +atom 14 (1) (-1934, 356, 1174) def +bond1 4 +atom 15 (1) (-518, -2236, 337) def +bond1 5 +atom 16 (1) (-2236, -1915, 171) def +bond1 5 +atom 17 (1) (-1210, -1542, -1989) def +bond1 6 +atom 18 (1) (-1749, 3, -1356) def +bond1 6 +egroup (C5H10SiH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10SiH2 diff --git a/sim/src/tests/heteroatom_organics/C5H10SiH2.pdb b/sim/src/tests/heteroatom_organics/C5H10SiH2.pdb new file mode 100755 index 000000000..a9b32adf8 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C5H10SiH2.pdb @@ -0,0 +1,40 @@ +COMPND C5H10SiH2.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 SI LIG 1 0.835 1.012 -0.020 1.00 0.00 SI +HETATM 2 C LIG 1 0.202 0.195 1.569 1.00 0.00 C +HETATM 3 C LIG 1 0.415 -0.225 -1.396 1.00 0.00 C +HETATM 4 C LIG 1 -1.192 -0.437 1.348 1.00 0.00 C +HETATM 5 C LIG 1 -1.252 -1.432 0.173 1.00 0.00 C +HETATM 6 C LIG 1 -1.008 -0.796 -1.209 1.00 0.00 C +HETATM 7 H LIG 1 2.298 1.308 0.042 1.00 0.00 H +HETATM 8 H LIG 1 0.117 2.303 -0.253 1.00 0.00 H +HETATM 9 H LIG 1 0.171 0.910 2.399 1.00 0.00 H +HETATM 10 H LIG 1 0.914 -0.590 1.863 1.00 0.00 H +HETATM 11 H LIG 1 1.149 -1.043 -1.356 1.00 0.00 H +HETATM 12 H LIG 1 0.518 0.225 -2.391 1.00 0.00 H +HETATM 13 H LIG 1 -1.511 -0.949 2.266 1.00 0.00 H +HETATM 14 H LIG 1 -1.934 0.356 1.174 1.00 0.00 H +HETATM 15 H LIG 1 -0.518 -2.236 0.337 1.00 0.00 H +HETATM 16 H LIG 1 -2.236 -1.915 0.171 1.00 0.00 H +HETATM 17 H LIG 1 -1.210 -1.542 -1.989 1.00 0.00 H +HETATM 18 H LIG 1 -1.749 0.003 -1.356 1.00 0.00 H +CONECT 1 3 8 7 2 +CONECT 2 1 4 10 9 +CONECT 3 12 11 6 1 +CONECT 4 5 14 2 13 +CONECT 5 6 16 15 4 +CONECT 6 17 3 18 5 +CONECT 7 1 +CONECT 8 1 +CONECT 9 2 +CONECT 10 2 +CONECT 11 3 +CONECT 12 3 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 6 +CONECT 18 6 +MASTER 0 0 0 0 0 0 0 0 18 0 18 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3AlH2.mmp b/sim/src/tests/heteroatom_organics/CH3AlH2.mmp new file mode 100755 index 000000000..66bf7cbc1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3AlH2.mmp @@ -0,0 +1,29 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.811492, 0.512309, -0.040761, -0.278136) (2.434283) (0.061500, -0.063500, -0.049000) (1.000000) +egroup (View Data) +group (CH3AlH2) +info opengroup open = True +mol (CH3AlH2.pdb) def +atom 1 (13) (-641, 32, 549) def +atom 2 (6) (794, -267, -759) def +bond1 1 +atom 3 (1) (-572, 1283, 1532) def +bond1 1 +atom 4 (1) (-1890, -948, 658) def +bond1 1 +atom 5 (1) (631, -1156, -1376) def +bond1 2 +atom 6 (1) (1767, -378, -263) def +bond1 2 +atom 7 (1) (894, 594, -1434) def +bond1 2 +egroup (CH3AlH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3AlH2 diff --git a/sim/src/tests/heteroatom_organics/CH3AlH2.pdb b/sim/src/tests/heteroatom_organics/CH3AlH2.pdb new file mode 100755 index 000000000..fb6ed6c61 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3AlH2.pdb @@ -0,0 +1,18 @@ +COMPND CH3AlH2.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 AL LIG 1 -0.641 0.032 0.549 1.00 0.00 AL +HETATM 2 C LIG 1 0.794 -0.267 -0.759 1.00 0.00 C +HETATM 3 H LIG 1 -0.572 1.283 1.532 1.00 0.00 H +HETATM 4 H LIG 1 -1.890 -0.948 0.658 1.00 0.00 H +HETATM 5 H LIG 1 0.631 -1.156 -1.376 1.00 0.00 H +HETATM 6 H LIG 1 1.767 -0.378 -0.263 1.00 0.00 H +HETATM 7 H LIG 1 0.894 0.594 -1.434 1.00 0.00 H +CONECT 1 2 4 3 +CONECT 2 7 5 6 1 +CONECT 3 1 +CONECT 4 1 +CONECT 5 2 +CONECT 6 2 +CONECT 7 2 +MASTER 0 0 0 0 0 0 0 0 7 0 7 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3AlHCH3.mmp b/sim/src/tests/heteroatom_organics/CH3AlHCH3.mmp new file mode 100755 index 000000000..3d4198144 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3AlHCH3.mmp @@ -0,0 +1,35 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.907939, 0.141477, 0.188587, 0.346504) (2.551310) (-0.505189, -0.579154, 0.249406) (1.000000) +egroup (View Data) +group (CH3AlHCH3) +info opengroup open = True +mol (CH3AlHCH3.pdb) def +atom 1 (13) (466, 700, -224) def +atom 2 (6) (1197, -1113, 12) def +bond1 1 +atom 3 (6) (-1457, 1113, -266) def +bond1 1 +atom 4 (1) (1490, 1920, -356) def +bond1 1 +atom 5 (1) (432, -1895, -29) def +bond1 2 +atom 6 (1) (1716, -1210, 975) def +bond1 2 +atom 7 (1) (1947, -1338, -758) def +bond1 2 +atom 8 (1) (-2108, 241, -397) def +bond1 3 +atom 9 (1) (-1697, 1837, -1054) def +bond1 3 +atom 10 (1) (-1750, 1590, 680) def +bond1 3 +egroup (CH3AlHCH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3AlHCH3 diff --git a/sim/src/tests/heteroatom_organics/CH3AlHCH3.pdb b/sim/src/tests/heteroatom_organics/CH3AlHCH3.pdb new file mode 100755 index 000000000..5d87c419f --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3AlHCH3.pdb @@ -0,0 +1,24 @@ +COMPND CH3AlHCH3.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 AL LIG 1 0.466 0.700 -0.224 1.00 0.00 AL +HETATM 2 C LIG 1 1.197 -1.113 0.012 1.00 0.00 C +HETATM 3 C LIG 1 -1.457 1.113 -0.266 1.00 0.00 C +HETATM 4 H LIG 1 1.490 1.920 -0.356 1.00 0.00 H +HETATM 5 H LIG 1 0.432 -1.895 -0.029 1.00 0.00 H +HETATM 6 H LIG 1 1.716 -1.210 0.975 1.00 0.00 H +HETATM 7 H LIG 1 1.947 -1.338 -0.758 1.00 0.00 H +HETATM 8 H LIG 1 -2.108 0.241 -0.397 1.00 0.00 H +HETATM 9 H LIG 1 -1.697 1.837 -1.054 1.00 0.00 H +HETATM 10 H LIG 1 -1.750 1.590 0.680 1.00 0.00 H +CONECT 1 4 3 2 +CONECT 2 7 1 5 6 +CONECT 3 9 8 1 10 +CONECT 4 1 +CONECT 5 2 +CONECT 6 2 +CONECT 7 2 +CONECT 8 3 +CONECT 9 3 +CONECT 10 3 +MASTER 0 0 0 0 0 0 0 0 10 0 10 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3BH2.mmp b/sim/src/tests/heteroatom_organics/CH3BH2.mmp new file mode 100755 index 000000000..ca260865c --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3BH2.mmp @@ -0,0 +1,29 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.767601, 0.562473, -0.008655, -0.307144) (2.246507) (0.021500, -0.006000, -0.011500) (1.000000) +egroup (View Data) +group (CH3BH2) +info opengroup open = True +mol (CH3BH2.pdb) def +atom 1 (5) (-597, 97, 490) def +atom 2 (6) (536, -153, -555) def +bond1 1 +atom 3 (1) (-527, 1044, 1220) def +bond1 1 +atom 4 (1) (-1546, -624, 598) def +bond1 1 +atom 5 (1) (415, -1032, -1193) def +bond1 2 +atom 6 (1) (1503, -227, -34) def +bond1 2 +atom 7 (1) (644, 735, -1197) def +bond1 2 +egroup (CH3BH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3BH2 diff --git a/sim/src/tests/heteroatom_organics/CH3BH2.pdb b/sim/src/tests/heteroatom_organics/CH3BH2.pdb new file mode 100755 index 000000000..d585060ea --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3BH2.pdb @@ -0,0 +1,18 @@ +COMPND CH3BH2.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 B LIG 1 -0.597 0.097 0.490 1.00 0.00 B +HETATM 2 C LIG 1 0.536 -0.153 -0.555 1.00 0.00 C +HETATM 3 H LIG 1 -0.527 1.044 1.220 1.00 0.00 H +HETATM 4 H LIG 1 -1.546 -0.624 0.598 1.00 0.00 H +HETATM 5 H LIG 1 0.415 -1.032 -1.193 1.00 0.00 H +HETATM 6 H LIG 1 1.503 -0.227 -0.034 1.00 0.00 H +HETATM 7 H LIG 1 0.644 0.735 -1.197 1.00 0.00 H +CONECT 1 2 4 3 +CONECT 2 7 5 6 1 +CONECT 3 1 +CONECT 4 1 +CONECT 5 2 +CONECT 6 2 +CONECT 7 2 +MASTER 0 0 0 0 0 0 0 0 7 0 7 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3BHCH3.mmp b/sim/src/tests/heteroatom_organics/CH3BHCH3.mmp new file mode 100755 index 000000000..b6ec53227 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3BHCH3.mmp @@ -0,0 +1,35 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.773200, -0.146735, -0.527464, 0.320018) (2.850967) (0.007500, -0.024500, 0.016000) (1.000000) +egroup (View Data) +group (CH3BHCH3) +info opengroup open = True +mol (CH3BHCH3.pdb) def +atom 1 (5) (341, 284, -27) def +atom 2 (6) (-20, -221, 1414) def +bond1 1 +atom 3 (6) (-334, -234, -1345) def +bond1 1 +atom 4 (1) (1198, 1122, -125) def +bond1 1 +atom 5 (1) (-706, -1073, 1454) def +bond1 2 +atom 6 (1) (-494, 618, 1950) def +bond1 2 +atom 7 (1) (878, -452, 2001) def +bond1 2 +atom 8 (1) (-1213, -871, -1199) def +bond1 3 +atom 9 (1) (421, -831, -1884) def +bond1 3 +atom 10 (1) (-587, 582, -2033) def +bond1 3 +egroup (CH3BHCH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3BHCH3 diff --git a/sim/src/tests/heteroatom_organics/CH3BHCH3.pdb b/sim/src/tests/heteroatom_organics/CH3BHCH3.pdb new file mode 100755 index 000000000..3920a754d --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3BHCH3.pdb @@ -0,0 +1,24 @@ +COMPND CH3BHCH3.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 B LIG 1 0.341 0.284 -0.027 1.00 0.00 B +HETATM 2 C LIG 1 -0.020 -0.221 1.414 1.00 0.00 C +HETATM 3 C LIG 1 -0.334 -0.234 -1.345 1.00 0.00 C +HETATM 4 H LIG 1 1.198 1.122 -0.125 1.00 0.00 H +HETATM 5 H LIG 1 -0.706 -1.073 1.454 1.00 0.00 H +HETATM 6 H LIG 1 -0.494 0.618 1.950 1.00 0.00 H +HETATM 7 H LIG 1 0.878 -0.452 2.001 1.00 0.00 H +HETATM 8 H LIG 1 -1.213 -0.871 -1.199 1.00 0.00 H +HETATM 9 H LIG 1 0.421 -0.831 -1.884 1.00 0.00 H +HETATM 10 H LIG 1 -0.587 0.582 -2.033 1.00 0.00 H +CONECT 1 3 4 2 +CONECT 2 1 5 6 7 +CONECT 3 10 9 8 1 +CONECT 4 1 +CONECT 5 2 +CONECT 6 2 +CONECT 7 2 +CONECT 8 3 +CONECT 9 3 +CONECT 10 3 +MASTER 0 0 0 0 0 0 0 0 10 0 10 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3NH2.mmp b/sim/src/tests/heteroatom_organics/CH3NH2.mmp new file mode 100755 index 000000000..371d13a1b --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3NH2.mmp @@ -0,0 +1,29 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.637813, -0.591353, 0.044708, 0.491424) (2.500926) (-0.248000, -0.015000, -0.008000) (1.000000) +egroup (View Data) +group (CH3NH2) +info opengroup open = True +mol (CH3NH2.pdb) def +atom 1 (7) (-771, 163, 499) def +atom 2 (6) (324, -68, -446) def +bond1 1 +atom 3 (1) (-569, 986, 1062) def +bond1 1 +atom 4 (1) (-827, -614, 1154) def +bond1 1 +atom 5 (1) (101, -956, -1047) def +bond1 2 +atom 6 (1) (1323, -209, 0) def +bond1 2 +atom 7 (1) (388, 779, -1138) def +bond1 2 +egroup (CH3NH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3NH2 diff --git a/sim/src/tests/heteroatom_organics/CH3NH2.pdb b/sim/src/tests/heteroatom_organics/CH3NH2.pdb new file mode 100755 index 000000000..3bff3d418 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3NH2.pdb @@ -0,0 +1,18 @@ +COMPND CH3NH2.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 -0.771 0.163 0.499 1.00 0.00 N +HETATM 2 C LIG 1 0.324 -0.068 -0.446 1.00 0.00 C +HETATM 3 H LIG 1 -0.569 0.986 1.062 1.00 0.00 H +HETATM 4 H LIG 1 -0.827 -0.614 1.154 1.00 0.00 H +HETATM 5 H LIG 1 0.101 -0.956 -1.047 1.00 0.00 H +HETATM 6 H LIG 1 1.323 -0.209 0.000 1.00 0.00 H +HETATM 7 H LIG 1 0.388 0.779 -1.138 1.00 0.00 H +CONECT 1 2 3 4 +CONECT 2 7 5 6 1 +CONECT 3 1 +CONECT 4 1 +CONECT 5 2 +CONECT 6 2 +CONECT 7 2 +MASTER 0 0 0 0 0 0 0 0 7 0 7 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3NHCH3.mmp b/sim/src/tests/heteroatom_organics/CH3NHCH3.mmp new file mode 100755 index 000000000..00248f30f --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3NHCH3.mmp @@ -0,0 +1,35 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.737500, -0.147630, -0.573982, 0.323796) (2.411280) (-0.011000, 0.020000, 0.006000) (1.000000) +egroup (View Data) +group (CH3NHCH3) +info opengroup open = True +mol (CH3NHCH3.pdb) def +atom 1 (7) (422, 869, -1) def +atom 2 (6) (90, 172, 1235) def +bond1 1 +atom 3 (6) (-333, 378, -1146) def +bond1 1 +atom 4 (1) (1417, 766, -184) def +bond1 1 +atom 5 (1) (178, -929, 1179) def +bond1 2 +atom 6 (1) (-945, 403, 1517) def +bond1 2 +atom 7 (1) (737, 526, 2044) def +bond1 2 +atom 8 (1) (-1395, 612, -1004) def +bond1 3 +atom 9 (1) (-257, -713, -1313) def +bond1 3 +atom 10 (1) (-1, 889, -2056) def +bond1 3 +egroup (CH3NHCH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3NHCH3 diff --git a/sim/src/tests/heteroatom_organics/CH3NHCH3.pdb b/sim/src/tests/heteroatom_organics/CH3NHCH3.pdb new file mode 100755 index 000000000..d63681749 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3NHCH3.pdb @@ -0,0 +1,24 @@ +COMPND CH3NHCH3.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 N LIG 1 0.422 0.869 -0.001 1.00 0.00 N +HETATM 2 C LIG 1 0.090 0.172 1.235 1.00 0.00 C +HETATM 3 C LIG 1 -0.333 0.378 -1.146 1.00 0.00 C +HETATM 4 H LIG 1 1.417 0.766 -0.184 1.00 0.00 H +HETATM 5 H LIG 1 0.178 -0.929 1.179 1.00 0.00 H +HETATM 6 H LIG 1 -0.945 0.403 1.517 1.00 0.00 H +HETATM 7 H LIG 1 0.737 0.526 2.044 1.00 0.00 H +HETATM 8 H LIG 1 -1.395 0.612 -1.005 1.00 0.00 H +HETATM 9 H LIG 1 -0.257 -0.713 -1.313 1.00 0.00 H +HETATM 10 H LIG 1 -0.001 0.889 -2.056 1.00 0.00 H +CONECT 1 3 4 2 +CONECT 2 1 5 6 7 +CONECT 3 10 9 8 1 +CONECT 4 1 +CONECT 5 2 +CONECT 6 2 +CONECT 7 2 +CONECT 8 3 +CONECT 9 3 +CONECT 10 3 +MASTER 0 0 0 0 0 0 0 0 10 0 10 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3OCH3.mmp b/sim/src/tests/heteroatom_organics/CH3OCH3.mmp new file mode 100755 index 000000000..5e90e15ca --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3OCH3.mmp @@ -0,0 +1,33 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.699515, -0.164707, -0.613943, 0.326535) (2.315082) (0.005000, 0.002500, -0.004000) (1.000000) +egroup (View Data) +group (CH3OCH3) +info opengroup open = True +mol (CH3OCH3.pdb) def +atom 1 (8) (769, 819, -3) def +atom 2 (6) (421, 186, 1208) def +bond1 1 +atom 3 (6) (-10, 365, -1088) def +bond1 1 +atom 4 (1) (561, -906, 1157) def +bond1 2 +atom 5 (1) (-627, 383, 1490) def +bond1 2 +atom 6 (1) (1073, 589, 1987) def +bond1 2 +atom 7 (1) (-1083, 569, -934) def +bond1 3 +atom 8 (1) (110, -718, -1256) def +bond1 3 +atom 9 (1) (326, 901, -1979) def +bond1 3 +egroup (CH3OCH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3OCH3 diff --git a/sim/src/tests/heteroatom_organics/CH3OCH3.pdb b/sim/src/tests/heteroatom_organics/CH3OCH3.pdb new file mode 100755 index 000000000..96b6233b2 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3OCH3.pdb @@ -0,0 +1,22 @@ +COMPND CH3OCH3.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 O LIG 1 0.769 0.819 -0.003 1.00 0.00 O +HETATM 2 C LIG 1 0.421 0.186 1.208 1.00 0.00 C +HETATM 3 C LIG 1 -0.010 0.365 -1.088 1.00 0.00 C +HETATM 4 H LIG 1 0.561 -0.906 1.157 1.00 0.00 H +HETATM 5 H LIG 1 -0.627 0.383 1.490 1.00 0.00 H +HETATM 6 H LIG 1 1.073 0.589 1.987 1.00 0.00 H +HETATM 7 H LIG 1 -1.083 0.569 -0.934 1.00 0.00 H +HETATM 8 H LIG 1 0.110 -0.718 -1.256 1.00 0.00 H +HETATM 9 H LIG 1 0.326 0.901 -1.979 1.00 0.00 H +CONECT 1 3 2 +CONECT 2 1 4 5 6 +CONECT 3 9 8 7 1 +CONECT 4 2 +CONECT 5 2 +CONECT 6 2 +CONECT 7 3 +CONECT 8 3 +CONECT 9 3 +MASTER 0 0 0 0 0 0 0 0 9 0 9 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3OH.mmp b/sim/src/tests/heteroatom_organics/CH3OH.mmp new file mode 100755 index 000000000..6c372dcc7 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3OH.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.891717, 0.122415, 0.201627, 0.386267) (2.102428) (-0.130000, -0.032000, -0.000000) (1.000000) +egroup (View Data) +group (CH3OH) +info opengroup open = True +mol (CH3OH.pdb) def +atom 1 (8) (-777, 475, 0) def +atom 2 (6) (416, -292, 0) def +bond1 1 +atom 3 (1) (-531, 1408, 0) def +bond1 1 +atom 4 (1) (118, -1344, 0) def +bond1 2 +atom 5 (1) (1037, -116, 892) def +bond1 2 +atom 6 (1) (1037, -116, -892) def +bond1 2 +egroup (CH3OH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3OH diff --git a/sim/src/tests/heteroatom_organics/CH3OH.pdb b/sim/src/tests/heteroatom_organics/CH3OH.pdb new file mode 100755 index 000000000..50aaee39a --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3OH.pdb @@ -0,0 +1,16 @@ +COMPND CH3OH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 O LIG 1 -0.777 0.475 0.000 1.00 0.00 O +HETATM 2 C LIG 1 0.416 -0.292 -0.000 1.00 0.00 C +HETATM 3 H LIG 1 -0.531 1.408 -0.000 1.00 0.00 H +HETATM 4 H LIG 1 0.118 -1.344 0.000 1.00 0.00 H +HETATM 5 H LIG 1 1.037 -0.116 0.892 1.00 0.00 H +HETATM 6 H LIG 1 1.037 -0.116 -0.892 1.00 0.00 H +CONECT 1 3 2 +CONECT 2 6 4 1 5 +CONECT 3 1 +CONECT 4 2 +CONECT 5 2 +CONECT 6 2 +MASTER 0 0 0 0 0 0 0 0 6 0 6 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3PH2.mmp b/sim/src/tests/heteroatom_organics/CH3PH2.mmp new file mode 100755 index 000000000..2691aaae0 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3PH2.mmp @@ -0,0 +1,29 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.727783, -0.503600, -0.083408, 0.457998) (2.284471) (0.040500, -0.025500, -0.018000) (1.000000) +egroup (View Data) +group (CH3PH2) +info opengroup open = True +mol (CH3PH2.pdb) def +atom 1 (15) (-1231, 83, 523) def +atom 2 (6) (151, -207, -713) def +bond1 1 +atom 3 (1) (-688, 1243, 1148) def +bond1 1 +atom 4 (1) (-755, -790, 1545) def +bond1 1 +atom 5 (1) (15, -1192, -1167) def +bond1 2 +atom 6 (1) (1150, -153, -275) def +bond1 2 +atom 7 (1) (71, 538, -1509) def +bond1 2 +egroup (CH3PH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3PH2 diff --git a/sim/src/tests/heteroatom_organics/CH3PH2.pdb b/sim/src/tests/heteroatom_organics/CH3PH2.pdb new file mode 100755 index 000000000..88ec6fdc5 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3PH2.pdb @@ -0,0 +1,18 @@ +COMPND CH3PH2.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 P LIG 1 -1.231 0.083 0.523 1.00 0.00 P +HETATM 2 C LIG 1 0.151 -0.207 -0.713 1.00 0.00 C +HETATM 3 H LIG 1 -0.688 1.243 1.148 1.00 0.00 H +HETATM 4 H LIG 1 -0.755 -0.790 1.545 1.00 0.00 H +HETATM 5 H LIG 1 0.015 -1.192 -1.167 1.00 0.00 H +HETATM 6 H LIG 1 1.150 -0.153 -0.275 1.00 0.00 H +HETATM 7 H LIG 1 0.071 0.538 -1.509 1.00 0.00 H +CONECT 1 2 3 4 +CONECT 2 7 5 6 1 +CONECT 3 1 +CONECT 4 1 +CONECT 5 2 +CONECT 6 2 +CONECT 7 2 +MASTER 0 0 0 0 0 0 0 0 7 0 7 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3PHCH3.mmp b/sim/src/tests/heteroatom_organics/CH3PHCH3.mmp new file mode 100755 index 000000000..ddea2771c --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3PHCH3.mmp @@ -0,0 +1,35 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.116988, -0.294472, -0.941822, -0.112123) (2.546033) (0.007500, -0.002500, -0.005500) (1.000000) +egroup (View Data) +group (CH3PHCH3) +info opengroup open = True +mol (CH3PHCH3.pdb) def +atom 1 (15) (781, 778, 38) def +atom 2 (6) (843, -778, -999) def +bond1 1 +atom 3 (6) (-774, 463, 1029) def +bond1 1 +atom 4 (1) (191, 1622, -949) def +bond1 1 +atom 5 (1) (-114, -1022, -1469) def +bond1 2 +atom 6 (1) (1150, -1617, -368) def +bond1 2 +atom 7 (1) (1601, -658, -1780) def +bond1 2 +atom 8 (1) (-564, -294, 1791) def +bond1 3 +atom 9 (1) (-1616, 122, 418) def +bond1 3 +atom 10 (1) (-1063, 1382, 1548) def +bond1 3 +egroup (CH3PHCH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3PHCH3 diff --git a/sim/src/tests/heteroatom_organics/CH3PHCH3.pdb b/sim/src/tests/heteroatom_organics/CH3PHCH3.pdb new file mode 100755 index 000000000..5de8dc8b9 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3PHCH3.pdb @@ -0,0 +1,24 @@ +COMPND CH3PHCH3.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 P LIG 1 0.781 0.778 0.038 1.00 0.00 P +HETATM 2 C LIG 1 0.843 -0.778 -0.999 1.00 0.00 C +HETATM 3 C LIG 1 -0.774 0.463 1.029 1.00 0.00 C +HETATM 4 H LIG 1 0.191 1.622 -0.949 1.00 0.00 H +HETATM 5 H LIG 1 -0.114 -1.023 -1.469 1.00 0.00 H +HETATM 6 H LIG 1 1.150 -1.617 -0.368 1.00 0.00 H +HETATM 7 H LIG 1 1.601 -0.658 -1.780 1.00 0.00 H +HETATM 8 H LIG 1 -0.564 -0.294 1.791 1.00 0.00 H +HETATM 9 H LIG 1 -1.616 0.122 0.418 1.00 0.00 H +HETATM 10 H LIG 1 -1.063 1.382 1.548 1.00 0.00 H +CONECT 1 2 4 3 +CONECT 2 7 5 6 1 +CONECT 3 1 9 10 8 +CONECT 4 1 +CONECT 5 2 +CONECT 6 2 +CONECT 7 2 +CONECT 8 3 +CONECT 9 3 +CONECT 10 3 +MASTER 0 0 0 0 0 0 0 0 10 0 10 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3SCH3.mmp b/sim/src/tests/heteroatom_organics/CH3SCH3.mmp new file mode 100755 index 000000000..ec330cd73 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3SCH3.mmp @@ -0,0 +1,33 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.936542, 0.105123, 0.077555, 0.325305) (2.398905) (-0.011000, -0.007500, 0.006000) (1.000000) +egroup (View Data) +group (CH3SCH3) +info opengroup open = True +mol (CH3SCH3.pdb) def +atom 1 (16) (374, 689, 32) def +atom 2 (6) (769, -1093, 35) def +bond1 1 +atom 3 (6) (-1450, 591, 32) def +bond1 1 +atom 4 (1) (450, -1573, -895) def +bond1 2 +atom 5 (1) (302, -1596, 887) def +bond1 2 +atom 6 (1) (1854, -1186, 125) def +bond1 2 +atom 7 (1) (-1811, 6, 883) def +bond1 3 +atom 8 (1) (-1824, 155, -899) def +bond1 3 +atom 9 (1) (-1832, 1611, 121) def +bond1 3 +egroup (CH3SCH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3SCH3 diff --git a/sim/src/tests/heteroatom_organics/CH3SCH3.pdb b/sim/src/tests/heteroatom_organics/CH3SCH3.pdb new file mode 100755 index 000000000..bf5683177 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3SCH3.pdb @@ -0,0 +1,22 @@ +COMPND CH3SCH3.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 S LIG 1 0.374 0.689 0.032 1.00 0.00 S +HETATM 2 C LIG 1 0.769 -1.093 0.035 1.00 0.00 C +HETATM 3 C LIG 1 -1.450 0.591 0.032 1.00 0.00 C +HETATM 4 H LIG 1 0.450 -1.573 -0.895 1.00 0.00 H +HETATM 5 H LIG 1 0.302 -1.596 0.887 1.00 0.00 H +HETATM 6 H LIG 1 1.854 -1.186 0.125 1.00 0.00 H +HETATM 7 H LIG 1 -1.811 0.006 0.883 1.00 0.00 H +HETATM 8 H LIG 1 -1.824 0.155 -0.899 1.00 0.00 H +HETATM 9 H LIG 1 -1.832 1.611 0.121 1.00 0.00 H +CONECT 1 3 2 +CONECT 2 4 1 6 5 +CONECT 3 8 1 9 7 +CONECT 4 2 +CONECT 5 2 +CONECT 6 2 +CONECT 7 3 +CONECT 8 3 +CONECT 9 3 +MASTER 0 0 0 0 0 0 0 0 9 0 9 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3SH.mmp b/sim/src/tests/heteroatom_organics/CH3SH.mmp new file mode 100755 index 000000000..257b159bc --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3SH.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.939059, -0.125985, -0.204523, 0.245898) (2.187629) (0.030500, -0.013500, -0.006000) (1.000000) +egroup (View Data) +group (CH3SH) +info opengroup open = True +mol (CH3SH.pdb) def +atom 1 (16) (-1182, 52, 690) def +atom 2 (6) (163, -229, -530) def +bond1 1 +atom 3 (1) (-665, 1164, 1253) def +bond1 1 +atom 4 (1) (-106, -1137, -1073) def +bond1 2 +atom 5 (1) (1121, -387, -33) def +bond1 2 +atom 6 (1) (236, 596, -1241) def +bond1 2 +egroup (CH3SH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3SH diff --git a/sim/src/tests/heteroatom_organics/CH3SH.pdb b/sim/src/tests/heteroatom_organics/CH3SH.pdb new file mode 100755 index 000000000..6f1d8220e --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3SH.pdb @@ -0,0 +1,16 @@ +COMPND CH3SH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 S LIG 1 -1.182 0.052 0.690 1.00 0.00 S +HETATM 2 C LIG 1 0.163 -0.229 -0.530 1.00 0.00 C +HETATM 3 H LIG 1 -0.665 1.164 1.253 1.00 0.00 H +HETATM 4 H LIG 1 -0.106 -1.137 -1.073 1.00 0.00 H +HETATM 5 H LIG 1 1.121 -0.387 -0.033 1.00 0.00 H +HETATM 6 H LIG 1 0.236 0.596 -1.241 1.00 0.00 H +CONECT 1 2 3 +CONECT 2 6 4 5 1 +CONECT 3 1 +CONECT 4 2 +CONECT 5 2 +CONECT 6 2 +MASTER 0 0 0 0 0 0 0 0 6 0 6 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3SiH2CH3.mmp b/sim/src/tests/heteroatom_organics/CH3SiH2CH3.mmp new file mode 100755 index 000000000..8f095534d --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3SiH2CH3.mmp @@ -0,0 +1,37 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.922723, 0.212604, 0.149382, 0.284721) (2.576024) (0.012000, 0.012500, 0.027500) (1.000000) +egroup (View Data) +group (CH3SiH2CH3) +info opengroup open = True +mol (CH3SiH2CH3.pdb) def +atom 1 (14) (289, 657, 13) def +atom 2 (6) (933, -1103, 287) def +bond1 1 +atom 3 (6) (-1599, 732, 90) def +bond1 1 +atom 4 (1) (755, 1154, -1317) def +bond1 1 +atom 5 (1) (867, 1564, 1051) def +bond1 1 +atom 6 (1) (553, -1783, -484) def +bond1 2 +atom 7 (1) (625, -1493, 1262) def +bond1 2 +atom 8 (1) (2025, -1123, 244) def +bond1 2 +atom 9 (1) (-2050, 119, -697) def +bond1 3 +atom 10 (1) (-1959, 1758, -38) def +bond1 3 +atom 11 (1) (-1968, 365, 1053) def +bond1 3 +egroup (CH3SiH2CH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3SiH2CH3 diff --git a/sim/src/tests/heteroatom_organics/CH3SiH2CH3.pdb b/sim/src/tests/heteroatom_organics/CH3SiH2CH3.pdb new file mode 100755 index 000000000..1438b7890 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3SiH2CH3.pdb @@ -0,0 +1,26 @@ +COMPND CH3SiH2CH3.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 SI LIG 1 0.289 0.657 0.013 1.00 0.00 SI +HETATM 2 C LIG 1 0.933 -1.103 0.287 1.00 0.00 C +HETATM 3 C LIG 1 -1.599 0.732 0.090 1.00 0.00 C +HETATM 4 H LIG 1 0.755 1.154 -1.317 1.00 0.00 H +HETATM 5 H LIG 1 0.867 1.564 1.051 1.00 0.00 H +HETATM 6 H LIG 1 0.553 -1.783 -0.484 1.00 0.00 H +HETATM 7 H LIG 1 0.625 -1.493 1.262 1.00 0.00 H +HETATM 8 H LIG 1 2.026 -1.123 0.244 1.00 0.00 H +HETATM 9 H LIG 1 -2.050 0.119 -0.697 1.00 0.00 H +HETATM 10 H LIG 1 -1.959 1.758 -0.038 1.00 0.00 H +HETATM 11 H LIG 1 -1.968 0.365 1.053 1.00 0.00 H +CONECT 1 4 3 2 5 +CONECT 2 6 1 8 7 +CONECT 3 9 10 1 11 +CONECT 4 1 +CONECT 5 1 +CONECT 6 2 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 3 +MASTER 0 0 0 0 0 0 0 0 11 0 11 0 +END diff --git a/sim/src/tests/heteroatom_organics/CH3SiH3.mmp b/sim/src/tests/heteroatom_organics/CH3SiH3.mmp new file mode 100755 index 000000000..d4337bf3c --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3SiH3.mmp @@ -0,0 +1,31 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.863755) (0.017000, -0.019000, -0.014000) (1.000000) +egroup (View Data) +group (CH3SiH3) +info opengroup open = True +mol (CH3SiH3.pdb) def +atom 1 (14) (-521, -10, 511) def +atom 2 (6) (844, -305, -763) def +bond1 1 +atom 3 (1) (-371, 1331, 1146) def +bond1 1 +atom 4 (1) (-472, -1040, 1588) def +bond1 1 +atom 5 (1) (-1866, -72, -129) def +bond1 1 +atom 6 (1) (742, -1293, -1223) def +bond1 2 +atom 7 (1) (1832, -249, -297) def +bond1 2 +atom 8 (1) (801, 444, -1560) def +bond1 2 +egroup (CH3SiH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3SiH3 diff --git a/sim/src/tests/heteroatom_organics/CH3SiH3.pdb b/sim/src/tests/heteroatom_organics/CH3SiH3.pdb new file mode 100755 index 000000000..96eede207 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CH3SiH3.pdb @@ -0,0 +1,20 @@ +COMPND CH3SiH3.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 SI LIG 1 -0.521 -0.010 0.511 1.00 0.00 SI +HETATM 2 C LIG 1 0.844 -0.305 -0.763 1.00 0.00 C +HETATM 3 H LIG 1 -0.371 1.331 1.146 1.00 0.00 H +HETATM 4 H LIG 1 -0.472 -1.040 1.588 1.00 0.00 H +HETATM 5 H LIG 1 -1.866 -0.072 -0.129 1.00 0.00 H +HETATM 6 H LIG 1 0.742 -1.293 -1.223 1.00 0.00 H +HETATM 7 H LIG 1 1.832 -0.249 -0.297 1.00 0.00 H +HETATM 8 H LIG 1 0.801 0.444 -1.560 1.00 0.00 H +CONECT 1 2 5 3 4 +CONECT 2 8 6 7 1 +CONECT 3 1 +CONECT 4 1 +CONECT 5 1 +CONECT 6 2 +CONECT 7 2 +CONECT 8 2 +MASTER 0 0 0 0 0 0 0 0 8 0 8 0 +END diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_AlH2.mmp b/sim/src/tests/heteroatom_organics/C_CH3_3_AlH2.mmp new file mode 100755 index 000000000..54f2978d3 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_AlH2.mmp @@ -0,0 +1,47 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.758015) (0.027000, 0.031000, -0.000000) (1.000000) +egroup (View Data) +group (C_CH3_3_AlH2) +info opengroup open = True +mol (C_CH3_3_AlH2.pdb) cpk +atom 1 (6) (-621, 91, 0) def +atom 2 (6) (-1144, 812, 1258) def +bond1 1 +atom 3 (6) (-1144, 812, -1258) def +bond1 1 +atom 4 (6) (-1143, -1364, 0) def +bond1 1 +atom 5 (13) (1377, 66, 0) def +bond1 1 +atom 6 (1) (-801, 337, 2186) def +bond1 2 +atom 7 (1) (-801, 337, -2186) def +bond1 3 +atom 8 (1) (-827, 1862, 1294) def +bond1 2 +atom 9 (1) (-827, 1862, -1294) def +bond1 3 +atom 10 (1) (-2245, 811, 1282) def +bond1 2 +atom 11 (1) (-2245, 811, -1282) def +bond1 3 +atom 12 (1) (-821, -1924, 888) def +bond1 4 +atom 13 (1) (-821, -1924, -888) def +bond1 4 +atom 14 (1) (-2245, -1377, 0) def +bond1 4 +atom 15 (1) (2191, 36, 1370) def +bond1 5 +atom 16 (1) (2191, 36, -1370) def +bond1 5 +egroup (C_CH3_3_AlH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_AlH2 diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_AlH2.pdb b/sim/src/tests/heteroatom_organics/C_CH3_3_AlH2.pdb new file mode 100755 index 000000000..263c1df57 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_AlH2.pdb @@ -0,0 +1,36 @@ +COMPND C_CH3_3_AlH2.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 C LIG 1 -0.621 0.091 0.000 1.00 0.00 C +HETATM 2 C LIG 1 -1.144 0.812 1.258 1.00 0.00 C +HETATM 3 C LIG 1 -1.144 0.812 -1.258 1.00 0.00 C +HETATM 4 C LIG 1 -1.143 -1.364 0.000 1.00 0.00 C +HETATM 5 AL LIG 1 1.377 0.066 0.000 1.00 0.00 AL +HETATM 6 H LIG 1 -0.801 0.337 2.186 1.00 0.00 H +HETATM 7 H LIG 1 -0.801 0.337 -2.186 1.00 0.00 H +HETATM 8 H LIG 1 -0.827 1.862 1.294 1.00 0.00 H +HETATM 9 H LIG 1 -0.827 1.862 -1.294 1.00 0.00 H +HETATM 10 H LIG 1 -2.245 0.811 1.282 1.00 0.00 H +HETATM 11 H LIG 1 -2.245 0.811 -1.282 1.00 0.00 H +HETATM 12 H LIG 1 -0.821 -1.924 0.888 1.00 0.00 H +HETATM 13 H LIG 1 -0.821 -1.924 -0.888 1.00 0.00 H +HETATM 14 H LIG 1 -2.245 -1.377 0.000 1.00 0.00 H +HETATM 15 H LIG 1 2.191 0.036 1.370 1.00 0.00 H +HETATM 16 H LIG 1 2.191 0.036 -1.370 1.00 0.00 H +CONECT 1 3 4 5 2 +CONECT 2 1 10 8 6 +CONECT 3 7 9 11 1 +CONECT 4 13 1 14 12 +CONECT 5 16 1 15 +CONECT 6 2 +CONECT 7 3 +CONECT 8 2 +CONECT 9 3 +CONECT 10 2 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +MASTER 0 0 0 0 0 0 0 0 16 0 16 0 +END diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_BH2.mmp b/sim/src/tests/heteroatom_organics/C_CH3_3_BH2.mmp new file mode 100755 index 000000000..527b4bca5 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_BH2.mmp @@ -0,0 +1,47 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.573111) (0.266500, -0.010500, -0.000000) (1.000000) +egroup (View Data) +group (C_CH3_3_BH2) +info opengroup open = True +mol (C_CH3_3_BH2.pdb) cpk +atom 1 (6) (-518, 159, 0) def +atom 2 (6) (-1077, 844, 1261) def +bond1 1 +atom 3 (6) (-1077, 844, -1261) def +bond1 1 +atom 4 (6) (-959, -1342, 0) def +bond1 1 +atom 5 (5) (1041, -3, 0) def +bond1 1 +atom 6 (1) (-712, 370, 2180) def +bond1 2 +atom 7 (1) (-712, 370, -2180) def +bond1 3 +atom 8 (1) (-787, 1900, 1303) def +bond1 2 +atom 9 (1) (-787, 1900, -1303) def +bond1 3 +atom 10 (1) (-2175, 807, 1281) def +bond1 2 +atom 11 (1) (-2175, 807, -1281) def +bond1 3 +atom 12 (1) (-609, -1879, 889) def +bond1 4 +atom 13 (1) (-609, -1879, -889) def +bond1 4 +atom 14 (1) (-2056, -1386, 0) def +bond1 4 +atom 15 (1) (1642, -114, 1030) def +bond1 5 +atom 16 (1) (1642, -114, -1030) def +bond1 5 +egroup (C_CH3_3_BH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_BH2 diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_BH2.pdb b/sim/src/tests/heteroatom_organics/C_CH3_3_BH2.pdb new file mode 100755 index 000000000..d484036d3 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_BH2.pdb @@ -0,0 +1,36 @@ +COMPND C_CH3_3_BH2.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 C LIG 1 -0.518 0.159 0.000 1.00 0.00 C +HETATM 2 C LIG 1 -1.077 0.844 1.261 1.00 0.00 C +HETATM 3 C LIG 1 -1.077 0.844 -1.261 1.00 0.00 C +HETATM 4 C LIG 1 -0.959 -1.342 0.000 1.00 0.00 C +HETATM 5 B LIG 1 1.041 -0.003 0.000 1.00 0.00 B +HETATM 6 H LIG 1 -0.712 0.370 2.180 1.00 0.00 H +HETATM 7 H LIG 1 -0.712 0.370 -2.180 1.00 0.00 H +HETATM 8 H LIG 1 -0.787 1.900 1.303 1.00 0.00 H +HETATM 9 H LIG 1 -0.787 1.900 -1.303 1.00 0.00 H +HETATM 10 H LIG 1 -2.175 0.807 1.281 1.00 0.00 H +HETATM 11 H LIG 1 -2.175 0.807 -1.281 1.00 0.00 H +HETATM 12 H LIG 1 -0.609 -1.879 0.889 1.00 0.00 H +HETATM 13 H LIG 1 -0.609 -1.879 -0.889 1.00 0.00 H +HETATM 14 H LIG 1 -2.056 -1.386 0.000 1.00 0.00 H +HETATM 15 H LIG 1 1.642 -0.114 1.030 1.00 0.00 H +HETATM 16 H LIG 1 1.642 -0.114 -1.030 1.00 0.00 H +CONECT 1 3 4 5 2 +CONECT 2 1 10 8 6 +CONECT 3 7 9 11 1 +CONECT 4 13 1 14 12 +CONECT 5 16 1 15 +CONECT 6 2 +CONECT 7 3 +CONECT 8 2 +CONECT 9 3 +CONECT 10 2 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +MASTER 0 0 0 0 0 0 0 0 16 0 16 0 +END diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_NH2.mmp b/sim/src/tests/heteroatom_organics/C_CH3_3_NH2.mmp new file mode 100755 index 000000000..c2ec54909 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_NH2.mmp @@ -0,0 +1,47 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.468267) (0.378500, -0.008000, -0.000000) (1.000000) +egroup (View Data) +group (C_CH3_3_NH2) +info opengroup open = True +mol (C_CH3_3_NH2.pdb) cpk +atom 1 (6) (-494, 132, 0) def +atom 2 (6) (-1027, 838, 1256) def +bond1 1 +atom 3 (6) (-1027, 838, -1256) def +bond1 1 +atom 4 (6) (-945, -1346, 0) def +bond1 1 +atom 5 (7) (975, 281, 0) def +bond1 1 +atom 6 (1) (-652, 362, 2171) def +bond1 2 +atom 7 (1) (-652, 362, -2171) def +bond1 3 +atom 8 (1) (-709, 1885, 1271) def +bond1 2 +atom 9 (1) (-709, 1885, -1271) def +bond1 3 +atom 10 (1) (-2121, 804, 1294) def +bond1 2 +atom 11 (1) (-2121, 804, -1294) def +bond1 3 +atom 12 (1) (-568, -1869, 887) def +bond1 4 +atom 13 (1) (-568, -1869, -887) def +bond1 4 +atom 14 (1) (-2037, -1430, 0) def +bond1 4 +atom 15 (1) (1364, -196, 813) def +bond1 5 +atom 16 (1) (1364, -196, -813) def +bond1 5 +egroup (C_CH3_3_NH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_NH2 diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_NH2.pdb b/sim/src/tests/heteroatom_organics/C_CH3_3_NH2.pdb new file mode 100755 index 000000000..d3f45b202 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_NH2.pdb @@ -0,0 +1,36 @@ +COMPND C_CH3_3_NH2.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 C LIG 1 -0.494 0.132 0.000 1.00 0.00 C +HETATM 2 C LIG 1 -1.027 0.838 1.256 1.00 0.00 C +HETATM 3 C LIG 1 -1.027 0.838 -1.256 1.00 0.00 C +HETATM 4 C LIG 1 -0.945 -1.346 0.000 1.00 0.00 C +HETATM 5 N LIG 1 0.975 0.281 0.000 1.00 0.00 N +HETATM 6 H LIG 1 -0.652 0.362 2.171 1.00 0.00 H +HETATM 7 H LIG 1 -0.652 0.362 -2.171 1.00 0.00 H +HETATM 8 H LIG 1 -0.709 1.885 1.271 1.00 0.00 H +HETATM 9 H LIG 1 -0.709 1.885 -1.271 1.00 0.00 H +HETATM 10 H LIG 1 -2.121 0.804 1.294 1.00 0.00 H +HETATM 11 H LIG 1 -2.121 0.804 -1.294 1.00 0.00 H +HETATM 12 H LIG 1 -0.568 -1.869 0.887 1.00 0.00 H +HETATM 13 H LIG 1 -0.568 -1.869 -0.887 1.00 0.00 H +HETATM 14 H LIG 1 -2.038 -1.430 0.000 1.00 0.00 H +HETATM 15 H LIG 1 1.364 -0.196 0.813 1.00 0.00 H +HETATM 16 H LIG 1 1.364 -0.196 -0.813 1.00 0.00 H +CONECT 1 3 4 5 2 +CONECT 2 1 8 10 6 +CONECT 3 7 11 9 1 +CONECT 4 13 1 14 12 +CONECT 5 16 1 15 +CONECT 6 2 +CONECT 7 3 +CONECT 8 2 +CONECT 9 3 +CONECT 10 2 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +MASTER 0 0 0 0 0 0 0 0 16 0 16 0 +END diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_OH.mmp b/sim/src/tests/heteroatom_organics/C_CH3_3_OH.mmp new file mode 100755 index 000000000..abc022395 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_OH.mmp @@ -0,0 +1,45 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.451982) (0.495000, 0.077500, -0.000000) (1.000000) +egroup (View Data) +group (C_CH3_3_OH) +info opengroup open = True +mol (C_CH3_3_OH.pdb) cpk +atom 1 (6) (-579, 19, 0) def +atom 2 (6) (-1008, 776, 1265) def +bond1 1 +atom 3 (6) (-1008, 776, -1265) def +bond1 1 +atom 4 (6) (-1135, -1407, 0) def +bond1 1 +atom 5 (8) (851, -144, 0) def +bond1 1 +atom 6 (1) (-651, 256, 2159) def +bond1 2 +atom 7 (1) (-651, 256, -2159) def +bond1 3 +atom 8 (1) (-594, 1792, 1274) def +bond1 2 +atom 9 (1) (-594, 1792, -1274) def +bond1 3 +atom 10 (1) (-2100, 864, 1330) def +bond1 2 +atom 11 (1) (-2100, 864, -1330) def +bond1 3 +atom 12 (1) (-788, -1947, 886) def +bond1 4 +atom 13 (1) (-788, -1947, -886) def +bond1 4 +atom 14 (1) (-2229, -1404, 0) def +bond1 4 +atom 15 (1) (1239, 742, 0) def +bond1 5 +egroup (C_CH3_3_OH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_OH diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_OH.pdb b/sim/src/tests/heteroatom_organics/C_CH3_3_OH.pdb new file mode 100755 index 000000000..d3cfbb1d7 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_OH.pdb @@ -0,0 +1,34 @@ +COMPND C_CH3_3_OH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 C LIG 1 -0.579 0.019 0.000 1.00 0.00 C +HETATM 2 C LIG 1 -1.009 0.776 1.265 1.00 0.00 C +HETATM 3 C LIG 1 -1.009 0.776 -1.265 1.00 0.00 C +HETATM 4 C LIG 1 -1.135 -1.407 0.000 1.00 0.00 C +HETATM 5 O LIG 1 0.851 -0.144 0.000 1.00 0.00 O +HETATM 6 H LIG 1 -0.651 0.256 2.159 1.00 0.00 H +HETATM 7 H LIG 1 -0.651 0.256 -2.159 1.00 0.00 H +HETATM 8 H LIG 1 -0.594 1.792 1.274 1.00 0.00 H +HETATM 9 H LIG 1 -0.594 1.792 -1.274 1.00 0.00 H +HETATM 10 H LIG 1 -2.100 0.864 1.330 1.00 0.00 H +HETATM 11 H LIG 1 -2.100 0.864 -1.330 1.00 0.00 H +HETATM 12 H LIG 1 -0.788 -1.947 0.886 1.00 0.00 H +HETATM 13 H LIG 1 -0.788 -1.947 -0.886 1.00 0.00 H +HETATM 14 H LIG 1 -2.229 -1.404 0.000 1.00 0.00 H +HETATM 15 H LIG 1 1.239 0.742 0.000 1.00 0.00 H +CONECT 1 3 4 5 2 +CONECT 2 1 8 10 6 +CONECT 3 7 11 9 1 +CONECT 4 13 1 14 12 +CONECT 5 1 15 +CONECT 6 2 +CONECT 7 3 +CONECT 8 2 +CONECT 9 3 +CONECT 10 2 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +MASTER 0 0 0 0 0 0 0 0 15 0 15 0 +END diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_PH2.mmp b/sim/src/tests/heteroatom_organics/C_CH3_3_PH2.mmp new file mode 100755 index 000000000..9b2c55b7f --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_PH2.mmp @@ -0,0 +1,47 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.584792) (0.284000, -0.048500, -0.000000) (1.000000) +egroup (View Data) +group (C_CH3_3_PH2) +info opengroup open = True +mol (C_CH3_3_PH2.pdb) cpk +atom 1 (6) (-561, 175, 0) def +atom 2 (6) (-1131, 860, 1257) def +bond1 1 +atom 3 (6) (-1131, 860, -1257) def +bond1 1 +atom 4 (6) (-930, -1318, 0) def +bond1 1 +atom 5 (15) (1318, 474, 0) def +bond1 1 +atom 6 (1) (-754, 403, 2180) def +bond1 2 +atom 7 (1) (-754, 403, -2180) def +bond1 3 +atom 8 (1) (-876, 1926, 1286) def +bond1 2 +atom 9 (1) (-876, 1926, -1286) def +bond1 3 +atom 10 (1) (-2225, 777, 1272) def +bond1 2 +atom 11 (1) (-2225, 777, -1272) def +bond1 3 +atom 12 (1) (-538, -1829, 886) def +bond1 4 +atom 13 (1) (-538, -1829, -886) def +bond1 4 +atom 14 (1) (-2021, -1434, 0) def +bond1 4 +atom 15 (1) (1657, -443, 1039) def +bond1 5 +atom 16 (1) (1657, -443, -1039) def +bond1 5 +egroup (C_CH3_3_PH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_PH2 diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_PH2.pdb b/sim/src/tests/heteroatom_organics/C_CH3_3_PH2.pdb new file mode 100755 index 000000000..d0840ab8d --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_PH2.pdb @@ -0,0 +1,36 @@ +COMPND C_CH3_3_PH2.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 C LIG 1 -0.561 0.175 0.000 1.00 0.00 C +HETATM 2 C LIG 1 -1.131 0.860 1.257 1.00 0.00 C +HETATM 3 C LIG 1 -1.131 0.860 -1.257 1.00 0.00 C +HETATM 4 C LIG 1 -0.930 -1.318 0.000 1.00 0.00 C +HETATM 5 P LIG 1 1.318 0.474 0.000 1.00 0.00 P +HETATM 6 H LIG 1 -0.754 0.403 2.180 1.00 0.00 H +HETATM 7 H LIG 1 -0.754 0.403 -2.180 1.00 0.00 H +HETATM 8 H LIG 1 -0.876 1.926 1.286 1.00 0.00 H +HETATM 9 H LIG 1 -0.876 1.926 -1.286 1.00 0.00 H +HETATM 10 H LIG 1 -2.225 0.777 1.272 1.00 0.00 H +HETATM 11 H LIG 1 -2.225 0.777 -1.272 1.00 0.00 H +HETATM 12 H LIG 1 -0.538 -1.829 0.886 1.00 0.00 H +HETATM 13 H LIG 1 -0.538 -1.829 -0.886 1.00 0.00 H +HETATM 14 H LIG 1 -2.022 -1.434 0.000 1.00 0.00 H +HETATM 15 H LIG 1 1.657 -0.443 1.039 1.00 0.00 H +HETATM 16 H LIG 1 1.657 -0.443 -1.039 1.00 0.00 H +CONECT 1 3 4 5 2 +CONECT 2 1 10 8 6 +CONECT 3 7 9 11 1 +CONECT 4 13 1 14 12 +CONECT 5 16 1 15 +CONECT 6 2 +CONECT 7 3 +CONECT 8 2 +CONECT 9 3 +CONECT 10 2 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +MASTER 0 0 0 0 0 0 0 0 16 0 16 0 +END diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_SH.mmp b/sim/src/tests/heteroatom_organics/C_CH3_3_SH.mmp new file mode 100755 index 000000000..b52e796ef --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_SH.mmp @@ -0,0 +1,45 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.589229) (0.367500, 0.116000, -0.000000) (1.000000) +egroup (View Data) +group (C_CH3_3_SH) +info opengroup open = True +mol (C_CH3_3_SH.pdb) cpk +atom 1 (6) (-622, -11, 0) def +atom 2 (6) (-1029, 764, 1260) def +bond1 1 +atom 3 (6) (-1029, 764, -1260) def +bond1 1 +atom 4 (6) (-1242, -1415, 0) def +bond1 1 +atom 5 (16) (1231, -302, 0) def +bond1 1 +atom 6 (1) (-746, 229, 2172) def +bond1 2 +atom 7 (1) (-746, 229, -2172) def +bond1 3 +atom 8 (1) (-552, 1750, 1290) def +bond1 2 +atom 9 (1) (-552, 1750, -1290) def +bond1 3 +atom 10 (1) (-2115, 918, 1275) def +bond1 2 +atom 11 (1) (-2115, 918, -1275) def +bond1 3 +atom 12 (1) (-943, -1982, 888) def +bond1 4 +atom 13 (1) (-943, -1982, -888) def +bond1 4 +atom 14 (1) (-2336, -1342, 0) def +bond1 4 +atom 15 (1) (1601, 996, 0) def +bond1 5 +egroup (C_CH3_3_SH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_SH diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_SH.pdb b/sim/src/tests/heteroatom_organics/C_CH3_3_SH.pdb new file mode 100755 index 000000000..320ea30ce --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_SH.pdb @@ -0,0 +1,34 @@ +COMPND C_CH3_3_SH.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 C LIG 1 -0.622 -0.011 0.000 1.00 0.00 C +HETATM 2 C LIG 1 -1.029 0.764 1.260 1.00 0.00 C +HETATM 3 C LIG 1 -1.029 0.764 -1.260 1.00 0.00 C +HETATM 4 C LIG 1 -1.242 -1.415 0.000 1.00 0.00 C +HETATM 5 S LIG 1 1.231 -0.302 0.000 1.00 0.00 S +HETATM 6 H LIG 1 -0.746 0.229 2.172 1.00 0.00 H +HETATM 7 H LIG 1 -0.746 0.229 -2.172 1.00 0.00 H +HETATM 8 H LIG 1 -0.552 1.750 1.290 1.00 0.00 H +HETATM 9 H LIG 1 -0.552 1.750 -1.290 1.00 0.00 H +HETATM 10 H LIG 1 -2.115 0.918 1.275 1.00 0.00 H +HETATM 11 H LIG 1 -2.115 0.918 -1.275 1.00 0.00 H +HETATM 12 H LIG 1 -0.943 -1.982 0.888 1.00 0.00 H +HETATM 13 H LIG 1 -0.943 -1.982 -0.888 1.00 0.00 H +HETATM 14 H LIG 1 -2.336 -1.342 0.000 1.00 0.00 H +HETATM 15 H LIG 1 1.601 0.996 0.000 1.00 0.00 H +CONECT 1 3 4 5 2 +CONECT 2 1 10 8 6 +CONECT 3 7 9 11 1 +CONECT 4 13 1 14 12 +CONECT 5 1 15 +CONECT 6 2 +CONECT 7 3 +CONECT 8 2 +CONECT 9 3 +CONECT 10 2 +CONECT 11 3 +CONECT 12 4 +CONECT 13 4 +CONECT 14 4 +CONECT 15 5 +MASTER 0 0 0 0 0 0 0 0 15 0 15 0 +END diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_SiH3.mmp b/sim/src/tests/heteroatom_organics/C_CH3_3_SiH3.mmp new file mode 100755 index 000000000..a663326f0 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_SiH3.mmp @@ -0,0 +1,49 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.643917) (0.119000, -0.000000, -0.243000) (1.000000) +egroup (View Data) +group (C_CH3_3_SiH3) +info opengroup open = True +mol (C_CH3_3_SiH3.pdb) cpk +atom 1 (6) (0, 0, -172) def +atom 2 (6) (727, -1259, -687) def +bond1 1 +atom 3 (6) (727, 1259, -687) def +bond1 1 +atom 4 (6) (-1453, 0, -687) def +bond1 1 +atom 5 (14) (0, 0, 1740) def +bond1 1 +atom 6 (1) (1771, -1297, -356) def +bond1 2 +atom 7 (1) (238, 2183, -356) def +bond1 3 +atom 8 (1) (-2009, 885, -356) def +bond1 4 +atom 9 (1) (238, -2183, -356) def +bond1 2 +atom 10 (1) (1771, 1297, -356) def +bond1 3 +atom 11 (1) (-2009, -885, -356) def +bond1 4 +atom 12 (1) (735, -1273, -1786) def +bond1 2 +atom 13 (1) (735, 1273, -1786) def +bond1 3 +atom 14 (1) (-1470, 0, -1786) def +bond1 4 +atom 15 (1) (-697, 1208, 2272) def +bond1 5 +atom 16 (1) (-697, -1208, 2272) def +bond1 5 +atom 17 (1) (1395, 0, 2272) def +bond1 5 +egroup (C_CH3_3_SiH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_SiH3 diff --git a/sim/src/tests/heteroatom_organics/C_CH3_3_SiH3.pdb b/sim/src/tests/heteroatom_organics/C_CH3_3_SiH3.pdb new file mode 100755 index 000000000..5a9b0d5df --- /dev/null +++ b/sim/src/tests/heteroatom_organics/C_CH3_3_SiH3.pdb @@ -0,0 +1,38 @@ +COMPND C_CH3_3_SiH3.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +HETATM 1 C LIG 1 0.000 0.000 -0.172 1.00 0.00 C +HETATM 2 C LIG 1 0.727 -1.259 -0.687 1.00 0.00 C +HETATM 3 C LIG 1 0.727 1.259 -0.687 1.00 0.00 C +HETATM 4 C LIG 1 -1.453 0.000 -0.687 1.00 0.00 C +HETATM 5 SI LIG 1 0.000 0.000 1.740 1.00 0.00 SI +HETATM 6 H LIG 1 1.771 -1.297 -0.356 1.00 0.00 H +HETATM 7 H LIG 1 0.238 2.183 -0.356 1.00 0.00 H +HETATM 8 H LIG 1 -2.009 0.885 -0.356 1.00 0.00 H +HETATM 9 H LIG 1 0.238 -2.183 -0.356 1.00 0.00 H +HETATM 10 H LIG 1 1.771 1.297 -0.356 1.00 0.00 H +HETATM 11 H LIG 1 -2.009 -0.885 -0.356 1.00 0.00 H +HETATM 12 H LIG 1 0.735 -1.273 -1.786 1.00 0.00 H +HETATM 13 H LIG 1 0.735 1.273 -1.786 1.00 0.00 H +HETATM 14 H LIG 1 -1.470 0.000 -1.786 1.00 0.00 H +HETATM 15 H LIG 1 -0.697 1.208 2.272 1.00 0.00 H +HETATM 16 H LIG 1 -0.697 -1.208 2.272 1.00 0.00 H +HETATM 17 H LIG 1 1.395 0.000 2.272 1.00 0.00 H +CONECT 1 2 3 4 5 +CONECT 2 12 6 9 1 +CONECT 3 13 7 10 1 +CONECT 4 14 8 11 1 +CONECT 5 1 15 16 17 +CONECT 6 2 +CONECT 7 3 +CONECT 8 4 +CONECT 9 2 +CONECT 10 3 +CONECT 11 4 +CONECT 12 2 +CONECT 13 3 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 5 +MASTER 0 0 0 0 0 0 0 0 17 0 17 0 +END diff --git a/sim/src/tests/heteroatom_organics/CreateTests.py b/sim/src/tests/heteroatom_organics/CreateTests.py new file mode 100755 index 000000000..cff35dc44 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/CreateTests.py @@ -0,0 +1,38 @@ +#!/usr/bin/python + +import os +import sys +import MmpFile +import XyzFile + +damianFiles = map(lambda x: x.strip(), + open("damianFiles").readlines()) + +for df in damianFiles: + prefix = df[:df.index(".")] + testPrefix = "test_" + prefix + damianMmp = MmpFile.MmpFile() + damianMmp.read(df) + + # Generate the xyzcmp file + xyzcmpFilename = testPrefix + ".xyzcmp" + outf = open(xyzcmpFilename, "w") + xyzcmp = damianMmp.convertToXyz() + xyzcmp.write(df, outf) + outf.close() + + # Make a perturbed copy of the MMP, use it for test_{foo}.mmp + dmClone = damianMmp.clone() + dmClone.perturb() + testMmpFilename = testPrefix + ".mmp" + outf = open(testMmpFilename, "w") + dmClone.write(outf) + outf.close() + + # Create test_{foo}.test + testTestFilename = testPrefix + ".test" + outf = open(testTestFilename, "w") + outf.write("TYPE struct\n") + outf.close() + + print "Test input files generated for " + testPrefix diff --git a/sim/src/tests/heteroatom_organics/MmpFile.py b/sim/src/tests/heteroatom_organics/MmpFile.py new file mode 100755 index 000000000..9a2e9d81d --- /dev/null +++ b/sim/src/tests/heteroatom_organics/MmpFile.py @@ -0,0 +1,123 @@ +#!/usr/bin/python + +"""Grab one of Damian's minimized MMP files, perturb each atom's +position by some fraction of an angstrom, write out the result as +another MMP file, which becomes an input file for the test. + +$Id$ +""" + +__author__ = "Will" + +import re +import os +import sys +import string +import Atom + +class MmpFile: + """This is meant to be a Python class representing a MMP file. It + is not intended to represent ALL the information in a MMP file, + although it might do that in some distant-future version. Right + now, its biggest strength is that it allows us to easily modify + the positions of the atoms in an MMP file, and write out the + resulting modified MMP file.""" + class _Line: + def fromMmp(self, line): + self._str = line + def str(self): + return self._str + def clone(self, owner): + ln = MmpFile._Line() + ln._str = self._str + return ln + class _AtomHolder: + """Atom holders are indices into the MmpFile.atoms list, + and that's done so that an entry in MmpFile.lines can be + a pointer into the MmpFile.atoms list. When a file is + cloned, we clone the atoms but keep the same lines. + """ + def __init__(self, owner): + self._owner = owner + def fromMmp(self, line): + atoms = self._owner.atoms + self._index = len(atoms) + a = Atom.Atom() + a.fromMmp(line) + atoms.append(a) + def str(self): + a = self._owner.atoms[self._index] + return a.toMmpString() + def clone(self, newowner): + other = MmpFile._AtomHolder(newowner) + other._index = self._index + return other + def __init__(self): + self.atoms = [ ] + self.lines = [ ] + def clone(self): + other = MmpFile() + for x in self.lines: + other.lines.append(x.clone(other)) + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + for line in lines.split("\n"): + try: + atm = MmpFile._AtomHolder(self) + atm.fromMmp(line) + except Atom.NotAtomException: + atm = MmpFile._Line() + atm.fromMmp(line) + self.lines.append(atm) + def write(self, outf=None): + if outf == None: + outf = sys.stdout + for ln in self.lines: + outf.write(ln.str() + "\n") + def convertToXyz(self): + import XyzFile + xyz = XyzFile.XyzFile() + for a in self.atoms: + xyz.atoms.append(a) + return xyz + def perturb(self): + import random + A = 0.5 # some small number of angstroms + A = A / (3 ** .5) # amount in one dimension + for i in range(len(self)): + x, y, z = self[i] + x += random.normalvariate(0.0, A) + y += random.normalvariate(0.0, A) + z += random.normalvariate(0.0, A) + self[i] = (x, y, z) + +if __name__ == "__main__": + """What follows is a specific usage of the MmpFile class. It's not + the only way it could be used, but it demonstrates something we're + going to want to do very soon as we generate test cases from + Damian's MMP files.""" + m = MmpFile() + #input = "C14H20.mmp" + input = "C3H8.mmp" + m.read(input) + m.perturb() + #outf = os.popen("diff -u - %s | less" % input, "w") + outf = os.popen("diff -u - %s" % input, "w") + m.write(outf) + outf.close() diff --git a/sim/src/tests/heteroatom_organics/N_ADAM_C3v.mmp b/sim/src/tests/heteroatom_organics/N_ADAM_C3v.mmp new file mode 100755 index 000000000..c4b02db7c --- /dev/null +++ b/sim/src/tests/heteroatom_organics/N_ADAM_C3v.mmp @@ -0,0 +1,63 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.881121) (-0.000000, -0.000000, 0.863000) (1.000000) +egroup (View Data) +group (N_ADAM_C3v) +info opengroup open = True +mol (N_ADAM_C3v.pdb) cpk +atom 1 (6) (-695, 1203, 475) def +atom 2 (6) (-695, -1203, 475) def +atom 3 (6) (1390, 0, 475) def +atom 4 (7) (0, 0, 964) def +bond1 1 2 3 +atom 5 (6) (-726, 1257, -1072) def +bond1 1 +atom 6 (6) (-726, -1257, -1072) def +bond1 2 +atom 7 (6) (1451, 0, -1072) def +bond1 3 +atom 8 (6) (728, -1261, -1591) def +bond1 6 7 +atom 9 (6) (728, 1261, -1591) def +bond1 5 7 +atom 10 (6) (-1456, 0, -1591) def +bond1 5 6 +atom 11 (1) (-184, 2088, 877) def +bond1 1 +atom 12 (1) (-1716, -1203, 877) def +bond1 2 +atom 13 (1) (1900, 885, 877) def +bond1 3 +atom 14 (1) (-1716, 1203, 877) def +bond1 1 +atom 15 (1) (-184, -2088, 877) def +bond1 2 +atom 16 (1) (1900, -885, 877) def +bond1 3 +atom 17 (1) (-1250, 2164, -1401) def +bond1 5 +atom 18 (1) (-1250, -2164, -1401) def +bond1 6 +atom 19 (1) (2499, 0, -1401) def +bond1 7 +atom 20 (1) (745, -1291, -2690) def +bond1 8 +atom 21 (1) (745, 1291, -2690) def +bond1 9 +atom 22 (1) (-1490, 0, -2690) def +bond1 10 +atom 23 (1) (1249, -2164, -1244) def +bond1 8 +atom 24 (1) (1249, 2164, -1244) def +bond1 9 +atom 25 (1) (-2499, 0, -1244) def +bond1 10 +egroup (N_ADAM_C3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part N_ADAM_C3v diff --git a/sim/src/tests/heteroatom_organics/N_ADAM_C3v.pdb b/sim/src/tests/heteroatom_organics/N_ADAM_C3v.pdb new file mode 100755 index 000000000..0dd0336bf --- /dev/null +++ b/sim/src/tests/heteroatom_organics/N_ADAM_C3v.pdb @@ -0,0 +1,54 @@ +COMPND N_ADAM_C3v.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 -0.695 1.203 0.475 1.00 0.00 C +ATOM 2 C UNK 0 -0.695 -1.203 0.475 1.00 0.00 C +ATOM 3 C UNK 0 1.390 0.000 0.475 1.00 0.00 C +ATOM 4 N UNK 0 0.000 0.000 0.964 1.00 0.00 N +ATOM 5 C UNK 0 -0.726 1.257 -1.072 1.00 0.00 C +ATOM 6 C UNK 0 -0.726 -1.257 -1.072 1.00 0.00 C +ATOM 7 C UNK 0 1.451 0.000 -1.072 1.00 0.00 C +ATOM 8 C UNK 0 0.728 -1.261 -1.591 1.00 0.00 C +ATOM 9 C UNK 0 0.728 1.261 -1.591 1.00 0.00 C +ATOM 10 C UNK 0 -1.456 0.000 -1.591 1.00 0.00 C +ATOM 11 H UNK 0 -0.184 2.088 0.877 1.00 0.00 H +ATOM 12 H UNK 0 -1.716 -1.203 0.877 1.00 0.00 H +ATOM 13 H UNK 0 1.900 0.885 0.877 1.00 0.00 H +ATOM 14 H UNK 0 -1.716 1.203 0.877 1.00 0.00 H +ATOM 15 H UNK 0 -0.184 -2.088 0.877 1.00 0.00 H +ATOM 16 H UNK 0 1.900 -0.885 0.877 1.00 0.00 H +ATOM 17 H UNK 0 -1.250 2.164 -1.401 1.00 0.00 H +ATOM 18 H UNK 0 -1.250 -2.164 -1.401 1.00 0.00 H +ATOM 19 H UNK 0 2.499 0.000 -1.401 1.00 0.00 H +ATOM 20 H UNK 0 0.745 -1.291 -2.690 1.00 0.00 H +ATOM 21 H UNK 0 0.745 1.291 -2.690 1.00 0.00 H +ATOM 22 H UNK 0 -1.490 0.000 -2.690 1.00 0.00 H +ATOM 23 H UNK 0 1.249 -2.164 -1.244 1.00 0.00 H +ATOM 24 H UNK 0 1.249 2.164 -1.244 1.00 0.00 H +ATOM 25 H UNK 0 -2.499 0.000 -1.244 1.00 0.00 H +CONECT 1 5 14 11 4 +CONECT 2 6 15 12 4 +CONECT 3 7 16 13 4 +CONECT 4 3 2 1 +CONECT 5 9 10 17 1 +CONECT 6 8 10 18 2 +CONECT 7 8 9 19 3 +CONECT 8 20 23 6 7 +CONECT 9 21 24 5 7 +CONECT 10 22 25 5 6 +CONECT 11 1 +CONECT 12 2 +CONECT 13 3 +CONECT 14 1 +CONECT 15 2 +CONECT 16 3 +CONECT 17 5 +CONECT 18 6 +CONECT 19 7 +CONECT 20 8 +CONECT 21 9 +CONECT 22 10 +CONECT 23 8 +CONECT 24 9 +CONECT 25 10 +MASTER 0 0 0 0 0 0 0 0 25 0 25 0 +END diff --git a/sim/src/tests/heteroatom_organics/P_ADAM_C3v.mmp b/sim/src/tests/heteroatom_organics/P_ADAM_C3v.mmp new file mode 100755 index 000000000..fa4f6f805 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/P_ADAM_C3v.mmp @@ -0,0 +1,63 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.085735) (0.008500, -0.000000, 0.623500) (1.000000) +egroup (View Data) +group (P_ADAM_C3v) +info opengroup open = True +mol (P_ADAM_C3v.pdb) cpk +atom 1 (6) (-816, 1414, 469) def +atom 2 (6) (-816, -1414, 469) def +atom 3 (6) (1632, 0, 469) def +atom 4 (15) (0, 0, 1401) def +bond1 1 2 3 +atom 5 (6) (-738, 1279, -1067) def +bond1 1 +atom 6 (6) (-738, -1279, -1067) def +bond1 2 +atom 7 (6) (1476, 0, -1067) def +bond1 3 +atom 8 (6) (728, -1261, -1549) def +bond1 6 7 +atom 9 (6) (728, 1261, -1549) def +bond1 5 7 +atom 10 (6) (-1456, 0, -1549) def +bond1 5 6 +atom 11 (1) (-338, 2345, 799) def +bond1 1 +atom 12 (1) (-1861, -1465, 799) def +bond1 2 +atom 13 (1) (2200, 879, 799) def +bond1 3 +atom 14 (1) (-1861, 1465, 799) def +bond1 1 +atom 15 (1) (-338, -2345, 799) def +bond1 2 +atom 16 (1) (2200, -879, 799) def +bond1 3 +atom 17 (1) (-1240, 2148, -1514) def +bond1 5 +atom 18 (1) (-1240, -2148, -1514) def +bond1 6 +atom 19 (1) (2481, 0, -1514) def +bond1 7 +atom 20 (1) (747, -1293, -2648) def +bond1 8 +atom 21 (1) (747, 1293, -2648) def +bond1 9 +atom 22 (1) (-1494, 0, -2648) def +bond1 10 +atom 23 (1) (1249, -2164, -1202) def +bond1 8 +atom 24 (1) (1249, 2164, -1202) def +bond1 9 +atom 25 (1) (-2498, 0, -1202) def +bond1 10 +egroup (P_ADAM_C3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part P_ADAM_C3v diff --git a/sim/src/tests/heteroatom_organics/P_ADAM_C3v.pdb b/sim/src/tests/heteroatom_organics/P_ADAM_C3v.pdb new file mode 100755 index 000000000..9b39a9a38 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/P_ADAM_C3v.pdb @@ -0,0 +1,54 @@ +COMPND P_ADAM_C3v.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 -0.816 1.414 0.469 1.00 0.00 C +ATOM 2 C UNK 0 -0.816 -1.414 0.469 1.00 0.00 C +ATOM 3 C UNK 0 1.632 0.000 0.469 1.00 0.00 C +ATOM 4 P UNK 0 0.000 0.000 1.401 1.00 0.00 P +ATOM 5 C UNK 0 -0.738 1.279 -1.067 1.00 0.00 C +ATOM 6 C UNK 0 -0.738 -1.279 -1.067 1.00 0.00 C +ATOM 7 C UNK 0 1.476 0.000 -1.067 1.00 0.00 C +ATOM 8 C UNK 0 0.728 -1.261 -1.549 1.00 0.00 C +ATOM 9 C UNK 0 0.728 1.261 -1.549 1.00 0.00 C +ATOM 10 C UNK 0 -1.456 0.000 -1.549 1.00 0.00 C +ATOM 11 H UNK 0 -0.338 2.345 0.799 1.00 0.00 H +ATOM 12 H UNK 0 -1.861 -1.465 0.799 1.00 0.00 H +ATOM 13 H UNK 0 2.200 0.879 0.799 1.00 0.00 H +ATOM 14 H UNK 0 -1.861 1.465 0.799 1.00 0.00 H +ATOM 15 H UNK 0 -0.338 -2.345 0.799 1.00 0.00 H +ATOM 16 H UNK 0 2.200 -0.879 0.799 1.00 0.00 H +ATOM 17 H UNK 0 -1.240 2.148 -1.514 1.00 0.00 H +ATOM 18 H UNK 0 -1.240 -2.148 -1.514 1.00 0.00 H +ATOM 19 H UNK 0 2.481 0.000 -1.514 1.00 0.00 H +ATOM 20 H UNK 0 0.747 -1.293 -2.648 1.00 0.00 H +ATOM 21 H UNK 0 0.747 1.293 -2.648 1.00 0.00 H +ATOM 22 H UNK 0 -1.494 0.000 -2.648 1.00 0.00 H +ATOM 23 H UNK 0 1.249 -2.164 -1.202 1.00 0.00 H +ATOM 24 H UNK 0 1.249 2.164 -1.202 1.00 0.00 H +ATOM 25 H UNK 0 -2.498 0.000 -1.202 1.00 0.00 H +CONECT 1 5 14 11 4 +CONECT 2 6 15 12 4 +CONECT 3 7 16 13 4 +CONECT 4 3 2 1 +CONECT 5 9 10 17 1 +CONECT 6 8 10 18 2 +CONECT 7 8 9 19 3 +CONECT 8 20 23 6 7 +CONECT 9 21 24 5 7 +CONECT 10 22 25 5 6 +CONECT 11 1 +CONECT 12 2 +CONECT 13 3 +CONECT 14 1 +CONECT 15 2 +CONECT 16 3 +CONECT 17 5 +CONECT 18 6 +CONECT 19 7 +CONECT 20 8 +CONECT 21 9 +CONECT 22 10 +CONECT 23 8 +CONECT 24 9 +CONECT 25 10 +MASTER 0 0 0 0 0 0 0 0 25 0 25 0 +END diff --git a/sim/src/tests/heteroatom_organics/SiH_ADAM_C3v.mmp b/sim/src/tests/heteroatom_organics/SiH_ADAM_C3v.mmp new file mode 100755 index 000000000..7724ad51a --- /dev/null +++ b/sim/src/tests/heteroatom_organics/SiH_ADAM_C3v.mmp @@ -0,0 +1,65 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.518284) (0.013000, -0.000000, -0.078500) (1.000000) +egroup (View Data) +group (SiH_ADAM_C3v) +info opengroup open = True +mol (SiH_ADAM_C3v.pdb) cpk +atom 1 (6) (-860, 1489, 483) def +atom 2 (6) (-860, -1489, 483) def +atom 3 (6) (1719, 0, 483) def +atom 4 (14) (0, 0, 1284) def +bond1 1 2 3 +atom 5 (6) (-747, 1293, -1056) def +bond1 1 +atom 6 (6) (-747, -1293, -1056) def +bond1 2 +atom 7 (6) (1493, 0, -1056) def +bond1 3 +atom 8 (1) (0, 0, 2777) def +bond1 4 +atom 9 (6) (729, -1263, -1521) def +bond1 6 7 +atom 10 (6) (729, 1263, -1521) def +bond1 5 7 +atom 11 (6) (-1458, 0, -1521) def +bond1 5 6 +atom 12 (1) (-386, 2433, 780) def +bond1 1 +atom 13 (1) (-1914, -1550, 780) def +bond1 2 +atom 14 (1) (2300, 882, 780) def +bond1 3 +atom 15 (1) (-1914, 1550, 780) def +bond1 1 +atom 16 (1) (-386, -2433, 780) def +bond1 2 +atom 17 (1) (2300, -882, 780) def +bond1 3 +atom 18 (1) (-1236, 2142, -1555) def +bond1 5 +atom 19 (1) (-1236, -2142, -1555) def +bond1 6 +atom 20 (1) (2473, 0, -1555) def +bond1 7 +atom 21 (1) (750, -1300, -2620) def +bond1 9 +atom 22 (1) (750, 1300, -2620) def +bond1 10 +atom 23 (1) (-1501, 0, -2620) def +bond1 11 +atom 24 (1) (1250, -2164, -1172) def +bond1 9 +atom 25 (1) (1250, 2164, -1172) def +bond1 10 +atom 26 (1) (-2499, 0, -1172) def +bond1 11 +egroup (SiH_ADAM_C3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part SiH_ADAM_C3v diff --git a/sim/src/tests/heteroatom_organics/SiH_ADAM_C3v.pdb b/sim/src/tests/heteroatom_organics/SiH_ADAM_C3v.pdb new file mode 100755 index 000000000..1fb1eb6db --- /dev/null +++ b/sim/src/tests/heteroatom_organics/SiH_ADAM_C3v.pdb @@ -0,0 +1,56 @@ +COMPND SiH_ADAM_C3v.inp.log +AUTHOR GENERATED BY OPEN BABEL 2.0.0rc1 +ATOM 1 C UNK 0 -0.860 1.489 0.483 1.00 0.00 C +ATOM 2 C UNK 0 -0.860 -1.489 0.483 1.00 0.00 C +ATOM 3 C UNK 0 1.719 0.000 0.483 1.00 0.00 C +ATOM 4 SI UNK 0 0.000 0.000 1.284 1.00 0.00 SI +ATOM 5 C UNK 0 -0.747 1.293 -1.056 1.00 0.00 C +ATOM 6 C UNK 0 -0.747 -1.293 -1.056 1.00 0.00 C +ATOM 7 C UNK 0 1.493 0.000 -1.056 1.00 0.00 C +ATOM 8 H UNK 0 0.000 0.000 2.777 1.00 0.00 H +ATOM 9 C UNK 0 0.729 -1.263 -1.521 1.00 0.00 C +ATOM 10 C UNK 0 0.729 1.263 -1.521 1.00 0.00 C +ATOM 11 C UNK 0 -1.458 0.000 -1.521 1.00 0.00 C +ATOM 12 H UNK 0 -0.386 2.433 0.780 1.00 0.00 H +ATOM 13 H UNK 0 -1.914 -1.550 0.780 1.00 0.00 H +ATOM 14 H UNK 0 2.300 0.882 0.780 1.00 0.00 H +ATOM 15 H UNK 0 -1.914 1.550 0.780 1.00 0.00 H +ATOM 16 H UNK 0 -0.386 -2.433 0.780 1.00 0.00 H +ATOM 17 H UNK 0 2.300 -0.882 0.780 1.00 0.00 H +ATOM 18 H UNK 0 -1.236 2.142 -1.555 1.00 0.00 H +ATOM 19 H UNK 0 -1.236 -2.142 -1.555 1.00 0.00 H +ATOM 20 H UNK 0 2.473 0.000 -1.555 1.00 0.00 H +ATOM 21 H UNK 0 0.750 -1.300 -2.620 1.00 0.00 H +ATOM 22 H UNK 0 0.750 1.300 -2.620 1.00 0.00 H +ATOM 23 H UNK 0 -1.501 0.000 -2.620 1.00 0.00 H +ATOM 24 H UNK 0 1.250 -2.164 -1.172 1.00 0.00 H +ATOM 25 H UNK 0 1.250 2.164 -1.172 1.00 0.00 H +ATOM 26 H UNK 0 -2.499 0.000 -1.172 1.00 0.00 H +CONECT 1 5 15 12 4 +CONECT 2 6 16 13 4 +CONECT 3 7 17 14 4 +CONECT 4 3 2 1 8 +CONECT 5 18 10 11 1 +CONECT 6 19 9 11 2 +CONECT 7 20 9 10 3 +CONECT 8 4 +CONECT 9 21 24 6 7 +CONECT 10 22 25 5 7 +CONECT 11 23 26 5 6 +CONECT 12 1 +CONECT 13 2 +CONECT 14 3 +CONECT 15 1 +CONECT 16 2 +CONECT 17 3 +CONECT 18 5 +CONECT 19 6 +CONECT 20 7 +CONECT 21 9 +CONECT 22 10 +CONECT 23 11 +CONECT 24 9 +CONECT 25 10 +CONECT 26 11 +MASTER 0 0 0 0 0 0 0 0 26 0 26 0 +END diff --git a/sim/src/tests/heteroatom_organics/XyzFile.py b/sim/src/tests/heteroatom_organics/XyzFile.py new file mode 100755 index 000000000..e614f1129 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/XyzFile.py @@ -0,0 +1,89 @@ +#!/usr/bin/python + +import sys +import string +import Atom + +class XyzFile: + """Python class to contain information from an XYZ file""" + def __init__(self): + self.atoms = [ ] + def clone(self): + other = XyzFile() + other.atoms = [ ] + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + lines = lines.split("\n") + numAtoms = string.atoi(lines[0]) + lines = lines[2:] + for i in range(numAtoms): + element, x, y, z = lines[i].split() + x, y, z = map(string.atof, (x, y, z)) + a = Atom.Atom() + a.fromXyz(element, x, y, z) + self.atoms.append(a) + def write(self, title, outf=None): + if outf == None: + outf = sys.stdout + outf.write("%d\n%s\n" % (len(self.atoms), title)) + for atm in self.atoms: + outf.write(atm.toXyzString() + "\n") + +if __name__ == "__main__": + # do a little test + class StringCollector: + def __init__(self): + self.contents = "" + def write(self, x): + self.contents += x + import sys + example_xyz_file = """15 +RMS=0.994508 +C -0.193641 2.900593 -0.026523 +X 0.093601 3.502437 0.394872 +X -0.623522 3.154064 -0.637458 +C -1.079249 2.005273 0.890906 +X -1.803795 1.958430 0.584626 +X -1.090331 2.310792 1.617200 +C 0.986482 2.029986 -0.552402 +X 0.945121 1.985940 -1.338110 +X 1.667645 2.347089 -0.314849 +C -0.443634 0.583852 0.936816 +X -0.955793 0.061908 0.643109 +X -0.248030 0.411844 1.680547 +C 0.839719 0.603152 0.054672 +X 1.466374 0.446893 0.504740 +X 0.762053 0.079748 -0.528147 +""" + xyz = XyzFile() + xyz.readstring(example_xyz_file) + # test 1 + sc = StringCollector() + ss, sys.stdout = sys.stdout, sc + xyz.write("RMS=0.994508") + sys.stdout = ss + assert sc.contents == example_xyz_file + # test 2 + for i in range(len(xyz)): + print xyz.getAtom(i) + print + for i in range(8): + xyz[i] = (1.0, 2.0, 3.0) + for i in range(len(xyz)): + print xyz.getAtom(i) diff --git a/sim/src/tests/heteroatom_organics/damianFiles b/sim/src/tests/heteroatom_organics/damianFiles new file mode 100755 index 000000000..22c8510b9 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/damianFiles @@ -0,0 +1,63 @@ +ADAM_AlH2_Cs.mmp +ADAM_BH2.mmp +ADAM_Cl_c3v.mmp +ADAM_F_c3v.mmp +ADAMframe_AlH_Cs.mmp +ADAMframe_BH_Cs.mmp +ADAMframe_NH_Cs.mmp +ADAMframe_O_Cs.mmp +ADAMframe_PH_Cs.mmp +ADAMframe_S_Cs.mmp +ADAMframe_SiH2_c2v.mmp +ADAM_NH2_Cs.mmp +ADAM_OH_Cs.mmp +ADAM_PH2_Cs.mmp +ADAM_SH_Cs.mmp +ADAM_SiH3_C3v.mmp +Al_ADAM_C3v.mmp +B_ADAM_C3v.mmp +C3H6AlH.mmp +C3H6BH.mmp +C3H6NH.mmp +C3H6O.mmp +C3H6PH.mmp +C3H6SiH2.mmp +C3H6S.mmp +C4H8AlH.mmp +C4H8BH.mmp +C4H8NH.mmp +C4H8O.mmp +C4H8PH.mmp +C4H8SiH2.mmp +C4H8S.mmp +C5H10AlH.mmp +C5H10BH.mmp +C5H10NH.mmp +C5H10O.mmp +C5H10PH.mmp +C5H10SiH2.mmp +C5H10S.mmp +C_CH3_3_AlH2.mmp +C_CH3_3_BH2.mmp +C_CH3_3_NH2.mmp +C_CH3_3_OH.mmp +C_CH3_3_PH2.mmp +C_CH3_3_SH.mmp +C_CH3_3_SiH3.mmp +CH3AlH2.mmp +CH3AlHCH3.mmp +CH3BH2.mmp +CH3BHCH3.mmp +CH3NH2.mmp +CH3NHCH3.mmp +CH3OCH3.mmp +CH3OH.mmp +CH3PH2.mmp +CH3PHCH3.mmp +CH3SCH3.mmp +CH3SH.mmp +CH3SiH2CH3.mmp +CH3SiH3.mmp +N_ADAM_C3v.mmp +P_ADAM_C3v.mmp +SiH_ADAM_C3v.mmp diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_AlH2_Cs.mmp b/sim/src/tests/heteroatom_organics/test_ADAM_AlH2_Cs.mmp new file mode 100755 index 000000000..cd972de92 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_AlH2_Cs.mmp @@ -0,0 +1,72 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.775577) (-0.132500, -0.227000, -0.000000) (1.000000) +egroup (View Data) +group (ADAM_AlH2_Cs) +info opengroup open = True +mol (ADAM_AlH2_Cs.pdb) cpk +atom 1 (6) (776, 168, -106) def +atom 2 (6) (-211, -1116, -1396) def +bond1 1 +atom 3 (6) (-291, -851, 1243) def +bond1 1 +atom 4 (6) (400, 1348, -131) def +bond1 1 +atom 5 (13) (2356, -95, 48) def +bond1 1 +atom 6 (6) (-1179, 1513, -11) def +bond1 4 +atom 7 (6) (-1201, -59, -860) def +bond1 2 +atom 8 (6) (-1565, -664, 984) def +bond1 3 +atom 9 (6) (-1644, -1005, 68) def +bond1 7 8 +atom 10 (6) (-1762, 1293, -1073) def +bond1 6 7 +atom 11 (6) (-1535, 1158, 1231) def +bond1 6 8 +atom 12 (1) (447, 329, -1911) def +bond1 2 +atom 13 (1) (559, -447, 2356) def +bond1 3 +atom 14 (1) (62, -1656, -1307) def +bond1 2 +atom 15 (1) (342, -2151, 1219) def +bond1 3 +atom 16 (1) (743, 1692, -1219) def +bond1 4 +atom 17 (1) (725, 1327, 1235) def +bond1 4 +atom 18 (1) (3322, -548, -1390) def +bond1 5 +atom 19 (1) (3468, 300, 1600) def +bond1 5 +atom 20 (1) (-1973, 2725, -516) def +bond1 6 +atom 21 (1) (-1829, -1596, -2507) def +bond1 7 +atom 22 (1) (-1773, -1589, 1797) def +bond1 8 +atom 23 (1) (-3379, -1093, 170) def +bond1 9 +atom 24 (1) (-1962, -2261, -109) def +bond1 9 +atom 25 (1) (-3084, 1210, -1543) def +bond1 10 +atom 26 (1) (-3018, 1575, 867) def +bond1 11 +atom 27 (1) (-1207, 1682, -1885) def +bond1 10 +atom 28 (1) (-1701, 1738, 2339) def +bond1 11 +egroup (ADAM_AlH2_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_AlH2_Cs + diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_AlH2_Cs.test b/sim/src/tests/heteroatom_organics/test_ADAM_AlH2_Cs.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_AlH2_Cs.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_AlH2_Cs.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAM_AlH2_Cs.xyzcmp new file mode 100755 index 000000000..586631ecb --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_AlH2_Cs.xyzcmp @@ -0,0 +1,30 @@ +28 +ADAM_AlH2_Cs.mmp +C 0.656000 -0.028000 0.000000 +C 0.031000 -0.686000 -1.261000 +C 0.031000 -0.686000 1.261000 +C 0.262000 1.486000 0.000000 +Al 2.639000 -0.153000 0.000000 +C -1.275000 1.649000 0.000000 +C -1.506000 -0.524000 -1.261000 +C -1.506000 -0.524000 1.261000 +C -2.094000 -1.190000 0.000000 +C -1.862000 0.979000 -1.259000 +C -1.862000 0.979000 1.259000 +H 0.443000 -0.237000 -2.176000 +H 0.443000 -0.237000 2.176000 +H 0.285000 -1.756000 -1.303000 +H 0.285000 -1.756000 1.303000 +H 0.678000 1.991000 -0.885000 +H 0.678000 1.991000 0.885000 +H 3.454000 -0.179000 -1.371000 +H 3.454000 -0.179000 1.371000 +H -1.530000 2.719000 0.000000 +H -1.924000 -0.998000 -2.159000 +H -1.924000 -0.998000 2.159000 +H -3.189000 -1.099000 0.000000 +H -1.864000 -2.265000 0.000000 +H -2.953000 1.105000 -1.284000 +H -2.953000 1.105000 1.284000 +H -1.467000 1.460000 -2.165000 +H -1.467000 1.460000 2.165000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_BH2.mmp b/sim/src/tests/heteroatom_organics/test_ADAM_BH2.mmp new file mode 100755 index 000000000..bc59108f3 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_BH2.mmp @@ -0,0 +1,73 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.521928, 0.477683, 0.285949, 0.646253) (3.792202) (0.490796, 0.868929, 0.441401) (1.000000) +egroup (View Data) +group (ADAM_BH2) +info opengroup open = True +mol (ADAM_BH2.pdb) cpk +atom 1 (6) (979, -306, -123) def +atom 2 (6) (20, -952, -1479) def +bond1 1 +atom 3 (6) (476, -981, 1155) def +bond1 1 +atom 4 (6) (-192, 1774, -275) def +bond1 1 +atom 5 (5) (2499, 126, 107) def +bond1 1 +atom 6 (6) (-1020, 1368, -150) def +bond1 4 +atom 7 (6) (-1548, -563, -772) def +bond1 2 +atom 8 (6) (-1311, -995, 1449) def +bond1 3 +atom 9 (6) (-2190, -1108, -44) def +bond1 7 8 +atom 10 (6) (-1645, 1050, -1569) def +bond1 6 7 +atom 11 (6) (-1245, 1099, 1257) def +bond1 6 8 +atom 12 (1) (691, -696, -2464) def +bond1 2 +atom 13 (1) (367, -294, 2530) def +bond1 3 +atom 14 (1) (34, -2450, -1469) def +bond1 2 +atom 15 (1) (-128, -1513, 913) def +bond1 3 +atom 16 (1) (297, 1447, -577) def +bond1 4 +atom 17 (1) (856, 2220, 1115) def +bond1 4 +atom 18 (1) (2992, 100, -760) def +bond1 5 +atom 19 (1) (3112, -148, 856) def +bond1 5 +atom 20 (1) (-1352, 3079, -121) def +bond1 6 +atom 21 (1) (-1834, -389, -2497) def +bond1 7 +atom 22 (1) (-2080, -983, 2454) def +bond1 8 +atom 23 (1) (-3062, -1297, -278) def +bond1 9 +atom 24 (1) (-1843, -2564, -158) def +bond1 9 +atom 25 (1) (-2673, 1090, -919) def +bond1 10 +atom 26 (1) (-3133, 1268, 1430) def +bond1 11 +atom 27 (1) (-1454, 1413, -1835) def +bond1 10 +atom 28 (1) (-1288, 1319, 1951) def +bond1 11 +egroup (ADAM_BH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_BH2 + + diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_BH2.test b/sim/src/tests/heteroatom_organics/test_ADAM_BH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_BH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_BH2.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAM_BH2.xyzcmp new file mode 100755 index 000000000..eca227099 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_BH2.xyzcmp @@ -0,0 +1,30 @@ +28 +ADAM_BH2.mmp +C 0.708000 -0.087000 0.000000 +C 0.071000 -0.724000 -1.262000 +C 0.071000 -0.724000 1.262000 +C 0.349000 1.452000 0.000000 +B 2.269000 -0.042000 0.000000 +C -1.187000 1.628000 0.000000 +C -1.459000 -0.538000 -1.261000 +C -1.459000 -0.538000 1.261000 +C -2.060000 -1.194000 0.000000 +C -1.787000 0.971000 -1.259000 +C -1.787000 0.971000 1.259000 +H 0.502000 -0.278000 -2.169000 +H 0.502000 -0.278000 2.169000 +H 0.317000 -1.795000 -1.298000 +H 0.317000 -1.795000 1.298000 +H 0.774000 1.944000 -0.885000 +H 0.774000 1.944000 0.885000 +H 2.877000 0.022000 -1.031000 +H 2.877000 0.022000 1.031000 +H -1.418000 2.703000 0.000000 +H -1.886000 -1.004000 -2.159000 +H -1.886000 -1.004000 2.159000 +H -3.152000 -1.083000 0.000000 +H -1.847000 -2.272000 0.000000 +H -2.874000 1.122000 -1.281000 +H -2.874000 1.122000 1.281000 +H -1.384000 1.444000 -2.165000 +H -1.384000 1.444000 2.165000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_Cl_c3v.mmp b/sim/src/tests/heteroatom_organics/test_ADAM_Cl_c3v.mmp new file mode 100755 index 000000000..1f0be2027 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_Cl_c3v.mmp @@ -0,0 +1,66 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.408235) (0.001500, -0.000000, -0.072500) (1.000000) +egroup (View Data) +group (ADAM_Cl_c3v) +info opengroup open = True +mol (ADAM_Cl_c3v.pdb) cpk +atom 1 (6) (-495, 1406, 259) def +atom 2 (6) (-779, -1247, 0) def +atom 3 (6) (1264, -119, 123) def +atom 4 (6) (-285, 8, 1367) def +bond1 1 2 3 +atom 5 (6) (-685, 1444, -1177) def +bond1 1 +atom 6 (6) (-576, -925, -794) def +bond1 2 +atom 7 (6) (1667, -295, -803) def +bond1 3 +atom 8 (17) (-438, -191, 2669) def +bond1 4 +atom 9 (6) (230, -1434, -1275) def +bond1 6 7 +atom 10 (6) (1103, 1498, -1543) def +bond1 5 7 +atom 11 (6) (-1277, 128, -1562) def +bond1 5 6 +atom 12 (1) (-138, 2283, 785) def +bond1 1 +atom 13 (1) (-1377, -1248, 873) def +bond1 2 +atom 14 (1) (2123, 656, 583) def +bond1 3 +atom 15 (1) (-1819, 1237, 1015) def +bond1 1 +atom 16 (1) (-244, -2052, 446) def +bond1 2 +atom 17 (1) (2245, -824, 952) def +bond1 3 +atom 18 (1) (-1127, 2057, -1608) def +bond1 5 +atom 19 (1) (-992, -2239, -849) def +bond1 6 +atom 20 (1) (2997, -413, -1144) def +bond1 7 +atom 21 (1) (746, -1364, -2602) def +bond1 9 +atom 22 (1) (712, 990, -2550) def +bond1 10 +atom 23 (1) (-1334, 337, -2319) def +bond1 11 +atom 24 (1) (799, -2452, -1138) def +bond1 9 +atom 25 (1) (904, 2161, -1310) def +bond1 10 +atom 26 (1) (-2145, 263, -1588) def +bond1 11 +egroup (ADAM_Cl_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_Cl_c3v + diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_Cl_c3v.test b/sim/src/tests/heteroatom_organics/test_ADAM_Cl_c3v.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_Cl_c3v.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_Cl_c3v.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAM_Cl_c3v.xyzcmp new file mode 100755 index 000000000..6781333ed --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_Cl_c3v.xyzcmp @@ -0,0 +1,28 @@ +26 +ADAM_Cl_c3v.mmp +C -0.727000 1.258000 0.480000 +C -0.727000 -1.258000 0.480000 +C 1.453000 0.000000 0.480000 +C 0.000000 0.000000 0.973000 +C -0.727000 1.259000 -1.071000 +C -0.727000 -1.259000 -1.071000 +C 1.454000 0.000000 -1.071000 +Cl 0.000000 0.000000 2.825000 +C 0.728000 -1.261000 -1.582000 +C 0.728000 1.261000 -1.582000 +C -1.456000 0.000000 -1.582000 +H -0.225000 2.156000 0.859000 +H -1.755000 -1.273000 0.859000 +H 1.980000 0.883000 0.859000 +H -1.755000 1.273000 0.859000 +H -0.225000 -2.156000 0.859000 +H 1.980000 -0.883000 0.859000 +H -1.247000 2.160000 -1.421000 +H -1.247000 -2.160000 -1.421000 +H 2.494000 0.000000 -1.421000 +H 0.744000 -1.289000 -2.680000 +H 0.744000 1.289000 -2.680000 +H -1.489000 0.000000 -2.680000 +H 1.249000 -2.163000 -1.235000 +H 1.249000 2.163000 -1.235000 +H -2.497000 0.000000 -1.235000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_F_c3v.mmp b/sim/src/tests/heteroatom_organics/test_ADAM_F_c3v.mmp new file mode 100755 index 000000000..bbe166b03 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_F_c3v.mmp @@ -0,0 +1,66 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.273025) (0.002000, -0.000000, 0.134500) (1.000000) +egroup (View Data) +group (ADAM_F_c3v) +info opengroup open = True +mol (ADAM_F_c3v.pdb) cpk +atom 1 (6) (-882, 1187, 226) def +atom 2 (6) (-768, -950, 636) def +atom 3 (6) (1315, 251, -46) def +atom 4 (6) (422, -109, 727) def +bond1 1 2 3 +atom 5 (6) (-641, 1067, -850) def +bond1 1 +atom 6 (6) (-592, -1093, -1042) def +bond1 2 +atom 7 (6) (1954, -194, -1163) def +bond1 3 +atom 8 (9) (-107, -752, 2175) def +bond1 4 +atom 9 (6) (204, -1260, -1843) def +bond1 6 7 +atom 10 (6) (894, 729, -1773) def +bond1 5 7 +atom 11 (6) (-1381, -391, -1476) def +bond1 5 6 +atom 12 (1) (-69, 2185, 895) def +bond1 1 +atom 13 (1) (-1553, -1832, 823) def +bond1 2 +atom 14 (1) (2221, 1170, 1087) def +bond1 3 +atom 15 (1) (-1970, 1121, 904) def +bond1 1 +atom 16 (1) (-30, -2036, 550) def +bond1 2 +atom 17 (1) (1775, -762, 326) def +bond1 3 +atom 18 (1) (-1412, 2246, -1172) def +bond1 5 +atom 19 (1) (-1133, -2477, -1595) def +bond1 6 +atom 20 (1) (2764, -511, -1110) def +bond1 7 +atom 21 (1) (1019, -1077, -2367) def +bond1 9 +atom 22 (1) (838, 1319, -2955) def +bond1 10 +atom 23 (1) (-1796, -282, -2554) def +bond1 11 +atom 24 (1) (1864, -2201, -1609) def +bond1 9 +atom 25 (1) (1376, 2181, -1285) def +bond1 10 +atom 26 (1) (-2638, -287, -1174) def +bond1 11 +egroup (ADAM_F_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_F_c3v + diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_F_c3v.test b/sim/src/tests/heteroatom_organics/test_ADAM_F_c3v.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_F_c3v.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_F_c3v.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAM_F_c3v.xyzcmp new file mode 100755 index 000000000..8c6ec72c2 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_F_c3v.xyzcmp @@ -0,0 +1,28 @@ +26 +ADAM_F_c3v.mmp +C -0.725000 1.256000 0.494000 +C -0.725000 -1.256000 0.494000 +C 1.450000 0.000000 0.494000 +C 0.000000 0.000000 0.988000 +C -0.728000 1.261000 -1.054000 +C -0.728000 -1.261000 -1.054000 +C 1.457000 0.000000 -1.054000 +F 0.000000 0.000000 2.394000 +C 0.728000 -1.260000 -1.565000 +C 0.728000 1.260000 -1.565000 +C -1.455000 0.000000 -1.565000 +H -0.220000 2.149000 0.881000 +H -1.751000 -1.265000 0.881000 +H 1.971000 0.884000 0.881000 +H -1.751000 1.265000 0.881000 +H -0.220000 -2.149000 0.881000 +H 1.971000 -0.884000 0.881000 +H -1.247000 2.160000 -1.410000 +H -1.247000 -2.160000 -1.410000 +H 2.494000 0.000000 -1.410000 +H 0.744000 -1.289000 -2.663000 +H 0.744000 1.289000 -2.663000 +H -1.488000 0.000000 -2.663000 +H 1.249000 -2.163000 -1.219000 +H 1.249000 2.163000 -1.219000 +H -2.498000 0.000000 -1.219000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_NH2_Cs.mmp b/sim/src/tests/heteroatom_organics/test_ADAM_NH2_Cs.mmp new file mode 100755 index 000000000..44b0e4be7 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_NH2_Cs.mmp @@ -0,0 +1,72 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.470234) (0.266000, -0.222000, -0.000000) (1.000000) +egroup (View Data) +group (ADAM_NH2_Cs) +info opengroup open = True +mol (ADAM_NH2_Cs.pdb) cpk +atom 1 (6) (632, -59, 137) def +atom 2 (6) (331, -659, -1345) def +bond1 1 +atom 3 (6) (-92, -236, 732) def +bond1 1 +atom 4 (6) (520, 1000, 282) def +bond1 1 +atom 5 (7) (2442, -116, 328) def +bond1 1 +atom 6 (6) (-1420, 1687, 182) def +bond1 4 +atom 7 (6) (-1246, -639, -1412) def +bond1 2 +atom 8 (6) (-1843, -176, 1344) def +bond1 3 +atom 9 (6) (-1905, -1693, -596) def +bond1 7 8 +atom 10 (6) (-1808, 1213, -1096) def +bond1 6 7 +atom 11 (6) (-1776, 751, 1668) def +bond1 6 8 +atom 12 (1) (346, -782, -2205) def +bond1 2 +atom 13 (1) (663, -416, 2318) def +bond1 3 +atom 14 (1) (316, -2073, -1400) def +bond1 2 +atom 15 (1) (497, -1618, 1054) def +bond1 3 +atom 16 (1) (921, 2056, -858) def +bond1 4 +atom 17 (1) (1317, 2351, 659) def +bond1 4 +atom 18 (1) (2336, 715, -957) def +bond1 5 +atom 19 (1) (2597, 287, 912) def +bond1 5 +atom 20 (1) (-1836, 2400, 772) def +bond1 6 +atom 21 (1) (-2235, -799, -2006) def +bond1 7 +atom 22 (1) (-1812, -1113, 1913) def +bond1 8 +atom 23 (1) (-2910, -928, -407) def +bond1 9 +atom 24 (1) (-1552, -2227, 640) def +bond1 9 +atom 25 (1) (-2967, 1142, -1141) def +bond1 10 +atom 26 (1) (-3009, 1049, 1410) def +bond1 11 +atom 27 (1) (-1636, 1529, -1861) def +bond1 10 +atom 28 (1) (-1785, 997, 2189) def +bond1 11 +egroup (ADAM_NH2_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_NH2_Cs + diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_NH2_Cs.test b/sim/src/tests/heteroatom_organics/test_ADAM_NH2_Cs.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_NH2_Cs.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_NH2_Cs.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAM_NH2_Cs.xyzcmp new file mode 100755 index 000000000..da8cdcc4e --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_NH2_Cs.xyzcmp @@ -0,0 +1,30 @@ +28 +ADAM_NH2_Cs.mmp +C 0.722000 -0.066000 0.000000 +C 0.100000 -0.718000 -1.253000 +C 0.100000 -0.718000 1.253000 +C 0.361000 1.445000 0.000000 +N 2.166000 -0.335000 0.000000 +C -1.169000 1.639000 0.000000 +C -1.430000 -0.531000 -1.260000 +C -1.430000 -0.531000 1.260000 +C -2.031000 -1.189000 0.000000 +C -1.766000 0.977000 -1.259000 +C -1.766000 0.977000 1.259000 +H 0.534000 -0.268000 -2.159000 +H 0.534000 -0.268000 2.159000 +H 0.368000 -1.782000 -1.271000 +H 0.368000 -1.782000 1.271000 +H 0.805000 1.924000 -0.884000 +H 0.805000 1.924000 0.884000 +H 2.591000 0.111000 -0.813000 +H 2.591000 0.111000 0.813000 +H -1.408000 2.711000 0.000000 +H -1.851000 -1.000000 -2.159000 +H -1.851000 -1.000000 2.159000 +H -3.123000 -1.076000 0.000000 +H -1.818000 -2.267000 0.000000 +H -2.855000 1.118000 -1.284000 +H -2.855000 1.118000 1.284000 +H -1.365000 1.452000 -2.165000 +H -1.365000 1.452000 2.165000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_OH_Cs.mmp b/sim/src/tests/heteroatom_organics/test_ADAM_OH_Cs.mmp new file mode 100755 index 000000000..e54d995ff --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_OH_Cs.mmp @@ -0,0 +1,70 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.396648) (0.002000, -0.072500, -0.000000) (1.000000) +egroup (View Data) +group (ADAM_OH_Cs) +info opengroup open = True +mol (ADAM_OH_Cs.pdb) cpk +atom 1 (6) (1263, 75, -85) def +atom 2 (6) (362, 1225, 37) def +bond1 1 +atom 3 (6) (1546, -772, 235) def +bond1 1 +atom 4 (6) (-678, 634, 1829) def +bond1 2 +atom 5 (6) (-1403, 281, -1287) def +bond1 2 +atom 6 (8) (271, 2085, -384) def +bond1 2 +atom 7 (6) (-938, -728, 1054) def +bond1 4 +atom 8 (6) (-804, -682, -1129) def +bond1 5 +atom 9 (6) (947, -1636, 1637) def +bond1 3 7 +atom 10 (6) (1045, -1389, -1187) def +bond1 3 8 +atom 11 (6) (-1578, -1997, 433) def +bond1 7 8 +atom 12 (1) (2326, 788, 1412) def +bond1 1 +atom 13 (1) (2299, 1232, -767) def +bond1 1 +atom 14 (1) (2585, -1383, 6) def +bond1 3 +atom 15 (1) (-2195, 728, 1096) def +bond1 4 +atom 16 (1) (-1546, 812, -1321) def +bond1 5 +atom 17 (1) (-131, 971, 2407) def +bond1 4 +atom 18 (1) (-430, 1202, -2026) def +bond1 5 +atom 19 (1) (-1085, 2367, -6) def +bond1 6 +atom 20 (1) (-1109, -942, 2090) def +bond1 7 +atom 21 (1) (-1794, -1705, -2734) def +bond1 8 +atom 22 (1) (1182, -3000, 1337) def +bond1 9 +atom 23 (1) (231, -2318, -1025) def +bond1 10 +atom 24 (1) (997, -1073, 2492) def +bond1 9 +atom 25 (1) (1302, -857, -2331) def +bond1 10 +atom 26 (1) (-1308, -2186, 361) def +bond1 11 +atom 27 (1) (-2968, -1706, -112) def +bond1 11 +egroup (ADAM_OH_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_OH_Cs + diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_OH_Cs.test b/sim/src/tests/heteroatom_organics/test_ADAM_OH_Cs.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_OH_Cs.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_OH_Cs.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAM_OH_Cs.xyzcmp new file mode 100755 index 000000000..5cb0b46af --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_OH_Cs.xyzcmp @@ -0,0 +1,29 @@ +27 +ADAM_OH_Cs.mmp +C 1.397000 0.587000 0.000000 +C -0.065000 1.063000 0.000000 +C 1.448000 -0.956000 0.000000 +C -0.776000 0.520000 1.256000 +C -0.776000 0.520000 -1.256000 +O -0.027000 2.492000 0.000000 +C -0.735000 -1.024000 1.262000 +C -0.735000 -1.024000 -1.262000 +C 0.736000 -1.493000 1.259000 +C 0.736000 -1.493000 -1.259000 +C -1.445000 -1.558000 0.000000 +H 1.903000 0.994000 0.884000 +H 1.903000 0.994000 -0.884000 +H 2.496000 -1.283000 0.000000 +H -1.819000 0.868000 1.273000 +H -1.819000 0.868000 -1.273000 +H -0.287000 0.927000 2.151000 +H -0.287000 0.927000 -2.151000 +H -0.944000 2.802000 0.000000 +H -1.242000 -1.401000 2.160000 +H -1.242000 -1.401000 -2.160000 +H 0.778000 -2.590000 1.284000 +H 0.778000 -2.590000 -1.284000 +H 1.244000 -1.136000 2.165000 +H 1.244000 -1.136000 -2.165000 +H -1.439000 -2.657000 0.000000 +H -2.500000 -1.252000 0.000000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_PH2_Cs.mmp b/sim/src/tests/heteroatom_organics/test_ADAM_PH2_Cs.mmp new file mode 100755 index 000000000..de49904e2 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_PH2_Cs.mmp @@ -0,0 +1,72 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.591431) (0.141500, -0.221500, -0.000000) (1.000000) +egroup (View Data) +group (ADAM_PH2_Cs) +info opengroup open = True +mol (ADAM_PH2_Cs.pdb) cpk +atom 1 (6) (682, -61, -157) def +atom 2 (6) (120, -859, -1153) def +bond1 1 +atom 3 (6) (-161, -487, 1243) def +bond1 1 +atom 4 (6) (469, 1239, -53) def +bond1 1 +atom 5 (15) (2477, -587, -150) def +bond1 1 +atom 6 (6) (-1468, 1403, 391) def +bond1 4 +atom 7 (6) (-1583, -310, -1077) def +bond1 2 +atom 8 (6) (-1968, -57, 797) def +bond1 3 +atom 9 (6) (-1588, -1573, -34) def +bond1 7 8 +atom 10 (6) (-1604, 632, -803) def +bond1 6 7 +atom 11 (6) (-2060, 936, 966) def +bond1 6 8 +atom 12 (1) (663, -470, -2166) def +bond1 2 +atom 13 (1) (243, -132, 2540) def +bond1 3 +atom 14 (1) (29, -1668, -1233) def +bond1 2 +atom 15 (1) (194, -1822, 782) def +bond1 3 +atom 16 (1) (296, 2069, -341) def +bond1 4 +atom 17 (1) (352, 2003, 778) def +bond1 4 +atom 18 (1) (3014, 737, -898) def +bond1 5 +atom 19 (1) (2941, 790, 956) def +bond1 5 +atom 20 (1) (-1512, 2433, -144) def +bond1 6 +atom 21 (1) (-1795, -1606, -2041) def +bond1 7 +atom 22 (1) (-2136, -1242, 2354) def +bond1 8 +atom 23 (1) (-3035, -936, -553) def +bond1 9 +atom 24 (1) (-2148, -2286, -294) def +bond1 9 +atom 25 (1) (-3122, 1125, -1933) def +bond1 10 +atom 26 (1) (-2589, 841, 1242) def +bond1 11 +atom 27 (1) (-1214, 1352, -2235) def +bond1 10 +atom 28 (1) (-1351, 1290, 2491) def +bond1 11 +egroup (ADAM_PH2_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_PH2_Cs + diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_PH2_Cs.test b/sim/src/tests/heteroatom_organics/test_ADAM_PH2_Cs.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_PH2_Cs.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_PH2_Cs.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAM_PH2_Cs.xyzcmp new file mode 100755 index 000000000..86baba743 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_PH2_Cs.xyzcmp @@ -0,0 +1,30 @@ +28 +ADAM_PH2_Cs.mmp +C 0.678000 -0.114000 0.000000 +C 0.040000 -0.759000 -1.258000 +C 0.040000 -0.759000 1.258000 +C 0.360000 1.401000 0.000000 +P 2.527000 -0.507000 0.000000 +C -1.169000 1.625000 0.000000 +C -1.488000 -0.535000 -1.259000 +C -1.488000 -0.535000 1.259000 +C -2.104000 -1.179000 0.000000 +C -1.782000 0.980000 -1.259000 +C -1.782000 0.980000 1.259000 +H 0.475000 -0.324000 -2.169000 +H 0.475000 -0.324000 2.169000 +H 0.267000 -1.833000 -1.284000 +H 0.267000 -1.833000 1.284000 +H 0.807000 1.876000 -0.883000 +H 0.807000 1.876000 0.883000 +H 2.910000 0.393000 -1.040000 +H 2.910000 0.393000 1.040000 +H -1.377000 2.704000 0.000000 +H -1.917000 -0.995000 -2.159000 +H -1.917000 -0.995000 2.159000 +H -3.193000 -1.038000 0.000000 +H -1.917000 -2.261000 0.000000 +H -2.867000 1.154000 -1.286000 +H -2.867000 1.154000 1.286000 +H -1.366000 1.443000 -2.165000 +H -1.366000 1.443000 2.165000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_SH_Cs.mmp b/sim/src/tests/heteroatom_organics/test_ADAM_SH_Cs.mmp new file mode 100755 index 000000000..c9c1ed6e9 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_SH_Cs.mmp @@ -0,0 +1,70 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.492281) (-0.004500, -0.213500, -0.000000) (1.000000) +egroup (View Data) +group (ADAM_SH_Cs) +info opengroup open = True +mol (ADAM_SH_Cs.pdb) cpk +atom 1 (6) (1287, 479, -420) def +atom 2 (6) (124, 864, -219) def +bond1 1 +atom 3 (6) (1127, -884, 327) def +bond1 1 +atom 4 (6) (-821, 576, 1021) def +bond1 2 +atom 5 (6) (-644, 448, -1475) def +bond1 2 +atom 6 (16) (420, 3382, -228) def +bond1 2 +atom 7 (6) (-724, -1049, 905) def +bond1 4 +atom 8 (6) (-850, -1289, -774) def +bond1 5 +atom 9 (6) (403, -1812, 1002) def +bond1 3 7 +atom 10 (6) (792, -1593, -865) def +bond1 3 8 +atom 11 (6) (-1247, -989, 0) def +bond1 7 8 +atom 12 (1) (1846, 409, 874) def +bond1 1 +atom 13 (1) (1784, 1094, -927) def +bond1 1 +atom 14 (1) (2529, -986, -262) def +bond1 3 +atom 15 (1) (-1636, 856, 860) def +bond1 4 +atom 16 (1) (-2122, 1002, -892) def +bond1 5 +atom 17 (1) (-552, 414, 1578) def +bond1 4 +atom 18 (1) (-823, 1084, -2087) def +bond1 5 +atom 19 (1) (-1233, 3112, -27) def +bond1 6 +atom 20 (1) (-2126, -1627, 1961) def +bond1 7 +atom 21 (1) (-963, -700, -2090) def +bond1 8 +atom 22 (1) (929, -2111, 907) def +bond1 9 +atom 23 (1) (532, -3004, -972) def +bond1 10 +atom 24 (1) (1158, -1247, 2248) def +bond1 9 +atom 25 (1) (536, -1253, -2047) def +bond1 10 +atom 26 (1) (-1941, -2831, 27) def +bond1 11 +atom 27 (1) (-2324, -510, -173) def +bond1 11 +egroup (ADAM_SH_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_SH_Cs + diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_SH_Cs.test b/sim/src/tests/heteroatom_organics/test_ADAM_SH_Cs.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_SH_Cs.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_SH_Cs.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAM_SH_Cs.xyzcmp new file mode 100755 index 000000000..569aa7c7f --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_SH_Cs.xyzcmp @@ -0,0 +1,29 @@ +27 +ADAM_SH_Cs.mmp +C 1.425000 0.546000 0.000000 +C -0.040000 1.039000 0.000000 +C 1.456000 -1.000000 0.000000 +C -0.756000 0.504000 1.258000 +C -0.756000 0.504000 -1.258000 +S 0.029000 2.898000 0.000000 +C -0.725000 -1.044000 1.259000 +C -0.725000 -1.044000 -1.259000 +C 0.739000 -1.527000 1.260000 +C 0.739000 -1.527000 -1.260000 +C -1.442000 -1.572000 0.000000 +H 1.945000 0.935000 0.885000 +H 1.945000 0.935000 -0.885000 +H 2.502000 -1.332000 0.000000 +H -1.798000 0.852000 1.275000 +H -1.798000 0.852000 -1.275000 +H -0.274000 0.897000 2.161000 +H -0.274000 0.897000 -2.161000 +H -1.306000 3.098000 0.000000 +H -1.236000 -1.409000 2.160000 +H -1.236000 -1.409000 -2.160000 +H 0.773000 -2.624000 1.285000 +H 0.773000 -2.624000 -1.285000 +H 1.251000 -1.173000 2.165000 +H 1.251000 -1.173000 -2.165000 +H -1.446000 -2.671000 0.000000 +H -2.493000 -1.255000 0.000000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_SiH3_C3v.mmp b/sim/src/tests/heteroatom_organics/test_ADAM_SiH3_C3v.mmp new file mode 100755 index 000000000..153f31a21 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_SiH3_C3v.mmp @@ -0,0 +1,72 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.612284) (0.002000, -0.000000, -0.344000) (1.000000) +egroup (View Data) +group (ADAM_SiH3_C3v) +info opengroup open = True +mol (ADAM_SiH3_C3v.pdb) cpk +atom 1 (6) (-517, 1406, 117) def +atom 2 (6) (-864, -759, 415) def +atom 3 (6) (1699, -231, 262) def +atom 4 (6) (234, 43, 588) def +bond1 1 2 3 +atom 5 (6) (-687, 1325, -1187) def +bond1 1 +atom 6 (6) (-707, -1267, -300) def +bond1 2 +atom 7 (6) (1722, -452, -678) def +bond1 3 +atom 8 (14) (-199, -234, 3021) def +bond1 4 +atom 9 (6) (659, -1234, -1634) def +bond1 6 7 +atom 10 (6) (931, 997, -1507) def +bond1 5 7 +atom 11 (6) (-1170, 60, -1194) def +bond1 5 6 +atom 12 (1) (-475, 2337, 377) def +bond1 1 +atom 13 (1) (-2125, -1909, 988) def +bond1 2 +atom 14 (1) (2093, 942, 1158) def +bond1 3 +atom 15 (1) (-1720, 1141, 610) def +bond1 1 +atom 16 (1) (-286, -2159, 130) def +bond1 2 +atom 17 (1) (2171, -913, 595) def +bond1 3 +atom 18 (1) (-1018, 1964, -1443) def +bond1 5 +atom 19 (1) (-1758, -2457, -1674) def +bond1 6 +atom 20 (1) (3025, 126, -1197) def +bond1 7 +atom 21 (1) (655, -1603, -3297) def +bond1 9 +atom 22 (1) (785, 1042, -2976) def +bond1 10 +atom 23 (1) (-1288, -205, -2941) def +bond1 11 +atom 24 (1) (820, -1977, -1264) def +bond1 9 +atom 25 (1) (1202, 2232, -1001) def +bond1 10 +atom 26 (1) (-2847, 101, -1366) def +bond1 11 +atom 27 (1) (808, -1426, 3428) def +bond1 8 +atom 28 (1) (588, 812, 2618) def +bond1 8 +atom 29 (1) (-1551, -615, 3414) def +bond1 8 +egroup (ADAM_SiH3_C3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAM_SiH3_C3v + diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_SiH3_C3v.test b/sim/src/tests/heteroatom_organics/test_ADAM_SiH3_C3v.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_SiH3_C3v.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAM_SiH3_C3v.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAM_SiH3_C3v.xyzcmp new file mode 100755 index 000000000..f57089699 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAM_SiH3_C3v.xyzcmp @@ -0,0 +1,31 @@ +29 +ADAM_SiH3_C3v.mmp +C -0.727000 1.260000 0.432000 +C -0.727000 -1.260000 0.432000 +C 1.455000 0.000000 0.432000 +C 0.000000 0.000000 0.975000 +C -0.727000 1.260000 -1.116000 +C -0.727000 -1.260000 -1.116000 +C 1.455000 0.000000 -1.116000 +Si 0.000000 0.000000 2.880000 +C 0.727000 -1.260000 -1.627000 +C 0.727000 1.260000 -1.627000 +C -1.455000 0.000000 -1.627000 +H -0.237000 2.174000 0.795000 +H -1.764000 -1.292000 0.795000 +H 2.001000 0.882000 0.795000 +H -1.764000 1.292000 0.795000 +H -0.237000 -2.174000 0.795000 +H 2.001000 -0.882000 0.795000 +H -1.246000 2.159000 -1.474000 +H -1.246000 -2.159000 -1.474000 +H 2.493000 0.000000 -1.474000 +H 0.744000 -1.289000 -2.725000 +H 0.744000 1.289000 -2.725000 +H -1.489000 0.000000 -2.725000 +H 1.248000 -2.162000 -1.280000 +H 1.248000 2.162000 -1.280000 +H -2.497000 0.000000 -1.280000 +H 0.697000 -1.208000 3.413000 +H 0.697000 1.208000 3.413000 +H -1.395000 0.000000 3.413000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_AlH_Cs.mmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_AlH_Cs.mmp new file mode 100755 index 000000000..db033dd01 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_AlH_Cs.mmp @@ -0,0 +1,65 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.629140) (0.012000, -0.192500, -0.000000) (1.000000) +egroup (View Data) +group (ADAMframe_AlH_Cs) +info opengroup open = True +mol (ADAMframe_AlH_Cs.pdb) cpk +atom 1 (6) (-1460, -69, 1449) def +atom 2 (6) (-825, -205, -1991) def +atom 3 (6) (174, 242, 1788) def +bond1 1 +atom 4 (6) (280, 717, -1459) def +bond1 2 +atom 5 (6) (-1437, -1262, 190) def +bond1 1 2 +atom 6 (6) (950, -839, 1536) def +bond1 3 +atom 7 (6) (1335, -557, -1209) def +bond1 4 +atom 8 (13) (222, 1505, -606) def +bond1 3 4 +atom 9 (6) (1484, -1360, 384) def +bond1 6 7 +atom 10 (6) (-312, -1423, -28) def +bond1 5 9 +atom 11 (1) (-1892, -692, 1239) def +bond1 1 +atom 12 (1) (-1795, -105, -1290) def +bond1 2 +atom 13 (1) (-1387, -842, 2306) def +bond1 1 +atom 14 (1) (-1058, -1351, -2198) def +bond1 2 +atom 15 (1) (-436, 737, 2183) def +bond1 3 +atom 16 (1) (-96, 709, -2659) def +bond1 4 +atom 17 (1) (-2034, -2154, -417) def +bond1 5 +atom 18 (1) (2472, -110, 775) def +bond1 6 +atom 19 (1) (2396, -238, -654) def +bond1 7 +atom 20 (1) (1549, -1158, 2043) def +bond1 6 +atom 21 (1) (1116, -1020, -1367) def +bond1 7 +atom 22 (1) (-416, 3341, -73) def +bond1 8 +atom 23 (1) (2334, -1933, -198) def +bond1 9 +atom 24 (1) (-131, -3203, 885) def +bond1 10 +atom 25 (1) (240, -2748, -757) def +bond1 10 +egroup (ADAMframe_AlH_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_AlH_Cs + diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_AlH_Cs.test b/sim/src/tests/heteroatom_organics/test_ADAMframe_AlH_Cs.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_AlH_Cs.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_AlH_Cs.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_AlH_Cs.xyzcmp new file mode 100755 index 000000000..a1de40078 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_AlH_Cs.xyzcmp @@ -0,0 +1,27 @@ +25 +ADAMframe_AlH_Cs.mmp +C -1.277000 -0.511000 1.307000 +C -1.277000 -0.511000 -1.307000 +C -0.015000 0.382000 1.494000 +C -0.015000 0.382000 -1.494000 +C -1.253000 -1.343000 0.000000 +C 1.264000 -0.489000 1.307000 +C 1.264000 -0.489000 -1.307000 +Al -0.018000 1.670000 0.000000 +C 1.254000 -1.321000 0.000000 +C 0.009000 -2.228000 0.000000 +H -2.199000 0.091000 1.349000 +H -2.199000 0.091000 -1.349000 +H -1.356000 -1.223000 2.145000 +H -1.356000 -1.223000 -2.145000 +H -0.018000 0.796000 2.510000 +H -0.018000 0.796000 -2.510000 +H -2.145000 -1.986000 0.000000 +H 2.175000 0.129000 1.347000 +H 2.175000 0.129000 -1.347000 +H 1.356000 -1.199000 2.145000 +H 1.356000 -1.199000 -2.145000 +H -0.018000 3.264000 0.000000 +H 2.158000 -1.947000 0.000000 +H 0.015000 -2.879000 0.884000 +H 0.015000 -2.879000 -0.884000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_BH_Cs.mmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_BH_Cs.mmp new file mode 100755 index 000000000..4e11eb07f --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_BH_Cs.mmp @@ -0,0 +1,65 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.241024) (0.011000, 0.190500, -0.000000) (1.000000) +egroup (View Data) +group (ADAMframe_BH_Cs) +info opengroup open = True +mol (ADAMframe_BH_Cs.pdb) cpk +atom 1 (6) (-1374, -241, 855) def +atom 2 (6) (-1711, -538, -1439) def +atom 3 (6) (-184, 243, 2056) def +bond1 1 +atom 4 (6) (-173, 485, -1247) def +bond1 2 +atom 5 (6) (-962, -1728, 274) def +bond1 1 2 +atom 6 (6) (1384, -696, 1315) def +bond1 3 +atom 7 (6) (1330, -668, -1321) def +bond1 4 +atom 8 (5) (345, 1147, 130) def +bond1 3 4 +atom 9 (6) (1242, -1514, 60) def +bond1 6 7 +atom 10 (6) (-169, -1691, 437) def +bond1 5 9 +atom 11 (1) (-2462, 81, 1213) def +bond1 1 +atom 12 (1) (-2152, 296, -1424) def +bond1 2 +atom 13 (1) (-1329, -1065, 1787) def +bond1 1 +atom 14 (1) (-1534, -1489, -2315) def +bond1 2 +atom 15 (1) (-97, 1519, 2290) def +bond1 3 +atom 16 (1) (206, 1225, -2163) def +bond1 4 +atom 17 (1) (-1670, -1641, -94) def +bond1 5 +atom 18 (1) (2338, -405, 1320) def +bond1 6 +atom 19 (1) (2340, 186, -1362) def +bond1 7 +atom 20 (1) (1246, -1426, 2276) def +bond1 6 +atom 21 (1) (1412, -1252, -2620) def +bond1 7 +atom 22 (1) (-268, 2431, 482) def +bond1 8 +atom 23 (1) (2094, -1501, -27) def +bond1 9 +atom 24 (1) (-8, -2711, 889) def +bond1 10 +atom 25 (1) (104, -2688, -986) def +bond1 10 +egroup (ADAMframe_BH_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_BH_Cs + diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_BH_Cs.test b/sim/src/tests/heteroatom_organics/test_ADAMframe_BH_Cs.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_BH_Cs.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_BH_Cs.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_BH_Cs.xyzcmp new file mode 100755 index 000000000..c7d26660a --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_BH_Cs.xyzcmp @@ -0,0 +1,27 @@ +25 +ADAMframe_BH_Cs.mmp +C -1.270000 -0.480000 1.269000 +C -1.270000 -0.480000 -1.269000 +C -0.014000 0.442000 1.313000 +C -0.014000 0.442000 -1.313000 +C -1.257000 -1.359000 0.000000 +C 1.258000 -0.459000 1.269000 +C 1.258000 -0.459000 -1.269000 +B -0.018000 1.310000 0.000000 +C 1.259000 -1.338000 0.000000 +C 0.009000 -2.239000 0.000000 +H -2.193000 0.116000 1.303000 +H -2.193000 0.116000 -1.303000 +H -1.286000 -1.119000 2.165000 +H -1.286000 -1.119000 -2.165000 +H -0.018000 1.029000 2.240000 +H -0.018000 1.029000 -2.240000 +H -2.150000 -1.999000 0.000000 +H 2.171000 0.152000 1.303000 +H 2.171000 0.152000 -1.303000 +H 1.285000 -1.098000 2.165000 +H 1.285000 -1.098000 -2.165000 +H -0.023000 2.510000 0.000000 +H 2.164000 -1.962000 0.000000 +H 0.014000 -2.891000 0.884000 +H 0.014000 -2.891000 -0.884000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_NH_Cs.mmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_NH_Cs.mmp new file mode 100755 index 000000000..7a76fa7d3 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_NH_Cs.mmp @@ -0,0 +1,65 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.032508) (0.024500, 0.484000, -0.000000) (1.000000) +egroup (View Data) +group (ADAMframe_NH_Cs) +info opengroup open = True +mol (ADAMframe_NH_Cs.pdb) cpk +atom 1 (6) (-1604, -712, 1222) def +atom 2 (6) (-1187, -721, -1293) def +atom 3 (6) (-320, 250, 867) def +bond1 1 +atom 4 (6) (-316, 298, -1250) def +bond1 2 +atom 5 (6) (-1270, -1567, 664) def +bond1 1 2 +atom 6 (6) (1414, -102, 1248) def +bond1 3 +atom 7 (6) (1266, -408, -1236) def +bond1 4 +atom 8 (7) (4, 1337, 379) def +bond1 3 4 +atom 9 (6) (1047, -1464, -265) def +bond1 6 7 +atom 10 (6) (-225, -2749, -213) def +bond1 5 9 +atom 11 (1) (-2001, -54, 1432) def +bond1 1 +atom 12 (1) (-2591, 647, -1181) def +bond1 2 +atom 13 (1) (-1270, -1719, 2327) def +bond1 1 +atom 14 (1) (-1393, -914, -2112) def +bond1 2 +atom 15 (1) (105, 1627, 2102) def +bond1 3 +atom 16 (1) (12, 1067, -1850) def +bond1 4 +atom 17 (1) (-2323, -1882, -378) def +bond1 5 +atom 18 (1) (1885, 777, 988) def +bond1 6 +atom 19 (1) (2153, 556, -730) def +bond1 7 +atom 20 (1) (1391, -1217, 2079) def +bond1 6 +atom 21 (1) (781, -828, -1749) def +bond1 7 +atom 22 (1) (597, 1927, 243) def +bond1 8 +atom 23 (1) (2182, -1856, 328) def +bond1 9 +atom 24 (1) (166, -2772, 906) def +bond1 10 +atom 25 (1) (-11, -2261, -640) def +bond1 10 +egroup (ADAMframe_NH_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_NH_Cs + diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_NH_Cs.test b/sim/src/tests/heteroatom_organics/test_ADAMframe_NH_Cs.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_NH_Cs.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_NH_Cs.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_NH_Cs.xyzcmp new file mode 100755 index 000000000..e542b186e --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_NH_Cs.xyzcmp @@ -0,0 +1,27 @@ +25 +ADAMframe_NH_Cs.mmp +C -1.303000 -0.494000 1.250000 +C -1.303000 -0.494000 -1.250000 +C -0.081000 0.440000 1.221000 +C -0.081000 0.440000 -1.221000 +C -1.275000 -1.399000 0.000000 +C 1.214000 -0.407000 1.253000 +C 1.214000 -0.407000 -1.253000 +N -0.168000 1.272000 0.000000 +C 1.253000 -1.308000 0.000000 +C 0.023000 -2.240000 0.000000 +H -2.223000 0.102000 1.269000 +H -2.223000 0.102000 -1.269000 +H -1.282000 -1.098000 2.167000 +H -1.282000 -1.098000 -2.167000 +H -0.110000 1.119000 2.081000 +H -0.110000 1.119000 -2.081000 +H -2.147000 -2.065000 0.000000 +H 2.091000 0.255000 1.276000 +H 2.091000 0.255000 -1.276000 +H 1.250000 -1.012000 2.170000 +H 1.250000 -1.012000 -2.170000 +H 0.616000 1.924000 0.000000 +H 2.174000 -1.906000 0.000000 +H 0.046000 -2.892000 0.883000 +H 0.046000 -2.892000 -0.883000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_O_Cs.mmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_O_Cs.mmp new file mode 100755 index 000000000..15997d400 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_O_Cs.mmp @@ -0,0 +1,63 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.823138) (-0.039000, 0.017000, -0.000000) (1.000000) +egroup (View Data) +group (ADAMframe_O_Cs) +info opengroup open = True +mol (ADAMframe_O_Cs.pdb) cpk +atom 1 (6) (680, 1469, 1464) def +atom 2 (6) (507, 763, -1085) def +atom 3 (6) (1549, 5, 1181) def +bond1 1 +atom 4 (6) (1771, 317, -680) def +bond1 2 +atom 5 (6) (-640, 335, -436) def +bond1 1 2 +atom 6 (6) (534, -1027, 1386) def +bond1 3 +atom 7 (6) (481, -1309, -804) def +bond1 4 +atom 8 (8) (2703, 428, 74) def +bond1 3 4 +atom 9 (6) (-369, -1392, 48) def +bond1 6 7 +atom 10 (6) (-1779, -333, -96) def +bond1 5 9 +atom 11 (1) (1026, 1968, 1475) def +bond1 1 +atom 12 (1) (998, 1815, -1251) def +bond1 2 +atom 13 (1) (-633, 1269, 2141) def +bond1 1 +atom 14 (1) (-734, 753, -2104) def +bond1 2 +atom 15 (1) (1625, 177, 1592) def +bond1 3 +atom 16 (1) (1794, 81, -2006) def +bond1 4 +atom 17 (1) (-1636, 1820, -110) def +bond1 5 +atom 18 (1) (1549, -2024, 1077) def +bond1 6 +atom 19 (1) (1122, -1774, -1331) def +bond1 7 +atom 20 (1) (-184, -1190, 2539) def +bond1 6 +atom 21 (1) (-328, -1670, -2204) def +bond1 7 +atom 22 (1) (-1600, -2200, -92) def +bond1 9 +atom 23 (1) (-1456, -94, 911) def +bond1 10 +atom 24 (1) (-2449, -259, -930) def +bond1 10 +egroup (ADAMframe_O_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_O_Cs + diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_O_Cs.test b/sim/src/tests/heteroatom_organics/test_ADAMframe_O_Cs.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_O_Cs.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_O_Cs.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_O_Cs.xyzcmp new file mode 100755 index 000000000..d7784aa53 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_O_Cs.xyzcmp @@ -0,0 +1,26 @@ +24 +ADAMframe_O_Cs.mmp +C 0.400000 1.257000 1.243000 +C 0.400000 1.257000 -1.243000 +C 1.304000 0.014000 1.195000 +C 1.304000 0.014000 -1.195000 +C -0.513000 1.246000 0.000000 +C 0.448000 -1.265000 1.243000 +C 0.448000 -1.265000 -1.243000 +O 2.105000 0.027000 0.000000 +C -0.466000 -1.288000 0.000000 +C -1.375000 -0.039000 0.000000 +H 1.018000 2.164000 1.257000 +H 1.018000 2.164000 -1.257000 +H -0.189000 1.248000 2.170000 +H -0.189000 1.248000 -2.170000 +H 2.027000 0.027000 2.017000 +H 2.027000 0.027000 -2.017000 +H -1.163000 2.130000 0.000000 +H 1.103000 -2.144000 1.255000 +H 1.103000 -2.144000 -1.255000 +H -0.141000 -1.281000 2.170000 +H -0.141000 -1.281000 -2.170000 +H -1.079000 -2.198000 0.000000 +H -2.027000 -0.051000 0.883000 +H -2.027000 -0.051000 -0.883000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_PH_Cs.mmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_PH_Cs.mmp new file mode 100755 index 000000000..95a2cabc4 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_PH_Cs.mmp @@ -0,0 +1,65 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.196491) (-0.034500, 0.354500, -0.000000) (1.000000) +egroup (View Data) +group (ADAMframe_PH_Cs) +info opengroup open = True +mol (ADAMframe_PH_Cs.pdb) cpk +atom 1 (6) (-1012, -399, 1487) def +atom 2 (6) (-1540, -500, -1388) def +atom 3 (6) (-166, -7, 1812) def +bond1 1 +atom 4 (6) (248, 316, -1279) def +bond1 2 +atom 5 (6) (-1420, -969, -308) def +bond1 1 2 +atom 6 (6) (1016, -680, 985) def +bond1 3 +atom 7 (6) (1552, -714, -1573) def +bond1 4 +atom 8 (15) (675, 1781, 5) def +bond1 3 4 +atom 9 (6) (1240, -1159, -30) def +bond1 6 7 +atom 10 (6) (-118, -2395, -214) def +bond1 5 9 +atom 11 (1) (-1735, 799, 967) def +bond1 1 +atom 12 (1) (-2329, 400, -1248) def +bond1 2 +atom 13 (1) (-1209, -740, 2049) def +bond1 1 +atom 14 (1) (-1879, -920, -1968) def +bond1 2 +atom 15 (1) (-331, 1155, 2345) def +bond1 3 +atom 16 (1) (440, 1175, -2217) def +bond1 4 +atom 17 (1) (-2603, -1267, -19) def +bond1 5 +atom 18 (1) (2051, 77, 1093) def +bond1 6 +atom 19 (1) (1694, -76, -1238) def +bond1 7 +atom 20 (1) (1610, -728, 2391) def +bond1 6 +atom 21 (1) (1434, -1459, -2650) def +bond1 7 +atom 22 (1) (-1344, 2293, -33) def +bond1 8 +atom 23 (1) (2186, -2050, -387) def +bond1 9 +atom 24 (1) (-9, -2799, 375) def +bond1 10 +atom 25 (1) (156, -2696, -763) def +bond1 10 +egroup (ADAMframe_PH_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_PH_Cs + diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_PH_Cs.test b/sim/src/tests/heteroatom_organics/test_ADAMframe_PH_Cs.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_PH_Cs.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_PH_Cs.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_PH_Cs.xyzcmp new file mode 100755 index 000000000..07fe613fe --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_PH_Cs.xyzcmp @@ -0,0 +1,27 @@ +25 +ADAMframe_PH_Cs.mmp +C -1.220000 -0.411000 1.283000 +C -1.220000 -0.411000 -1.283000 +C 0.081000 0.413000 1.387000 +C 0.081000 0.413000 -1.387000 +C -1.248000 -1.271000 0.000000 +C 1.311000 -0.519000 1.285000 +C 1.311000 -0.519000 -1.285000 +P 0.238000 1.688000 0.000000 +C 1.266000 -1.380000 0.000000 +C -0.032000 -2.217000 0.000000 +H -2.093000 0.252000 1.322000 +H -2.093000 0.252000 -1.322000 +H -1.296000 -1.080000 2.154000 +H -1.296000 -1.080000 -2.154000 +H 0.109000 0.959000 2.336000 +H 0.109000 0.959000 -2.336000 +H -2.174000 -1.862000 0.000000 +H 2.243000 0.062000 1.324000 +H 2.243000 0.062000 -1.324000 +H 1.326000 -1.188000 2.157000 +H 1.326000 -1.188000 -2.157000 +H -1.111000 2.160000 0.000000 +H 2.134000 -2.052000 0.000000 +H -0.059000 -2.869000 0.883000 +H -0.059000 -2.869000 -0.883000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_S_Cs.mmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_S_Cs.mmp new file mode 100755 index 000000000..669d2291d --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_S_Cs.mmp @@ -0,0 +1,63 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.007176) (-0.275000, 0.010000, -0.000000) (1.000000) +egroup (View Data) +group (ADAMframe_S_Cs) +info opengroup open = True +mol (ADAMframe_S_Cs.pdb) cpk +atom 1 (6) (423, 1286, 1094) def +atom 2 (6) (47, 859, -1566) def +atom 3 (6) (1541, 310, 1622) def +bond1 1 +atom 4 (6) (1874, -225, -1759) def +bond1 2 +atom 5 (6) (-583, 1049, 58) def +bond1 1 2 +atom 6 (6) (499, -1638, 1540) def +bond1 3 +atom 7 (6) (770, -1475, -1034) def +bond1 4 +atom 8 (16) (2183, -163, -27) def +bond1 3 4 +atom 9 (6) (-503, -1069, 90) def +bond1 6 7 +atom 10 (6) (-1663, 74, -396) def +bond1 5 9 +atom 11 (1) (569, 2689, 1311) def +bond1 1 +atom 12 (1) (591, 2081, -911) def +bond1 2 +atom 13 (1) (246, 1391, 2045) def +bond1 1 +atom 14 (1) (-134, 1419, -2176) def +bond1 2 +atom 15 (1) (1254, 465, 2019) def +bond1 3 +atom 16 (1) (2214, -181, -2400) def +bond1 4 +atom 17 (1) (-833, 2373, 663) def +bond1 5 +atom 18 (1) (971, -2673, 1253) def +bond1 6 +atom 19 (1) (1100, -2156, -1550) def +bond1 7 +atom 20 (1) (-447, -1369, 2288) def +bond1 6 +atom 21 (1) (-70, -1324, -2115) def +bond1 7 +atom 22 (1) (-845, -1981, 722) def +bond1 9 +atom 23 (1) (-1919, -283, 760) def +bond1 10 +atom 24 (1) (-1625, -63, -926) def +bond1 10 +egroup (ADAMframe_S_Cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_S_Cs + diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_S_Cs.test b/sim/src/tests/heteroatom_organics/test_ADAMframe_S_Cs.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_S_Cs.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_S_Cs.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_S_Cs.xyzcmp new file mode 100755 index 000000000..3990ba89d --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_S_Cs.xyzcmp @@ -0,0 +1,26 @@ +24 +ADAMframe_S_Cs.mmp +C 0.393000 1.262000 1.279000 +C 0.393000 1.262000 -1.279000 +C 1.289000 0.014000 1.367000 +C 1.289000 0.014000 -1.367000 +C -0.473000 1.238000 0.000000 +C 0.442000 -1.269000 1.280000 +C 0.442000 -1.269000 -1.280000 +S 2.544000 0.034000 0.000000 +C -0.424000 -1.278000 0.000000 +C -1.342000 -0.039000 0.000000 +H 1.004000 2.171000 1.315000 +H 1.004000 2.171000 -1.315000 +H -0.269000 1.284000 2.158000 +H -0.269000 1.284000 -2.158000 +H 1.883000 0.025000 2.286000 +H 1.883000 0.025000 -2.286000 +H -1.122000 2.124000 0.000000 +H 1.092000 -2.151000 1.315000 +H 1.092000 -2.151000 -1.315000 +H -0.219000 -1.320000 2.158000 +H -0.219000 -1.320000 -2.158000 +H -1.036000 -2.191000 0.000000 +H -1.994000 -0.051000 0.883000 +H -1.994000 -0.051000 -0.883000 diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_SiH2_c2v.mmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_SiH2_c2v.mmp new file mode 100755 index 000000000..d099b0290 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_SiH2_c2v.mmp @@ -0,0 +1,67 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.335429) (-0.000000, -0.000000, 0.011000) (1.000000) +egroup (View Data) +group (ADAMframe_SiH2_c2v) +info opengroup open = True +mol (ADAMframe_SiH2_c2v.pdb) cpk +atom 1 (6) (-1603, 421, 351) def +atom 2 (6) (1608, 248, 512) def +atom 3 (6) (-1332, 1221, -366) def +bond1 1 +atom 4 (6) (1672, 1503, -386) def +bond1 2 +atom 5 (6) (-1154, -1350, -672) def +bond1 1 +atom 6 (6) (869, -1113, -226) def +bond1 2 +atom 7 (14) (60, -422, 2355) def +bond1 1 2 +atom 8 (6) (-408, 945, -1480) def +bond1 3 4 +atom 9 (6) (-150, -1366, -821) def +bond1 5 6 +atom 10 (6) (604, 315, -2262) def +bond1 8 9 +atom 11 (1) (-2401, -785, 1123) def +bond1 1 +atom 12 (1) (2671, -47, 906) def +bond1 2 +atom 13 (1) (-920, 2149, 400) def +bond1 3 +atom 14 (1) (1250, 2274, 439) def +bond1 4 +atom 15 (1) (-1111, -2424, 305) def +bond1 5 +atom 16 (1) (1337, -1986, 652) def +bond1 6 +atom 17 (1) (-2063, 1177, -1551) def +bond1 3 +atom 18 (1) (2293, 1453, -1217) def +bond1 4 +atom 19 (1) (-2238, -1432, -641) def +bond1 5 +atom 20 (1) (2212, -1510, -1165) def +bond1 6 +atom 21 (1) (110, 1255, 2295) def +bond1 7 +atom 22 (1) (-258, -1265, 1814) def +bond1 7 +atom 23 (1) (-165, 2528, -2149) def +bond1 8 +atom 24 (1) (-376, -2105, -1226) def +bond1 9 +atom 25 (1) (-933, -87, -2576) def +bond1 10 +atom 26 (1) (1112, -91, -2866) def +bond1 10 +egroup (ADAMframe_SiH2_c2v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part ADAMframe_SiH2_c2v + diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_SiH2_c2v.test b/sim/src/tests/heteroatom_organics/test_ADAMframe_SiH2_c2v.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_SiH2_c2v.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_ADAMframe_SiH2_c2v.xyzcmp b/sim/src/tests/heteroatom_organics/test_ADAMframe_SiH2_c2v.xyzcmp new file mode 100755 index 000000000..3e9e66d3d --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_ADAMframe_SiH2_c2v.xyzcmp @@ -0,0 +1,28 @@ +26 +ADAMframe_SiH2_c2v.mmp +C -1.433000 0.000000 0.566000 +C 1.433000 0.000000 0.566000 +C -1.293000 1.271000 -0.313000 +C 1.293000 1.271000 -0.313000 +C -1.293000 -1.271000 -0.313000 +C 1.293000 -1.271000 -0.313000 +Si 0.000000 0.000000 1.815000 +C 0.000000 1.256000 -1.167000 +C 0.000000 -1.256000 -1.167000 +C 0.000000 0.000000 -2.061000 +H -2.412000 0.000000 1.060000 +H 2.412000 0.000000 1.060000 +H -1.318000 2.176000 0.309000 +H 1.318000 2.176000 0.309000 +H -1.318000 -2.176000 0.309000 +H 1.318000 -2.176000 0.309000 +H -2.154000 1.342000 -0.995000 +H 2.154000 1.342000 -0.995000 +H -2.154000 -1.342000 -0.995000 +H 2.154000 -1.342000 -0.995000 +H 0.000000 1.212000 2.690000 +H 0.000000 -1.212000 2.690000 +H 0.000000 2.153000 -1.801000 +H 0.000000 -2.153000 -1.801000 +H -0.884000 0.000000 -2.712000 +H 0.884000 0.000000 -2.712000 diff --git a/sim/src/tests/heteroatom_organics/test_Al_ADAM_C3v.mmp b/sim/src/tests/heteroatom_organics/test_Al_ADAM_C3v.mmp new file mode 100755 index 000000000..2adc96214 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_Al_ADAM_C3v.mmp @@ -0,0 +1,64 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.128452) (0.020500, -0.000000, 0.718000) (1.000000) +egroup (View Data) +group (Al_ADAM_C3v) +info opengroup open = True +mol (Al_ADAM_C3v.pdb) cpk +atom 1 (6) (-710, 1326, 737) def +atom 2 (6) (-979, -1461, -162) def +atom 3 (6) (2020, -102, 54) def +atom 4 (13) (-38, -468, 1258) def +bond1 1 2 3 +atom 5 (6) (-655, 1211, -1163) def +bond1 1 +atom 6 (6) (-1213, -964, -891) def +bond1 2 +atom 7 (6) (1555, -877, -587) def +bond1 3 +atom 8 (6) (782, -1241, -1391) def +bond1 6 7 +atom 9 (6) (615, 978, -1609) def +bond1 5 7 +atom 10 (6) (-1134, 304, -1568) def +bond1 5 6 +atom 11 (1) (-221, 3083, 612) def +bond1 1 +atom 12 (1) (-1736, -2035, 952) def +bond1 2 +atom 13 (1) (2566, 1124, 425) def +bond1 3 +atom 14 (1) (-2201, 1670, 816) def +bond1 1 +atom 15 (1) (-91, -2831, 888) def +bond1 2 +atom 16 (1) (2578, -838, 399) def +bond1 3 +atom 17 (1) (-1233, 2072, -1647) def +bond1 5 +atom 18 (1) (-892, -2106, -1726) def +bond1 6 +atom 19 (1) (2575, -17, -1779) def +bond1 7 +atom 20 (1) (928, -1242, -2591) def +bond1 8 +atom 21 (1) (642, 1650, -2803) def +bond1 9 +atom 22 (1) (-1647, -102, -3131) def +bond1 10 +atom 23 (1) (1343, -2738, -980) def +bond1 8 +atom 24 (1) (1154, 1871, -1371) def +bond1 9 +atom 25 (1) (-2338, -217, -805) def +bond1 10 +egroup (Al_ADAM_C3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Al_ADAM_C3v + diff --git a/sim/src/tests/heteroatom_organics/test_Al_ADAM_C3v.test b/sim/src/tests/heteroatom_organics/test_Al_ADAM_C3v.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_Al_ADAM_C3v.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_Al_ADAM_C3v.xyzcmp b/sim/src/tests/heteroatom_organics/test_Al_ADAM_C3v.xyzcmp new file mode 100755 index 000000000..74a5a6941 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_Al_ADAM_C3v.xyzcmp @@ -0,0 +1,27 @@ +25 +Al_ADAM_C3v.mmp +C -0.928000 1.607000 0.502000 +C -0.928000 -1.607000 0.502000 +C 1.855000 0.000000 0.502000 +Al 0.000000 0.000000 1.142000 +C -0.756000 1.309000 -1.035000 +C -0.756000 -1.309000 -1.035000 +C 1.512000 0.000000 -1.035000 +C 0.731000 -1.265000 -1.479000 +C 0.731000 1.265000 -1.479000 +C -1.461000 0.000000 -1.479000 +H -0.460000 2.568000 0.742000 +H -1.994000 -1.683000 0.742000 +H 2.454000 0.886000 0.742000 +H -1.994000 1.683000 0.742000 +H -0.460000 -2.568000 0.742000 +H 2.454000 -0.886000 0.742000 +H -1.231000 2.132000 -1.590000 +H -1.231000 -2.132000 -1.590000 +H 2.462000 0.000000 -1.590000 +H 0.753000 -1.305000 -2.578000 +H 0.753000 1.305000 -2.578000 +H -1.507000 0.000000 -2.578000 +H 1.251000 -2.167000 -1.130000 +H 1.251000 2.167000 -1.130000 +H -2.503000 0.000000 -1.130000 diff --git a/sim/src/tests/heteroatom_organics/test_B_ADAM_C3v.mmp b/sim/src/tests/heteroatom_organics/test_B_ADAM_C3v.mmp new file mode 100755 index 000000000..964b8222c --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_B_ADAM_C3v.mmp @@ -0,0 +1,64 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.892641) (0.001500, -0.000000, 0.902500) (1.000000) +egroup (View Data) +group (B_ADAM_C3v) +info opengroup open = True +mol (B_ADAM_C3v.pdb) cpk +atom 1 (6) (-797, 1372, 741) def +atom 2 (6) (-617, -1372, 845) def +atom 3 (6) (1672, 97, 475) def +atom 4 (5) (-25, 569, 1171) def +bond1 1 2 3 +atom 5 (6) (-873, 1015, -1086) def +bond1 1 +atom 6 (6) (-625, -1290, -693) def +bond1 2 +atom 7 (6) (1318, -243, -1641) def +bond1 3 +atom 8 (6) (655, -1382, -1757) def +bond1 6 7 +atom 9 (6) (1063, 1542, -1221) def +bond1 5 7 +atom 10 (6) (-1402, 435, -1668) def +bond1 5 6 +atom 11 (1) (-349, 2395, 735) def +bond1 1 +atom 12 (1) (-1909, -1098, 1418) def +bond1 2 +atom 13 (1) (2394, 1026, -218) def +bond1 3 +atom 14 (1) (-1965, 1348, 717) def +bond1 1 +atom 15 (1) (-140, -2063, 569) def +bond1 2 +atom 16 (1) (1518, -1296, 634) def +bond1 3 +atom 17 (1) (-1735, 2475, -1722) def +bond1 5 +atom 18 (1) (-1214, -1929, -1694) def +bond1 6 +atom 19 (1) (2123, 229, -1848) def +bond1 7 +atom 20 (1) (1125, -1595, -2755) def +bond1 8 +atom 21 (1) (832, 1348, -2259) def +bond1 9 +atom 22 (1) (-1496, 0, -2849) def +bond1 10 +atom 23 (1) (1167, -2078, -1640) def +bond1 8 +atom 24 (1) (1187, 1575, -1695) def +bond1 9 +atom 25 (1) (-2496, -27, -1569) def +bond1 10 +egroup (B_ADAM_C3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part B_ADAM_C3v + diff --git a/sim/src/tests/heteroatom_organics/test_B_ADAM_C3v.test b/sim/src/tests/heteroatom_organics/test_B_ADAM_C3v.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_B_ADAM_C3v.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_B_ADAM_C3v.xyzcmp b/sim/src/tests/heteroatom_organics/test_B_ADAM_C3v.xyzcmp new file mode 100755 index 000000000..38b6de1d0 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_B_ADAM_C3v.xyzcmp @@ -0,0 +1,27 @@ +25 +B_ADAM_C3v.mmp +C -0.771000 1.336000 0.518000 +C -0.771000 -1.336000 0.518000 +C 1.543000 0.000000 0.518000 +B 0.000000 0.000000 0.817000 +C -0.736000 1.274000 -1.062000 +C -0.736000 -1.274000 -1.062000 +C 1.471000 0.000000 -1.062000 +C 0.729000 -1.262000 -1.554000 +C 0.729000 1.262000 -1.554000 +C -1.457000 0.000000 -1.554000 +H -0.275000 2.256000 0.848000 +H -1.817000 -1.366000 0.848000 +H 2.091000 0.890000 0.848000 +H -1.817000 1.366000 0.848000 +H -0.275000 -2.256000 0.848000 +H 2.091000 -0.890000 0.848000 +H -1.247000 2.160000 -1.462000 +H -1.247000 -2.160000 -1.462000 +H 2.494000 0.000000 -1.462000 +H 0.749000 -1.297000 -2.653000 +H 0.749000 1.297000 -2.653000 +H -1.497000 0.000000 -2.653000 +H 1.249000 -2.163000 -1.202000 +H 1.249000 2.163000 -1.202000 +H -2.497000 0.000000 -1.202000 diff --git a/sim/src/tests/heteroatom_organics/test_C3H6AlH.mmp b/sim/src/tests/heteroatom_organics/test_C3H6AlH.mmp new file mode 100755 index 000000000..72649272c --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6AlH.mmp @@ -0,0 +1,38 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.373432) (-0.004000, -0.137500, -0.033000) (1.000000) +egroup (View Data) +group (C3H6AlH) +info opengroup open = True +mol (C3H6AlH.pdb) def +atom 1 (13) (560, 1408, -24) def +atom 2 (6) (57, -333, -1083) def +bond1 1 +atom 3 (6) (427, -576, 1259) def +bond1 1 +atom 4 (6) (-309, -1066, -204) def +bond1 2 3 +atom 5 (1) (895, 2510, 5) def +bond1 1 +atom 6 (1) (590, -1394, -2337) def +bond1 2 +atom 7 (1) (-980, -122, -2325) def +bond1 2 +atom 8 (1) (1493, -1104, 1461) def +bond1 3 +atom 9 (1) (-355, 245, 2691) def +bond1 3 +atom 10 (1) (-1251, -1906, 591) def +bond1 4 +atom 11 (1) (634, -2354, 228) def +bond1 4 +egroup (C3H6AlH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6AlH + diff --git a/sim/src/tests/heteroatom_organics/test_C3H6AlH.test b/sim/src/tests/heteroatom_organics/test_C3H6AlH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6AlH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C3H6AlH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C3H6AlH.xyzcmp new file mode 100755 index 000000000..976262a2e --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6AlH.xyzcmp @@ -0,0 +1,13 @@ +11 +C3H6AlH.mmp +Al 0.702000 1.004000 -0.091000 +C 0.166000 -0.486000 -1.271000 +C 0.288000 -0.372000 1.261000 +C -0.138000 -1.285000 0.051000 +H 1.213000 2.515000 -0.185000 +H 0.954000 -0.951000 -1.875000 +H -0.706000 -0.375000 -1.924000 +H 1.141000 -0.779000 1.818000 +H -0.511000 -0.207000 1.990000 +H -1.205000 -1.526000 0.115000 +H 0.402000 -2.240000 0.069000 diff --git a/sim/src/tests/heteroatom_organics/test_C3H6BH.mmp b/sim/src/tests/heteroatom_organics/test_C3H6BH.mmp new file mode 100755 index 000000000..030a2c7d6 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6BH.mmp @@ -0,0 +1,38 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.019343) (0.005500, -0.013500, -0.001000) (1.000000) +egroup (View Data) +group (C3H6BH) +info opengroup open = True +mol (C3H6BH.pdb) def +atom 1 (5) (733, 1555, -563) def +atom 2 (6) (328, 71, -1347) def +bond1 1 +atom 3 (6) (-355, 64, 877) def +bond1 1 +atom 4 (6) (-429, -956, -251) def +bond1 2 3 +atom 5 (1) (348, 2266, 259) def +bond1 1 +atom 6 (1) (1248, -1012, -1714) def +bond1 2 +atom 7 (1) (-1119, -112, -1588) def +bond1 2 +atom 8 (1) (917, -387, 953) def +bond1 3 +atom 9 (1) (-1220, -583, 2045) def +bond1 3 +atom 10 (1) (-1127, -1983, -561) def +bond1 4 +atom 11 (1) (721, -1993, -103) def +bond1 4 +egroup (C3H6BH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6BH + diff --git a/sim/src/tests/heteroatom_organics/test_C3H6BH.test b/sim/src/tests/heteroatom_organics/test_C3H6BH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6BH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C3H6BH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C3H6BH.xyzcmp new file mode 100755 index 000000000..d1fa94f67 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6BH.xyzcmp @@ -0,0 +1,13 @@ +11 +C3H6BH.mmp +B 0.324000 0.897000 -0.040000 +C 0.067000 -0.217000 -1.138000 +C 0.171000 -0.155000 1.133000 +C -0.084000 -1.244000 0.035000 +H 0.545000 2.072000 -0.083000 +H 0.903000 -0.410000 -1.823000 +H -0.823000 -0.083000 -1.767000 +H 1.060000 -0.315000 1.757000 +H -0.664000 0.019000 1.825000 +H -1.071000 -1.713000 0.094000 +H 0.663000 -2.045000 0.023000 diff --git a/sim/src/tests/heteroatom_organics/test_C3H6NH.mmp b/sim/src/tests/heteroatom_organics/test_C3H6NH.mmp new file mode 100755 index 000000000..0d26341f5 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6NH.mmp @@ -0,0 +1,38 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.044590) (-0.004000, -0.023500, 0.001000) (1.000000) +egroup (View Data) +group (C3H6NH) +info opengroup open = True +mol (C3H6NH.pdb) def +atom 1 (7) (-389, 999, -8) def +atom 2 (6) (-217, 378, -1400) def +bond1 1 +atom 3 (6) (-415, 345, 1259) def +bond1 1 +atom 4 (6) (18, -588, -186) def +bond1 2 3 +atom 5 (1) (-809, 1885, 44) def +bond1 1 +atom 6 (1) (787, 891, -1951) def +bond1 2 +atom 7 (1) (-1215, -37, -1296) def +bond1 2 +atom 8 (1) (190, 370, 2244) def +bond1 3 +atom 9 (1) (-759, 95, 1890) def +bond1 3 +atom 10 (1) (-95, -2013, -255) def +bond1 4 +atom 11 (1) (1539, -594, 171) def +bond1 4 +egroup (C3H6NH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6NH + diff --git a/sim/src/tests/heteroatom_organics/test_C3H6NH.test b/sim/src/tests/heteroatom_organics/test_C3H6NH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6NH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C3H6NH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C3H6NH.xyzcmp new file mode 100755 index 000000000..fd392f144 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6NH.xyzcmp @@ -0,0 +1,13 @@ +11 +C3H6NH.mmp +N -0.229000 1.225000 0.070000 +C -0.243000 0.285000 -1.079000 +C -0.278000 0.085000 1.018000 +C 0.214000 -0.842000 -0.121000 +H -1.018000 1.864000 0.118000 +H 0.426000 0.562000 -1.903000 +H -1.243000 0.086000 -1.494000 +H 0.363000 0.198000 1.901000 +H -1.291000 -0.186000 1.358000 +H -0.268000 -1.817000 -0.223000 +H 1.299000 -0.970000 -0.114000 diff --git a/sim/src/tests/heteroatom_organics/test_C3H6O.mmp b/sim/src/tests/heteroatom_organics/test_C3H6O.mmp new file mode 100755 index 000000000..d56ad01c3 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6O.mmp @@ -0,0 +1,36 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.772987) (0.064000, 0.212000, -0.079500) (1.000000) +egroup (View Data) +group (C3H6O) +info opengroup open = True +mol (C3H6O.pdb) def +atom 1 (8) (148, 940, -1423) def +atom 2 (6) (1218, 227, -511) def +bond1 1 +atom 3 (6) (-770, 844, 39) def +bond1 1 +atom 4 (6) (504, -210, 81) def +bond1 2 3 +atom 5 (1) (1588, 587, 64) def +bond1 2 +atom 6 (1) (1348, -619, -1592) def +bond1 2 +atom 7 (1) (-1816, 1008, 841) def +bond1 3 +atom 8 (1) (-1674, -289, -1320) def +bond1 3 +atom 9 (1) (-66, -1072, 681) def +bond1 4 +atom 10 (1) (115, 91, 1293) def +bond1 4 +egroup (C3H6O) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6O + diff --git a/sim/src/tests/heteroatom_organics/test_C3H6O.test b/sim/src/tests/heteroatom_organics/test_C3H6O.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6O.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C3H6O.xyzcmp b/sim/src/tests/heteroatom_organics/test_C3H6O.xyzcmp new file mode 100755 index 000000000..dd004f86c --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6O.xyzcmp @@ -0,0 +1,12 @@ +10 +C3H6O.mmp +O -0.236000 0.916000 -1.092000 +C 0.912000 0.170000 -0.626000 +C -1.079000 0.337000 -0.069000 +C 0.108000 -0.438000 0.543000 +H 1.746000 0.829000 -0.350000 +H 1.267000 -0.549000 -1.376000 +H -1.537000 1.102000 0.570000 +H -1.874000 -0.288000 -0.498000 +H 0.016000 -1.526000 0.543000 +H 0.416000 -0.102000 1.535000 diff --git a/sim/src/tests/heteroatom_organics/test_C3H6PH.mmp b/sim/src/tests/heteroatom_organics/test_C3H6PH.mmp new file mode 100755 index 000000000..2b51508fb --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6PH.mmp @@ -0,0 +1,38 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.160304) (-0.016000, 0.179000, 0.148500) (1.000000) +egroup (View Data) +group (C3H6PH) +info opengroup open = True +mol (C3H6PH.pdb) def +atom 1 (15) (159, 1495, -27) def +atom 2 (6) (639, 98, -1298) def +bond1 1 +atom 3 (6) (-531, -69, 704) def +bond1 1 +atom 4 (6) (-367, -1278, -331) def +bond1 2 3 +atom 5 (1) (-1453, 1748, -947) def +bond1 1 +atom 6 (1) (1445, -570, -1419) def +bond1 2 +atom 7 (1) (34, 299, -1995) def +bond1 2 +atom 8 (1) (834, -95, 1720) def +bond1 3 +atom 9 (1) (-579, 145, 2187) def +bond1 3 +atom 10 (1) (-1411, -855, -558) def +bond1 4 +atom 11 (1) (-148, -2072, 392) def +bond1 4 +egroup (C3H6PH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6PH + diff --git a/sim/src/tests/heteroatom_organics/test_C3H6PH.test b/sim/src/tests/heteroatom_organics/test_C3H6PH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6PH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C3H6PH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C3H6PH.xyzcmp new file mode 100755 index 000000000..f0ff03b62 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6PH.xyzcmp @@ -0,0 +1,13 @@ +11 +C3H6PH.mmp +P 0.226000 1.418000 -0.093000 +C 0.443000 -0.215000 -1.052000 +C -0.240000 0.042000 1.142000 +C -0.418000 -0.970000 -0.014000 +H -1.114000 1.646000 -0.536000 +H 1.497000 -0.510000 -1.006000 +H 0.121000 -0.239000 -2.096000 +H 0.635000 -0.185000 1.760000 +H -1.095000 0.215000 1.799000 +H -1.465000 -0.992000 -0.337000 +H -0.115000 -2.004000 0.200000 diff --git a/sim/src/tests/heteroatom_organics/test_C3H6S.mmp b/sim/src/tests/heteroatom_organics/test_C3H6S.mmp new file mode 100755 index 000000000..f3e99ad52 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6S.mmp @@ -0,0 +1,36 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.894965) (0.002500, 0.013500, 0.001500) (1.000000) +egroup (View Data) +group (C3H6S) +info opengroup open = True +mol (C3H6S.pdb) cpk +atom 1 (16) (71, 943, 89) def +atom 2 (6) (956, 473, 66) def +bond1 1 +atom 3 (6) (-1276, 128, 286) def +bond1 1 +atom 4 (6) (-38, -749, 334) def +bond1 2 3 +atom 5 (1) (1690, 668, 485) def +bond1 2 +atom 6 (1) (1356, 361, -1150) def +bond1 2 +atom 7 (1) (-2463, -249, 949) def +bond1 3 +atom 8 (1) (-1870, -329, -618) def +bond1 3 +atom 9 (1) (173, -1468, -375) def +bond1 4 +atom 10 (1) (106, -1596, 1077) def +bond1 4 +egroup (C3H6S) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6S + diff --git a/sim/src/tests/heteroatom_organics/test_C3H6S.test b/sim/src/tests/heteroatom_organics/test_C3H6S.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6S.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C3H6S.xyzcmp b/sim/src/tests/heteroatom_organics/test_C3H6S.xyzcmp new file mode 100755 index 000000000..56966cd3d --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6S.xyzcmp @@ -0,0 +1,12 @@ +10 +C3H6S.mmp +S -0.305000 1.622000 0.195000 +C 1.075000 0.416000 -0.144000 +C -1.182000 -0.008000 -0.008000 +C 0.146000 -0.781000 0.150000 +H 1.943000 0.534000 0.508000 +H 1.395000 0.477000 -1.188000 +H -1.948000 -0.198000 0.747000 +H -1.624000 -0.093000 -1.004000 +H 0.269000 -1.649000 -0.507000 +H 0.269000 -1.111000 1.185000 diff --git a/sim/src/tests/heteroatom_organics/test_C3H6SiH2.mmp b/sim/src/tests/heteroatom_organics/test_C3H6SiH2.mmp new file mode 100755 index 000000000..501f8189e --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6SiH2.mmp @@ -0,0 +1,40 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.569971) (0.098500, 0.075000, 0.011000) (1.000000) +egroup (View Data) +group (C3H6SiH2) +info opengroup open = True +mol (C3H6SiH2.pdb) cpk +atom 1 (14) (507, 793, 356) def +atom 2 (6) (-58, -375, -645) def +bond1 1 +atom 3 (6) (136, -313, 1138) def +bond1 1 +atom 4 (6) (-968, -656, 138) def +bond1 2 3 +atom 5 (1) (-875, 2100, 210) def +bond1 1 +atom 6 (1) (1861, 1809, 158) def +bond1 1 +atom 7 (1) (391, -1029, -1795) def +bond1 2 +atom 8 (1) (-1311, 126, -2160) def +bond1 2 +atom 9 (1) (1641, -702, 1916) def +bond1 3 +atom 10 (1) (-68, -601, 1652) def +bond1 3 +atom 11 (1) (-2217, -1004, 47) def +bond1 4 +atom 12 (1) (-364, -2477, -448) def +bond1 4 +egroup (C3H6SiH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6SiH2 + diff --git a/sim/src/tests/heteroatom_organics/test_C3H6SiH2.test b/sim/src/tests/heteroatom_organics/test_C3H6SiH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6SiH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C3H6SiH2.xyzcmp b/sim/src/tests/heteroatom_organics/test_C3H6SiH2.xyzcmp new file mode 100755 index 000000000..f80856d16 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C3H6SiH2.xyzcmp @@ -0,0 +1,14 @@ +12 +C3H6SiH2.mmp +Si 0.282000 1.026000 -0.083000 +C -0.127000 -0.436000 -1.242000 +C -0.024000 -0.379000 1.171000 +C -0.737000 -1.152000 0.011000 +H -0.765000 2.089000 -0.064000 +H 1.618000 1.691000 -0.155000 +H 0.782000 -0.943000 -1.585000 +H -0.797000 -0.314000 -2.095000 +H 0.912000 -0.869000 1.462000 +H -0.619000 -0.214000 2.073000 +H -1.815000 -0.958000 0.054000 +H -0.598000 -2.239000 0.031000 diff --git a/sim/src/tests/heteroatom_organics/test_C4H8AlH.mmp b/sim/src/tests/heteroatom_organics/test_C4H8AlH.mmp new file mode 100755 index 000000000..b1ee573bf --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8AlH.mmp @@ -0,0 +1,44 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.905912, 0.303482, 0.292644, 0.039768) (6.752806) (-0.150500, -0.145000, 0.013000) (1.000000) +egroup (View Data) +group (C4H8AlH) +info opengroup open = True +mol (C4H8AlH.pdb) cpk +atom 1 (13) (1626, 651, -569) def +atom 2 (6) (158, 71, 1728) def +bond1 1 +atom 3 (6) (363, 219, -1501) def +bond1 1 +atom 4 (6) (-973, -1060, 487) def +bond1 2 +atom 5 (6) (-449, -630, -517) def +bond1 3 4 +atom 6 (1) (1831, 2187, 240) def +bond1 1 +atom 7 (1) (-465, 544, 2045) def +bond1 2 +atom 8 (1) (240, -414, 1610) def +bond1 2 +atom 9 (1) (925, -535, -2233) def +bond1 3 +atom 10 (1) (-535, 473, -2257) def +bond1 3 +atom 11 (1) (-1793, -1867, 1184) def +bond1 4 +atom 12 (1) (-2169, -355, 649) def +bond1 4 +atom 13 (1) (569, -2047, -528) def +bond1 5 +atom 14 (1) (-950, -1986, -1482) def +bond1 5 +egroup (C4H8AlH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8AlH + diff --git a/sim/src/tests/heteroatom_organics/test_C4H8AlH.test b/sim/src/tests/heteroatom_organics/test_C4H8AlH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8AlH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C4H8AlH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C4H8AlH.xyzcmp new file mode 100755 index 000000000..15812dc92 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8AlH.xyzcmp @@ -0,0 +1,16 @@ +14 +C4H8AlH.mmp +Al 1.063000 1.039000 0.049000 +C 0.002000 0.149000 1.456000 +C 0.300000 0.043000 -1.484000 +C -1.051000 -0.601000 0.597000 +C -0.426000 -1.105000 -0.728000 +H 2.172000 2.180000 0.125000 +H -0.457000 0.781000 2.223000 +H 0.627000 -0.575000 2.001000 +H 0.987000 -0.333000 -2.249000 +H -0.436000 0.665000 -2.019000 +H -1.508000 -1.439000 1.140000 +H -1.871000 0.090000 0.350000 +H 0.305000 -1.890000 -0.486000 +H -1.196000 -1.584000 -1.349000 diff --git a/sim/src/tests/heteroatom_organics/test_C4H8BH.mmp b/sim/src/tests/heteroatom_organics/test_C4H8BH.mmp new file mode 100755 index 000000000..dda5996fb --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8BH.mmp @@ -0,0 +1,44 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.415266) (0.072500, -0.000000, -0.001000) (1.000000) +egroup (View Data) +group (C4H8BH) +info opengroup open = True +mol (C4H8BH.pdb) def +atom 1 (5) (592, 1160, -82) def +atom 2 (6) (474, -379, -948) def +bond1 1 +atom 3 (6) (393, 581, 1018) def +bond1 1 +atom 4 (6) (-268, -1598, 358) def +bond1 3 +atom 5 (6) (-246, -1569, -575) def +bond1 2 4 +atom 6 (1) (1183, 1769, 112) def +bond1 1 +atom 7 (1) (645, 189, -2076) def +bond1 2 +atom 8 (1) (-634, 521, -1601) def +bond1 2 +atom 9 (1) (1081, -12, 1234) def +bond1 3 +atom 10 (1) (103, 717, 1788) def +bond1 3 +atom 11 (1) (-1000, -802, 714) def +bond1 4 +atom 12 (1) (-260, -2335, 1352) def +bond1 4 +atom 13 (1) (20, -1747, -1613) def +bond1 5 +atom 14 (1) (671, -1776, -655) def +bond1 5 +egroup (C4H8BH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8BH + diff --git a/sim/src/tests/heteroatom_organics/test_C4H8BH.test b/sim/src/tests/heteroatom_organics/test_C4H8BH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8BH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C4H8BH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C4H8BH.xyzcmp new file mode 100755 index 000000000..421ee6108 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8BH.xyzcmp @@ -0,0 +1,16 @@ +14 +C4H8BH.mmp +B 0.461000 0.959000 -0.010000 +C 0.158000 0.056000 -1.263000 +C 0.290000 0.065000 1.273000 +C -0.383000 -1.232000 0.758000 +C 0.104000 -1.387000 -0.699000 +H 0.766000 2.115000 -0.031000 +H 0.792000 0.185000 -2.146000 +H -0.855000 0.370000 -1.584000 +H 1.329000 -0.153000 1.590000 +H -0.188000 0.519000 2.148000 +H -1.474000 -1.098000 0.766000 +H -0.169000 -2.115000 1.370000 +H -0.525000 -2.066000 -1.286000 +H 1.117000 -1.811000 -0.702000 diff --git a/sim/src/tests/heteroatom_organics/test_C4H8NH.mmp b/sim/src/tests/heteroatom_organics/test_C4H8NH.mmp new file mode 100755 index 000000000..9e209af3f --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8NH.mmp @@ -0,0 +1,44 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.272305) (-0.052500, -0.077000, -0.035500) (1.000000) +egroup (View Data) +group (C4H8NH) +info opengroup open = True +mol (C4H8NH.pdb) def +atom 1 (7) (313, 1147, 238) def +atom 2 (6) (762, -457, 210) def +bond1 1 +atom 3 (6) (-1324, 1081, -3) def +bond1 1 +atom 4 (6) (-1150, -929, -737) def +bond1 3 +atom 5 (6) (355, -992, 274) def +bond1 2 4 +atom 6 (1) (599, 2174, -320) def +bond1 1 +atom 7 (1) (1838, -352, 620) def +bond1 2 +atom 8 (1) (1166, 165, -1286) def +bond1 2 +atom 9 (1) (-1312, 1290, 1511) def +bond1 3 +atom 10 (1) (-1224, 1296, -841) def +bond1 3 +atom 11 (1) (-2113, -1201, 131) def +bond1 4 +atom 12 (1) (-1262, -558, -1062) def +bond1 4 +atom 13 (1) (616, -1753, -109) def +bond1 5 +atom 14 (1) (-347, -1484, 1672) def +bond1 5 +egroup (C4H8NH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8NH + diff --git a/sim/src/tests/heteroatom_organics/test_C4H8NH.test b/sim/src/tests/heteroatom_organics/test_C4H8NH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8NH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C4H8NH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C4H8NH.xyzcmp new file mode 100755 index 000000000..b2915cd36 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8NH.xyzcmp @@ -0,0 +1,16 @@ +14 +C4H8NH.mmp +N 0.348000 1.276000 0.398000 +C 1.154000 0.121000 -0.018000 +C -1.082000 0.982000 0.146000 +C -1.137000 -0.526000 -0.200000 +C 0.226000 -1.061000 0.277000 +H 0.646000 2.134000 -0.052000 +H 2.091000 0.078000 0.552000 +H 1.423000 0.127000 -1.091000 +H -1.670000 1.207000 1.047000 +H -1.505000 1.587000 -0.668000 +H -1.986000 -1.036000 0.264000 +H -1.222000 -0.657000 -1.284000 +H 0.530000 -1.980000 -0.232000 +H 0.205000 -1.254000 1.355000 diff --git a/sim/src/tests/heteroatom_organics/test_C4H8O.mmp b/sim/src/tests/heteroatom_organics/test_C4H8O.mmp new file mode 100755 index 000000000..2da6feca0 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8O.mmp @@ -0,0 +1,42 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.938570) (0.088500, 0.196500, -0.007000) (1.000000) +egroup (View Data) +group (C4H8O) +info opengroup open = True +mol (C4H8O.pdb) def +atom 1 (8) (331, 1033, -240) def +atom 2 (6) (804, 182, -640) def +bond1 1 +atom 3 (6) (-902, 1046, 208) def +bond1 1 +atom 4 (6) (-191, -1090, 24) def +bond1 3 +atom 5 (6) (695, -944, 549) def +bond1 2 4 +atom 6 (1) (1841, 1303, 264) def +bond1 2 +atom 7 (1) (1280, 120, -1190) def +bond1 2 +atom 8 (1) (-1491, 646, 1153) def +bond1 3 +atom 9 (1) (-1509, 540, -508) def +bond1 3 +atom 10 (1) (-1418, -1531, 1219) def +bond1 4 +atom 11 (1) (-1216, -1569, -674) def +bond1 4 +atom 12 (1) (1242, -1803, -95) def +bond1 5 +atom 13 (1) (641, -1005, 1654) def +bond1 5 +egroup (C4H8O) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8O + diff --git a/sim/src/tests/heteroatom_organics/test_C4H8O.test b/sim/src/tests/heteroatom_organics/test_C4H8O.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8O.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C4H8O.xyzcmp b/sim/src/tests/heteroatom_organics/test_C4H8O.xyzcmp new file mode 100755 index 000000000..d169e5cfe --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8O.xyzcmp @@ -0,0 +1,15 @@ +13 +C4H8O.mmp +O -0.059000 1.291000 -0.515000 +C 1.119000 0.482000 -0.387000 +C -1.185000 0.589000 0.015000 +C -0.805000 -0.893000 -0.023000 +C 0.692000 -0.817000 0.321000 +H 1.884000 1.033000 0.174000 +H 1.517000 0.281000 -1.391000 +H -1.386000 0.910000 1.051000 +H -2.061000 0.837000 -0.593000 +H -1.384000 -1.504000 0.676000 +H -0.947000 -1.294000 -1.033000 +H 1.269000 -1.684000 -0.012000 +H 0.822000 -0.724000 1.405000 diff --git a/sim/src/tests/heteroatom_organics/test_C4H8PH.mmp b/sim/src/tests/heteroatom_organics/test_C4H8PH.mmp new file mode 100755 index 000000000..282128127 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8PH.mmp @@ -0,0 +1,44 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.228079) (-0.037000, -0.063000, -0.031000) (1.000000) +egroup (View Data) +group (C4H8PH) +info opengroup open = True +mol (C4H8PH.pdb) def +atom 1 (15) (383, 1793, -17) def +atom 2 (6) (1249, 137, -285) def +bond1 1 +atom 3 (6) (-1461, 1374, 521) def +bond1 1 +atom 4 (6) (-1225, 115, -480) def +bond1 3 +atom 5 (6) (84, -828, 215) def +bond1 2 4 +atom 6 (1) (550, 2323, -1092) def +bond1 1 +atom 7 (1) (1987, 6, 885) def +bond1 2 +atom 8 (1) (1706, 78, -657) def +bond1 2 +atom 9 (1) (-1695, 839, 1177) def +bond1 3 +atom 10 (1) (-1575, 1903, -134) def +bond1 3 +atom 11 (1) (-2198, -1153, -106) def +bond1 4 +atom 12 (1) (-1404, -44, -1288) def +bond1 4 +atom 13 (1) (224, -1948, 203) def +bond1 5 +atom 14 (1) (255, -1380, 1270) def +bond1 5 +egroup (C4H8PH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8PH + diff --git a/sim/src/tests/heteroatom_organics/test_C4H8PH.test b/sim/src/tests/heteroatom_organics/test_C4H8PH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8PH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C4H8PH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C4H8PH.xyzcmp new file mode 100755 index 000000000..f2ea0f525 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8PH.xyzcmp @@ -0,0 +1,16 @@ +14 +C4H8PH.mmp +P 0.463000 1.834000 0.094000 +C 1.287000 0.117000 0.050000 +C -1.254000 1.073000 0.278000 +C -1.152000 -0.377000 -0.221000 +C 0.181000 -0.933000 0.303000 +H 0.397000 2.023000 -1.320000 +H 2.074000 0.063000 0.806000 +H 1.764000 -0.027000 -0.924000 +H -1.520000 1.099000 1.340000 +H -2.000000 1.667000 -0.259000 +H -1.999000 -0.990000 0.110000 +H -1.157000 -0.387000 -1.320000 +H 0.428000 -1.897000 -0.156000 +H 0.089000 -1.109000 1.382000 diff --git a/sim/src/tests/heteroatom_organics/test_C4H8S.mmp b/sim/src/tests/heteroatom_organics/test_C4H8S.mmp new file mode 100755 index 000000000..2599511cb --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8S.mmp @@ -0,0 +1,42 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.168692) (0.006500, -0.017500, -0.000000) (1.000000) +egroup (View Data) +group (C4H8S) +info opengroup open = True +mol (C4H8S.pdb) def +atom 1 (16) (460, 1746, 386) def +atom 2 (6) (1065, 602, 212) def +bond1 1 +atom 3 (6) (-1522, 1238, 342) def +bond1 1 +atom 4 (6) (-770, -428, -504) def +bond1 3 +atom 5 (6) (139, -1452, 479) def +bond1 2 4 +atom 6 (1) (2240, 319, 572) def +bond1 2 +atom 7 (1) (1347, 386, -638) def +bond1 2 +atom 8 (1) (-1765, 1339, 966) def +bond1 3 +atom 9 (1) (-1605, 1498, -471) def +bond1 3 +atom 10 (1) (-1548, -338, -460) def +bond1 4 +atom 11 (1) (-1376, -186, -935) def +bond1 4 +atom 12 (1) (617, -1774, 518) def +bond1 5 +atom 13 (1) (441, -1077, 1288) def +bond1 5 +egroup (C4H8S) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8S + diff --git a/sim/src/tests/heteroatom_organics/test_C4H8S.test b/sim/src/tests/heteroatom_organics/test_C4H8S.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8S.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C4H8S.xyzcmp b/sim/src/tests/heteroatom_organics/test_C4H8S.xyzcmp new file mode 100755 index 000000000..8cc7724d9 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8S.xyzcmp @@ -0,0 +1,15 @@ +13 +C4H8S.mmp +S 0.394000 1.848000 0.275000 +C 1.196000 0.196000 0.012000 +C -1.324000 1.149000 0.258000 +C -1.204000 -0.289000 -0.263000 +C 0.114000 -0.855000 0.281000 +H 2.051000 0.104000 0.685000 +H 1.558000 0.139000 -1.018000 +H -1.725000 1.170000 1.275000 +H -1.956000 1.774000 -0.376000 +H -2.064000 -0.893000 0.049000 +H -1.188000 -0.289000 -1.361000 +H 0.370000 -1.813000 -0.185000 +H 0.022000 -1.024000 1.361000 diff --git a/sim/src/tests/heteroatom_organics/test_C4H8SiH2.mmp b/sim/src/tests/heteroatom_organics/test_C4H8SiH2.mmp new file mode 100755 index 000000000..826123c80 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8SiH2.mmp @@ -0,0 +1,46 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.874463) (-0.094500, -0.065000, 0.003000) (1.000000) +egroup (View Data) +group (C4H8SiH2) +info opengroup open = True +mol (C4H8SiH2.pdb) def +atom 1 (14) (900, 673, -171) def +atom 2 (6) (148, -532, 1559) def +bond1 1 +atom 3 (6) (-1004, -136, -986) def +bond1 1 +atom 4 (6) (-1347, -1177, 999) def +bond1 2 +atom 5 (6) (-603, -976, -938) def +bond1 3 4 +atom 6 (1) (2289, 798, -764) def +bond1 1 +atom 7 (1) (774, 1744, 456) def +bond1 1 +atom 8 (1) (29, 285, 2631) def +bond1 2 +atom 9 (1) (776, -721, 1591) def +bond1 2 +atom 10 (1) (198, -223, -2004) def +bond1 3 +atom 11 (1) (-1828, 853, -1072) def +bond1 3 +atom 12 (1) (-1485, -1550, 1864) def +bond1 4 +atom 13 (1) (-2086, -263, 435) def +bond1 4 +atom 14 (1) (-132, -2071, -1140) def +bond1 5 +atom 15 (1) (-2162, -1628, -935) def +bond1 5 +egroup (C4H8SiH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8SiH2 + diff --git a/sim/src/tests/heteroatom_organics/test_C4H8SiH2.test b/sim/src/tests/heteroatom_organics/test_C4H8SiH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8SiH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C4H8SiH2.xyzcmp b/sim/src/tests/heteroatom_organics/test_C4H8SiH2.xyzcmp new file mode 100755 index 000000000..c622b3e26 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C4H8SiH2.xyzcmp @@ -0,0 +1,17 @@ +15 +C4H8SiH2.mmp +Si 0.718000 0.746000 -0.067000 +C 0.225000 -0.428000 1.360000 +C -0.541000 0.051000 -1.324000 +C -1.089000 -1.080000 0.857000 +C -0.998000 -1.278000 -0.669000 +H 2.140000 0.581000 -0.490000 +H 0.505000 2.191000 0.241000 +H 0.099000 0.069000 2.327000 +H 1.004000 -1.189000 1.489000 +H -0.145000 -0.096000 -2.333000 +H -1.390000 0.740000 -1.407000 +H -1.291000 -2.028000 1.371000 +H -1.933000 -0.415000 1.084000 +H -0.256000 -2.061000 -0.885000 +H -1.951000 -1.634000 -1.079000 diff --git a/sim/src/tests/heteroatom_organics/test_C5H10AlH.mmp b/sim/src/tests/heteroatom_organics/test_C5H10AlH.mmp new file mode 100755 index 000000000..5dbc45854 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10AlH.mmp @@ -0,0 +1,50 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.027119) (-0.043500, -0.156000, -0.011000) (1.000000) +egroup (View Data) +group (C5H10AlH) +info opengroup open = True +mol (C5H10AlH.pdb) def +atom 1 (13) (1164, 1413, -92) def +atom 2 (6) (605, 191, 1692) def +bond1 1 +atom 3 (6) (666, 38, -1594) def +bond1 1 +atom 4 (6) (-915, -731, 1805) def +bond1 2 +atom 5 (6) (-25, -1500, -59) def +bond1 4 +atom 6 (6) (-331, -1110, -1658) def +bond1 3 5 +atom 7 (1) (2298, 2803, 281) def +bond1 1 +atom 8 (1) (155, 1350, 2112) def +bond1 2 +atom 9 (1) (1727, 460, 2075) def +bond1 2 +atom 10 (1) (1446, -728, -1296) def +bond1 3 +atom 11 (1) (591, 785, -2435) def +bond1 3 +atom 12 (1) (-936, -1385, 2589) def +bond1 4 +atom 13 (1) (-1400, 9, 1375) def +bond1 4 +atom 14 (1) (716, -1923, 55) def +bond1 5 +atom 15 (1) (-857, -2844, 201) def +bond1 5 +atom 16 (1) (-432, -1589, -1923) def +bond1 6 +atom 17 (1) (-1382, -537, -1643) def +bond1 6 +egroup (C5H10AlH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10AlH + diff --git a/sim/src/tests/heteroatom_organics/test_C5H10AlH.test b/sim/src/tests/heteroatom_organics/test_C5H10AlH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10AlH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C5H10AlH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C5H10AlH.xyzcmp new file mode 100755 index 000000000..ed1292fb6 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10AlH.xyzcmp @@ -0,0 +1,19 @@ +17 +C5H10AlH.mmp +Al 1.004000 1.315000 0.055000 +C 0.376000 0.420000 1.695000 +C 0.698000 0.161000 -1.512000 +C -0.674000 -0.672000 1.359000 +C -0.329000 -1.569000 0.151000 +C -0.415000 -0.879000 -1.227000 +H 1.728000 2.737000 0.011000 +H -0.011000 1.106000 2.459000 +H 1.254000 -0.057000 2.164000 +H 1.645000 -0.369000 -1.713000 +H 0.485000 0.713000 -2.437000 +H -0.843000 -1.315000 2.234000 +H -1.641000 -0.189000 1.156000 +H 0.677000 -1.995000 0.286000 +H -1.018000 -2.425000 0.151000 +H -0.417000 -1.653000 -2.008000 +H -1.394000 -0.383000 -1.299000 diff --git a/sim/src/tests/heteroatom_organics/test_C5H10BH.mmp b/sim/src/tests/heteroatom_organics/test_C5H10BH.mmp new file mode 100755 index 000000000..baceaadef --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10BH.mmp @@ -0,0 +1,50 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.764580) (-0.008500, -0.033500, -0.042000) (1.000000) +egroup (View Data) +group (C5H10BH) +info opengroup open = True +mol (C5H10BH.pdb) def +atom 1 (5) (-138, 1457, 629) def +atom 2 (6) (140, -67, 1332) def +bond1 1 +atom 3 (6) (-194, 1676, -1271) def +bond1 1 +atom 4 (6) (-559, -533, -1560) def +bond1 3 +atom 5 (6) (148, -1132, 920) def +bond1 2 +atom 6 (6) (866, -1580, -590) def +bond1 4 5 +atom 7 (1) (-1555, 2123, 294) def +bond1 1 +atom 8 (1) (-912, 608, 2475) def +bond1 2 +atom 9 (1) (1229, 656, 1445) def +bond1 2 +atom 10 (1) (-2307, 1684, -1936) def +bond1 3 +atom 11 (1) (417, 1542, -1614) def +bond1 3 +atom 12 (1) (129, -709, -2490) def +bond1 4 +atom 13 (1) (-1345, -1338, -1446) def +bond1 4 +atom 14 (1) (881, -1617, 1649) def +bond1 5 +atom 15 (1) (-724, -1660, 1378) def +bond1 5 +atom 16 (1) (665, -2464, -792) def +bond1 6 +atom 17 (1) (1988, -772, -822) def +bond1 6 +egroup (C5H10BH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10BH + diff --git a/sim/src/tests/heteroatom_organics/test_C5H10BH.test b/sim/src/tests/heteroatom_organics/test_C5H10BH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10BH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C5H10BH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C5H10BH.xyzcmp new file mode 100755 index 000000000..6d50fb168 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10BH.xyzcmp @@ -0,0 +1,19 @@ +17 +C5H10BH.mmp +B -0.740000 1.307000 0.349000 +C -0.280000 0.367000 1.518000 +C -0.628000 0.834000 -1.144000 +C -0.424000 -0.682000 -1.348000 +C -0.117000 -1.120000 1.145000 +C 0.472000 -1.302000 -0.262000 +H -1.075000 2.435000 0.592000 +H -0.887000 0.499000 2.424000 +H 0.705000 0.787000 1.804000 +H -1.450000 1.223000 -1.760000 +H 0.258000 1.385000 -1.518000 +H -0.007000 -0.892000 -2.340000 +H -1.401000 -1.186000 -1.318000 +H 0.506000 -1.640000 1.885000 +H -1.098000 -1.616000 1.181000 +H 0.627000 -2.368000 -0.469000 +H 1.467000 -0.831000 -0.303000 diff --git a/sim/src/tests/heteroatom_organics/test_C5H10NH.mmp b/sim/src/tests/heteroatom_organics/test_C5H10NH.mmp new file mode 100755 index 000000000..48835a2d5 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10NH.mmp @@ -0,0 +1,50 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.601761) (-0.024000, -0.009000, 0.002000) (1.000000) +egroup (View Data) +group (C5H10NH) +info opengroup open = True +mol (C5H10NH.pdb) def +atom 1 (7) (-261, 1312, 418) def +atom 2 (6) (116, 1001, 1360) def +bond1 1 +atom 3 (6) (721, 903, -1141) def +bond1 1 +atom 4 (6) (-741, -366, -1520) def +bond1 3 +atom 5 (6) (-359, -607, 589) def +bond1 2 +atom 6 (6) (327, -1151, -32) def +bond1 4 5 +atom 7 (1) (-1, 2619, 239) def +bond1 1 +atom 8 (1) (-500, 1331, 1850) def +bond1 2 +atom 9 (1) (1632, 809, 2169) def +bond1 2 +atom 10 (1) (117, 1581, -2170) def +bond1 3 +atom 11 (1) (1192, -158, -828) def +bond1 3 +atom 12 (1) (-8, -1222, -1972) def +bond1 4 +atom 13 (1) (-1782, -542, -1749) def +bond1 4 +atom 14 (1) (6, -1000, 2588) def +bond1 5 +atom 15 (1) (-1179, -540, 1094) def +bond1 5 +atom 16 (1) (6, -2328, 90) def +bond1 6 +atom 17 (1) (1629, -1381, 131) def +bond1 6 +egroup (C5H10NH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10NH + diff --git a/sim/src/tests/heteroatom_organics/test_C5H10NH.test b/sim/src/tests/heteroatom_organics/test_C5H10NH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10NH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C5H10NH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C5H10NH.xyzcmp new file mode 100755 index 000000000..34d13a8df --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10NH.xyzcmp @@ -0,0 +1,19 @@ +17 +C5H10NH.mmp +N -0.193000 1.462000 0.054000 +C 0.277000 0.774000 1.259000 +C 0.284000 0.826000 -1.177000 +C -0.242000 -0.611000 -1.254000 +C -0.248000 -0.665000 1.273000 +C 0.170000 -1.407000 -0.007000 +H 0.108000 2.432000 0.077000 +H -0.091000 1.323000 2.134000 +H 1.384000 0.750000 1.332000 +H -0.079000 1.412000 -2.029000 +H 1.392000 0.805000 -1.245000 +H 0.131000 -1.095000 -2.166000 +H -1.337000 -0.582000 -1.326000 +H 0.125000 -1.189000 2.162000 +H -1.344000 -0.641000 1.343000 +H -0.263000 -2.414000 -0.030000 +H 1.263000 -1.531000 -0.007000 diff --git a/sim/src/tests/heteroatom_organics/test_C5H10O.mmp b/sim/src/tests/heteroatom_organics/test_C5H10O.mmp new file mode 100755 index 000000000..a36b5ecf6 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10O.mmp @@ -0,0 +1,48 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.492590) (-0.005000, 0.126500, 0.009500) (1.000000) +egroup (View Data) +group (C5H10O) +info opengroup open = True +mol (C5H10O.pdb) def +atom 1 (8) (-344, 1733, 332) def +atom 2 (6) (52, 1209, 1317) def +bond1 1 +atom 3 (6) (614, 1501, -1230) def +bond1 1 +atom 4 (6) (-854, 32, -1300) def +bond1 3 +atom 5 (6) (-154, -940, 1196) def +bond1 2 +atom 6 (6) (-270, -1201, -64) def +bond1 4 5 +atom 7 (1) (74, 1832, 2265) def +bond1 2 +atom 8 (1) (1308, 483, 1240) def +bond1 2 +atom 9 (1) (-320, 1623, -1701) def +bond1 3 +atom 10 (1) (1261, 1177, -1326) def +bond1 3 +atom 11 (1) (18, -604, -2785) def +bond1 4 +atom 12 (1) (-1606, 221, -1255) def +bond1 4 +atom 13 (1) (517, -657, 1728) def +bond1 5 +atom 14 (1) (-1216, -608, 908) def +bond1 5 +atom 15 (1) (312, -1490, -306) def +bond1 6 +atom 16 (1) (1287, -1650, -504) def +bond1 6 +egroup (C5H10O) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10O + diff --git a/sim/src/tests/heteroatom_organics/test_C5H10O.test b/sim/src/tests/heteroatom_organics/test_C5H10O.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10O.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C5H10O.xyzcmp b/sim/src/tests/heteroatom_organics/test_C5H10O.xyzcmp new file mode 100755 index 000000000..4569bf325 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10O.xyzcmp @@ -0,0 +1,18 @@ +16 +C5H10O.mmp +O -0.172000 1.665000 0.284000 +C 0.407000 0.840000 1.291000 +C 0.128000 1.199000 -1.027000 +C -0.401000 -0.218000 -1.264000 +C -0.111000 -0.598000 1.209000 +C 0.146000 -1.175000 -0.190000 +H 0.151000 1.303000 2.249000 +H 1.508000 0.848000 1.193000 +H -0.328000 1.917000 -1.715000 +H 1.221000 1.220000 -1.188000 +H -0.120000 -0.558000 -2.268000 +H -1.498000 -0.200000 -1.218000 +H 0.367000 -1.209000 1.986000 +H -1.189000 -0.596000 1.415000 +H -0.302000 -2.170000 -0.291000 +H 1.228000 -1.298000 -0.337000 diff --git a/sim/src/tests/heteroatom_organics/test_C5H10PH.mmp b/sim/src/tests/heteroatom_organics/test_C5H10PH.mmp new file mode 100755 index 000000000..374b62e1a --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10PH.mmp @@ -0,0 +1,50 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.925915) (-0.012000, -0.003000, -0.008000) (1.000000) +egroup (View Data) +group (C5H10PH) +info opengroup open = True +mol (C5H10PH.pdb) def +atom 1 (15) (-359, 1626, 512) def +atom 2 (6) (794, -233, 1310) def +bond1 1 +atom 3 (6) (-329, 562, -1925) def +bond1 1 +atom 4 (6) (-829, 305, -1255) def +bond1 3 +atom 5 (6) (-210, -1698, 1086) def +bond1 2 +atom 6 (6) (2, -1595, -416) def +bond1 4 5 +atom 7 (1) (948, 2363, -20) def +bond1 1 +atom 8 (1) (561, 736, 2192) def +bond1 2 +atom 9 (1) (1554, 490, 1237) def +bond1 2 +atom 10 (1) (205, 1200, -1949) def +bond1 3 +atom 11 (1) (1355, 1182, -1577) def +bond1 3 +atom 12 (1) (45, -1254, -2592) def +bond1 4 +atom 13 (1) (-1288, -212, -1445) def +bond1 4 +atom 14 (1) (206, -1905, 1929) def +bond1 5 +atom 15 (1) (-1187, -845, 1171) def +bond1 5 +atom 16 (1) (67, -2505, -663) def +bond1 6 +atom 17 (1) (1253, -1196, -545) def +bond1 6 +egroup (C5H10PH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10PH + diff --git a/sim/src/tests/heteroatom_organics/test_C5H10PH.test b/sim/src/tests/heteroatom_organics/test_C5H10PH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10PH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C5H10PH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C5H10PH.xyzcmp new file mode 100755 index 000000000..5b73d1bb4 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10PH.xyzcmp @@ -0,0 +1,19 @@ +17 +C5H10PH.mmp +P -0.335000 1.618000 0.236000 +C 0.456000 0.349000 1.379000 +C 0.123000 0.775000 -1.384000 +C -0.425000 -0.662000 -1.419000 +C -0.128000 -1.048000 1.108000 +C 0.162000 -1.558000 -0.314000 +H 0.717000 2.582000 0.255000 +H 0.262000 0.651000 2.414000 +H 1.544000 0.330000 1.241000 +H -0.294000 1.363000 -2.209000 +H 1.213000 0.762000 -1.509000 +H -0.208000 -1.106000 -2.398000 +H -1.520000 -0.642000 -1.323000 +H 0.279000 -1.756000 1.843000 +H -1.215000 -1.033000 1.267000 +H -0.232000 -2.576000 -0.423000 +H 1.251000 -1.631000 -0.453000 diff --git a/sim/src/tests/heteroatom_organics/test_C5H10S.mmp b/sim/src/tests/heteroatom_organics/test_C5H10S.mmp new file mode 100755 index 000000000..2a82446e6 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10S.mmp @@ -0,0 +1,48 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.616154) (-0.008500, -0.031000, 0.015500) (1.000000) +egroup (View Data) +group (C5H10S) +info opengroup open = True +mol (C5H10S.pdb) def +atom 1 (16) (92, 1942, 447) def +atom 2 (6) (762, 963, 1645) def +bond1 1 +atom 3 (6) (504, 1519, -1614) def +bond1 1 +atom 4 (6) (-408, 112, -1520) def +bond1 3 +atom 5 (6) (-175, -492, 816) def +bond1 2 +atom 6 (6) (-271, -406, -563) def +bond1 4 5 +atom 7 (1) (354, 1142, 1859) def +bond1 2 +atom 8 (1) (1602, 707, 1313) def +bond1 2 +atom 9 (1) (-816, 1981, -2429) def +bond1 3 +atom 10 (1) (1496, 873, -1131) def +bond1 3 +atom 11 (1) (230, -560, -1838) def +bond1 4 +atom 12 (1) (-1548, 164, -668) def +bond1 4 +atom 13 (1) (485, -978, 1746) def +bond1 5 +atom 14 (1) (-1358, 98, 592) def +bond1 5 +atom 15 (1) (-120, -2175, -865) def +bond1 6 +atom 16 (1) (1239, -1008, -519) def +bond1 6 +egroup (C5H10S) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10S + diff --git a/sim/src/tests/heteroatom_organics/test_C5H10S.test b/sim/src/tests/heteroatom_organics/test_C5H10S.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10S.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C5H10S.xyzcmp b/sim/src/tests/heteroatom_organics/test_C5H10S.xyzcmp new file mode 100755 index 000000000..3ed3b317f --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10S.xyzcmp @@ -0,0 +1,18 @@ +16 +C5H10S.mmp +S -0.249000 2.132000 0.225000 +C 0.439000 0.859000 1.357000 +C 0.110000 1.282000 -1.366000 +C -0.421000 -0.154000 -1.418000 +C -0.133000 -0.538000 1.101000 +C 0.166000 -1.052000 -0.315000 +H 0.205000 1.204000 2.369000 +H 1.532000 0.853000 1.258000 +H -0.356000 1.903000 -2.136000 +H 1.194000 1.300000 -1.538000 +H -0.183000 -0.581000 -2.400000 +H -1.515000 -0.137000 -1.331000 +H 0.289000 -1.230000 1.844000 +H -1.218000 -0.519000 1.261000 +H -0.224000 -2.070000 -0.426000 +H 1.256000 -1.121000 -0.450000 diff --git a/sim/src/tests/heteroatom_organics/test_C5H10SiH2.mmp b/sim/src/tests/heteroatom_organics/test_C5H10SiH2.mmp new file mode 100755 index 000000000..1a8bf1dc0 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10SiH2.mmp @@ -0,0 +1,52 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.120347) (-0.031000, -0.033500, -0.004000) (1.000000) +egroup (View Data) +group (C5H10SiH2) +info opengroup open = True +mol (C5H10SiH2.pdb) def +atom 1 (14) (1421, 906, -160) def +atom 2 (6) (516, 91, 1950) def +bond1 1 +atom 3 (6) (677, 378, -1474) def +bond1 1 +atom 4 (6) (-1211, -484, 1299) def +bond1 2 +atom 5 (6) (-1135, -1054, -23) def +bond1 4 +atom 6 (6) (-934, -255, -906) def +bond1 3 5 +atom 7 (1) (2429, 1219, -156) def +bond1 1 +atom 8 (1) (377, 2053, -431) def +bond1 1 +atom 9 (1) (-273, 1346, 2679) def +bond1 2 +atom 10 (1) (935, -274, 1652) def +bond1 2 +atom 11 (1) (736, -834, -1135) def +bond1 3 +atom 12 (1) (673, 1008, -2630) def +bond1 3 +atom 13 (1) (-1447, -977, 2255) def +bond1 4 +atom 14 (1) (-2490, 101, 1540) def +bond1 4 +atom 15 (1) (-310, -2151, 621) def +bond1 5 +atom 16 (1) (-2361, -1875, 345) def +bond1 5 +atom 17 (1) (-681, -1442, -2225) def +bond1 6 +atom 18 (1) (-1627, 75, -1704) def +bond1 6 +egroup (C5H10SiH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C5H10SiH2 + diff --git a/sim/src/tests/heteroatom_organics/test_C5H10SiH2.test b/sim/src/tests/heteroatom_organics/test_C5H10SiH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10SiH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C5H10SiH2.xyzcmp b/sim/src/tests/heteroatom_organics/test_C5H10SiH2.xyzcmp new file mode 100755 index 000000000..c9d9d24bd --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C5H10SiH2.xyzcmp @@ -0,0 +1,20 @@ +18 +C5H10SiH2.mmp +Si 0.835000 1.012000 -0.020000 +C 0.202000 0.195000 1.569000 +C 0.415000 -0.225000 -1.396000 +C -1.192000 -0.437000 1.348000 +C -1.252000 -1.432000 0.173000 +C -1.008000 -0.796000 -1.209000 +H 2.298000 1.308000 0.042000 +H 0.117000 2.303000 -0.253000 +H 0.171000 0.910000 2.399000 +H 0.914000 -0.590000 1.863000 +H 1.149000 -1.043000 -1.356000 +H 0.518000 0.225000 -2.391000 +H -1.511000 -0.949000 2.266000 +H -1.934000 0.356000 1.174000 +H -0.518000 -2.236000 0.337000 +H -2.236000 -1.915000 0.171000 +H -1.210000 -1.542000 -1.989000 +H -1.749000 0.003000 -1.356000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3AlH2.mmp b/sim/src/tests/heteroatom_organics/test_CH3AlH2.mmp new file mode 100755 index 000000000..a0bd57a19 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3AlH2.mmp @@ -0,0 +1,30 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.811492, 0.512309, -0.040761, -0.278136) (2.434283) (0.061500, -0.063500, -0.049000) (1.000000) +egroup (View Data) +group (CH3AlH2) +info opengroup open = True +mol (CH3AlH2.pdb) def +atom 1 (13) (-685, 258, 441) def +atom 2 (6) (942, -364, -747) def +bond1 1 +atom 3 (1) (-812, 1265, 2100) def +bond1 1 +atom 4 (1) (-1965, -1254, 514) def +bond1 1 +atom 5 (1) (450, -1143, -1383) def +bond1 2 +atom 6 (1) (1427, -210, 253) def +bond1 2 +atom 7 (1) (341, 554, -1428) def +bond1 2 +egroup (CH3AlH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3AlH2 + diff --git a/sim/src/tests/heteroatom_organics/test_CH3AlH2.test b/sim/src/tests/heteroatom_organics/test_CH3AlH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3AlH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3AlH2.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3AlH2.xyzcmp new file mode 100755 index 000000000..5385100bf --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3AlH2.xyzcmp @@ -0,0 +1,9 @@ +7 +CH3AlH2.mmp +Al -0.641000 0.032000 0.549000 +C 0.794000 -0.267000 -0.759000 +H -0.572000 1.283000 1.532000 +H -1.890000 -0.948000 0.658000 +H 0.631000 -1.156000 -1.376000 +H 1.767000 -0.378000 -0.263000 +H 0.894000 0.594000 -1.434000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3AlHCH3.mmp b/sim/src/tests/heteroatom_organics/test_CH3AlHCH3.mmp new file mode 100755 index 000000000..8864dab47 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3AlHCH3.mmp @@ -0,0 +1,36 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.907939, 0.141477, 0.188587, 0.346504) (2.551310) (-0.505189, -0.579154, 0.249406) (1.000000) +egroup (View Data) +group (CH3AlHCH3) +info opengroup open = True +mol (CH3AlHCH3.pdb) def +atom 1 (13) (34, 550, -161) def +atom 2 (6) (1242, -424, 613) def +bond1 1 +atom 3 (6) (-1140, 1255, 101) def +bond1 1 +atom 4 (1) (1661, 2338, -396) def +bond1 1 +atom 5 (1) (666, -1793, 173) def +bond1 2 +atom 6 (1) (1791, -1287, 1068) def +bond1 2 +atom 7 (1) (1811, -815, -458) def +bond1 2 +atom 8 (1) (-2260, 413, -663) def +bond1 3 +atom 9 (1) (-1864, 2061, -1262) def +bond1 3 +atom 10 (1) (-1815, 1442, 579) def +bond1 3 +egroup (CH3AlHCH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3AlHCH3 + diff --git a/sim/src/tests/heteroatom_organics/test_CH3AlHCH3.test b/sim/src/tests/heteroatom_organics/test_CH3AlHCH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3AlHCH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3AlHCH3.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3AlHCH3.xyzcmp new file mode 100755 index 000000000..890519ff5 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3AlHCH3.xyzcmp @@ -0,0 +1,12 @@ +10 +CH3AlHCH3.mmp +Al 0.466000 0.700000 -0.224000 +C 1.197000 -1.113000 0.012000 +C -1.457000 1.113000 -0.266000 +H 1.490000 1.920000 -0.356000 +H 0.432000 -1.895000 -0.029000 +H 1.716000 -1.210000 0.975000 +H 1.947000 -1.338000 -0.758000 +H -2.108000 0.241000 -0.397000 +H -1.697000 1.837000 -1.054000 +H -1.750000 1.590000 0.680000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3BH2.mmp b/sim/src/tests/heteroatom_organics/test_CH3BH2.mmp new file mode 100755 index 000000000..17d7150e2 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3BH2.mmp @@ -0,0 +1,30 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.767601, 0.562473, -0.008655, -0.307144) (2.246507) (0.021500, -0.006000, -0.011500) (1.000000) +egroup (View Data) +group (CH3BH2) +info opengroup open = True +mol (CH3BH2.pdb) def +atom 1 (5) (-367, -130, 918) def +atom 2 (6) (544, 37, -178) def +bond1 1 +atom 3 (1) (-1027, 1457, 484) def +bond1 1 +atom 4 (1) (-1402, -335, 1245) def +bond1 1 +atom 5 (1) (427, -1114, -1325) def +bond1 2 +atom 6 (1) (1040, -502, -518) def +bond1 2 +atom 7 (1) (361, 536, -1358) def +bond1 2 +egroup (CH3BH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3BH2 + diff --git a/sim/src/tests/heteroatom_organics/test_CH3BH2.test b/sim/src/tests/heteroatom_organics/test_CH3BH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3BH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3BH2.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3BH2.xyzcmp new file mode 100755 index 000000000..cda6b62e2 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3BH2.xyzcmp @@ -0,0 +1,9 @@ +7 +CH3BH2.mmp +B -0.597000 0.097000 0.490000 +C 0.536000 -0.153000 -0.555000 +H -0.527000 1.044000 1.220000 +H -1.546000 -0.624000 0.598000 +H 0.415000 -1.032000 -1.193000 +H 1.503000 -0.227000 -0.034000 +H 0.644000 0.735000 -1.197000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3BHCH3.mmp b/sim/src/tests/heteroatom_organics/test_CH3BHCH3.mmp new file mode 100755 index 000000000..a29a44ccf --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3BHCH3.mmp @@ -0,0 +1,36 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.773200, -0.146735, -0.527464, 0.320018) (2.850967) (0.007500, -0.024500, 0.016000) (1.000000) +egroup (View Data) +group (CH3BHCH3) +info opengroup open = True +mol (CH3BHCH3.pdb) def +atom 1 (5) (535, 439, 462) def +atom 2 (6) (170, -465, 1589) def +bond1 1 +atom 3 (6) (-27, -489, -1941) def +bond1 1 +atom 4 (1) (1446, 840, -797) def +bond1 1 +atom 5 (1) (-506, -1378, 1417) def +bond1 2 +atom 6 (1) (-208, 840, 1967) def +bond1 2 +atom 7 (1) (722, -485, 1970) def +bond1 2 +atom 8 (1) (-1046, -1229, -747) def +bond1 3 +atom 9 (1) (456, -1011, -1461) def +bond1 3 +atom 10 (1) (-492, 496, -1711) def +bond1 3 +egroup (CH3BHCH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3BHCH3 + diff --git a/sim/src/tests/heteroatom_organics/test_CH3BHCH3.test b/sim/src/tests/heteroatom_organics/test_CH3BHCH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3BHCH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3BHCH3.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3BHCH3.xyzcmp new file mode 100755 index 000000000..310b7c0bf --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3BHCH3.xyzcmp @@ -0,0 +1,12 @@ +10 +CH3BHCH3.mmp +B 0.341000 0.284000 -0.027000 +C -0.020000 -0.221000 1.414000 +C -0.334000 -0.234000 -1.345000 +H 1.198000 1.122000 -0.125000 +H -0.706000 -1.073000 1.454000 +H -0.494000 0.618000 1.950000 +H 0.878000 -0.452000 2.001000 +H -1.213000 -0.871000 -1.199000 +H 0.421000 -0.831000 -1.884000 +H -0.587000 0.582000 -2.033000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3NH2.mmp b/sim/src/tests/heteroatom_organics/test_CH3NH2.mmp new file mode 100755 index 000000000..22dd8cfca --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3NH2.mmp @@ -0,0 +1,30 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.637813, -0.591353, 0.044708, 0.491424) (2.500926) (-0.248000, -0.015000, -0.008000) (1.000000) +egroup (View Data) +group (CH3NH2) +info opengroup open = True +mol (CH3NH2.pdb) def +atom 1 (7) (-844, 94, 327) def +atom 2 (6) (654, -318, -673) def +bond1 1 +atom 3 (1) (-609, 556, 1004) def +bond1 1 +atom 4 (1) (-621, -304, 912) def +bond1 1 +atom 5 (1) (179, -539, -1008) def +bond1 2 +atom 6 (1) (1340, -389, 13) def +bond1 2 +atom 7 (1) (254, 901, -960) def +bond1 2 +egroup (CH3NH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3NH2 + diff --git a/sim/src/tests/heteroatom_organics/test_CH3NH2.test b/sim/src/tests/heteroatom_organics/test_CH3NH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3NH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3NH2.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3NH2.xyzcmp new file mode 100755 index 000000000..6de05e976 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3NH2.xyzcmp @@ -0,0 +1,9 @@ +7 +CH3NH2.mmp +N -0.771000 0.163000 0.499000 +C 0.324000 -0.068000 -0.446000 +H -0.569000 0.986000 1.062000 +H -0.827000 -0.614000 1.154000 +H 0.101000 -0.956000 -1.047000 +H 1.323000 -0.209000 0.000000 +H 0.388000 0.779000 -1.138000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3NHCH3.mmp b/sim/src/tests/heteroatom_organics/test_CH3NHCH3.mmp new file mode 100755 index 000000000..b0db0156b --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3NHCH3.mmp @@ -0,0 +1,36 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.737500, -0.147630, -0.573982, 0.323796) (2.411280) (-0.011000, 0.020000, 0.006000) (1.000000) +egroup (View Data) +group (CH3NHCH3) +info opengroup open = True +mol (CH3NHCH3.pdb) def +atom 1 (7) (354, 1444, 98) def +atom 2 (6) (106, 313, 1613) def +bond1 1 +atom 3 (6) (8, 612, -1291) def +bond1 1 +atom 4 (1) (1210, 488, -267) def +bond1 1 +atom 5 (1) (-5, -1272, 1181) def +bond1 2 +atom 6 (1) (-1150, 481, 1643) def +bond1 2 +atom 7 (1) (847, 550, 2214) def +bond1 2 +atom 8 (1) (-1534, 888, -1439) def +bond1 3 +atom 9 (1) (-587, -200, -1205) def +bond1 3 +atom 10 (1) (143, 1047, -1961) def +bond1 3 +egroup (CH3NHCH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3NHCH3 + diff --git a/sim/src/tests/heteroatom_organics/test_CH3NHCH3.test b/sim/src/tests/heteroatom_organics/test_CH3NHCH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3NHCH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3NHCH3.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3NHCH3.xyzcmp new file mode 100755 index 000000000..faf2f7935 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3NHCH3.xyzcmp @@ -0,0 +1,12 @@ +10 +CH3NHCH3.mmp +N 0.422000 0.869000 -0.001000 +C 0.090000 0.172000 1.235000 +C -0.333000 0.378000 -1.146000 +H 1.417000 0.766000 -0.184000 +H 0.178000 -0.929000 1.179000 +H -0.945000 0.403000 1.517000 +H 0.737000 0.526000 2.044000 +H -1.395000 0.612000 -1.004000 +H -0.257000 -0.713000 -1.313000 +H -0.001000 0.889000 -2.056000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3OCH3.mmp b/sim/src/tests/heteroatom_organics/test_CH3OCH3.mmp new file mode 100755 index 000000000..88c83f7cc --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3OCH3.mmp @@ -0,0 +1,34 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.699515, -0.164707, -0.613943, 0.326535) (2.315082) (0.005000, 0.002500, -0.004000) (1.000000) +egroup (View Data) +group (CH3OCH3) +info opengroup open = True +mol (CH3OCH3.pdb) def +atom 1 (8) (752, 822, 53) def +atom 2 (6) (227, -14, 829) def +bond1 1 +atom 3 (6) (1, 658, -1362) def +bond1 1 +atom 4 (1) (1127, -933, 1401) def +bond1 2 +atom 5 (1) (-738, 218, 1640) def +bond1 2 +atom 6 (1) (1354, 798, 1773) def +bond1 2 +atom 7 (1) (-1480, 121, -673) def +bond1 3 +atom 8 (1) (307, -653, -1288) def +bond1 3 +atom 9 (1) (832, 907, -2114) def +bond1 3 +egroup (CH3OCH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3OCH3 + diff --git a/sim/src/tests/heteroatom_organics/test_CH3OCH3.test b/sim/src/tests/heteroatom_organics/test_CH3OCH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3OCH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3OCH3.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3OCH3.xyzcmp new file mode 100755 index 000000000..44772eb73 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3OCH3.xyzcmp @@ -0,0 +1,11 @@ +9 +CH3OCH3.mmp +O 0.769000 0.819000 -0.003000 +C 0.421000 0.186000 1.208000 +C -0.010000 0.365000 -1.088000 +H 0.561000 -0.906000 1.157000 +H -0.627000 0.383000 1.490000 +H 1.073000 0.589000 1.987000 +H -1.083000 0.569000 -0.934000 +H 0.110000 -0.718000 -1.256000 +H 0.326000 0.901000 -1.979000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3OH.mmp b/sim/src/tests/heteroatom_organics/test_CH3OH.mmp new file mode 100755 index 000000000..841b2fc82 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3OH.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.891717, 0.122415, 0.201627, 0.386267) (2.102428) (-0.130000, -0.032000, -0.000000) (1.000000) +egroup (View Data) +group (CH3OH) +info opengroup open = True +mol (CH3OH.pdb) def +atom 1 (8) (-742, 165, -43) def +atom 2 (6) (633, -647, 212) def +bond1 1 +atom 3 (1) (-459, 1844, 41) def +bond1 1 +atom 4 (1) (236, -1657, 119) def +bond1 2 +atom 5 (1) (1079, -215, 728) def +bond1 2 +atom 6 (1) (890, -159, -1027) def +bond1 2 +egroup (CH3OH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3OH + diff --git a/sim/src/tests/heteroatom_organics/test_CH3OH.test b/sim/src/tests/heteroatom_organics/test_CH3OH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3OH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3OH.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3OH.xyzcmp new file mode 100755 index 000000000..1284dacae --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3OH.xyzcmp @@ -0,0 +1,8 @@ +6 +CH3OH.mmp +O -0.777000 0.475000 0.000000 +C 0.416000 -0.292000 0.000000 +H -0.531000 1.408000 0.000000 +H 0.118000 -1.344000 0.000000 +H 1.037000 -0.116000 0.892000 +H 1.037000 -0.116000 -0.892000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3PH2.mmp b/sim/src/tests/heteroatom_organics/test_CH3PH2.mmp new file mode 100755 index 000000000..929049e0d --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3PH2.mmp @@ -0,0 +1,30 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.727783, -0.503600, -0.083408, 0.457998) (2.284471) (0.040500, -0.025500, -0.018000) (1.000000) +egroup (View Data) +group (CH3PH2) +info opengroup open = True +mol (CH3PH2.pdb) def +atom 1 (15) (-1254, 757, -204) def +atom 2 (6) (96, -300, -544) def +bond1 1 +atom 3 (1) (-756, 1264, 1332) def +bond1 1 +atom 4 (1) (-556, -1194, 1839) def +bond1 1 +atom 5 (1) (-313, -639, -1278) def +bond1 2 +atom 6 (1) (1387, -618, -193) def +bond1 2 +atom 7 (1) (-293, 968, -1189) def +bond1 2 +egroup (CH3PH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3PH2 + diff --git a/sim/src/tests/heteroatom_organics/test_CH3PH2.test b/sim/src/tests/heteroatom_organics/test_CH3PH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3PH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3PH2.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3PH2.xyzcmp new file mode 100755 index 000000000..549b3139c --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3PH2.xyzcmp @@ -0,0 +1,9 @@ +7 +CH3PH2.mmp +P -1.231000 0.083000 0.523000 +C 0.151000 -0.207000 -0.713000 +H -0.688000 1.243000 1.148000 +H -0.755000 -0.790000 1.545000 +H 0.015000 -1.192000 -1.167000 +H 1.150000 -0.153000 -0.275000 +H 0.071000 0.538000 -1.509000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3PHCH3.mmp b/sim/src/tests/heteroatom_organics/test_CH3PHCH3.mmp new file mode 100755 index 000000000..78b0bfabc --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3PHCH3.mmp @@ -0,0 +1,36 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.116988, -0.294472, -0.941822, -0.112123) (2.546033) (0.007500, -0.002500, -0.005500) (1.000000) +egroup (View Data) +group (CH3PHCH3) +info opengroup open = True +mol (CH3PHCH3.pdb) def +atom 1 (15) (1197, 1188, -451) def +atom 2 (6) (567, -986, -999) def +bond1 1 +atom 3 (6) (-500, 551, 1375) def +bond1 1 +atom 4 (1) (-388, 1669, -1130) def +bond1 1 +atom 5 (1) (-302, -1334, -1110) def +bond1 2 +atom 6 (1) (1414, -1300, -441) def +bond1 2 +atom 7 (1) (1995, -1110, -1600) def +bond1 2 +atom 8 (1) (-708, -647, 1776) def +bond1 3 +atom 9 (1) (-1138, 120, 432) def +bond1 3 +atom 10 (1) (-1179, 1594, 1111) def +bond1 3 +egroup (CH3PHCH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3PHCH3 + diff --git a/sim/src/tests/heteroatom_organics/test_CH3PHCH3.test b/sim/src/tests/heteroatom_organics/test_CH3PHCH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3PHCH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3PHCH3.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3PHCH3.xyzcmp new file mode 100755 index 000000000..75962d21a --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3PHCH3.xyzcmp @@ -0,0 +1,12 @@ +10 +CH3PHCH3.mmp +P 0.781000 0.778000 0.038000 +C 0.843000 -0.778000 -0.999000 +C -0.774000 0.463000 1.029000 +H 0.191000 1.622000 -0.949000 +H -0.114000 -1.022000 -1.469000 +H 1.150000 -1.617000 -0.368000 +H 1.601000 -0.658000 -1.780000 +H -0.564000 -0.294000 1.791000 +H -1.616000 0.122000 0.418000 +H -1.063000 1.382000 1.548000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3SCH3.mmp b/sim/src/tests/heteroatom_organics/test_CH3SCH3.mmp new file mode 100755 index 000000000..e6825c4e0 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3SCH3.mmp @@ -0,0 +1,34 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.936542, 0.105123, 0.077555, 0.325305) (2.398905) (-0.011000, -0.007500, 0.006000) (1.000000) +egroup (View Data) +group (CH3SCH3) +info opengroup open = True +mol (CH3SCH3.pdb) def +atom 1 (16) (159, 416, 363) def +atom 2 (6) (796, -826, -134) def +bond1 1 +atom 3 (6) (-1772, 739, 18) def +bond1 1 +atom 4 (1) (362, -1878, -841) def +bond1 2 +atom 5 (1) (431, -1863, 1256) def +bond1 2 +atom 6 (1) (1441, -1171, 56) def +bond1 2 +atom 7 (1) (-1586, -222, 893) def +bond1 3 +atom 8 (1) (-1397, 520, -1362) def +bond1 3 +atom 9 (1) (-2165, 1657, 282) def +bond1 3 +egroup (CH3SCH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3SCH3 + diff --git a/sim/src/tests/heteroatom_organics/test_CH3SCH3.test b/sim/src/tests/heteroatom_organics/test_CH3SCH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3SCH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3SCH3.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3SCH3.xyzcmp new file mode 100755 index 000000000..7799cbb0c --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3SCH3.xyzcmp @@ -0,0 +1,11 @@ +9 +CH3SCH3.mmp +S 0.374000 0.689000 0.032000 +C 0.769000 -1.093000 0.035000 +C -1.450000 0.591000 0.032000 +H 0.450000 -1.573000 -0.895000 +H 0.302000 -1.596000 0.887000 +H 1.854000 -1.186000 0.125000 +H -1.811000 0.006000 0.883000 +H -1.824000 0.155000 -0.899000 +H -1.832000 1.611000 0.121000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3SH.mmp b/sim/src/tests/heteroatom_organics/test_CH3SH.mmp new file mode 100755 index 000000000..fa5c10847 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3SH.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.939059, -0.125985, -0.204523, 0.245898) (2.187629) (0.030500, -0.013500, -0.006000) (1.000000) +egroup (View Data) +group (CH3SH) +info opengroup open = True +mol (CH3SH.pdb) def +atom 1 (16) (-812, -388, 615) def +atom 2 (6) (-104, -141, -567) def +bond1 1 +atom 3 (1) (-994, 1221, 932) def +bond1 1 +atom 4 (1) (-95, -944, -924) def +bond1 2 +atom 5 (1) (1429, -370, 153) def +bond1 2 +atom 6 (1) (826, 580, -811) def +bond1 2 +egroup (CH3SH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3SH + diff --git a/sim/src/tests/heteroatom_organics/test_CH3SH.test b/sim/src/tests/heteroatom_organics/test_CH3SH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3SH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3SH.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3SH.xyzcmp new file mode 100755 index 000000000..1ab3ae0fe --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3SH.xyzcmp @@ -0,0 +1,8 @@ +6 +CH3SH.mmp +S -1.182000 0.052000 0.690000 +C 0.163000 -0.229000 -0.530000 +H -0.665000 1.164000 1.253000 +H -0.106000 -1.137000 -1.073000 +H 1.121000 -0.387000 -0.033000 +H 0.236000 0.596000 -1.241000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3SiH2CH3.mmp b/sim/src/tests/heteroatom_organics/test_CH3SiH2CH3.mmp new file mode 100755 index 000000000..8a01f807d --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3SiH2CH3.mmp @@ -0,0 +1,38 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.922723, 0.212604, 0.149382, 0.284721) (2.576024) (0.012000, 0.012500, 0.027500) (1.000000) +egroup (View Data) +group (CH3SiH2CH3) +info opengroup open = True +mol (CH3SiH2CH3.pdb) def +atom 1 (14) (225, 768, -146) def +atom 2 (6) (953, -685, 185) def +bond1 1 +atom 3 (6) (-1489, 860, 522) def +bond1 1 +atom 4 (1) (505, 1458, -1123) def +bond1 1 +atom 5 (1) (482, 1374, 1003) def +bond1 1 +atom 6 (1) (713, -1868, -676) def +bond1 2 +atom 7 (1) (831, -1188, 1004) def +bond1 2 +atom 8 (1) (2354, -1232, -112) def +bond1 2 +atom 9 (1) (-1940, -194, -1342) def +bond1 3 +atom 10 (1) (-2013, 1678, 17) def +bond1 3 +atom 11 (1) (-2262, 353, 887) def +bond1 3 +egroup (CH3SiH2CH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3SiH2CH3 + diff --git a/sim/src/tests/heteroatom_organics/test_CH3SiH2CH3.test b/sim/src/tests/heteroatom_organics/test_CH3SiH2CH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3SiH2CH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3SiH2CH3.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3SiH2CH3.xyzcmp new file mode 100755 index 000000000..ba4dfe0c0 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3SiH2CH3.xyzcmp @@ -0,0 +1,13 @@ +11 +CH3SiH2CH3.mmp +Si 0.289000 0.657000 0.013000 +C 0.933000 -1.103000 0.287000 +C -1.599000 0.732000 0.090000 +H 0.755000 1.154000 -1.317000 +H 0.867000 1.564000 1.051000 +H 0.553000 -1.783000 -0.484000 +H 0.625000 -1.493000 1.262000 +H 2.025000 -1.123000 0.244000 +H -2.050000 0.119000 -0.697000 +H -1.959000 1.758000 -0.038000 +H -1.968000 0.365000 1.053000 diff --git a/sim/src/tests/heteroatom_organics/test_CH3SiH3.mmp b/sim/src/tests/heteroatom_organics/test_CH3SiH3.mmp new file mode 100755 index 000000000..e8a8a53ea --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3SiH3.mmp @@ -0,0 +1,32 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.863755) (0.017000, -0.019000, -0.014000) (1.000000) +egroup (View Data) +group (CH3SiH3) +info opengroup open = True +mol (CH3SiH3.pdb) def +atom 1 (14) (-293, -316, 376) def +atom 2 (6) (633, -360, -618) def +bond1 1 +atom 3 (1) (-166, 1472, 1389) def +bond1 1 +atom 4 (1) (-338, -784, 871) def +bond1 1 +atom 5 (1) (-1192, -503, -310) def +bond1 1 +atom 6 (1) (1000, -1249, -909) def +bond1 2 +atom 7 (1) (2309, 228, -432) def +bond1 2 +atom 8 (1) (413, 150, -1528) def +bond1 2 +egroup (CH3SiH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH3SiH3 + diff --git a/sim/src/tests/heteroatom_organics/test_CH3SiH3.test b/sim/src/tests/heteroatom_organics/test_CH3SiH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3SiH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_CH3SiH3.xyzcmp b/sim/src/tests/heteroatom_organics/test_CH3SiH3.xyzcmp new file mode 100755 index 000000000..d518a468d --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_CH3SiH3.xyzcmp @@ -0,0 +1,10 @@ +8 +CH3SiH3.mmp +Si -0.521000 -0.010000 0.511000 +C 0.844000 -0.305000 -0.763000 +H -0.371000 1.331000 1.146000 +H -0.472000 -1.040000 1.588000 +H -1.866000 -0.072000 -0.129000 +H 0.742000 -1.293000 -1.223000 +H 1.832000 -0.249000 -0.297000 +H 0.801000 0.444000 -1.560000 diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_AlH2.mmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_AlH2.mmp new file mode 100755 index 000000000..cd9ca351c --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_AlH2.mmp @@ -0,0 +1,48 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.758015) (0.027000, 0.031000, -0.000000) (1.000000) +egroup (View Data) +group (C_CH3_3_AlH2) +info opengroup open = True +mol (C_CH3_3_AlH2.pdb) cpk +atom 1 (6) (-1025, 97, -120) def +atom 2 (6) (-1296, 984, 1153) def +bond1 1 +atom 3 (6) (-842, 585, -1332) def +bond1 1 +atom 4 (6) (-892, -832, -80) def +bond1 1 +atom 5 (13) (1620, 110, -14) def +bond1 1 +atom 6 (1) (-563, -168, 1892) def +bond1 2 +atom 7 (1) (-843, 366, -2222) def +bond1 3 +atom 8 (1) (-701, 1655, 1104) def +bond1 2 +atom 9 (1) (-291, 2007, -1169) def +bond1 3 +atom 10 (1) (-2222, 858, 1455) def +bond1 2 +atom 11 (1) (-2242, 1173, -1591) def +bond1 3 +atom 12 (1) (-1082, -1854, 1401) def +bond1 4 +atom 13 (1) (-801, -1490, -790) def +bond1 4 +atom 14 (1) (-1836, -1689, -459) def +bond1 4 +atom 15 (1) (2032, 103, 982) def +bond1 5 +atom 16 (1) (2485, 113, -1245) def +bond1 5 +egroup (C_CH3_3_AlH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_AlH2 + diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_AlH2.test b/sim/src/tests/heteroatom_organics/test_C_CH3_3_AlH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_AlH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_AlH2.xyzcmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_AlH2.xyzcmp new file mode 100755 index 000000000..09da08004 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_AlH2.xyzcmp @@ -0,0 +1,18 @@ +16 +C_CH3_3_AlH2.mmp +C -0.621000 0.091000 0.000000 +C -1.144000 0.812000 1.258000 +C -1.144000 0.812000 -1.258000 +C -1.143000 -1.364000 0.000000 +Al 1.377000 0.066000 0.000000 +H -0.801000 0.337000 2.186000 +H -0.801000 0.337000 -2.186000 +H -0.827000 1.862000 1.294000 +H -0.827000 1.862000 -1.294000 +H -2.245000 0.811000 1.282000 +H -2.245000 0.811000 -1.282000 +H -0.821000 -1.924000 0.888000 +H -0.821000 -1.924000 -0.888000 +H -2.245000 -1.377000 0.000000 +H 2.191000 0.036000 1.370000 +H 2.191000 0.036000 -1.370000 diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_BH2.mmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_BH2.mmp new file mode 100755 index 000000000..6f4104268 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_BH2.mmp @@ -0,0 +1,48 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.573111) (0.266500, -0.010500, -0.000000) (1.000000) +egroup (View Data) +group (C_CH3_3_BH2) +info opengroup open = True +mol (C_CH3_3_BH2.pdb) cpk +atom 1 (6) (-970, 236, -33) def +atom 2 (6) (-1302, 854, 1297) def +bond1 1 +atom 3 (6) (-1053, 1005, -1493) def +bond1 1 +atom 4 (6) (-743, -1344, -121) def +bond1 1 +atom 5 (5) (913, 80, -18) def +bond1 1 +atom 6 (1) (-368, 327, 2187) def +bond1 2 +atom 7 (1) (-206, 244, -1887) def +bond1 3 +atom 8 (1) (-485, 1613, 813) def +bond1 2 +atom 9 (1) (-703, 1846, -1417) def +bond1 3 +atom 10 (1) (-1981, 475, 1213) def +bond1 2 +atom 11 (1) (-2176, 925, -1181) def +bond1 3 +atom 12 (1) (-588, -2012, 1062) def +bond1 4 +atom 13 (1) (-753, -2260, -503) def +bond1 4 +atom 14 (1) (-2509, -1435, -849) def +bond1 4 +atom 15 (1) (1514, 179, 1040) def +bond1 5 +atom 16 (1) (2078, -73, -1107) def +bond1 5 +egroup (C_CH3_3_BH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_BH2 + diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_BH2.test b/sim/src/tests/heteroatom_organics/test_C_CH3_3_BH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_BH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_BH2.xyzcmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_BH2.xyzcmp new file mode 100755 index 000000000..e6f8972d9 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_BH2.xyzcmp @@ -0,0 +1,18 @@ +16 +C_CH3_3_BH2.mmp +C -0.518000 0.159000 0.000000 +C -1.077000 0.844000 1.261000 +C -1.077000 0.844000 -1.261000 +C -0.959000 -1.342000 0.000000 +B 1.041000 -0.003000 0.000000 +H -0.712000 0.370000 2.180000 +H -0.712000 0.370000 -2.180000 +H -0.787000 1.900000 1.303000 +H -0.787000 1.900000 -1.303000 +H -2.175000 0.807000 1.281000 +H -2.175000 0.807000 -1.281000 +H -0.609000 -1.879000 0.889000 +H -0.609000 -1.879000 -0.889000 +H -2.056000 -1.386000 0.000000 +H 1.642000 -0.114000 1.030000 +H 1.642000 -0.114000 -1.030000 diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_NH2.mmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_NH2.mmp new file mode 100755 index 000000000..44343c0c8 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_NH2.mmp @@ -0,0 +1,48 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.468267) (0.378500, -0.008000, -0.000000) (1.000000) +egroup (View Data) +group (C_CH3_3_NH2) +info opengroup open = True +mol (C_CH3_3_NH2.pdb) cpk +atom 1 (6) (-941, 417, 150) def +atom 2 (6) (-605, 1057, 1259) def +bond1 1 +atom 3 (6) (-1157, 1140, -1128) def +bond1 1 +atom 4 (6) (-1197, -1515, -130) def +bond1 1 +atom 5 (7) (606, 165, 66) def +bond1 1 +atom 6 (1) (-585, 143, 2587) def +bond1 2 +atom 7 (1) (-870, 137, -2045) def +bond1 3 +atom 8 (1) (-817, 2066, 1652) def +bond1 2 +atom 9 (1) (-702, 1954, -1018) def +bond1 3 +atom 10 (1) (-2434, 1503, 1128) def +bond1 2 +atom 11 (1) (-1886, 932, -560) def +bond1 3 +atom 12 (1) (-377, -1717, 706) def +bond1 4 +atom 13 (1) (-353, -1700, -1412) def +bond1 4 +atom 14 (1) (-2094, -1365, 714) def +bond1 4 +atom 15 (1) (1197, -169, 1249) def +bond1 5 +atom 16 (1) (936, 183, -1035) def +bond1 5 +egroup (C_CH3_3_NH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_NH2 + diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_NH2.test b/sim/src/tests/heteroatom_organics/test_C_CH3_3_NH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_NH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_NH2.xyzcmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_NH2.xyzcmp new file mode 100755 index 000000000..b111a8e5e --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_NH2.xyzcmp @@ -0,0 +1,18 @@ +16 +C_CH3_3_NH2.mmp +C -0.494000 0.132000 0.000000 +C -1.027000 0.838000 1.256000 +C -1.027000 0.838000 -1.256000 +C -0.945000 -1.346000 0.000000 +N 0.975000 0.281000 0.000000 +H -0.652000 0.362000 2.171000 +H -0.652000 0.362000 -2.171000 +H -0.709000 1.885000 1.271000 +H -0.709000 1.885000 -1.271000 +H -2.121000 0.804000 1.294000 +H -2.121000 0.804000 -1.294000 +H -0.568000 -1.869000 0.887000 +H -0.568000 -1.869000 -0.887000 +H -2.037000 -1.430000 0.000000 +H 1.364000 -0.196000 0.813000 +H 1.364000 -0.196000 -0.813000 diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_OH.mmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_OH.mmp new file mode 100755 index 000000000..5922d3393 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_OH.mmp @@ -0,0 +1,46 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.451982) (0.495000, 0.077500, -0.000000) (1.000000) +egroup (View Data) +group (C_CH3_3_OH) +info opengroup open = True +mol (C_CH3_3_OH.pdb) cpk +atom 1 (6) (-479, -79, -229) def +atom 2 (6) (-639, 961, 1230) def +bond1 1 +atom 3 (6) (-756, 661, -1534) def +bond1 1 +atom 4 (6) (-920, -1023, 136) def +bond1 1 +atom 5 (8) (1111, 104, 290) def +bond1 1 +atom 6 (1) (-580, 80, 2447) def +bond1 2 +atom 7 (1) (-592, 130, -2127) def +bond1 3 +atom 8 (1) (-495, 1450, 1033) def +bond1 2 +atom 9 (1) (-494, 1830, -1349) def +bond1 3 +atom 10 (1) (-1939, 965, 1264) def +bond1 2 +atom 11 (1) (-2172, 951, -1222) def +bond1 3 +atom 12 (1) (-598, -2341, 461) def +bond1 4 +atom 13 (1) (-839, -2041, -714) def +bond1 4 +atom 14 (1) (-2220, -717, 3) def +bond1 4 +atom 15 (1) (1213, 700, -67) def +bond1 5 +egroup (C_CH3_3_OH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_OH + diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_OH.test b/sim/src/tests/heteroatom_organics/test_C_CH3_3_OH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_OH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_OH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_OH.xyzcmp new file mode 100755 index 000000000..f05660f06 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_OH.xyzcmp @@ -0,0 +1,17 @@ +15 +C_CH3_3_OH.mmp +C -0.579000 0.019000 0.000000 +C -1.008000 0.776000 1.265000 +C -1.008000 0.776000 -1.265000 +C -1.135000 -1.407000 0.000000 +O 0.851000 -0.144000 0.000000 +H -0.651000 0.256000 2.159000 +H -0.651000 0.256000 -2.159000 +H -0.594000 1.792000 1.274000 +H -0.594000 1.792000 -1.274000 +H -2.100000 0.864000 1.330000 +H -2.100000 0.864000 -1.330000 +H -0.788000 -1.947000 0.886000 +H -0.788000 -1.947000 -0.886000 +H -2.229000 -1.404000 0.000000 +H 1.239000 0.742000 0.000000 diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_PH2.mmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_PH2.mmp new file mode 100755 index 000000000..5d768efca --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_PH2.mmp @@ -0,0 +1,48 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.584792) (0.284000, -0.048500, -0.000000) (1.000000) +egroup (View Data) +group (C_CH3_3_PH2) +info opengroup open = True +mol (C_CH3_3_PH2.pdb) cpk +atom 1 (6) (-1160, 195, 393) def +atom 2 (6) (-1024, 1284, 1503) def +bond1 1 +atom 3 (6) (-1204, 516, -1264) def +bond1 1 +atom 4 (6) (-1215, -1400, 40) def +bond1 1 +atom 5 (15) (1518, 624, -228) def +bond1 1 +atom 6 (1) (-136, 350, 1872) def +bond1 2 +atom 7 (1) (-934, 178, -2222) def +bond1 3 +atom 8 (1) (-701, 1741, 957) def +bond1 2 +atom 9 (1) (-593, 1824, -1065) def +bond1 3 +atom 10 (1) (-2311, 614, 1126) def +bond1 2 +atom 11 (1) (-2088, 605, -1498) def +bond1 3 +atom 12 (1) (-131, -1494, 140) def +bond1 4 +atom 13 (1) (-383, -2275, -1080) def +bond1 4 +atom 14 (1) (-1717, -1413, 136) def +bond1 4 +atom 15 (1) (1728, -152, 1087) def +bond1 5 +atom 16 (1) (1189, -695, -1280) def +bond1 5 +egroup (C_CH3_3_PH2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_PH2 + diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_PH2.test b/sim/src/tests/heteroatom_organics/test_C_CH3_3_PH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_PH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_PH2.xyzcmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_PH2.xyzcmp new file mode 100755 index 000000000..5addc697e --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_PH2.xyzcmp @@ -0,0 +1,18 @@ +16 +C_CH3_3_PH2.mmp +C -0.561000 0.175000 0.000000 +C -1.131000 0.860000 1.257000 +C -1.131000 0.860000 -1.257000 +C -0.930000 -1.318000 0.000000 +P 1.318000 0.474000 0.000000 +H -0.754000 0.403000 2.180000 +H -0.754000 0.403000 -2.180000 +H -0.876000 1.926000 1.286000 +H -0.876000 1.926000 -1.286000 +H -2.225000 0.777000 1.272000 +H -2.225000 0.777000 -1.272000 +H -0.538000 -1.829000 0.886000 +H -0.538000 -1.829000 -0.886000 +H -2.021000 -1.434000 0.000000 +H 1.657000 -0.443000 1.039000 +H 1.657000 -0.443000 -1.039000 diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_SH.mmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_SH.mmp new file mode 100755 index 000000000..fc85bb3b1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_SH.mmp @@ -0,0 +1,46 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.589229) (0.367500, 0.116000, -0.000000) (1.000000) +egroup (View Data) +group (C_CH3_3_SH) +info opengroup open = True +mol (C_CH3_3_SH.pdb) cpk +atom 1 (6) (-198, 58, 131) def +atom 2 (6) (-1191, 963, 1593) def +bond1 1 +atom 3 (6) (-1069, 1272, -1011) def +bond1 1 +atom 4 (6) (-987, -1486, 603) def +bond1 1 +atom 5 (16) (1182, -496, 133) def +bond1 1 +atom 6 (1) (-431, 621, 2215) def +bond1 2 +atom 7 (1) (-119, 112, -2405) def +bond1 3 +atom 8 (1) (-590, 1283, 1959) def +bond1 2 +atom 9 (1) (-648, 2236, -1658) def +bond1 3 +atom 10 (1) (-2190, 1101, 857) def +bond1 2 +atom 11 (1) (-2235, 637, -1212) def +bond1 3 +atom 12 (1) (-680, -1524, 991) def +bond1 4 +atom 13 (1) (-1381, -2234, -591) def +bond1 4 +atom 14 (1) (-2317, -925, -176) def +bond1 4 +atom 15 (1) (1498, 753, -213) def +bond1 5 +egroup (C_CH3_3_SH) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_SH + diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_SH.test b/sim/src/tests/heteroatom_organics/test_C_CH3_3_SH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_SH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_SH.xyzcmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_SH.xyzcmp new file mode 100755 index 000000000..2bebe453f --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_SH.xyzcmp @@ -0,0 +1,17 @@ +15 +C_CH3_3_SH.mmp +C -0.622000 -0.011000 0.000000 +C -1.029000 0.764000 1.260000 +C -1.029000 0.764000 -1.260000 +C -1.242000 -1.415000 0.000000 +S 1.231000 -0.302000 0.000000 +H -0.746000 0.229000 2.172000 +H -0.746000 0.229000 -2.172000 +H -0.552000 1.750000 1.290000 +H -0.552000 1.750000 -1.290000 +H -2.115000 0.918000 1.275000 +H -2.115000 0.918000 -1.275000 +H -0.943000 -1.982000 0.888000 +H -0.943000 -1.982000 -0.888000 +H -2.336000 -1.342000 0.000000 +H 1.601000 0.996000 0.000000 diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_SiH3.mmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_SiH3.mmp new file mode 100755 index 000000000..d559065c3 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_SiH3.mmp @@ -0,0 +1,50 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.643917) (0.119000, -0.000000, -0.243000) (1.000000) +egroup (View Data) +group (C_CH3_3_SiH3) +info opengroup open = True +mol (C_CH3_3_SiH3.pdb) cpk +atom 1 (6) (-292, -140, -81) def +atom 2 (6) (792, -1441, -588) def +bond1 1 +atom 3 (6) (1029, 1036, -739) def +bond1 1 +atom 4 (6) (-1907, 18, -447) def +bond1 1 +atom 5 (14) (220, 300, 2052) def +bond1 1 +atom 6 (1) (1722, -1513, -226) def +bond1 2 +atom 7 (1) (-126, 2148, -385) def +bond1 3 +atom 8 (1) (-2364, 812, -193) def +bond1 4 +atom 9 (1) (255, -2367, -327) def +bond1 2 +atom 10 (1) (2012, 1374, -85) def +bond1 3 +atom 11 (1) (-2579, -1519, -269) def +bond1 4 +atom 12 (1) (415, -1340, -1473) def +bond1 2 +atom 13 (1) (647, 1331, -1773) def +bond1 3 +atom 14 (1) (-1497, -89, -1683) def +bond1 4 +atom 15 (1) (-688, 928, 2283) def +bond1 5 +atom 16 (1) (-900, -1255, 2441) def +bond1 5 +atom 17 (1) (1149, 79, 1620) def +bond1 5 +egroup (C_CH3_3_SiH3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C_CH3_3_SiH3 + diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_SiH3.test b/sim/src/tests/heteroatom_organics/test_C_CH3_3_SiH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_SiH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_C_CH3_3_SiH3.xyzcmp b/sim/src/tests/heteroatom_organics/test_C_CH3_3_SiH3.xyzcmp new file mode 100755 index 000000000..a3f571b0e --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_C_CH3_3_SiH3.xyzcmp @@ -0,0 +1,19 @@ +17 +C_CH3_3_SiH3.mmp +C 0.000000 0.000000 -0.172000 +C 0.727000 -1.259000 -0.687000 +C 0.727000 1.259000 -0.687000 +C -1.453000 0.000000 -0.687000 +Si 0.000000 0.000000 1.740000 +H 1.771000 -1.297000 -0.356000 +H 0.238000 2.183000 -0.356000 +H -2.009000 0.885000 -0.356000 +H 0.238000 -2.183000 -0.356000 +H 1.771000 1.297000 -0.356000 +H -2.009000 -0.885000 -0.356000 +H 0.735000 -1.273000 -1.786000 +H 0.735000 1.273000 -1.786000 +H -1.470000 0.000000 -1.786000 +H -0.697000 1.208000 2.272000 +H -0.697000 -1.208000 2.272000 +H 1.395000 0.000000 2.272000 diff --git a/sim/src/tests/heteroatom_organics/test_N_ADAM_C3v.mmp b/sim/src/tests/heteroatom_organics/test_N_ADAM_C3v.mmp new file mode 100755 index 000000000..8b6f58835 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_N_ADAM_C3v.mmp @@ -0,0 +1,64 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.881121) (-0.000000, -0.000000, 0.863000) (1.000000) +egroup (View Data) +group (N_ADAM_C3v) +info opengroup open = True +mol (N_ADAM_C3v.pdb) cpk +atom 1 (6) (-811, 1640, 509) def +atom 2 (6) (-944, -1517, 701) def +atom 3 (6) (1264, -121, 967) def +atom 4 (7) (244, -199, 1111) def +bond1 1 2 3 +atom 5 (6) (-338, 1575, -1369) def +bond1 1 +atom 6 (6) (-748, -1737, -1025) def +bond1 2 +atom 7 (6) (1807, -11, -1262) def +bond1 3 +atom 8 (6) (581, -1135, -1151) def +bond1 6 7 +atom 9 (6) (858, 1606, -1555) def +bond1 5 7 +atom 10 (6) (-1222, 192, -1909) def +bond1 5 6 +atom 11 (1) (-127, 1932, 806) def +bond1 1 +atom 12 (1) (-1395, -793, 1193) def +bond1 2 +atom 13 (1) (1626, 1082, 943) def +bond1 3 +atom 14 (1) (-1301, 1212, 835) def +bond1 1 +atom 15 (1) (-54, -1300, 460) def +bond1 2 +atom 16 (1) (1540, -803, 738) def +bond1 3 +atom 17 (1) (-1174, 2248, -1540) def +bond1 5 +atom 18 (1) (-1157, -1901, -1655) def +bond1 6 +atom 19 (1) (2516, 620, -857) def +bond1 7 +atom 20 (1) (934, -881, -2630) def +bond1 8 +atom 21 (1) (171, 1599, -2596) def +bond1 9 +atom 22 (1) (-2279, 406, -2712) def +bond1 10 +atom 23 (1) (1124, -2560, -1674) def +bond1 8 +atom 24 (1) (985, 1757, -1685) def +bond1 9 +atom 25 (1) (-2818, 526, -745) def +bond1 10 +egroup (N_ADAM_C3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part N_ADAM_C3v + diff --git a/sim/src/tests/heteroatom_organics/test_N_ADAM_C3v.test b/sim/src/tests/heteroatom_organics/test_N_ADAM_C3v.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_N_ADAM_C3v.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_N_ADAM_C3v.xyzcmp b/sim/src/tests/heteroatom_organics/test_N_ADAM_C3v.xyzcmp new file mode 100755 index 000000000..9979dbd39 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_N_ADAM_C3v.xyzcmp @@ -0,0 +1,27 @@ +25 +N_ADAM_C3v.mmp +C -0.695000 1.203000 0.475000 +C -0.695000 -1.203000 0.475000 +C 1.390000 0.000000 0.475000 +N 0.000000 0.000000 0.964000 +C -0.726000 1.257000 -1.072000 +C -0.726000 -1.257000 -1.072000 +C 1.451000 0.000000 -1.072000 +C 0.728000 -1.261000 -1.591000 +C 0.728000 1.261000 -1.591000 +C -1.456000 0.000000 -1.591000 +H -0.184000 2.088000 0.877000 +H -1.716000 -1.203000 0.877000 +H 1.900000 0.885000 0.877000 +H -1.716000 1.203000 0.877000 +H -0.184000 -2.088000 0.877000 +H 1.900000 -0.885000 0.877000 +H -1.250000 2.164000 -1.401000 +H -1.250000 -2.164000 -1.401000 +H 2.499000 0.000000 -1.401000 +H 0.745000 -1.291000 -2.690000 +H 0.745000 1.291000 -2.690000 +H -1.490000 0.000000 -2.690000 +H 1.249000 -2.164000 -1.244000 +H 1.249000 2.164000 -1.244000 +H -2.499000 0.000000 -1.244000 diff --git a/sim/src/tests/heteroatom_organics/test_P_ADAM_C3v.mmp b/sim/src/tests/heteroatom_organics/test_P_ADAM_C3v.mmp new file mode 100755 index 000000000..f4f9b08a0 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_P_ADAM_C3v.mmp @@ -0,0 +1,64 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.085735) (0.008500, -0.000000, 0.623500) (1.000000) +egroup (View Data) +group (P_ADAM_C3v) +info opengroup open = True +mol (P_ADAM_C3v.pdb) cpk +atom 1 (6) (-952, 1583, 896) def +atom 2 (6) (-622, -780, 975) def +atom 3 (6) (1367, -127, 234) def +atom 4 (15) (613, 416, 1676) def +bond1 1 2 3 +atom 5 (6) (-449, 1488, -1430) def +bond1 1 +atom 6 (6) (-1068, -1394, -1407) def +bond1 2 +atom 7 (6) (1539, -338, -1364) def +bond1 3 +atom 8 (6) (981, -1024, -1686) def +bond1 6 7 +atom 9 (6) (483, 1023, -1828) def +bond1 5 7 +atom 10 (6) (-820, 260, -1290) def +bond1 5 6 +atom 11 (1) (-566, 2354, 957) def +bond1 1 +atom 12 (1) (-1472, -1313, 719) def +bond1 2 +atom 13 (1) (2031, 725, 1109) def +bond1 3 +atom 14 (1) (-1638, 1845, 688) def +bond1 1 +atom 15 (1) (-29, -2641, 1355) def +bond1 2 +atom 16 (1) (2372, -1322, 564) def +bond1 3 +atom 17 (1) (-1614, 1685, -1584) def +bond1 5 +atom 18 (1) (-1510, -2230, -1584) def +bond1 6 +atom 19 (1) (2791, -291, -1574) def +bond1 7 +atom 20 (1) (294, -1144, -2425) def +bond1 8 +atom 21 (1) (397, 1261, -2798) def +bond1 9 +atom 22 (1) (-1692, -447, -2603) def +bond1 10 +atom 23 (1) (1160, -2276, -1632) def +bond1 8 +atom 24 (1) (1457, 2020, -820) def +bond1 9 +atom 25 (1) (-2164, 193, -800) def +bond1 10 +egroup (P_ADAM_C3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part P_ADAM_C3v + diff --git a/sim/src/tests/heteroatom_organics/test_P_ADAM_C3v.test b/sim/src/tests/heteroatom_organics/test_P_ADAM_C3v.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_P_ADAM_C3v.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_P_ADAM_C3v.xyzcmp b/sim/src/tests/heteroatom_organics/test_P_ADAM_C3v.xyzcmp new file mode 100755 index 000000000..6ce9d8834 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_P_ADAM_C3v.xyzcmp @@ -0,0 +1,27 @@ +25 +P_ADAM_C3v.mmp +C -0.816000 1.414000 0.469000 +C -0.816000 -1.414000 0.469000 +C 1.632000 0.000000 0.469000 +P 0.000000 0.000000 1.401000 +C -0.738000 1.279000 -1.067000 +C -0.738000 -1.279000 -1.067000 +C 1.476000 0.000000 -1.067000 +C 0.728000 -1.261000 -1.549000 +C 0.728000 1.261000 -1.549000 +C -1.456000 0.000000 -1.549000 +H -0.338000 2.345000 0.799000 +H -1.861000 -1.465000 0.799000 +H 2.200000 0.879000 0.799000 +H -1.861000 1.465000 0.799000 +H -0.338000 -2.345000 0.799000 +H 2.200000 -0.879000 0.799000 +H -1.240000 2.148000 -1.514000 +H -1.240000 -2.148000 -1.514000 +H 2.481000 0.000000 -1.514000 +H 0.747000 -1.293000 -2.648000 +H 0.747000 1.293000 -2.648000 +H -1.494000 0.000000 -2.648000 +H 1.249000 -2.164000 -1.202000 +H 1.249000 2.164000 -1.202000 +H -2.498000 0.000000 -1.202000 diff --git a/sim/src/tests/heteroatom_organics/test_SiH_ADAM_C3v.mmp b/sim/src/tests/heteroatom_organics/test_SiH_ADAM_C3v.mmp new file mode 100755 index 000000000..c0a3046a0 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_SiH_ADAM_C3v.mmp @@ -0,0 +1,66 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.518284) (0.013000, -0.000000, -0.078500) (1.000000) +egroup (View Data) +group (SiH_ADAM_C3v) +info opengroup open = True +mol (SiH_ADAM_C3v.pdb) cpk +atom 1 (6) (-1281, 933, 384) def +atom 2 (6) (-1157, -1829, 612) def +atom 3 (6) (1748, -420, 982) def +atom 4 (14) (29, -116, 1740) def +bond1 1 2 3 +atom 5 (6) (-519, 918, -672) def +bond1 1 +atom 6 (6) (-800, -1076, -810) def +bond1 2 +atom 7 (6) (918, 176, -1036) def +bond1 3 +atom 8 (1) (-69, 695, 2671) def +bond1 4 +atom 9 (6) (475, -884, -1831) def +bond1 6 7 +atom 10 (6) (629, 1290, -1895) def +bond1 5 7 +atom 11 (6) (-1421, 215, -1711) def +bond1 5 6 +atom 12 (1) (-665, 2512, 790) def +bond1 1 +atom 13 (1) (-1253, -1821, 989) def +bond1 2 +atom 14 (1) (1708, 857, 894) def +bond1 3 +atom 15 (1) (-1831, 1436, 962) def +bond1 1 +atom 16 (1) (-332, -2336, 550) def +bond1 2 +atom 17 (1) (2212, -484, 1230) def +bond1 3 +atom 18 (1) (-1407, 1740, -1530) def +bond1 5 +atom 19 (1) (-1059, -2164, -1481) def +bond1 6 +atom 20 (1) (2696, 479, -1391) def +bond1 7 +atom 21 (1) (967, -1311, -2749) def +bond1 9 +atom 22 (1) (727, 1232, -2767) def +bond1 10 +atom 23 (1) (-1712, -404, -2622) def +bond1 11 +atom 24 (1) (1211, -2416, -937) def +bond1 9 +atom 25 (1) (1185, 2451, -910) def +bond1 10 +atom 26 (1) (-2832, 384, -936) def +bond1 11 +egroup (SiH_ADAM_C3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part SiH_ADAM_C3v + diff --git a/sim/src/tests/heteroatom_organics/test_SiH_ADAM_C3v.test b/sim/src/tests/heteroatom_organics/test_SiH_ADAM_C3v.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_SiH_ADAM_C3v.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/heteroatom_organics/test_SiH_ADAM_C3v.xyzcmp b/sim/src/tests/heteroatom_organics/test_SiH_ADAM_C3v.xyzcmp new file mode 100755 index 000000000..f94c9b9e1 --- /dev/null +++ b/sim/src/tests/heteroatom_organics/test_SiH_ADAM_C3v.xyzcmp @@ -0,0 +1,28 @@ +26 +SiH_ADAM_C3v.mmp +C -0.860000 1.489000 0.483000 +C -0.860000 -1.489000 0.483000 +C 1.719000 0.000000 0.483000 +Si 0.000000 0.000000 1.284000 +C -0.747000 1.293000 -1.056000 +C -0.747000 -1.293000 -1.056000 +C 1.493000 0.000000 -1.056000 +H 0.000000 0.000000 2.777000 +C 0.729000 -1.263000 -1.521000 +C 0.729000 1.263000 -1.521000 +C -1.458000 0.000000 -1.521000 +H -0.386000 2.433000 0.780000 +H -1.914000 -1.550000 0.780000 +H 2.300000 0.882000 0.780000 +H -1.914000 1.550000 0.780000 +H -0.386000 -2.433000 0.780000 +H 2.300000 -0.882000 0.780000 +H -1.236000 2.142000 -1.555000 +H -1.236000 -2.142000 -1.555000 +H 2.473000 0.000000 -1.555000 +H 0.750000 -1.300000 -2.620000 +H 0.750000 1.300000 -2.620000 +H -1.501000 0.000000 -2.620000 +H 1.250000 -2.164000 -1.172000 +H 1.250000 2.164000 -1.172000 +H -2.499000 0.000000 -1.172000 diff --git a/sim/src/tests/jigs_to_several_atoms/001_rotarymotor_to_50_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/001_rotarymotor_to_50_atoms.mmp new file mode 100755 index 000000000..ca479061a --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/001_rotarymotor_to_50_atoms.mmp @@ -0,0 +1,418 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (39.698526) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (65.060734) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (001 rotarymotor to 200 atoms) +info opengroup open = True +mol (Chunk-1) def +atom 1 (6) (151, 2322, 18) def +atom 2 (1) (99, 2896, 942) def +bond1 1 +atom 3 (1) (96, 2929, -883) def +bond1 1 +atom 4 (8) (1396, 1551, 2) def +bond1 1 +atom 5 (6) (2596, 2389, 21) def +bond1 4 +atom 6 (1) (2616, 2962, 948) def +bond1 5 +atom 7 (1) (2618, 3003, -877) def +bond1 5 +atom 8 (8) (3735, 1469, 2) def +bond1 5 +atom 9 (6) (5031, 2150, 18) def +bond1 8 +atom 10 (1) (5123, 2720, 942) def +bond1 9 +atom 11 (1) (5129, 2753, -883) def +bond1 9 +atom 12 (8) (6046, 1095, 2) def +bond1 9 +atom 13 (6) (7417, 1608, 20) def +bond1 12 +atom 14 (1) (7579, 2160, 945) def +bond1 13 +atom 15 (1) (7590, 2196, -880) def +bond1 13 +atom 16 (8) (8292, 434, 2) def +bond1 13 +atom 17 (6) (9716, 773, 19) def +bond1 16 +atom 18 (1) (9947, 1301, 943) def +bond1 17 +atom 19 (1) (9961, 1332, -882) def +bond1 17 +atom 20 (8) (10437, -501, 2) def +bond1 17 +atom 21 (6) (11893, -344, 21) def +bond1 20 +atom 22 (1) (12187, 148, 947) def +bond1 21 +atom 23 (1) (12207, 182, -878) def +bond1 21 +atom 24 (8) (12449, -1698, 2) def +bond1 21 +atom 25 (6) (13913, -1725, 18) def +bond1 24 +atom 26 (1) (14267, -1271, 942) def +bond1 25 +atom 27 (1) (14288, -1244, -883) def +bond1 25 +atom 28 (8) (14294, -3139, 2) def +bond1 25 +atom 29 (6) (15743, -3349, 21) def +bond1 28 +atom 30 (1) (16149, -2946, 948) def +bond1 29 +atom 31 (1) (16178, -2916, -877) def +bond1 29 +atom 32 (8) (15943, -4800, 1) def +bond1 29 +atom 33 (6) (17354, -5190, 16) def +bond1 32 +atom 34 (1) (17812, -4838, 940) def +bond1 33 +atom 35 (1) (17837, -4819, -886) def +bond1 33 +atom 36 (8) (17371, -6655, 1) def +bond1 33 +atom 37 (6) (18722, -7220, 19) def +bond1 36 +atom 38 (1) (19217, -6929, 945) def +bond1 37 +atom 39 (1) (19250, -6910, -880) def +bond1 37 +atom 40 (8) (18554, -8674, 2) def +bond1 37 +atom 41 (6) (19824, -9405, 20) def +bond1 40 +atom 42 (1) (20352, -9178, 945) def +bond1 41 +atom 43 (1) (20386, -9164, -880) def +bond1 41 +atom 44 (8) (19475, -10827, 2) def +bond1 41 +atom 45 (6) (20643, -11710, 20) def +bond1 44 +atom 46 (1) (21196, -11552, 945) def +bond1 45 +atom 47 (1) (21231, -11542, -880) def +bond1 45 +atom 48 (8) (20119, -13078, 2) def +bond1 45 +atom 49 (6) (21166, -14101, 20) def +bond1 48 +atom 50 (1) (21735, -14013, 945) def +bond1 49 +atom 51 (1) (21771, -14007, -880) def +bond1 49 +atom 52 (8) (20475, -15391, 2) def +bond1 49 +atom 53 (6) (21386, -16538, 20) def +bond1 52 +atom 54 (1) (21962, -16522, 945) def +bond1 53 +atom 55 (1) (21998, -16521, -880) def +bond1 53 +atom 56 (8) (20539, -17732, 2) def +bond1 53 +atom 57 (6) (21299, -18983, 20) def +bond1 56 +atom 58 (1) (21872, -19040, 945) def +bond1 57 +atom 59 (1) (21909, -19043, -880) def +bond1 57 +atom 60 (8) (20309, -20062, 2) def +bond1 57 +atom 61 (6) (20907, -21398, 18) def +bond1 60 +atom 62 (1) (21469, -21526, 943) def +bond1 61 +atom 63 (1) (21503, -21534, -882) def +bond1 61 +atom 64 (8) (19789, -22345, 2) def +bond1 61 +atom 65 (6) (20215, -23746, 21) def +bond1 64 +atom 66 (1) (20754, -23942, 947) def +bond1 65 +atom 67 (1) (20792, -23956, -878) def +bond1 65 +atom 68 (8) (18988, -24544, 2) def +bond1 65 +atom 69 (6) (19235, -25988, 19) def +bond1 68 +atom 70 (1) (19747, -26251, 944) def +bond1 69 +atom 71 (1) (19779, -26267, -881) def +bond1 69 +atom 72 (8) (17917, -26627, 2) def +bond1 69 +atom 73 (6) (17982, -28090, 20) def +bond1 72 +atom 74 (1) (18457, -28414, 945) def +bond1 73 +atom 75 (1) (18487, -28435, -880) def +bond1 73 +atom 76 (8) (16595, -28559, 2) def +bond1 73 +atom 77 (6) (16476, -30018, 20) def +bond1 76 +atom 78 (1) (16906, -30400, 945) def +bond1 77 +atom 79 (1) (16933, -30424, -880) def +bond1 77 +atom 80 (8) (15041, -30310, 2) def +bond1 77 +atom 81 (6) (14740, -31742, 20) def +bond1 80 +atom 82 (1) (15118, -32174, 946) def +bond1 81 +atom 83 (1) (15143, -32203, -879) def +bond1 81 +atom 84 (8) (13279, -31852, 2) def +bond1 81 +atom 85 (6) (12801, -33236, 17) def +bond1 84 +atom 86 (1) (13125, -33715, 940) def +bond1 85 +atom 87 (1) (13142, -33741, -885) def +bond1 85 +atom 88 (8) (11339, -33162, 2) def +bond1 85 +atom 89 (6) (10691, -34475, 21) def +bond1 88 +atom 90 (1) (10950, -34987, 947) def +bond1 89 +atom 91 (1) (10968, -35023, -878) def +bond1 89 +atom 92 (8) (9250, -34218, 2) def +bond1 89 +atom 93 (6) (8442, -35440, 19) def +bond1 92 +atom 94 (1) (8636, -35983, 943) def +bond1 93 +atom 95 (1) (8648, -36015, -882) def +bond1 93 +atom 96 (8) (7044, -35004, 2) def +bond1 93 +atom 97 (6) (6091, -36115, 20) def +bond1 96 +atom 98 (1) (6214, -36677, 945) def +bond1 97 +atom 99 (1) (6222, -36713, -880) def +bond1 97 +atom 100 (8) (4758, -35508, 2) def +bond1 97 +atom 101 (6) (3672, -36490, 20) def +bond1 100 +atom 102 (1) (3725, -37063, 945) def +bond1 101 +atom 103 (1) (3728, -37100, -880) def +bond1 101 +atom 104 (8) (2427, -35720, 2) def +bond1 101 +atom 105 (6) (1226, -36558, 21) def +bond1 104 +atom 106 (1) (1206, -37131, 948) def +bond1 105 +atom 107 (1) (1205, -37172, -877) def +bond1 105 +atom 108 (8) (88, -35638, 1) def +bond1 105 +atom 109 (6) (-1208, -36318, 19) def +bond1 108 +atom 110 (1) (-1300, -36886, 944) def +bond1 109 +atom 111 (1) (-1306, -36923, -881) def +bond1 109 +atom 112 (8) (-2222, -35262, 0) def +bond1 109 +atom 113 (6) (-3594, -35775, 17) def +bond1 112 +atom 114 (1) (-3757, -36327, 941) def +bond1 113 +atom 115 (1) (-3766, -36361, -884) def +bond1 113 +atom 116 (8) (-4467, -34599, 0) def +bond1 113 +atom 117 (6) (-5892, -34936, 19) def +bond1 116 +atom 118 (1) (-6122, -35462, 944) def +bond1 117 +atom 119 (1) (-6138, -35497, -881) def +bond1 117 +atom 120 (8) (-6611, -33660, 1) def +bond1 117 +atom 121 (6) (-8067, -33815, 20) def +bond1 120 +atom 122 (1) (-8361, -34307, 947) def +bond1 121 +atom 123 (1) (-8382, -34342, -878) def +bond1 121 +atom 124 (8) (-8621, -32460, 1) def +bond1 121 +atom 125 (6) (-10085, -32430, 19) def +bond1 124 +atom 126 (1) (-10440, -32884, 944) def +bond1 125 +atom 127 (1) (-10462, -32913, -881) def +bond1 125 +atom 128 (8) (-10465, -31017, 1) def +bond1 125 +atom 129 (6) (-11913, -30805, 16) def +bond1 128 +atom 130 (1) (-12324, -31212, 939) def +bond1 129 +atom 131 (1) (-12346, -31233, -886) def +bond1 129 +atom 132 (8) (-12113, -29354, 1) def +bond1 129 +atom 133 (6) (-13524, -28962, 21) def +bond1 132 +atom 134 (1) (-13978, -29312, 947) def +bond1 133 +atom 135 (1) (-14011, -29336, -878) def +bond1 133 +atom 136 (8) (-13540, -27498, 2) def +bond1 133 +atom 137 (6) (-14891, -26933, 20) def +bond1 136 +atom 138 (1) (-15387, -27224, 945) def +bond1 137 +atom 139 (1) (-15419, -27242, -880) def +bond1 137 +atom 140 (8) (-14724, -25478, 2) def +bond1 137 +atom 141 (6) (-15993, -24748, 20) def +bond1 140 +atom 142 (1) (-16522, -24974, 945) def +bond1 141 +atom 143 (1) (-16556, -24989, -880) def +bond1 141 +atom 144 (8) (-15645, -23326, 2) def +bond1 141 +atom 145 (6) (-16813, -22443, 21) def +bond1 144 +atom 146 (1) (-17365, -22600, 947) def +bond1 145 +atom 147 (1) (-17403, -22612, -878) def +bond1 145 +atom 148 (8) (-16290, -21075, 1) def +bond1 145 +atom 149 (6) (-17339, -20053, 16) def +bond1 148 +atom 150 (1) (-17910, -20141, 939) def +bond1 149 +atom 151 (1) (-17940, -20146, -886) def +bond1 149 +atom 152 (8) (-16648, -18761, 1) def +bond1 149 +atom 153 (6) (-17560, -17616, 21) def +bond1 152 +atom 154 (1) (-18134, -17632, 947) def +bond1 153 +atom 155 (1) (-18174, -17633, -878) def +bond1 153 +atom 156 (8) (-16714, -16421, 2) def +bond1 153 +atom 157 (6) (-17475, -15170, 20) def +bond1 156 +atom 158 (1) (-18048, -15114, 945) def +bond1 157 +atom 159 (1) (-18084, -15111, -880) def +bond1 157 +atom 160 (8) (-16486, -14091, 2) def +bond1 157 +atom 161 (6) (-17085, -12755, 21) def +bond1 160 +atom 162 (1) (-17644, -12628, 947) def +bond1 161 +atom 163 (1) (-17683, -12619, -878) def +bond1 161 +atom 164 (8) (-15968, -11808, 2) def +bond1 161 +atom 165 (6) (-16395, -10407, 19) def +bond1 164 +atom 166 (1) (-16936, -10210, 943) def +bond1 165 +atom 167 (1) (-16969, -10198, -882) def +bond1 165 +atom 168 (8) (-15168, -9608, 2) def +bond1 165 +atom 169 (6) (-15416, -8164, 19) def +bond1 168 +atom 170 (1) (-15928, -7902, 943) def +bond1 169 +atom 171 (1) (-15959, -7885, -882) def +bond1 169 +atom 172 (8) (-14098, -7525, 2) def +bond1 169 +atom 173 (6) (-14163, -6063, 21) def +bond1 172 +atom 174 (1) (-14637, -5738, 947) def +bond1 173 +atom 175 (1) (-14669, -5716, -878) def +bond1 173 +atom 176 (8) (-12776, -5594, 2) def +bond1 173 +atom 177 (6) (-12657, -4134, 20) def +bond1 176 +atom 178 (1) (-13087, -3752, 945) def +bond1 177 +atom 179 (1) (-13114, -3728, -880) def +bond1 177 +atom 180 (8) (-11222, -3843, 2) def +bond1 177 +atom 181 (6) (-10920, -2411, 19) def +bond1 180 +atom 182 (1) (-11299, -1977, 944) def +bond1 181 +atom 183 (1) (-11322, -1951, -881) def +bond1 181 +atom 184 (8) (-9460, -2303, 2) def +bond1 181 +atom 185 (6) (-8980, -920, 21) def +bond1 184 +atom 186 (1) (-9300, -443, 947) def +bond1 185 +atom 187 (1) (-9323, -411, -878) def +bond1 185 +atom 188 (8) (-7518, -996, 2) def +bond1 185 +atom 189 (6) (-6868, 315, 18) def +bond1 188 +atom 190 (1) (-7128, 831, 942) def +bond1 189 +atom 191 (1) (-7143, 860, -883) def +bond1 189 +atom 192 (8) (-5427, 56, 1) def +bond1 189 +atom 193 (6) (-4619, 1277, 20) def +bond1 192 +atom 194 (1) (-4811, 1818, 945) def +bond1 193 +atom 195 (1) (-4823, 1854, -880) def +bond1 193 +atom 196 (8) (-3221, 839, 2) def +bond1 193 +atom 197 (6) (-2266, 1949, 21) def +bond1 196 +atom 198 (1) (-2389, 2509, 947) def +bond1 197 +atom 199 (1) (-2397, 2548, -878) def +bond1 197 +atom 200 (8) (-935, 1340, 2) def +bond1 197 1 +rmotor (Rotary Motor1) (127, 127, 127) 2.00 3.00 (1912, -17084, 21) (0, 0, -1000) 10.00 1.00 0.10 +shaft 157 73 161 77 165 81 1 85 173 89 5 177 93 9 181 97 13 185 101 17 189 105 21 193 109 25 197 113 29 117 33 121 37 125 41 129 45 133 49 137 53 141 57 169 145 61 149 65 153 69 +thermo (Thermo-18) (153, 0, 51) 1 200 200 +egroup (001 rotarymotor to 200 atoms) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 001 rotarymotor to 200 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/002_rotarymotor_to_100_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/002_rotarymotor_to_100_atoms.mmp new file mode 100755 index 000000000..e065263f2 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/002_rotarymotor_to_100_atoms.mmp @@ -0,0 +1,718 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (39.698526) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (45.528800) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (001 rotarymotor to 100 atoms) +info opengroup open = True +mol (Chunk-1) def +atom 1 (6) (246, 2418, 238) def +atom 2 (8) (176, 3200, -1004) def +bond1 1 +atom 3 (8) (1498, 1656, 253) def +bond1 1 +atom 4 (6) (2707, 2485, 240) def +bond1 3 +atom 5 (8) (2736, 3271, -1001) def +bond1 4 +atom 6 (8) (3853, 1573, 254) def +bond1 4 +atom 7 (6) (5156, 2244, 242) def +bond1 6 +atom 8 (8) (5284, 3020, -998) def +bond1 7 +atom 9 (8) (6180, 1195, 256) def +bond1 7 +atom 10 (6) (7557, 1697, 244) def +bond1 9 +atom 11 (8) (7780, 2453, -995) def +bond1 10 +atom 12 (8) (8440, 528, 257) def +bond1 10 +atom 13 (6) (9869, 855, 246) def +bond1 12 +atom 14 (8) (10186, 1578, -993) def +bond1 13 +atom 15 (8) (10600, -415, 258) def +bond1 13 +atom 16 (6) (12058, -270, 248) def +bond1 15 +atom 17 (8) (12464, 408, -990) def +bond1 16 +atom 18 (8) (12624, -1622, 259) def +bond1 16 +atom 19 (6) (14089, -1661, 250) def +bond1 18 +atom 20 (8) (14577, -1038, -987) def +bond1 19 +atom 21 (8) (14480, -3073, 261) def +bond1 19 +atom 22 (6) (15928, -3296, 252) def +bond1 21 +atom 23 (8) (16492, -2738, -984) def +bond1 22 +atom 24 (8) (16139, -4746, 262) def +bond1 22 +atom 25 (6) (17548, -5148, 254) def +bond1 24 +atom 26 (8) (18178, -4665, -982) def +bond1 25 +atom 27 (8) (17576, -6613, 263) def +bond1 25 +atom 28 (6) (18923, -7189, 256) def +bond1 27 +atom 29 (8) (19609, -6788, -980) def +bond1 28 +atom 30 (8) (18766, -8646, 264) def +bond1 28 +atom 31 (6) (20031, -9387, 258) def +bond1 30 +atom 32 (8) (20762, -9075, -977) def +bond1 31 +atom 33 (8) (19692, -10813, 265) def +bond1 31 +atom 34 (6) (20854, -11706, 259) def +bond1 33 +atom 35 (8) (21619, -11488, -976) def +bond1 34 +atom 36 (8) (20339, -13078, 266) def +bond1 34 +atom 37 (6) (21380, -14109, 260) def +bond1 36 +atom 38 (8) (22167, -13989, -974) def +bond1 37 +atom 39 (8) (20697, -15406, 266) def +bond1 37 +atom 40 (6) (21600, -16560, 261) def +bond1 39 +atom 41 (8) (22397, -16539, -973) def +bond1 40 +atom 42 (8) (20761, -17761, 267) def +bond1 40 +atom 43 (6) (21512, -19019, 261) def +bond1 42 +atom 44 (8) (22306, -19098, -972) def +bond1 43 +atom 45 (8) (20529, -20106, 267) def +bond1 43 +atom 46 (6) (21117, -21448, 262) def +bond1 45 +atom 47 (8) (21895, -21625, -972) def +bond1 46 +atom 48 (8) (20006, -22403, 267) def +bond1 46 +atom 49 (6) (20422, -23808, 261) def +bond1 48 +atom 50 (8) (21171, -24081, -972) def +bond1 49 +atom 51 (8) (19199, -24616, 267) def +bond1 49 +atom 52 (6) (19436, -26062, 261) def +bond1 51 +atom 53 (8) (20146, -26426, -973) def +bond1 52 +atom 54 (8) (18123, -26711, 266) def +bond1 52 +atom 55 (6) (18177, -28176, 260) def +bond1 54 +atom 56 (8) (18834, -28626, -974) def +bond1 55 +atom 57 (8) (16792, -28656, 266) def +bond1 55 +atom 58 (6) (16662, -30115, 259) def +bond1 57 +atom 59 (8) (17258, -30643, -975) def +bond1 58 +atom 60 (8) (15229, -30418, 265) def +bond1 58 +atom 61 (6) (14917, -31850, 258) def +bond1 60 +atom 62 (8) (15442, -32448, -977) def +bond1 61 +atom 63 (8) (13457, -31971, 264) def +bond1 61 +atom 64 (6) (12969, -33353, 256) def +bond1 63 +atom 65 (8) (13414, -34011, -979) def +bond1 64 +atom 66 (8) (11505, -33290, 263) def +bond1 64 +atom 67 (6) (10847, -34600, 255) def +bond1 66 +atom 68 (8) (11206, -35308, -981) def +bond1 67 +atom 69 (8) (9402, -34354, 262) def +bond1 67 +atom 70 (6) (8586, -35571, 253) def +bond1 69 +atom 71 (8) (8853, -36317, -984) def +bond1 70 +atom 72 (8) (7183, -35146, 261) def +bond1 70 +atom 73 (6) (6221, -36250, 251) def +bond1 72 +atom 74 (8) (6392, -37024, -986) def +bond1 73 +atom 75 (8) (4882, -35653, 260) def +bond1 73 +atom 76 (6) (3789, -36628, 249) def +bond1 75 +atom 77 (8) (3861, -37416, -989) def +bond1 76 +atom 78 (8) (2536, -35867, 258) def +bond1 76 +atom 79 (6) (1328, -36698, 247) def +bond1 78 +atom 80 (8) (1302, -37487, -992) def +bond1 79 +atom 81 (8) (181, -35786, 257) def +bond1 79 +atom 82 (6) (-1121, -36458, 244) def +bond1 81 +atom 83 (8) (-1246, -37236, -995) def +bond1 82 +atom 84 (8) (-2144, -35409, 255) def +bond1 82 +atom 85 (6) (-3521, -35912, 242) def +bond1 84 +atom 86 (8) (-3742, -36667, -998) def +bond1 85 +atom 87 (8) (-4405, -34743, 254) def +bond1 85 +atom 88 (6) (-5834, -35069, 240) def +bond1 87 +atom 89 (8) (-6148, -35790, -1001) def +bond1 88 +atom 90 (8) (-6564, -33799, 253) def +bond1 88 +atom 91 (6) (-8023, -33943, 238) def +bond1 90 +atom 92 (8) (-8424, -34617, -1004) def +bond1 91 +atom 93 (8) (-8588, -32591, 251) def +bond1 91 +atom 94 (6) (-10054, -32551, 236) def +bond1 93 +atom 95 (8) (-10536, -33169, -1007) def +bond1 94 +atom 96 (8) (-10445, -31138, 250) def +bond1 94 +atom 97 (6) (-11894, -30915, 234) def +bond1 96 +atom 98 (8) (-12449, -31467, -1009) def +bond1 97 +atom 99 (8) (-12105, -29465, 249) def +bond1 97 +atom 100 (6) (-13515, -29062, 232) def +bond1 99 +atom 101 (8) (-14134, -29539, -1012) def +bond1 100 +atom 102 (8) (-13543, -27596, 248) def +bond1 100 +atom 103 (6) (-14891, -27020, 231) def +bond1 102 +atom 104 (8) (-15564, -27415, -1014) def +bond1 103 +atom 105 (8) (-14735, -25562, 248) def +bond1 103 +atom 106 (6) (-16000, -24822, 229) def +bond1 105 +atom 107 (8) (-16717, -25130, -1015) def +bond1 106 +atom 108 (8) (-15664, -23395, 247) def +bond1 106 +atom 109 (6) (-16826, -22502, 228) def +bond1 108 +atom 110 (8) (-17575, -22718, -1017) def +bond1 109 +atom 111 (8) (-16313, -21129, 246) def +bond1 109 +atom 112 (6) (-17355, -20097, 228) def +bond1 111 +atom 113 (8) (-18125, -20217, -1018) def +bond1 112 +atom 114 (8) (-16675, -18799, 246) def +bond1 112 +atom 115 (6) (-17579, -17645, 227) def +bond1 114 +atom 116 (8) (-18357, -17667, -1018) def +bond1 115 +atom 117 (8) (-16741, -16442, 246) def +bond1 115 +atom 118 (6) (-17494, -15184, 227) def +bond1 117 +atom 119 (8) (-18268, -15108, -1019) def +bond1 118 +atom 120 (8) (-16512, -14095, 246) def +bond1 118 +atom 121 (6) (-17101, -12753, 227) def +bond1 120 +atom 122 (8) (-17860, -12581, -1019) def +bond1 121 +atom 123 (8) (-15990, -11796, 246) def +bond1 121 +atom 124 (6) (-16406, -10390, 227) def +bond1 123 +atom 125 (8) (-17138, -10124, -1019) def +bond1 124 +atom 126 (8) (-15184, -9580, 246) def +bond1 124 +atom 127 (6) (-15421, -8134, 227) def +bond1 126 +atom 128 (8) (-16113, -7777, -1018) def +bond1 127 +atom 129 (8) (-14107, -7483, 246) def +bond1 127 +atom 130 (6) (-14160, -6018, 228) def +bond1 129 +atom 131 (8) (-14802, -5578, -1017) def +bond1 130 +atom 132 (8) (-12775, -5538, 247) def +bond1 130 +atom 133 (6) (-12643, -4078, 229) def +bond1 132 +atom 134 (8) (-13225, -3560, -1016) def +bond1 133 +atom 135 (8) (-11209, -3776, 247) def +bond1 133 +atom 136 (6) (-10895, -2344, 230) def +bond1 135 +atom 137 (8) (-11408, -1756, -1015) def +bond1 136 +atom 138 (8) (-9434, -2224, 248) def +bond1 136 +atom 139 (6) (-8943, -843, 231) def +bond1 138 +atom 140 (8) (-9378, -195, -1013) def +bond1 139 +atom 141 (8) (-7478, -908, 249) def +bond1 139 +atom 142 (6) (-6818, 400, 233) def +bond1 141 +atom 143 (8) (-7169, 1098, -1011) def +bond1 142 +atom 144 (8) (-5373, 152, 250) def +bond1 142 +atom 145 (6) (-4554, 1368, 234) def +bond1 144 +atom 146 (8) (-4815, 2105, -1009) def +bond1 145 +atom 147 (8) (-3152, 941, 251) def +bond1 145 +atom 148 (6) (-2186, 2044, 236) def +bond1 147 +atom 149 (8) (-2353, 2810, -1006) def +bond1 148 +atom 150 (8) (-849, 1445, 252) def +bond1 148 1 +atom 151 (1) (11141, -35181, 1127) def +bond1 67 +atom 152 (1) (8805, -36185, 1125) def +bond1 70 +atom 153 (1) (14490, -1146, 1122) def +bond1 19 +atom 154 (1) (6361, -36888, 1123) def +bond1 73 +atom 155 (1) (3848, -37279, 1120) def +bond1 76 +atom 156 (1) (2730, 3142, 1108) def +bond1 4 +atom 157 (1) (1305, -37352, 1117) def +bond1 79 +atom 158 (1) (-1226, -37104, 1114) def +bond1 82 +atom 159 (1) (22021, -14011, 1134) def +bond1 37 +atom 160 (1) (-3707, -36541, 1111) def +bond1 85 +atom 161 (1) (-6098, -35671, 1108) def +bond1 88 +atom 162 (1) (16391, -2836, 1124) def +bond1 22 +atom 163 (1) (-8361, -34508, 1105) def +bond1 91 +atom 164 (1) (-10460, -33070, 1103) def +bond1 94 +atom 165 (1) (5261, 2892, 1111) def +bond1 7 +atom 166 (1) (-12362, -31379, 1100) def +bond1 97 +atom 167 (1) (-14038, -29464, 1098) def +bond1 100 +atom 168 (1) (22249, -16542, 1135) def +bond1 40 +atom 169 (1) (-15461, -27354, 1096) def +bond1 103 +atom 170 (1) (-16608, -25082, 1095) def +bond1 106 +atom 171 (1) (18065, -4751, 1127) def +bond1 25 +atom 172 (1) (-17462, -22684, 1093) def +bond1 109 +atom 173 (1) (-18009, -20199, 1092) def +bond1 112 +atom 174 (1) (7741, 2326, 1114) def +bond1 10 +atom 175 (1) (-18241, -17664, 1091) def +bond1 115 +atom 176 (1) (-18153, -15120, 1091) def +bond1 118 +atom 177 (1) (22158, -19083, 1136) def +bond1 43 +atom 178 (1) (-17747, -12606, 1091) def +bond1 121 +atom 179 (1) (-17029, -10164, 1091) def +bond1 124 +atom 180 (1) (19484, -6860, 1129) def +bond1 28 +atom 181 (1) (-16010, -7831, 1092) def +bond1 127 +atom 182 (1) (-14706, -5644, 1092) def +bond1 130 +atom 183 (1) (10131, 1455, 1117) def +bond1 13 +atom 184 (1) (-13138, -3639, 1094) def +bond1 133 +atom 185 (1) (-11330, -1846, 1095) def +bond1 136 +atom 186 (1) (21750, -21592, 1136) def +bond1 46 +atom 187 (1) (-9312, -295, 1097) def +bond1 139 +atom 188 (1) (-7115, 989, 1099) def +bond1 142 +atom 189 (1) (20628, -9131, 1131) def +bond1 31 +atom 190 (1) (-4775, 1989, 1101) def +bond1 145 +atom 191 (1) (20013, -26359, 1135) def +bond1 52 +atom 192 (1) (-2328, 2687, 1103) def +bond1 148 +atom 193 (1) (12393, 291, 1119) def +bond1 16 +atom 194 (1) (18712, -28543, 1134) def +bond1 55 +atom 195 (1) (21031, -24030, 1136) def +bond1 49 +atom 196 (1) (17148, -30547, 1133) def +bond1 58 +atom 197 (1) (186, 3074, 1106) def +bond1 1 +atom 198 (1) (15346, -32339, 1131) def +bond1 61 +atom 199 (1) (13333, -33892, 1130) def +bond1 64 +atom 200 (1) (21478, -11527, 1133) def +bond1 34 +atom 201 (6) (10856, -34612, -2228) def +bond1 68 +atom 202 (8) (9411, -34366, -2247) def +bond1 201 +atom 203 (6) (8593, -35583, -2230) def +bond1 202 71 +atom 204 (8) (7190, -35157, -2249) def +bond1 203 +atom 205 (6) (6225, -36261, -2232) def +bond1 204 74 +atom 206 (8) (4887, -35663, -2250) def +bond1 205 +atom 207 (6) (3792, -36637, -2234) def +bond1 206 77 +atom 208 (8) (2539, -35876, -2251) def +bond1 207 +atom 209 (6) (1331, -36705, -2236) def +bond1 208 80 +atom 210 (8) (184, -35792, -2253) def +bond1 209 +atom 211 (6) (-1119, -36463, -2238) def +bond1 210 83 +atom 212 (8) (-2142, -35413, -2254) def +bond1 211 +atom 213 (6) (-3519, -35915, -2241) def +bond1 212 86 +atom 214 (8) (-4402, -34745, -2255) def +bond1 213 +atom 215 (6) (-5831, -35070, -2243) def +bond1 214 89 +atom 216 (8) (-6561, -33799, -2257) def +bond1 215 +atom 217 (6) (-8019, -33942, -2245) def +bond1 216 92 +atom 218 (8) (-8583, -32589, -2258) def +bond1 217 +atom 219 (6) (-10049, -32548, -2247) def +bond1 218 95 +atom 220 (8) (-10439, -31136, -2259) def +bond1 219 +atom 221 (6) (-11887, -30912, -2249) def +bond1 220 98 +atom 222 (8) (-12097, -29461, -2260) def +bond1 221 +atom 223 (6) (-13506, -29058, -2251) def +bond1 222 101 +atom 224 (8) (-13533, -27592, -2261) def +bond1 223 +atom 225 (6) (-14880, -27016, -2252) def +bond1 224 104 +atom 226 (8) (-14724, -25559, -2262) def +bond1 225 +atom 227 (6) (-15988, -24818, -2253) def +bond1 226 107 +atom 228 (8) (-15651, -23392, -2263) def +bond1 227 +atom 229 (6) (-16813, -22500, -2254) def +bond1 228 110 +atom 230 (8) (-16299, -21127, -2263) def +bond1 229 +atom 231 (6) (-17341, -20096, -2255) def +bond1 230 113 +atom 232 (8) (-16659, -18798, -2263) def +bond1 231 +atom 233 (6) (-17564, -17645, -2256) def +bond1 232 116 +atom 234 (8) (-16725, -16443, -2264) def +bond1 233 +atom 235 (6) (-17478, -15186, -2256) def +bond1 234 119 +atom 236 (8) (-16496, -14098, -2264) def +bond1 235 +atom 237 (6) (-17086, -12756, -2256) def +bond1 236 122 +atom 238 (8) (-15975, -11800, -2264) def +bond1 237 +atom 239 (6) (-16392, -10395, -2256) def +bond1 238 125 +atom 240 (8) (-15170, -9586, -2264) def +bond1 239 +atom 241 (6) (-15407, -8140, -2255) def +bond1 240 128 +atom 242 (8) (-14093, -7490, -2263) def +bond1 241 +atom 243 (6) (-14147, -6026, -2255) def +bond1 242 131 +atom 244 (8) (-12763, -5546, -2263) def +bond1 243 +atom 245 (6) (-12632, -4086, -2254) def +bond1 244 134 +atom 246 (8) (-11198, -3784, -2262) def +bond1 245 +atom 247 (6) (-10886, -2352, -2253) def +bond1 246 137 +atom 248 (8) (-9425, -2232, -2261) def +bond1 247 +atom 249 (6) (-8935, -851, -2252) def +bond1 248 140 +atom 250 (8) (-7471, -915, -2261) def +bond1 249 +atom 251 (6) (-6812, 393, -2250) def +bond1 250 143 +atom 252 (8) (-5367, 145, -2260) def +bond1 251 +atom 253 (6) (-4549, 1362, -2248) def +bond1 252 146 +atom 254 (8) (-3147, 935, -2259) def +bond1 253 +atom 255 (6) (-2183, 2039, -2247) def +bond1 254 149 +atom 256 (8) (-845, 1441, -2258) def +bond1 255 +atom 257 (6) (248, 2416, -2245) def +bond1 256 2 +atom 258 (8) (1501, 1654, -2256) def +bond1 257 +atom 259 (6) (2709, 2484, -2243) def +bond1 258 5 +atom 260 (8) (3857, 1573, -2255) def +bond1 259 +atom 261 (6) (5159, 2245, -2241) def +bond1 260 8 +atom 262 (8) (6184, 1197, -2254) def +bond1 261 +atom 263 (6) (7560, 1700, -2238) def +bond1 262 11 +atom 264 (8) (8445, 532, -2253) def +bond1 263 +atom 265 (6) (9874, 859, -2236) def +bond1 264 14 +atom 266 (8) (10606, -410, -2251) def +bond1 265 +atom 267 (6) (12065, -264, -2234) def +bond1 266 17 +atom 268 (8) (12632, -1616, -2250) def +bond1 267 +atom 269 (6) (14097, -1654, -2232) def +bond1 268 20 +atom 270 (8) (14490, -3066, -2249) def +bond1 269 +atom 271 (6) (15939, -3288, -2230) def +bond1 270 23 +atom 272 (8) (16152, -4739, -2248) def +bond1 271 +atom 273 (6) (17561, -5141, -2228) def +bond1 272 26 +atom 274 (8) (17590, -6607, -2246) def +bond1 273 +atom 275 (6) (18938, -7183, -2227) def +bond1 274 29 +atom 276 (8) (18783, -8640, -2245) def +bond1 275 +atom 277 (6) (20048, -9381, -2225) def +bond1 276 32 +atom 278 (8) (19711, -10808, -2245) def +bond1 277 +atom 279 (6) (20873, -11702, -2224) def +bond1 278 35 +atom 280 (8) (20360, -13075, -2244) def +bond1 279 +atom 281 (6) (21401, -14107, -2223) def +bond1 280 38 +atom 282 (8) (20719, -15405, -2243) def +bond1 281 +atom 283 (6) (21622, -16560, -2222) def +bond1 282 41 +atom 284 (8) (20784, -17763, -2243) def +bond1 283 +atom 285 (6) (21535, -19022, -2221) def +bond1 284 44 +atom 286 (8) (20552, -20110, -2243) def +bond1 285 +atom 287 (6) (21140, -21453, -2221) def +bond1 286 47 +atom 288 (8) (20028, -22409, -2243) def +bond1 287 +atom 289 (6) (20443, -23815, -2221) def +bond1 288 50 +atom 290 (8) (19221, -24625, -2243) def +bond1 289 +atom 291 (6) (19456, -26072, -2222) def +bond1 290 53 +atom 292 (8) (18142, -26722, -2243) def +bond1 291 +atom 293 (6) (18195, -28187, -2222) def +bond1 292 56 +atom 294 (8) (16810, -28667, -2244) def +bond1 293 +atom 295 (6) (16678, -30128, -2223) def +bond1 294 59 +atom 296 (8) (15244, -30431, -2244) def +bond1 295 +atom 297 (6) (14931, -31863, -2225) def +bond1 296 62 +atom 298 (8) (13470, -31984, -2245) def +bond1 297 +atom 299 (6) (12980, -33366, -2226) def +bond1 298 65 +atom 300 (8) (11515, -33303, -2246) def +bond1 299 201 +atom 301 (1) (-8355, -34505, -3114) def +bond1 217 +atom 302 (1) (-10452, -33064, -3117) def +bond1 219 +atom 303 (1) (-12352, -31372, -3119) def +bond1 221 +atom 304 (1) (-14024, -29456, -3122) def +bond1 223 +atom 305 (1) (-15444, -27346, -3123) def +bond1 225 +atom 306 (1) (14504, -1133, -3098) def +bond1 269 +atom 307 (1) (-16588, -25075, -3125) def +bond1 227 +atom 308 (1) (-17440, -22679, -3126) def +bond1 229 +atom 309 (1) (-17985, -20196, -3127) def +bond1 231 +atom 310 (1) (189, 3069, -3114) def +bond1 257 +atom 311 (1) (-18215, -17663, -3128) def +bond1 233 +atom 312 (1) (2732, 3141, -3111) def +bond1 259 +atom 313 (1) (-18127, -15122, -3129) def +bond1 235 +atom 314 (1) (-17721, -12612, -3129) def +bond1 237 +atom 315 (1) (7746, 2332, -3106) def +bond1 263 +atom 316 (1) (-17004, -10173, -3128) def +bond1 239 +atom 317 (1) (10138, 1463, -3103) def +bond1 265 +atom 318 (1) (-15986, -7842, -3128) def +bond1 241 +atom 319 (1) (12403, 302, -3100) def +bond1 267 +atom 320 (1) (22197, -19087, -3083) def +bond1 285 +atom 321 (1) (-14685, -5657, -3127) def +bond1 243 +atom 322 (1) (16409, -2822, -3095) def +bond1 271 +atom 323 (1) (-13120, -3653, -3126) def +bond1 245 +atom 324 (1) (18086, -4737, -3093) def +bond1 273 +atom 325 (1) (-11315, -1861, -3125) def +bond1 247 +atom 326 (1) (19510, -6848, -3091) def +bond1 275 +atom 327 (1) (-9300, -309, -3123) def +bond1 249 +atom 328 (1) (20658, -9120, -3089) def +bond1 277 +atom 329 (1) (-7106, 976, -3121) def +bond1 251 +atom 330 (1) (21512, -11519, -3087) def +bond1 279 +atom 331 (1) (-4768, 1978, -3119) def +bond1 253 +atom 332 (1) (22057, -14006, -3085) def +bond1 281 +atom 333 (1) (-2323, 2679, -3116) def +bond1 255 +atom 334 (1) (22287, -16542, -3084) def +bond1 283 +atom 335 (1) (5265, 2894, -3109) def +bond1 261 +atom 336 (1) (21788, -21600, -3083) def +bond1 287 +atom 337 (1) (21068, -24043, -3083) def +bond1 289 +atom 338 (1) (20048, -26376, -3084) def +bond1 291 +atom 339 (1) (18743, -28562, -3085) def +bond1 293 +atom 340 (1) (17175, -30568, -3086) def +bond1 295 +atom 341 (1) (15368, -32362, -3088) def +bond1 297 +atom 342 (1) (13351, -33915, -3090) def +bond1 299 +atom 343 (1) (11155, -35203, -3092) def +bond1 201 +atom 344 (1) (8815, -36206, -3095) def +bond1 203 +atom 345 (1) (6368, -36907, -3097) def +bond1 205 +atom 346 (1) (3852, -37295, -3100) def +bond1 207 +atom 347 (1) (1308, -37364, -3103) def +bond1 209 +atom 348 (1) (-1224, -37112, -3106) def +bond1 211 +atom 349 (1) (-3705, -36545, -3109) def +bond1 213 +atom 350 (1) (-6095, -35671, -3111) def +bond1 215 +rmotor (Rotary Motor-90) (127, 127, 127) 1.00 1.50 (2037, -17108, -1015) (0, 0, 999) 10.00 2.00 0.50 +shaft 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 103 106 109 112 115 118 121 124 127 130 133 136 139 142 145 148 201 203 205 207 209 211 213 215 217 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 279 281 283 285 287 289 291 293 295 297 299 +thermo (Thermo-91) (153, 0, 51) 1 350 150 +egroup (001 rotarymotor to 100 atoms) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 001 rotarymotor to 100 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/003_linearmotor_to_50_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/003_linearmotor_to_50_atoms.mmp new file mode 100755 index 000000000..8d5dcb481 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/003_linearmotor_to_50_atoms.mmp @@ -0,0 +1,225 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (39.698526) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (21.969469) (-30.356500, 0.350000, 0.172500) (1.000000) +egroup (View Data) +group (003 linearmotor to 50 atoms) +info opengroup open = True +group (Linear motor 50 atoms) +info opengroup open = True +mol (Chunk-5) def +atom 1 (6) (-855, -9, 0) def +atom 2 (1) (-576, 800, 657) def +bond1 1 +atom 3 (1) (-1779, -450, 344) def +bond1 1 +atom 4 (1) (-989, 370, -1002) def +bond1 1 +atom 5 (8) (197, -1020, 0) def +bond1 1 +atom 6 (6) (1704, -29, 0) def +bond1 5 +atom 7 (1) (1983, 780, 657) def +bond1 6 +atom 8 (1) (1570, 350, -1002) def +bond1 6 +atom 9 (8) (2757, -1040, 0) def +bond1 6 +atom 10 (6) (4264, -49, 0) def +bond1 9 +atom 11 (1) (4543, 760, 657) def +bond1 10 +atom 12 (1) (4130, 330, -1002) def +bond1 10 +atom 13 (8) (5317, -1060, 0) def +bond1 10 +atom 14 (6) (6824, -69, 0) def +bond1 13 +atom 15 (1) (7103, 740, 657) def +bond1 14 +atom 16 (1) (6690, 310, -1002) def +bond1 14 +atom 17 (8) (7877, -1080, 0) def +bond1 14 +atom 18 (6) (9384, -89, 0) def +bond1 17 +atom 19 (1) (9663, 720, 657) def +bond1 18 +atom 20 (1) (9250, 290, -1002) def +bond1 18 +atom 21 (8) (10437, -1100, 0) def +bond1 18 +atom 22 (6) (11944, -109, 0) def +bond1 21 +atom 23 (1) (12223, 700, 657) def +bond1 22 +atom 24 (1) (11810, 270, -1002) def +bond1 22 +atom 25 (8) (12997, -1120, 0) def +bond1 22 +atom 26 (6) (14504, -129, 0) def +bond1 25 +atom 27 (1) (14783, 680, 657) def +bond1 26 +atom 28 (1) (14370, 250, -1002) def +bond1 26 +atom 29 (8) (15557, -1140, 0) def +bond1 26 +atom 30 (6) (17064, -149, 0) def +bond1 29 +atom 31 (1) (17343, 660, 657) def +bond1 30 +atom 32 (1) (16930, 230, -1002) def +bond1 30 +atom 33 (8) (18117, -1160, 0) def +bond1 30 +atom 34 (6) (19624, -169, 0) def +bond1 33 +atom 35 (1) (19903, 640, 657) def +bond1 34 +atom 36 (1) (19490, 210, -1002) def +bond1 34 +atom 37 (8) (20677, -1180, 0) def +bond1 34 +atom 38 (6) (22184, -189, 0) def +bond1 37 +atom 39 (1) (22463, 620, 657) def +bond1 38 +atom 40 (1) (22050, 190, -1002) def +bond1 38 +atom 41 (8) (23237, -1200, 0) def +bond1 38 +atom 42 (6) (24744, -209, 0) def +bond1 41 +atom 43 (1) (25023, 600, 657) def +bond1 42 +atom 44 (1) (24610, 170, -1002) def +bond1 42 +atom 45 (8) (25797, -1220, 0) def +bond1 42 +atom 46 (6) (27304, -229, 0) def +bond1 45 +atom 47 (1) (27583, 580, 657) def +bond1 46 +atom 48 (1) (27170, 150, -1002) def +bond1 46 +atom 49 (8) (28357, -1240, 0) def +bond1 46 +atom 50 (6) (29864, -249, 0) def +bond1 49 +atom 51 (1) (30143, 560, 657) def +bond1 50 +atom 52 (1) (29730, 130, -1002) def +bond1 50 +atom 53 (8) (30917, -1260, 0) def +bond1 50 +atom 54 (6) (32424, -269, 0) def +bond1 53 +atom 55 (1) (32703, 540, 657) def +bond1 54 +atom 56 (1) (32290, 110, -1002) def +bond1 54 +atom 57 (8) (33477, -1280, 0) def +bond1 54 +atom 58 (6) (34984, -289, 0) def +bond1 57 +atom 59 (1) (35263, 520, 657) def +bond1 58 +atom 60 (1) (34850, 90, -1002) def +bond1 58 +atom 61 (8) (36037, -1300, 0) def +bond1 58 +atom 62 (6) (37544, -309, 0) def +bond1 61 +atom 63 (1) (37823, 500, 657) def +bond1 62 +atom 64 (1) (37410, 70, -1002) def +bond1 62 +atom 65 (8) (38597, -1320, 0) def +bond1 62 +atom 66 (6) (40104, -329, 0) def +bond1 65 +atom 67 (1) (40383, 480, 657) def +bond1 66 +atom 68 (1) (39970, 50, -1002) def +bond1 66 +atom 69 (8) (41157, -1340, 0) def +bond1 66 +atom 70 (6) (42664, -349, 0) def +bond1 69 +atom 71 (1) (42943, 460, 657) def +bond1 70 +atom 72 (1) (42530, 30, -1002) def +bond1 70 +atom 73 (8) (43717, -1360, 0) def +bond1 70 +atom 74 (6) (45224, -369, 0) def +bond1 73 +atom 75 (1) (45503, 440, 657) def +bond1 74 +atom 76 (1) (45090, 10, -1002) def +bond1 74 +atom 77 (8) (46277, -1380, 0) def +bond1 74 +atom 78 (6) (47784, -389, 0) def +bond1 77 +atom 79 (1) (48063, 420, 657) def +bond1 78 +atom 80 (1) (47650, -9, -1002) def +bond1 78 +atom 81 (8) (48837, -1400, 0) def +bond1 78 +atom 82 (6) (50344, -409, 0) def +bond1 81 +atom 83 (1) (50623, 400, 657) def +bond1 82 +atom 84 (1) (50210, -29, -1002) def +bond1 82 +atom 85 (8) (51397, -1420, 0) def +bond1 82 +atom 86 (6) (52904, -429, 0) def +bond1 85 +atom 87 (1) (53183, 380, 657) def +bond1 86 +atom 88 (1) (52770, -49, -1002) def +bond1 86 +atom 89 (8) (53957, -1440, 0) def +bond1 86 +atom 90 (6) (55464, -449, 0) def +bond1 89 +atom 91 (1) (55743, 360, 657) def +bond1 90 +atom 92 (1) (55330, -69, -1002) def +bond1 90 +atom 93 (8) (56517, -1460, 0) def +bond1 90 +atom 94 (6) (58024, -469, 0) def +bond1 93 +atom 95 (1) (58303, 340, 657) def +bond1 94 +atom 96 (1) (57890, -89, -1002) def +bond1 94 +atom 97 (8) (59077, -1480, 0) def +bond1 94 +atom 98 (6) (60584, -489, 0) def +bond1 97 +atom 99 (1) (60863, 320, 657) def +bond1 98 +atom 100 (1) (60450, -109, -1002) def +bond1 98 +atom 101 (8) (61637, -1500, 0) def +bond1 98 +atom 102 (1) (62492, -983, 0) def +bond1 101 +lmotor (Linear Motor.1) (127, 127, 127) 0.500000 0.050000 (30390, -754, 0) (0, 0, -1000) 10.00 1.00 0.02 +shaft 21 65 66 69 70 73 74 77 9 78 81 1 82 6 85 86 10 89 90 14 93 13 94 18 97 98 22 101 25 26 29 30 33 34 37 38 17 41 42 45 46 49 50 53 5 54 57 58 61 62 +thermo (Thermo-45) (153, 0, 51) 1 102 42 +egroup (Linear motor 50 atoms) +egroup (003 linearmotor to 50 atoms) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 003 linearmotor to 50 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/004_linearmotor_to_100_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/004_linearmotor_to_100_atoms.mmp new file mode 100755 index 000000000..b18fc5c15 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/004_linearmotor_to_100_atoms.mmp @@ -0,0 +1,429 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (39.698526) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.313115, 0.075633, 0.936401, -0.139252) (75.890293) (0.918977, 2.630127, 0.172500) (1.000000) +egroup (View Data) +group (003 linearmotor to 100 atoms) +info opengroup open = True +group (Linear motor 50 atoms) +info opengroup open = True +forward_ref (682437328) # thermo (Thermo-45) +egroup (Linear motor 50 atoms) +mol (Chunk-5-frag46) def +atom 1 (6) (-828, 82, 369) def +atom 2 (8) (331, -758, 52) def +bond1 1 +atom 3 (6) (1518, 14, -327) def +bond1 2 +atom 4 (8) (2690, -787, 37) def +bond1 3 +atom 5 (6) (3878, 24, 325) def +bond1 4 +atom 6 (8) (5051, -811, 47) def +bond1 5 +atom 7 (6) (6243, -31, -301) def +bond1 6 +atom 8 (8) (7410, -840, 65) def +bond1 7 +atom 9 (6) (8597, -35, 373) def +bond1 8 +atom 10 (8) (9770, -862, 72) def +bond1 9 +atom 11 (6) (10957, -74, -275) def +bond1 10 +atom 12 (8) (12130, -884, 69) def +bond1 11 +atom 13 (1) (-804, 323, 1430) def +bond1 1 +atom 14 (1) (-826, 959, -277) def +bond1 1 +atom 15 (1) (1533, 951, 231) def +bond1 3 +atom 16 (1) (1513, 153, -1407) def +bond1 3 +atom 17 (1) (3876, 282, 1383) def +bond1 5 +atom 18 (1) (3890, 892, -334) def +bond1 5 +atom 19 (1) (6250, 893, 274) def +bond1 7 +atom 20 (1) (6253, 126, -1378) def +bond1 7 +atom 21 (1) (8595, 194, 1437) def +bond1 9 +atom 22 (1) (8608, 849, -262) def +bond1 9 +atom 23 (1) (10966, 843, 313) def +bond1 11 +atom 24 (1) (10957, 98, -1350) def +bond1 11 +atom 25 (6) (-59599, -1934, 232) def +atom 26 (8) (-58135, -2008, 233) def +bond1 25 +atom 27 (6) (-57474, -701, 217) def +bond1 26 +atom 28 (8) (-56037, -985, 227) def +bond1 27 +atom 29 (6) (-55201, 216, 207) def +bond1 28 +atom 30 (8) (-53815, -257, 234) def +bond1 29 +atom 31 (6) (-52832, 821, 347) def +bond1 30 +atom 32 (8) (-51517, 191, 205) def +bond1 31 +atom 33 (6) (-50432, 1154, 2) def +bond1 32 +atom 34 (8) (-49181, 421, 220) def +bond1 33 +atom 35 (6) (-48034, 1297, 469) def +bond1 34 +atom 36 (8) (-46832, 498, 212) def +bond1 35 +atom 37 (6) (-45644, 1313, -54) def +bond1 36 +atom 38 (8) (-44479, 469, 224) def +bond1 37 +atom 39 (6) (-43269, 1238, 531) def +bond1 38 +atom 40 (8) (-42125, 379, 210) def +bond1 39 +atom 41 (6) (-40907, 1135, -101) def +bond1 40 +atom 42 (8) (-39770, 264, 212) def +bond1 41 +atom 43 (6) (-38552, 1006, 552) def +bond1 42 +atom 44 (8) (-37414, 146, 211) def +bond1 43 +atom 45 (6) (-36197, 899, -107) def +bond1 44 +atom 46 (8) (-35057, 33, 213) def +bond1 45 +atom 47 (6) (-33845, 781, 565) def +bond1 46 +atom 48 (8) (-32699, -63, 211) def +bond1 47 +atom 49 (6) (-31493, 706, -110) def +bond1 48 +atom 50 (8) (-30341, -144, 204) def +bond1 49 +atom 51 (6) (-29138, 618, 552) def +bond1 50 +atom 52 (8) (-27982, -213, 203) def +bond1 51 +atom 53 (6) (-26782, 568, -111) def +bond1 52 +atom 54 (8) (-25623, -274, 199) def +bond1 53 +atom 55 (6) (-24425, 497, 548) def +bond1 54 +atom 56 (8) (-23263, -327, 199) def +bond1 55 +atom 57 (6) (-22068, 463, -111) def +bond1 56 +atom 58 (8) (-20904, -376, 191) def +bond1 57 +atom 59 (6) (-19707, 399, 531) def +bond1 58 +atom 60 (8) (-18545, -425, 183) def +bond1 59 +atom 61 (6) (-17350, 364, -130) def +bond1 60 +atom 62 (8) (-16185, -471, 178) def +bond1 61 +atom 63 (6) (-14991, 307, 523) def +bond1 62 +atom 64 (8) (-13826, -516, 183) def +bond1 63 +atom 65 (6) (-12628, 275, -115) def +bond1 64 +atom 66 (8) (-11466, -564, 194) def +bond1 65 +atom 67 (6) (-10273, 209, 554) def +bond1 66 +atom 68 (8) (-9106, -605, 200) def +bond1 67 +atom 69 (6) (-7914, 194, -100) def +bond1 68 +atom 70 (8) (-6747, -645, 187) def +bond1 69 +atom 71 (6) (-5546, 131, 515) def +bond1 70 +atom 72 (8) (-4387, -690, 149) def +bond1 71 +atom 73 (6) (-3206, 102, -207) def +bond1 72 +atom 74 (8) (-2028, -716, 96) def +bond1 73 1 +atom 75 (1) (-59912, -1402, 1129) def +bond1 25 +atom 76 (1) (-59968, -2957, 240) def +bond1 25 +atom 77 (1) (-59912, -1416, -671) def +bond1 25 +atom 78 (1) (-57737, -155, 1122) def +bond1 27 +atom 79 (1) (-57729, -181, -704) def +bond1 27 +atom 80 (1) (-55397, 803, 1103) def +bond1 29 +atom 81 (1) (-55374, 756, -722) def +bond1 29 +atom 82 (1) (-52905, 1265, 1339) def +bond1 31 +atom 83 (1) (-52982, 1530, -465) def +bond1 31 +atom 84 (1) (-50517, 1953, 738) def +bond1 33 +atom 85 (1) (-50459, 1502, -1029) def +bond1 33 +atom 86 (1) (-48040, 1593, 1517) def +bond1 35 +atom 87 (1) (-48065, 2138, -223) def +bond1 35 +atom 88 (1) (-45638, 2172, 617) def +bond1 37 +atom 89 (1) (-45635, 1584, -1108) def +bond1 37 +atom 90 (1) (-43255, 1455, 1597) def +bond1 39 +atom 91 (1) (-43241, 2129, -96) def +bond1 39 +atom 92 (1) (-40865, 2026, 525) def +bond1 41 +atom 93 (1) (-40895, 1352, -1168) def +bond1 41 +atom 94 (1) (-38542, 1188, 1625) def +bond1 43 +atom 95 (1) (-38507, 1918, -44) def +bond1 43 +atom 96 (1) (-36155, 1796, 511) def +bond1 45 +atom 97 (1) (-36186, 1108, -1176) def +bond1 45 +atom 98 (1) (-33838, 946, 1641) def +bond1 47 +atom 99 (1) (-33808, 1702, -16) def +bond1 47 +atom 100 (1) (-31460, 1602, 510) def +bond1 49 +atom 101 (1) (-31489, 918, -1178) def +bond1 49 +atom 102 (1) (-29132, 789, 1627) def +bond1 51 +atom 103 (1) (-29111, 1537, -34) def +bond1 51 +atom 104 (1) (-26758, 1460, 516) def +bond1 53 +atom 105 (1) (-26777, 787, -1177) def +bond1 53 +atom 106 (1) (-24421, 667, 1623) def +bond1 55 +atom 107 (1) (-24404, 1415, -38) def +bond1 55 +atom 108 (1) (-22047, 1350, 521) def +bond1 57 +atom 109 (1) (-22067, 688, -1176) def +bond1 57 +atom 110 (1) (-19699, 576, 1605) def +bond1 59 +atom 111 (1) (-19690, 1314, -60) def +bond1 59 +atom 112 (1) (-17331, 1255, 498) def +bond1 61 +atom 113 (1) (-17348, 585, -1196) def +bond1 61 +atom 114 (1) (-14990, 487, 1596) def +bond1 63 +atom 115 (1) (-14972, 1220, -71) def +bond1 63 +atom 116 (1) (-12613, 1160, 521) def +bond1 65 +atom 117 (1) (-12618, 505, -1179) def +bond1 65 +atom 118 (1) (-10273, 369, 1630) def +bond1 67 +atom 119 (1) (-10255, 1134, -23) def +bond1 67 +atom 120 (1) (-7896, 1071, 546) def +bond1 69 +atom 121 (1) (-7916, 436, -1162) def +bond1 69 +atom 122 (1) (-5525, 303, 1590) def +bond1 71 +atom 123 (1) (-5539, 1049, -72) def +bond1 71 +atom 124 (1) (-3181, 1007, 399) def +bond1 73 +atom 125 (1) (-3228, 298, -1278) def +bond1 73 +forward_ref (682338584) # lmotor (Linear Motor-52) +mol (Chunk-5-frag46-frag53) def +atom 126 (6) (13319, -78, 369) def +bond1 12 +atom 127 (8) (14490, -904, 59) def +bond1 126 +atom 128 (6) (15674, -115, -299) def +bond1 127 +atom 129 (8) (16850, -918, 52) def +bond1 128 +atom 130 (6) (18034, -105, 352) def +bond1 129 +atom 131 (8) (19210, -925, 46) def +bond1 130 +atom 132 (6) (20390, -131, -311) def +bond1 131 +atom 133 (8) (21571, -925, 45) def +bond1 132 +atom 134 (6) (22747, -105, 353) def +bond1 133 +atom 135 (8) (23931, -912, 39) def +bond1 134 +atom 136 (6) (25100, -104, -323) def +bond1 135 +atom 137 (8) (26291, -884, 32) def +bond1 136 +atom 138 (6) (27458, -48, 336) def +bond1 137 +atom 139 (8) (28651, -840, 19) def +bond1 138 +atom 140 (6) (29808, -18, -349) def +bond1 139 +atom 141 (8) (31010, -776, 14) def +bond1 140 +atom 142 (6) (32159, 79, 328) def +bond1 141 +atom 143 (8) (33368, -692, 21) def +bond1 142 +atom 144 (6) (34518, 150, -322) def +bond1 143 +atom 145 (8) (35725, -603, 28) def +bond1 144 +atom 146 (6) (36871, 254, 345) def +bond1 145 +atom 147 (8) (38081, -512, 34) def +bond1 146 +atom 148 (6) (39234, 334, -289) def +bond1 147 +atom 149 (8) (40436, -446, 14) def +bond1 148 +atom 150 (6) (41611, 387, 286) def +bond1 149 +atom 151 (8) (42790, -440, 18) def +bond1 150 +atom 152 (6) (43998, 346, -249) def +bond1 151 +atom 153 (8) (45139, -535, 11) def +bond1 152 +atom 154 (6) (46392, 191, 233) def +bond1 153 +atom 155 (8) (47474, -775, 32) def +bond1 154 +atom 156 (6) (48792, -151, -104) def +bond1 155 +atom 157 (8) (49771, -1234, 3) def +bond1 156 +atom 158 (6) (51159, -766, 19) def +bond1 157 +atom 159 (8) (51990, -1971, 8) def +bond1 158 +atom 160 (6) (53428, -1692, 8) def +bond1 159 +atom 161 (8) (54086, -2999, 8) def +bond1 160 +atom 162 (6) (55549, -2923, 5) def +bond1 161 +atom 163 (8) (56017, -4307, 6) def +bond1 162 +atom 164 (1) (13325, 150, 1433) def +bond1 126 +atom 165 (1) (13323, 807, -266) def +bond1 126 +atom 166 (1) (15681, 807, 280) def +bond1 128 +atom 167 (1) (15671, 47, -1375) def +bond1 128 +atom 168 (1) (18037, 126, 1416) def +bond1 130 +atom 169 (1) (18035, 779, -285) def +bond1 130 +atom 170 (1) (20390, 793, 266) def +bond1 132 +atom 171 (1) (20390, 28, -1387) def +bond1 132 +atom 172 (1) (22749, 116, 1418) def +bond1 134 +atom 173 (1) (22740, 784, -276) def +bond1 134 +atom 174 (1) (25091, 821, 251) def +bond1 136 +atom 175 (1) (25095, 51, -1400) def +bond1 136 +atom 176 (1) (27460, 172, 1402) def +bond1 138 +atom 177 (1) (27438, 841, -293) def +bond1 138 +atom 178 (1) (29784, 913, 216) def +bond1 140 +atom 179 (1) (29802, 127, -1428) def +bond1 140 +atom 180 (1) (32148, 300, 1394) def +bond1 142 +atom 181 (1) (32130, 968, -301) def +bond1 142 +atom 182 (1) (34482, 1067, 267) def +bond1 144 +atom 183 (1) (34515, 323, -1396) def +bond1 144 +atom 184 (1) (36860, 470, 1412) def +bond1 146 +atom 185 (1) (36839, 1146, -280) def +bond1 146 +atom 186 (1) (39215, 1226, 337) def +bond1 148 +atom 187 (1) (39218, 551, -1356) def +bond1 148 +atom 188 (1) (41609, 661, 1340) def +bond1 150 +atom 189 (1) (41611, 1243, -388) def +bond1 150 +atom 190 (1) (44036, 1195, 433) def +bond1 152 +atom 191 (1) (44006, 628, -1300) def +bond1 152 +atom 192 (1) (46418, 537, 1265) def +bond1 154 +atom 193 (1) (46483, 990, -501) def +bond1 154 +atom 194 (1) (48945, 552, 712) def +bond1 156 +atom 195 (1) (48867, 298, -1093) def +bond1 156 +atom 196 (1) (51338, -217, 943) def +bond1 158 +atom 197 (1) (51354, -189, -882) def +bond1 158 +atom 198 (1) (53689, -1160, 922) def +bond1 160 +atom 199 (1) (53689, -1159, -904) def +bond1 160 +atom 200 (1) (55886, -2432, 917) def +bond1 162 +atom 201 (1) (55883, -2435, -909) def +bond1 162 +atom 202 (1) (56984, -4324, 4) def +bond1 163 +thermo (Thermo-45) (153, 0, 51) 126 202 134 +info leaf forwarded = 682437328 +lmotor (Linear Motor-52) (127, 127, 127) 1.500000 0.100000 (-1489, -354, 115) (-2, 0, -999) 10.00 2.00 0.10 +shaft 1 2 3 4 5 6 7 8 9 10 11 12 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 +info leaf forwarded = 682338584 +egroup (003 linearmotor to 100 atoms) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 003 linearmotor to 100 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/005_anchors_to_50_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/005_anchors_to_50_atoms.mmp new file mode 100755 index 000000000..88610b27e --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/005_anchors_to_50_atoms.mmp @@ -0,0 +1,419 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (39.698526) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (49.921194) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (004 anchors to 50 atoms) +info opengroup open = True +group (Anchor 50 atoms-) +info opengroup open = True +mol (Chunk-7) def +atom 1 (6) (187, 1923, 20) def +atom 2 (1) (137, 2473, 956) def +bond1 1 +atom 3 (1) (132, 2530, -879) def +bond1 1 +atom 4 (8) (1408, 1125, -8) def +bond1 1 +atom 5 (6) (2583, 1989, 21) def +bond1 4 +atom 6 (1) (2600, 2544, 956) def +bond1 5 +atom 7 (1) (2607, 2596, -879) def +bond1 5 +atom 8 (8) (3694, 1044, 0) def +bond1 5 +atom 9 (6) (4968, 1755, 21) def +bond1 8 +atom 10 (1) (5060, 2303, 955) def +bond1 9 +atom 11 (1) (5063, 2354, -880) def +bond1 9 +atom 12 (8) (5953, 678, -7) def +bond1 9 +atom 13 (6) (7306, 1224, 21) def +bond1 12 +atom 14 (1) (7461, 1756, 955) def +bond1 13 +atom 15 (1) (7479, 1806, -880) def +bond1 13 +atom 16 (8) (8147, 32, -3) def +bond1 13 +atom 17 (6) (9558, 404, 21) def +bond1 16 +atom 18 (1) (9781, 912, 955) def +bond1 17 +atom 19 (1) (9800, 960, -880) def +bond1 17 +atom 20 (8) (10244, -883, -5) def +bond1 17 +atom 21 (6) (11690, -691, 21) def +bond1 20 +atom 22 (1) (11974, -214, 955) def +bond1 21 +atom 23 (1) (12001, -169, -880) def +bond1 21 +atom 24 (8) (12209, -2054, -4) def +bond1 21 +atom 25 (6) (13668, -2045, 21) def +bond1 24 +atom 26 (1) (14009, -1608, 955) def +bond1 25 +atom 27 (1) (14041, -1567, -880) def +bond1 25 +atom 28 (8) (14012, -3463, -4) def +bond1 25 +atom 29 (6) (15460, -3637, 20) def +bond1 28 +atom 30 (1) (15853, -3247, 956) def +bond1 29 +atom 31 (1) (15891, -3208, -879) def +bond1 29 +atom 32 (8) (15623, -5087, -7) def +bond1 29 +atom 33 (6) (17038, -5441, 20) def +bond1 32 +atom 34 (1) (17477, -5102, 955) def +bond1 33 +atom 35 (1) (17521, -5071, -880) def +bond1 33 +atom 36 (8) (17019, -6900, -4) def +bond1 33 +atom 37 (6) (18378, -7428, 21) def +bond1 36 +atom 38 (1) (18857, -7146, 955) def +bond1 37 +atom 39 (1) (18902, -7123, -880) def +bond1 37 +atom 40 (8) (18175, -8873, -1) def +bond1 37 +atom 41 (6) (19458, -9568, 21) def +bond1 40 +atom 42 (1) (19969, -9352, 955) def +bond1 41 +atom 43 (1) (20015, -9328, -880) def +bond1 41 +atom 44 (8) (19076, -10976, -7) def +bond1 41 +atom 45 (6) (20261, -11827, 20) def +bond1 44 +atom 46 (1) (20793, -11675, 956) def +bond1 45 +atom 47 (1) (20846, -11659, -879) def +bond1 45 +atom 48 (8) (19706, -13176, -7) def +bond1 45 +atom 49 (6) (20775, -14168, 21) def +bond1 48 +atom 50 (1) (21323, -14081, 955) def +bond1 49 +atom 51 (1) (21375, -14078, -880) def +bond1 49 +atom 52 (8) (20054, -15437, 0) def +bond1 49 +atom 53 (6) (20991, -16555, 21) def +bond1 52 +atom 54 (1) (21546, -16543, 955) def +bond1 53 +atom 55 (1) (21597, -16536, -880) def +bond1 53 +atom 56 (8) (20117, -17724, -8) def +bond1 53 +atom 57 (6) (20906, -18951, 20) def +bond1 56 +atom 58 (1) (21456, -19005, 956) def +bond1 57 +atom 59 (1) (21512, -19011, -879) def +bond1 57 +atom 60 (8) (19893, -20001, -6) def +bond1 57 +atom 61 (6) (20522, -21317, 21) def +bond1 60 +atom 62 (1) (21064, -21438, 956) def +bond1 61 +atom 63 (1) (21113, -21454, -880) def +bond1 61 +atom 64 (8) (19385, -22232, -1) def +bond1 61 +atom 65 (6) (19844, -23616, 22) def +bond1 64 +atom 66 (1) (20367, -23807, 956) def +bond1 65 +atom 67 (1) (20414, -23823, -880) def +bond1 65 +atom 68 (8) (18602, -24381, -2) def +bond1 65 +atom 69 (6) (18884, -25813, 20) def +bond1 68 +atom 70 (1) (19374, -26069, 956) def +bond1 69 +atom 71 (1) (19428, -26088, -879) def +bond1 69 +atom 72 (8) (17556, -26416, -12) def +bond1 69 +atom 73 (6) (17657, -27871, 20) def +bond1 72 +atom 74 (1) (18115, -28180, 956) def +bond1 73 +atom 75 (1) (18157, -28219, -879) def +bond1 73 +atom 76 (8) (16263, -28303, -2) def +bond1 73 +atom 77 (6) (16181, -29760, 22) def +bond1 76 +atom 78 (1) (16597, -30129, 956) def +bond1 77 +atom 79 (1) (16633, -30162, -880) def +bond1 77 +atom 80 (8) (14744, -30014, 0) def +bond1 77 +atom 81 (6) (14480, -31449, 21) def +bond1 80 +atom 82 (1) (14842, -31868, 956) def +bond1 81 +atom 83 (1) (14883, -31904, -879) def +bond1 81 +atom 84 (8) (13023, -31521, -9) def +bond1 81 +atom 85 (6) (12580, -32911, 20) def +bond1 84 +atom 86 (1) (12893, -33369, 955) def +bond1 85 +atom 87 (1) (12918, -33417, -880) def +bond1 85 +atom 88 (8) (11126, -32800, -2) def +bond1 85 +atom 89 (6) (10513, -34124, 21) def +bond1 88 +atom 90 (1) (10763, -34620, 955) def +bond1 89 +atom 91 (1) (10787, -34665, -880) def +bond1 89 +atom 92 (8) (9084, -33832, -4) def +bond1 89 +atom 93 (6) (8310, -35068, 21) def +bond1 92 +atom 94 (1) (8496, -35591, 955) def +bond1 93 +atom 95 (1) (8513, -35640, -880) def +bond1 93 +atom 96 (8) (6928, -34599, -4) def +bond1 93 +atom 97 (6) (6006, -35729, 20) def +bond1 96 +atom 98 (1) (6124, -36270, 956) def +bond1 97 +atom 99 (1) (6137, -36322, -880) def +bond1 97 +atom 100 (8) (4694, -35090, -7) def +bond1 97 +atom 101 (6) (3637, -36095, 21) def +bond1 100 +atom 102 (1) (3689, -36647, 956) def +bond1 101 +atom 103 (1) (3690, -36700, -880) def +bond1 101 +atom 104 (8) (2416, -35297, -2) def +bond1 101 +atom 105 (6) (1241, -36162, 22) def +bond1 104 +atom 106 (1) (1221, -36717, 956) def +bond1 105 +atom 107 (1) (1220, -36768, -879) def +bond1 105 +atom 108 (8) (129, -35217, -3) def +bond1 105 +atom 109 (6) (-1144, -35927, 21) def +bond1 108 +atom 110 (1) (-1234, -36474, 956) def +bond1 109 +atom 111 (1) (-1240, -36528, -879) def +bond1 109 +atom 112 (8) (-2128, -34850, -7) def +bond1 109 +atom 113 (6) (-3481, -35395, 20) def +bond1 112 +atom 114 (1) (-3637, -35925, 956) def +bond1 113 +atom 115 (1) (-3653, -35980, -879) def +bond1 113 +atom 116 (8) (-4322, -34204, -8) def +bond1 113 +atom 117 (6) (-5733, -34575, 21) def +bond1 116 +atom 118 (1) (-5953, -35083, 956) def +bond1 117 +atom 119 (1) (-5978, -35131, -879) def +bond1 117 +atom 120 (8) (-6418, -33287, -3) def +bond1 117 +atom 121 (6) (-7864, -33478, 22) def +bond1 120 +atom 122 (1) (-8148, -33956, 956) def +bond1 121 +atom 123 (1) (-8176, -33998, -879) def +bond1 121 +atom 124 (8) (-8382, -32113, 0) def +bond1 121 +atom 125 (6) (-9841, -32122, 20) def +bond1 124 +atom 126 (1) (-10186, -32555, 956) def +bond1 125 +atom 127 (1) (-10213, -32604, -879) def +bond1 125 +atom 128 (8) (-10185, -30705, -12) def +bond1 125 +atom 129 (6) (-11633, -30530, 20) def +bond1 128 +atom 130 (1) (-12023, -30924, 955) def +bond1 129 +atom 131 (1) (-12068, -30955, -880) def +bond1 129 +atom 132 (8) (-11796, -29080, 1) def +bond1 129 +atom 133 (6) (-13211, -28726, 22) def +bond1 132 +atom 134 (1) (-13653, -29064, 955) def +bond1 133 +atom 135 (1) (-13689, -29097, -880) def +bond1 133 +atom 136 (8) (-13191, -27267, -4) def +bond1 133 +atom 137 (6) (-14550, -26738, 20) def +bond1 136 +atom 138 (1) (-15029, -27017, 955) def +bond1 137 +atom 139 (1) (-15074, -27047, -880) def +bond1 137 +atom 140 (8) (-14348, -25293, -7) def +bond1 137 +atom 141 (6) (-15630, -24598, 21) def +bond1 140 +atom 142 (1) (-16140, -24819, 955) def +bond1 141 +atom 143 (1) (-16189, -24835, -880) def +bond1 141 +atom 144 (8) (-15248, -23190, -1) def +bond1 141 +atom 145 (6) (-16434, -22340, 21) def +bond1 144 +atom 146 (1) (-16968, -22490, 956) def +bond1 145 +atom 147 (1) (-17017, -22509, -879) def +bond1 145 +atom 148 (8) (-15879, -20991, -7) def +bond1 145 +atom 149 (6) (-16948, -19999, 20) def +bond1 148 +atom 150 (1) (-17495, -20085, 956) def +bond1 149 +atom 151 (1) (-17549, -20090, -880) def +bond1 149 +atom 152 (8) (-16228, -18730, -4) def +bond1 149 +atom 153 (6) (-17165, -17612, 21) def +bond1 152 +atom 154 (1) (-17719, -17626, 956) def +bond1 153 +atom 155 (1) (-17773, -17629, -879) def +bond1 153 +atom 156 (8) (-16292, -16443, -6) def +bond1 153 +atom 157 (6) (-17081, -15216, 21) def +bond1 156 +atom 158 (1) (-17634, -15164, 956) def +bond1 157 +atom 159 (1) (-17685, -15155, -879) def +bond1 157 +atom 160 (8) (-16068, -14166, -1) def +bond1 157 +atom 161 (6) (-16698, -12850, 22) def +bond1 160 +atom 162 (1) (-17240, -12725, 956) def +bond1 161 +atom 163 (1) (-17290, -12717, -879) def +bond1 161 +atom 164 (8) (-15562, -11935, -4) def +bond1 161 +atom 165 (6) (-16021, -10550, 20) def +bond1 164 +atom 166 (1) (-16540, -10359, 956) def +bond1 165 +atom 167 (1) (-16594, -10344, -879) def +bond1 165 +atom 168 (8) (-14779, -9785, -9) def +bond1 165 +atom 169 (6) (-15061, -8354, 21) def +bond1 168 +atom 170 (1) (-15555, -8103, 956) def +bond1 169 +atom 171 (1) (-15601, -8073, -879) def +bond1 169 +atom 172 (8) (-13733, -7750, -2) def +bond1 169 +atom 173 (6) (-13834, -6295, 22) def +bond1 172 +atom 174 (1) (-14291, -5981, 956) def +bond1 173 +atom 175 (1) (-14335, -5953, -879) def +bond1 173 +atom 176 (8) (-12440, -5863, -4) def +bond1 173 +atom 177 (6) (-12358, -4406, 21) def +bond1 176 +atom 178 (1) (-12770, -4038, 956) def +bond1 177 +atom 179 (1) (-12814, -4003, -879) def +bond1 177 +atom 180 (8) (-10921, -4152, -8) def +bond1 177 +atom 181 (6) (-10656, -2718, 21) def +bond1 180 +atom 182 (1) (-11023, -2303, 956) def +bond1 181 +atom 183 (1) (-11055, -2259, -879) def +bond1 181 +atom 184 (8) (-9199, -2646, -2) def +bond1 181 +atom 185 (6) (-8756, -1256, 22) def +bond1 184 +atom 186 (1) (-9066, -795, 956) def +bond1 185 +atom 187 (1) (-9096, -753, -879) def +bond1 185 +atom 188 (8) (-7302, -1368, -3) def +bond1 185 +atom 189 (6) (-6688, -44, 20) def +bond1 188 +atom 190 (1) (-6935, 449, 956) def +bond1 189 +atom 191 (1) (-6965, 497, -879) def +bond1 189 +atom 192 (8) (-5259, -337, -11) def +bond1 189 +atom 193 (6) (-4485, 898, 21) def +bond1 192 +atom 194 (1) (-4676, 1418, 956) def +bond1 193 +atom 195 (1) (-4683, 1472, -879) def +bond1 193 +atom 196 (8) (-3104, 428, 3) def +bond1 193 +atom 197 (6) (-2181, 1557, 22) def +bond1 196 +atom 198 (1) (-2296, 2101, 956) def +bond1 197 +atom 199 (1) (-2315, 2148, -879) def +bond1 197 +atom 200 (8) (-869, 918, -8) def +bond1 1 197 +ground (Anchor.2) (0, 0, 0) 21 149 25 157 129 161 165 45 41 173 153 177 181 133 185 189 49 193 197 29 73 77 137 81 85 53 89 93 33 97 101 141 105 69 109 57 113 65 117 37 121 125 145 1 5 61 9 13 169 17 +egroup (Anchor 50 atoms-) +egroup (004 anchors to 50 atoms) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 004 anchors to 50 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/006_anchors_to_100_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/006_anchors_to_100_atoms.mmp new file mode 100755 index 000000000..094a00eb1 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/006_anchors_to_100_atoms.mmp @@ -0,0 +1,426 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (39.698526) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.003429, 0.008732, 0.985245, 0.170890) (62.162943) (0.918977, 2.630127, 0.172500) (1.000000) +egroup (View Data) +group (003 anchors to 100 atoms) +info opengroup open = True +group (Linear motor 50 atoms) +info opengroup open = True +forward_ref (682437328) # thermo (Thermo-45) +egroup (Linear motor 50 atoms) +mol (Chunk-5-frag46) def +atom 1 (6) (-828, 82, 369) def +atom 2 (8) (331, -758, 52) def +bond1 1 +atom 3 (6) (1518, 14, -327) def +bond1 2 +atom 4 (8) (2690, -787, 37) def +bond1 3 +atom 5 (6) (3878, 24, 325) def +bond1 4 +atom 6 (8) (5051, -811, 47) def +bond1 5 +atom 7 (6) (6243, -31, -301) def +bond1 6 +atom 8 (8) (7410, -840, 65) def +bond1 7 +atom 9 (6) (8597, -35, 373) def +bond1 8 +atom 10 (8) (9770, -862, 72) def +bond1 9 +atom 11 (6) (10957, -74, -275) def +bond1 10 +atom 12 (8) (12130, -884, 69) def +bond1 11 +atom 13 (1) (-804, 323, 1430) def +bond1 1 +atom 14 (1) (-826, 959, -277) def +bond1 1 +atom 15 (1) (1533, 951, 231) def +bond1 3 +atom 16 (1) (1513, 153, -1407) def +bond1 3 +atom 17 (1) (3876, 282, 1383) def +bond1 5 +atom 18 (1) (3890, 892, -334) def +bond1 5 +atom 19 (1) (6250, 893, 274) def +bond1 7 +atom 20 (1) (6253, 126, -1378) def +bond1 7 +atom 21 (1) (8595, 194, 1437) def +bond1 9 +atom 22 (1) (8608, 849, -262) def +bond1 9 +atom 23 (1) (10966, 843, 313) def +bond1 11 +atom 24 (1) (10957, 98, -1350) def +bond1 11 +atom 25 (6) (-59599, -1934, 232) def +atom 26 (8) (-58135, -2008, 233) def +bond1 25 +atom 27 (6) (-57474, -701, 217) def +bond1 26 +atom 28 (8) (-56037, -985, 227) def +bond1 27 +atom 29 (6) (-55201, 216, 207) def +bond1 28 +atom 30 (8) (-53815, -257, 234) def +bond1 29 +atom 31 (6) (-52832, 821, 347) def +bond1 30 +atom 32 (8) (-51517, 191, 205) def +bond1 31 +atom 33 (6) (-50432, 1154, 2) def +bond1 32 +atom 34 (8) (-49181, 421, 220) def +bond1 33 +atom 35 (6) (-48034, 1297, 469) def +bond1 34 +atom 36 (8) (-46832, 498, 212) def +bond1 35 +atom 37 (6) (-45644, 1313, -54) def +bond1 36 +atom 38 (8) (-44479, 469, 224) def +bond1 37 +atom 39 (6) (-43269, 1238, 531) def +bond1 38 +atom 40 (8) (-42125, 379, 210) def +bond1 39 +atom 41 (6) (-40907, 1135, -101) def +bond1 40 +atom 42 (8) (-39770, 264, 212) def +bond1 41 +atom 43 (6) (-38552, 1006, 552) def +bond1 42 +atom 44 (8) (-37414, 146, 211) def +bond1 43 +atom 45 (6) (-36197, 899, -107) def +bond1 44 +atom 46 (8) (-35057, 33, 213) def +bond1 45 +atom 47 (6) (-33845, 781, 565) def +bond1 46 +atom 48 (8) (-32699, -63, 211) def +bond1 47 +atom 49 (6) (-31493, 706, -110) def +bond1 48 +atom 50 (8) (-30341, -144, 204) def +bond1 49 +atom 51 (6) (-29138, 618, 552) def +bond1 50 +atom 52 (8) (-27982, -213, 203) def +bond1 51 +atom 53 (6) (-26782, 568, -111) def +bond1 52 +atom 54 (8) (-25623, -274, 199) def +bond1 53 +atom 55 (6) (-24425, 497, 548) def +bond1 54 +atom 56 (8) (-23263, -327, 199) def +bond1 55 +atom 57 (6) (-22068, 463, -111) def +bond1 56 +atom 58 (8) (-20904, -376, 191) def +bond1 57 +atom 59 (6) (-19707, 399, 531) def +bond1 58 +atom 60 (8) (-18545, -425, 183) def +bond1 59 +atom 61 (6) (-17350, 364, -130) def +bond1 60 +atom 62 (8) (-16185, -471, 178) def +bond1 61 +atom 63 (6) (-14991, 307, 523) def +bond1 62 +atom 64 (8) (-13826, -516, 183) def +bond1 63 +atom 65 (6) (-12628, 275, -115) def +bond1 64 +atom 66 (8) (-11466, -564, 194) def +bond1 65 +atom 67 (6) (-10273, 209, 554) def +bond1 66 +atom 68 (8) (-9106, -605, 200) def +bond1 67 +atom 69 (6) (-7914, 194, -100) def +bond1 68 +atom 70 (8) (-6747, -645, 187) def +bond1 69 +atom 71 (6) (-5546, 131, 515) def +bond1 70 +atom 72 (8) (-4387, -690, 149) def +bond1 71 +atom 73 (6) (-3206, 102, -207) def +bond1 72 +atom 74 (8) (-2028, -716, 96) def +bond1 73 1 +atom 75 (1) (-59912, -1402, 1129) def +bond1 25 +atom 76 (1) (-59968, -2957, 240) def +bond1 25 +atom 77 (1) (-59912, -1416, -671) def +bond1 25 +atom 78 (1) (-57737, -155, 1122) def +bond1 27 +atom 79 (1) (-57729, -181, -704) def +bond1 27 +atom 80 (1) (-55397, 803, 1103) def +bond1 29 +atom 81 (1) (-55374, 756, -722) def +bond1 29 +atom 82 (1) (-52905, 1265, 1339) def +bond1 31 +atom 83 (1) (-52982, 1530, -465) def +bond1 31 +atom 84 (1) (-50517, 1953, 738) def +bond1 33 +atom 85 (1) (-50459, 1502, -1029) def +bond1 33 +atom 86 (1) (-48040, 1593, 1517) def +bond1 35 +atom 87 (1) (-48065, 2138, -223) def +bond1 35 +atom 88 (1) (-45638, 2172, 617) def +bond1 37 +atom 89 (1) (-45635, 1584, -1108) def +bond1 37 +atom 90 (1) (-43255, 1455, 1597) def +bond1 39 +atom 91 (1) (-43241, 2129, -96) def +bond1 39 +atom 92 (1) (-40865, 2026, 525) def +bond1 41 +atom 93 (1) (-40895, 1352, -1168) def +bond1 41 +atom 94 (1) (-38542, 1188, 1625) def +bond1 43 +atom 95 (1) (-38507, 1918, -44) def +bond1 43 +atom 96 (1) (-36155, 1796, 511) def +bond1 45 +atom 97 (1) (-36186, 1108, -1176) def +bond1 45 +atom 98 (1) (-33838, 946, 1641) def +bond1 47 +atom 99 (1) (-33808, 1702, -16) def +bond1 47 +atom 100 (1) (-31460, 1602, 510) def +bond1 49 +atom 101 (1) (-31489, 918, -1178) def +bond1 49 +atom 102 (1) (-29132, 789, 1627) def +bond1 51 +atom 103 (1) (-29111, 1537, -34) def +bond1 51 +atom 104 (1) (-26758, 1460, 516) def +bond1 53 +atom 105 (1) (-26777, 787, -1177) def +bond1 53 +atom 106 (1) (-24421, 667, 1623) def +bond1 55 +atom 107 (1) (-24404, 1415, -38) def +bond1 55 +atom 108 (1) (-22047, 1350, 521) def +bond1 57 +atom 109 (1) (-22067, 688, -1176) def +bond1 57 +atom 110 (1) (-19699, 576, 1605) def +bond1 59 +atom 111 (1) (-19690, 1314, -60) def +bond1 59 +atom 112 (1) (-17331, 1255, 498) def +bond1 61 +atom 113 (1) (-17348, 585, -1196) def +bond1 61 +atom 114 (1) (-14990, 487, 1596) def +bond1 63 +atom 115 (1) (-14972, 1220, -71) def +bond1 63 +atom 116 (1) (-12613, 1160, 521) def +bond1 65 +atom 117 (1) (-12618, 505, -1179) def +bond1 65 +atom 118 (1) (-10273, 369, 1630) def +bond1 67 +atom 119 (1) (-10255, 1134, -23) def +bond1 67 +atom 120 (1) (-7896, 1071, 546) def +bond1 69 +atom 121 (1) (-7916, 436, -1162) def +bond1 69 +atom 122 (1) (-5525, 303, 1590) def +bond1 71 +atom 123 (1) (-5539, 1049, -72) def +bond1 71 +atom 124 (1) (-3181, 1007, 399) def +bond1 73 +atom 125 (1) (-3228, 298, -1278) def +bond1 73 +mol (Chunk-5-frag46-frag53) def +atom 126 (6) (13319, -78, 369) def +bond1 12 +atom 127 (8) (14490, -904, 59) def +bond1 126 +atom 128 (6) (15674, -115, -299) def +bond1 127 +atom 129 (8) (16850, -918, 52) def +bond1 128 +atom 130 (6) (18034, -105, 352) def +bond1 129 +atom 131 (8) (19210, -925, 46) def +bond1 130 +atom 132 (6) (20390, -131, -311) def +bond1 131 +atom 133 (8) (21571, -925, 45) def +bond1 132 +atom 134 (6) (22747, -105, 353) def +bond1 133 +atom 135 (8) (23931, -912, 39) def +bond1 134 +atom 136 (6) (25100, -104, -323) def +bond1 135 +atom 137 (8) (26291, -884, 32) def +bond1 136 +atom 138 (6) (27458, -48, 336) def +bond1 137 +atom 139 (8) (28651, -840, 19) def +bond1 138 +atom 140 (6) (29808, -18, -349) def +bond1 139 +atom 141 (8) (31010, -776, 14) def +bond1 140 +atom 142 (6) (32159, 79, 328) def +bond1 141 +atom 143 (8) (33368, -692, 21) def +bond1 142 +atom 144 (6) (34518, 150, -322) def +bond1 143 +atom 145 (8) (35725, -603, 28) def +bond1 144 +atom 146 (6) (36871, 254, 345) def +bond1 145 +atom 147 (8) (38081, -512, 34) def +bond1 146 +atom 148 (6) (39234, 334, -289) def +bond1 147 +atom 149 (8) (40436, -446, 14) def +bond1 148 +atom 150 (6) (41611, 387, 286) def +bond1 149 +atom 151 (8) (42790, -440, 18) def +bond1 150 +atom 152 (6) (43998, 346, -249) def +bond1 151 +atom 153 (8) (45139, -535, 11) def +bond1 152 +atom 154 (6) (46392, 191, 233) def +bond1 153 +atom 155 (8) (47474, -775, 32) def +bond1 154 +atom 156 (6) (48792, -151, -104) def +bond1 155 +atom 157 (8) (49771, -1234, 3) def +bond1 156 +atom 158 (6) (51159, -766, 19) def +bond1 157 +atom 159 (8) (51990, -1971, 8) def +bond1 158 +atom 160 (6) (53428, -1692, 8) def +bond1 159 +atom 161 (8) (54086, -2999, 8) def +bond1 160 +atom 162 (6) (55549, -2923, 5) def +bond1 161 +atom 163 (8) (56017, -4307, 6) def +bond1 162 +atom 164 (1) (13325, 150, 1433) def +bond1 126 +atom 165 (1) (13323, 807, -266) def +bond1 126 +atom 166 (1) (15681, 807, 280) def +bond1 128 +atom 167 (1) (15671, 47, -1375) def +bond1 128 +atom 168 (1) (18037, 126, 1416) def +bond1 130 +atom 169 (1) (18035, 779, -285) def +bond1 130 +atom 170 (1) (20390, 793, 266) def +bond1 132 +atom 171 (1) (20390, 28, -1387) def +bond1 132 +atom 172 (1) (22749, 116, 1418) def +bond1 134 +atom 173 (1) (22740, 784, -276) def +bond1 134 +atom 174 (1) (25091, 821, 251) def +bond1 136 +atom 175 (1) (25095, 51, -1400) def +bond1 136 +atom 176 (1) (27460, 172, 1402) def +bond1 138 +atom 177 (1) (27438, 841, -293) def +bond1 138 +atom 178 (1) (29784, 913, 216) def +bond1 140 +atom 179 (1) (29802, 127, -1428) def +bond1 140 +atom 180 (1) (32148, 300, 1394) def +bond1 142 +atom 181 (1) (32130, 968, -301) def +bond1 142 +atom 182 (1) (34482, 1067, 267) def +bond1 144 +atom 183 (1) (34515, 323, -1396) def +bond1 144 +atom 184 (1) (36860, 470, 1412) def +bond1 146 +atom 185 (1) (36839, 1146, -280) def +bond1 146 +atom 186 (1) (39215, 1226, 337) def +bond1 148 +atom 187 (1) (39218, 551, -1356) def +bond1 148 +atom 188 (1) (41609, 661, 1340) def +bond1 150 +atom 189 (1) (41611, 1243, -388) def +bond1 150 +atom 190 (1) (44036, 1195, 433) def +bond1 152 +atom 191 (1) (44006, 628, -1300) def +bond1 152 +atom 192 (1) (46418, 537, 1265) def +bond1 154 +atom 193 (1) (46483, 990, -501) def +bond1 154 +atom 194 (1) (48945, 552, 712) def +bond1 156 +atom 195 (1) (48867, 298, -1093) def +bond1 156 +atom 196 (1) (51338, -217, 943) def +bond1 158 +atom 197 (1) (51354, -189, -882) def +bond1 158 +atom 198 (1) (53689, -1160, 922) def +bond1 160 +atom 199 (1) (53689, -1159, -904) def +bond1 160 +atom 200 (1) (55886, -2432, 917) def +bond1 162 +atom 201 (1) (55883, -2435, -909) def +bond1 162 +atom 202 (1) (56984, -4324, 4) def +bond1 163 +thermo (Thermo-45) (153, 0, 51) 126 202 134 +info leaf forwarded = 682437328 +ground (Anchor-77) (0, 0, 0) 1 2 3 4 5 6 7 8 9 10 11 12 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 +egroup (003 anchors to 100 atoms) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 003 anchors to 100 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/007_rotarymotor_and_anchors_to_100_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/007_rotarymotor_and_anchors_to_100_atoms.mmp new file mode 100755 index 000000000..e1d9bef2a --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/007_rotarymotor_and_anchors_to_100_atoms.mmp @@ -0,0 +1,719 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (39.698526) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.498833, -0.531939, 0.391739, -0.561023) (19.525339) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (001 rotarymotor and anchors to 100 atoms) +info opengroup open = True +mol (Chunk-1) def +atom 1 (6) (246, 2418, 238) def +atom 2 (8) (176, 3200, -1004) def +bond1 1 +atom 3 (8) (1498, 1656, 253) def +bond1 1 +atom 4 (6) (2707, 2485, 240) def +bond1 3 +atom 5 (8) (2736, 3271, -1000) def +bond1 4 +atom 6 (8) (3853, 1573, 254) def +bond1 4 +atom 7 (6) (5156, 2244, 242) def +bond1 6 +atom 8 (8) (5284, 3020, -998) def +bond1 7 +atom 9 (8) (6180, 1195, 256) def +bond1 7 +atom 10 (6) (7557, 1697, 244) def +bond1 9 +atom 11 (8) (7780, 2453, -995) def +bond1 10 +atom 12 (8) (8440, 528, 257) def +bond1 10 +atom 13 (6) (9869, 855, 246) def +bond1 12 +atom 14 (8) (10186, 1578, -993) def +bond1 13 +atom 15 (8) (10600, -415, 258) def +bond1 13 +atom 16 (6) (12058, -270, 248) def +bond1 15 +atom 17 (8) (12464, 408, -990) def +bond1 16 +atom 18 (8) (12624, -1622, 259) def +bond1 16 +atom 19 (6) (14089, -1661, 250) def +bond1 18 +atom 20 (8) (14577, -1038, -987) def +bond1 19 +atom 21 (8) (14480, -3073, 261) def +bond1 19 +atom 22 (6) (15928, -3296, 252) def +bond1 21 +atom 23 (8) (16492, -2738, -984) def +bond1 22 +atom 24 (8) (16139, -4746, 262) def +bond1 22 +atom 25 (6) (17548, -5148, 254) def +bond1 24 +atom 26 (8) (18178, -4665, -982) def +bond1 25 +atom 27 (8) (17576, -6613, 263) def +bond1 25 +atom 28 (6) (18923, -7189, 256) def +bond1 27 +atom 29 (8) (19609, -6788, -980) def +bond1 28 +atom 30 (8) (18766, -8646, 264) def +bond1 28 +atom 31 (6) (20031, -9387, 258) def +bond1 30 +atom 32 (8) (20762, -9075, -977) def +bond1 31 +atom 33 (8) (19692, -10813, 265) def +bond1 31 +atom 34 (6) (20854, -11706, 259) def +bond1 33 +atom 35 (8) (21619, -11488, -976) def +bond1 34 +atom 36 (8) (20339, -13078, 266) def +bond1 34 +atom 37 (6) (21380, -14109, 260) def +bond1 36 +atom 38 (8) (22167, -13989, -974) def +bond1 37 +atom 39 (8) (20697, -15406, 266) def +bond1 37 +atom 40 (6) (21600, -16560, 261) def +bond1 39 +atom 41 (8) (22397, -16539, -973) def +bond1 40 +atom 42 (8) (20761, -17761, 267) def +bond1 40 +atom 43 (6) (21512, -19019, 261) def +bond1 42 +atom 44 (8) (22306, -19098, -972) def +bond1 43 +atom 45 (8) (20529, -20106, 267) def +bond1 43 +atom 46 (6) (21117, -21448, 262) def +bond1 45 +atom 47 (8) (21895, -21625, -972) def +bond1 46 +atom 48 (8) (20006, -22403, 267) def +bond1 46 +atom 49 (6) (20422, -23808, 261) def +bond1 48 +atom 50 (8) (21171, -24081, -972) def +bond1 49 +atom 51 (8) (19199, -24616, 267) def +bond1 49 +atom 52 (6) (19436, -26062, 261) def +bond1 51 +atom 53 (8) (20146, -26426, -973) def +bond1 52 +atom 54 (8) (18123, -26711, 266) def +bond1 52 +atom 55 (6) (18177, -28176, 260) def +bond1 54 +atom 56 (8) (18834, -28626, -974) def +bond1 55 +atom 57 (8) (16792, -28656, 266) def +bond1 55 +atom 58 (6) (16662, -30115, 259) def +bond1 57 +atom 59 (8) (17258, -30643, -975) def +bond1 58 +atom 60 (8) (15229, -30418, 265) def +bond1 58 +atom 61 (6) (14917, -31850, 258) def +bond1 60 +atom 62 (8) (15442, -32448, -977) def +bond1 61 +atom 63 (8) (13457, -31971, 264) def +bond1 61 +atom 64 (6) (12969, -33353, 256) def +bond1 63 +atom 65 (8) (13414, -34011, -979) def +bond1 64 +atom 66 (8) (11505, -33290, 263) def +bond1 64 +atom 67 (6) (10847, -34600, 255) def +bond1 66 +atom 68 (8) (11206, -35308, -981) def +bond1 67 +atom 69 (8) (9402, -34354, 262) def +bond1 67 +atom 70 (6) (8586, -35571, 253) def +bond1 69 +atom 71 (8) (8853, -36317, -984) def +bond1 70 +atom 72 (8) (7183, -35146, 261) def +bond1 70 +atom 73 (6) (6221, -36250, 251) def +bond1 72 +atom 74 (8) (6392, -37024, -986) def +bond1 73 +atom 75 (8) (4882, -35653, 260) def +bond1 73 +atom 76 (6) (3789, -36628, 249) def +bond1 75 +atom 77 (8) (3861, -37416, -989) def +bond1 76 +atom 78 (8) (2536, -35867, 258) def +bond1 76 +atom 79 (6) (1328, -36698, 247) def +bond1 78 +atom 80 (8) (1302, -37487, -992) def +bond1 79 +atom 81 (8) (181, -35786, 257) def +bond1 79 +atom 82 (6) (-1121, -36458, 244) def +bond1 81 +atom 83 (8) (-1246, -37236, -995) def +bond1 82 +atom 84 (8) (-2144, -35409, 255) def +bond1 82 +atom 85 (6) (-3521, -35912, 242) def +bond1 84 +atom 86 (8) (-3742, -36667, -998) def +bond1 85 +atom 87 (8) (-4405, -34743, 254) def +bond1 85 +atom 88 (6) (-5834, -35069, 240) def +bond1 87 +atom 89 (8) (-6148, -35790, -1000) def +bond1 88 +atom 90 (8) (-6564, -33799, 253) def +bond1 88 +atom 91 (6) (-8023, -33943, 238) def +bond1 90 +atom 92 (8) (-8424, -34617, -1004) def +bond1 91 +atom 93 (8) (-8588, -32591, 251) def +bond1 91 +atom 94 (6) (-10054, -32551, 236) def +bond1 93 +atom 95 (8) (-10536, -33169, -1006) def +bond1 94 +atom 96 (8) (-10445, -31138, 250) def +bond1 94 +atom 97 (6) (-11894, -30915, 234) def +bond1 96 +atom 98 (8) (-12449, -31467, -1008) def +bond1 97 +atom 99 (8) (-12105, -29465, 249) def +bond1 97 +atom 100 (6) (-13515, -29062, 232) def +bond1 99 +atom 101 (8) (-14134, -29539, -1012) def +bond1 100 +atom 102 (8) (-13543, -27596, 248) def +bond1 100 +atom 103 (6) (-14891, -27020, 231) def +bond1 102 +atom 104 (8) (-15564, -27415, -1014) def +bond1 103 +atom 105 (8) (-14735, -25562, 248) def +bond1 103 +atom 106 (6) (-16000, -24822, 229) def +bond1 105 +atom 107 (8) (-16717, -25130, -1014) def +bond1 106 +atom 108 (8) (-15664, -23395, 247) def +bond1 106 +atom 109 (6) (-16826, -22502, 228) def +bond1 108 +atom 110 (8) (-17575, -22718, -1016) def +bond1 109 +atom 111 (8) (-16312, -21129, 246) def +bond1 109 +atom 112 (6) (-17355, -20097, 228) def +bond1 111 +atom 113 (8) (-18125, -20217, -1018) def +bond1 112 +atom 114 (8) (-16675, -18799, 246) def +bond1 112 +atom 115 (6) (-17579, -17645, 227) def +bond1 114 +atom 116 (8) (-18357, -17667, -1018) def +bond1 115 +atom 117 (8) (-16741, -16442, 246) def +bond1 115 +atom 118 (6) (-17494, -15184, 227) def +bond1 117 +atom 119 (8) (-18268, -15108, -1018) def +bond1 118 +atom 120 (8) (-16512, -14095, 246) def +bond1 118 +atom 121 (6) (-17101, -12753, 227) def +bond1 120 +atom 122 (8) (-17860, -12581, -1018) def +bond1 121 +atom 123 (8) (-15990, -11796, 246) def +bond1 121 +atom 124 (6) (-16406, -10390, 227) def +bond1 123 +atom 125 (8) (-17138, -10124, -1018) def +bond1 124 +atom 126 (8) (-15184, -9580, 246) def +bond1 124 +atom 127 (6) (-15421, -8134, 227) def +bond1 126 +atom 128 (8) (-16113, -7777, -1018) def +bond1 127 +atom 129 (8) (-14107, -7483, 246) def +bond1 127 +atom 130 (6) (-14160, -6018, 228) def +bond1 129 +atom 131 (8) (-14802, -5578, -1016) def +bond1 130 +atom 132 (8) (-12775, -5538, 247) def +bond1 130 +atom 133 (6) (-12643, -4078, 229) def +bond1 132 +atom 134 (8) (-13225, -3560, -1016) def +bond1 133 +atom 135 (8) (-11209, -3776, 247) def +bond1 133 +atom 136 (6) (-10895, -2344, 230) def +bond1 135 +atom 137 (8) (-11408, -1756, -1014) def +bond1 136 +atom 138 (8) (-9434, -2224, 248) def +bond1 136 +atom 139 (6) (-8943, -843, 231) def +bond1 138 +atom 140 (8) (-9378, -195, -1012) def +bond1 139 +atom 141 (8) (-7478, -908, 249) def +bond1 139 +atom 142 (6) (-6818, 400, 233) def +bond1 141 +atom 143 (8) (-7169, 1098, -1010) def +bond1 142 +atom 144 (8) (-5373, 152, 250) def +bond1 142 +atom 145 (6) (-4554, 1368, 234) def +bond1 144 +atom 146 (8) (-4815, 2105, -1008) def +bond1 145 +atom 147 (8) (-3152, 941, 251) def +bond1 145 +atom 148 (6) (-2186, 2044, 236) def +bond1 147 +atom 149 (8) (-2353, 2810, -1006) def +bond1 148 +atom 150 (8) (-849, 1445, 252) def +bond1 148 1 +atom 151 (1) (11141, -35181, 1127) def +bond1 67 +atom 152 (1) (8805, -36185, 1125) def +bond1 70 +atom 153 (1) (14490, -1146, 1122) def +bond1 19 +atom 154 (1) (6361, -36888, 1123) def +bond1 73 +atom 155 (1) (3848, -37279, 1120) def +bond1 76 +atom 156 (1) (2730, 3142, 1108) def +bond1 4 +atom 157 (1) (1305, -37352, 1117) def +bond1 79 +atom 158 (1) (-1226, -37104, 1114) def +bond1 82 +atom 159 (1) (22021, -14011, 1134) def +bond1 37 +atom 160 (1) (-3707, -36541, 1111) def +bond1 85 +atom 161 (1) (-6098, -35671, 1108) def +bond1 88 +atom 162 (1) (16391, -2836, 1124) def +bond1 22 +atom 163 (1) (-8361, -34508, 1105) def +bond1 91 +atom 164 (1) (-10460, -33070, 1103) def +bond1 94 +atom 165 (1) (5261, 2892, 1111) def +bond1 7 +atom 166 (1) (-12362, -31379, 1100) def +bond1 97 +atom 167 (1) (-14038, -29464, 1098) def +bond1 100 +atom 168 (1) (22249, -16542, 1135) def +bond1 40 +atom 169 (1) (-15461, -27354, 1096) def +bond1 103 +atom 170 (1) (-16608, -25082, 1095) def +bond1 106 +atom 171 (1) (18065, -4751, 1127) def +bond1 25 +atom 172 (1) (-17462, -22684, 1093) def +bond1 109 +atom 173 (1) (-18009, -20199, 1092) def +bond1 112 +atom 174 (1) (7741, 2326, 1114) def +bond1 10 +atom 175 (1) (-18241, -17664, 1091) def +bond1 115 +atom 176 (1) (-18153, -15120, 1091) def +bond1 118 +atom 177 (1) (22158, -19083, 1136) def +bond1 43 +atom 178 (1) (-17747, -12606, 1091) def +bond1 121 +atom 179 (1) (-17029, -10164, 1091) def +bond1 124 +atom 180 (1) (19484, -6860, 1129) def +bond1 28 +atom 181 (1) (-16010, -7831, 1092) def +bond1 127 +atom 182 (1) (-14706, -5644, 1092) def +bond1 130 +atom 183 (1) (10131, 1455, 1117) def +bond1 13 +atom 184 (1) (-13138, -3639, 1094) def +bond1 133 +atom 185 (1) (-11330, -1846, 1095) def +bond1 136 +atom 186 (1) (21750, -21592, 1136) def +bond1 46 +atom 187 (1) (-9312, -295, 1097) def +bond1 139 +atom 188 (1) (-7115, 989, 1099) def +bond1 142 +atom 189 (1) (20628, -9131, 1131) def +bond1 31 +atom 190 (1) (-4775, 1989, 1101) def +bond1 145 +atom 191 (1) (20013, -26359, 1135) def +bond1 52 +atom 192 (1) (-2328, 2687, 1103) def +bond1 148 +atom 193 (1) (12393, 291, 1119) def +bond1 16 +atom 194 (1) (18712, -28543, 1134) def +bond1 55 +atom 195 (1) (21031, -24030, 1136) def +bond1 49 +atom 196 (1) (17148, -30547, 1133) def +bond1 58 +atom 197 (1) (186, 3074, 1106) def +bond1 1 +atom 198 (1) (15346, -32339, 1131) def +bond1 61 +atom 199 (1) (13333, -33892, 1130) def +bond1 64 +atom 200 (1) (21478, -11527, 1133) def +bond1 34 +atom 201 (6) (10856, -34612, -2228) def +bond1 68 +atom 202 (8) (9411, -34366, -2247) def +bond1 201 +atom 203 (6) (8593, -35583, -2230) def +bond1 202 71 +atom 204 (8) (7190, -35157, -2249) def +bond1 203 +atom 205 (6) (6225, -36261, -2232) def +bond1 204 74 +atom 206 (8) (4887, -35663, -2250) def +bond1 205 +atom 207 (6) (3792, -36637, -2234) def +bond1 206 77 +atom 208 (8) (2539, -35876, -2251) def +bond1 207 +atom 209 (6) (1331, -36705, -2236) def +bond1 208 80 +atom 210 (8) (184, -35792, -2253) def +bond1 209 +atom 211 (6) (-1119, -36463, -2238) def +bond1 210 83 +atom 212 (8) (-2142, -35413, -2254) def +bond1 211 +atom 213 (6) (-3519, -35915, -2241) def +bond1 212 86 +atom 214 (8) (-4402, -34745, -2255) def +bond1 213 +atom 215 (6) (-5831, -35070, -2243) def +bond1 214 89 +atom 216 (8) (-6561, -33799, -2257) def +bond1 215 +atom 217 (6) (-8019, -33942, -2245) def +bond1 216 92 +atom 218 (8) (-8583, -32589, -2258) def +bond1 217 +atom 219 (6) (-10049, -32548, -2247) def +bond1 218 95 +atom 220 (8) (-10439, -31136, -2259) def +bond1 219 +atom 221 (6) (-11887, -30912, -2249) def +bond1 220 98 +atom 222 (8) (-12097, -29461, -2260) def +bond1 221 +atom 223 (6) (-13506, -29058, -2251) def +bond1 222 101 +atom 224 (8) (-13533, -27592, -2261) def +bond1 223 +atom 225 (6) (-14880, -27016, -2252) def +bond1 224 104 +atom 226 (8) (-14724, -25559, -2262) def +bond1 225 +atom 227 (6) (-15988, -24818, -2253) def +bond1 226 107 +atom 228 (8) (-15651, -23392, -2263) def +bond1 227 +atom 229 (6) (-16813, -22500, -2254) def +bond1 228 110 +atom 230 (8) (-16299, -21127, -2263) def +bond1 229 +atom 231 (6) (-17341, -20096, -2255) def +bond1 230 113 +atom 232 (8) (-16659, -18798, -2263) def +bond1 231 +atom 233 (6) (-17564, -17645, -2256) def +bond1 232 116 +atom 234 (8) (-16725, -16443, -2264) def +bond1 233 +atom 235 (6) (-17478, -15186, -2256) def +bond1 234 119 +atom 236 (8) (-16496, -14098, -2264) def +bond1 235 +atom 237 (6) (-17086, -12756, -2256) def +bond1 236 122 +atom 238 (8) (-15975, -11800, -2264) def +bond1 237 +atom 239 (6) (-16392, -10395, -2256) def +bond1 238 125 +atom 240 (8) (-15170, -9586, -2264) def +bond1 239 +atom 241 (6) (-15407, -8140, -2255) def +bond1 240 128 +atom 242 (8) (-14093, -7490, -2263) def +bond1 241 +atom 243 (6) (-14147, -6026, -2255) def +bond1 242 131 +atom 244 (8) (-12763, -5546, -2263) def +bond1 243 +atom 245 (6) (-12632, -4086, -2254) def +bond1 244 134 +atom 246 (8) (-11198, -3784, -2262) def +bond1 245 +atom 247 (6) (-10886, -2352, -2253) def +bond1 246 137 +atom 248 (8) (-9425, -2232, -2261) def +bond1 247 +atom 249 (6) (-8935, -851, -2252) def +bond1 248 140 +atom 250 (8) (-7471, -915, -2261) def +bond1 249 +atom 251 (6) (-6812, 393, -2250) def +bond1 250 143 +atom 252 (8) (-5367, 145, -2260) def +bond1 251 +atom 253 (6) (-4549, 1362, -2248) def +bond1 252 146 +atom 254 (8) (-3147, 935, -2259) def +bond1 253 +atom 255 (6) (-2183, 2039, -2247) def +bond1 254 149 +atom 256 (8) (-845, 1441, -2258) def +bond1 255 +atom 257 (6) (248, 2416, -2245) def +bond1 256 2 +atom 258 (8) (1501, 1654, -2256) def +bond1 257 +atom 259 (6) (2709, 2484, -2243) def +bond1 258 5 +atom 260 (8) (3857, 1573, -2255) def +bond1 259 +atom 261 (6) (5159, 2245, -2241) def +bond1 260 8 +atom 262 (8) (6184, 1197, -2254) def +bond1 261 +atom 263 (6) (7560, 1700, -2238) def +bond1 262 11 +atom 264 (8) (8445, 532, -2253) def +bond1 263 +atom 265 (6) (9874, 859, -2236) def +bond1 264 14 +atom 266 (8) (10606, -410, -2251) def +bond1 265 +atom 267 (6) (12065, -264, -2234) def +bond1 266 17 +atom 268 (8) (12632, -1616, -2250) def +bond1 267 +atom 269 (6) (14097, -1654, -2232) def +bond1 268 20 +atom 270 (8) (14490, -3066, -2249) def +bond1 269 +atom 271 (6) (15939, -3288, -2230) def +bond1 270 23 +atom 272 (8) (16152, -4739, -2248) def +bond1 271 +atom 273 (6) (17561, -5141, -2228) def +bond1 272 26 +atom 274 (8) (17590, -6607, -2246) def +bond1 273 +atom 275 (6) (18938, -7183, -2227) def +bond1 274 29 +atom 276 (8) (18783, -8640, -2245) def +bond1 275 +atom 277 (6) (20048, -9381, -2225) def +bond1 276 32 +atom 278 (8) (19711, -10808, -2245) def +bond1 277 +atom 279 (6) (20873, -11702, -2224) def +bond1 278 35 +atom 280 (8) (20360, -13075, -2244) def +bond1 279 +atom 281 (6) (21401, -14107, -2223) def +bond1 280 38 +atom 282 (8) (20719, -15405, -2243) def +bond1 281 +atom 283 (6) (21622, -16560, -2222) def +bond1 282 41 +atom 284 (8) (20784, -17763, -2243) def +bond1 283 +atom 285 (6) (21535, -19022, -2221) def +bond1 284 44 +atom 286 (8) (20552, -20110, -2243) def +bond1 285 +atom 287 (6) (21140, -21453, -2221) def +bond1 286 47 +atom 288 (8) (20028, -22409, -2243) def +bond1 287 +atom 289 (6) (20443, -23815, -2221) def +bond1 288 50 +atom 290 (8) (19221, -24625, -2243) def +bond1 289 +atom 291 (6) (19456, -26072, -2222) def +bond1 290 53 +atom 292 (8) (18142, -26722, -2243) def +bond1 291 +atom 293 (6) (18195, -28187, -2222) def +bond1 292 56 +atom 294 (8) (16810, -28667, -2244) def +bond1 293 +atom 295 (6) (16678, -30128, -2223) def +bond1 294 59 +atom 296 (8) (15244, -30431, -2244) def +bond1 295 +atom 297 (6) (14931, -31863, -2225) def +bond1 296 62 +atom 298 (8) (13470, -31984, -2245) def +bond1 297 +atom 299 (6) (12980, -33366, -2226) def +bond1 298 65 +atom 300 (8) (11515, -33303, -2246) def +bond1 299 201 +atom 301 (1) (-8355, -34505, -3114) def +bond1 217 +atom 302 (1) (-10452, -33064, -3117) def +bond1 219 +atom 303 (1) (-12352, -31372, -3119) def +bond1 221 +atom 304 (1) (-14024, -29456, -3122) def +bond1 223 +atom 305 (1) (-15444, -27346, -3123) def +bond1 225 +atom 306 (1) (14504, -1133, -3098) def +bond1 269 +atom 307 (1) (-16588, -25075, -3125) def +bond1 227 +atom 308 (1) (-17440, -22679, -3126) def +bond1 229 +atom 309 (1) (-17985, -20196, -3127) def +bond1 231 +atom 310 (1) (189, 3069, -3114) def +bond1 257 +atom 311 (1) (-18215, -17663, -3128) def +bond1 233 +atom 312 (1) (2732, 3141, -3111) def +bond1 259 +atom 313 (1) (-18127, -15122, -3129) def +bond1 235 +atom 314 (1) (-17721, -12612, -3129) def +bond1 237 +atom 315 (1) (7746, 2332, -3106) def +bond1 263 +atom 316 (1) (-17004, -10173, -3128) def +bond1 239 +atom 317 (1) (10138, 1463, -3103) def +bond1 265 +atom 318 (1) (-15986, -7842, -3128) def +bond1 241 +atom 319 (1) (12403, 302, -3100) def +bond1 267 +atom 320 (1) (22197, -19087, -3083) def +bond1 285 +atom 321 (1) (-14685, -5657, -3127) def +bond1 243 +atom 322 (1) (16409, -2822, -3095) def +bond1 271 +atom 323 (1) (-13120, -3653, -3126) def +bond1 245 +atom 324 (1) (18086, -4737, -3093) def +bond1 273 +atom 325 (1) (-11315, -1861, -3125) def +bond1 247 +atom 326 (1) (19510, -6848, -3091) def +bond1 275 +atom 327 (1) (-9300, -309, -3123) def +bond1 249 +atom 328 (1) (20658, -9120, -3089) def +bond1 277 +atom 329 (1) (-7106, 976, -3121) def +bond1 251 +atom 330 (1) (21512, -11519, -3087) def +bond1 279 +atom 331 (1) (-4768, 1978, -3119) def +bond1 253 +atom 332 (1) (22057, -14006, -3085) def +bond1 281 +atom 333 (1) (-2323, 2679, -3116) def +bond1 255 +atom 334 (1) (22287, -16542, -3084) def +bond1 283 +atom 335 (1) (5265, 2894, -3109) def +bond1 261 +atom 336 (1) (21788, -21600, -3083) def +bond1 287 +atom 337 (1) (21068, -24043, -3083) def +bond1 289 +atom 338 (1) (20048, -26376, -3084) def +bond1 291 +atom 339 (1) (18743, -28562, -3085) def +bond1 293 +atom 340 (1) (17175, -30568, -3086) def +bond1 295 +atom 341 (1) (15368, -32362, -3088) def +bond1 297 +atom 342 (1) (13351, -33915, -3090) def +bond1 299 +atom 343 (1) (11155, -35203, -3092) def +bond1 201 +atom 344 (1) (8815, -36206, -3095) def +bond1 203 +atom 345 (1) (6368, -36907, -3097) def +bond1 205 +atom 346 (1) (3852, -37295, -3100) def +bond1 207 +atom 347 (1) (1308, -37364, -3103) def +bond1 209 +atom 348 (1) (-1224, -37112, -3106) def +bond1 211 +atom 349 (1) (-3705, -36545, -3109) def +bond1 213 +atom 350 (1) (-6095, -35671, -3111) def +bond1 215 +rmotor (Rotary Motor-90) (127, 127, 127) 1.00 1.50 (2037, -17108, -1014) (0, 0, 1000) 10.00 2.00 0.50 +shaft 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 103 106 109 112 115 118 121 124 127 130 133 136 139 142 145 148 201 203 205 207 209 211 213 215 217 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 279 281 283 285 287 289 291 293 295 297 299 +thermo (Thermo-91) (153, 0, 51) 1 350 150 +ground (Anchor-98) (0, 0, 0) 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 103 106 109 112 115 118 121 124 127 130 133 136 139 142 145 148 201 203 205 207 209 211 213 215 217 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 279 281 283 285 287 289 291 293 295 297 299 +egroup (001 rotarymotor and anchors to 100 atoms) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 001 rotarymotor and anchors to 100 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/test_001_rotarymotor_to_50_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/test_001_rotarymotor_to_50_atoms.mmp new file mode 100755 index 000000000..1ec80dadd --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_001_rotarymotor_to_50_atoms.mmp @@ -0,0 +1,409 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (001 rotarymotor to 200 atoms) +info opengroup open = True +mol (Chunk-1) - +atom 1 (6) (151, 2322, 18) - +atom 2 (1) (99, 2896, 942) - +bond1 1 +atom 3 (1) (96, 2929, -883) - +bond1 1 +atom 4 (8) (1396, 1551, 2) - +bond1 1 +atom 5 (6) (2596, 2389, 21) - +bond1 4 +atom 6 (1) (2616, 2962, 948) - +bond1 5 +atom 7 (1) (2618, 3003, -877) - +bond1 5 +atom 8 (8) (3735, 1469, 2) - +bond1 5 +atom 9 (6) (5031, 2150, 18) - +bond1 8 +atom 10 (1) (5123, 2720, 942) - +bond1 9 +atom 11 (1) (5129, 2753, -883) - +bond1 9 +atom 12 (8) (6046, 1095, 2) - +bond1 9 +atom 13 (6) (7417, 1608, 20) - +bond1 12 +atom 14 (1) (7579, 2160, 945) - +bond1 13 +atom 15 (1) (7590, 2196, -880) - +bond1 13 +atom 16 (8) (8292, 434, 2) - +bond1 13 +atom 17 (6) (9716, 773, 19) - +bond1 16 +atom 18 (1) (9947, 1301, 943) - +bond1 17 +atom 19 (1) (9961, 1332, -882) - +bond1 17 +atom 20 (8) (10437, -501, 2) - +bond1 17 +atom 21 (6) (11893, -344, 21) - +bond1 20 +atom 22 (1) (12187, 148, 947) - +bond1 21 +atom 23 (1) (12207, 182, -878) - +bond1 21 +atom 24 (8) (12449, -1698, 2) - +bond1 21 +atom 25 (6) (13913, -1725, 18) - +bond1 24 +atom 26 (1) (14267, -1271, 942) - +bond1 25 +atom 27 (1) (14288, -1244, -883) - +bond1 25 +atom 28 (8) (14294, -3139, 2) - +bond1 25 +atom 29 (6) (15743, -3349, 21) - +bond1 28 +atom 30 (1) (16149, -2946, 948) - +bond1 29 +atom 31 (1) (16178, -2916, -877) - +bond1 29 +atom 32 (8) (15943, -4800, 1) - +bond1 29 +atom 33 (6) (17354, -5190, 16) - +bond1 32 +atom 34 (1) (17812, -4838, 940) - +bond1 33 +atom 35 (1) (17837, -4819, -886) - +bond1 33 +atom 36 (8) (17371, -6655, 1) - +bond1 33 +atom 37 (6) (18722, -7220, 19) - +bond1 36 +atom 38 (1) (19217, -6929, 945) - +bond1 37 +atom 39 (1) (19250, -6910, -880) - +bond1 37 +atom 40 (8) (18554, -8674, 2) - +bond1 37 +atom 41 (6) (19824, -9405, 20) - +bond1 40 +atom 42 (1) (20352, -9178, 945) - +bond1 41 +atom 43 (1) (20386, -9164, -880) - +bond1 41 +atom 44 (8) (19475, -10827, 2) - +bond1 41 +atom 45 (6) (20643, -11710, 20) - +bond1 44 +atom 46 (1) (21196, -11552, 945) - +bond1 45 +atom 47 (1) (21231, -11542, -880) - +bond1 45 +atom 48 (8) (20119, -13078, 2) - +bond1 45 +atom 49 (6) (21166, -14101, 20) - +bond1 48 +atom 50 (1) (21735, -14013, 945) - +bond1 49 +atom 51 (1) (21771, -14007, -880) - +bond1 49 +atom 52 (8) (20475, -15391, 2) - +bond1 49 +atom 53 (6) (21386, -16538, 20) - +bond1 52 +atom 54 (1) (21962, -16522, 945) - +bond1 53 +atom 55 (1) (21998, -16521, -880) - +bond1 53 +atom 56 (8) (20539, -17732, 2) - +bond1 53 +atom 57 (6) (21299, -18983, 20) - +bond1 56 +atom 58 (1) (21872, -19040, 945) - +bond1 57 +atom 59 (1) (21909, -19043, -880) - +bond1 57 +atom 60 (8) (20309, -20062, 2) - +bond1 57 +atom 61 (6) (20907, -21398, 18) - +bond1 60 +atom 62 (1) (21469, -21526, 943) - +bond1 61 +atom 63 (1) (21503, -21534, -882) - +bond1 61 +atom 64 (8) (19789, -22345, 2) - +bond1 61 +atom 65 (6) (20215, -23746, 21) - +bond1 64 +atom 66 (1) (20754, -23942, 947) - +bond1 65 +atom 67 (1) (20792, -23956, -878) - +bond1 65 +atom 68 (8) (18988, -24544, 2) - +bond1 65 +atom 69 (6) (19235, -25988, 19) - +bond1 68 +atom 70 (1) (19747, -26251, 944) - +bond1 69 +atom 71 (1) (19779, -26267, -881) - +bond1 69 +atom 72 (8) (17917, -26627, 2) - +bond1 69 +atom 73 (6) (17982, -28090, 20) - +bond1 72 +atom 74 (1) (18457, -28414, 945) - +bond1 73 +atom 75 (1) (18487, -28435, -880) - +bond1 73 +atom 76 (8) (16595, -28559, 2) - +bond1 73 +atom 77 (6) (16476, -30018, 20) - +bond1 76 +atom 78 (1) (16906, -30400, 945) - +bond1 77 +atom 79 (1) (16933, -30424, -880) - +bond1 77 +atom 80 (8) (15041, -30310, 2) - +bond1 77 +atom 81 (6) (14740, -31742, 20) - +bond1 80 +atom 82 (1) (15118, -32174, 946) - +bond1 81 +atom 83 (1) (15143, -32203, -879) - +bond1 81 +atom 84 (8) (13279, -31852, 2) - +bond1 81 +atom 85 (6) (12801, -33236, 17) - +bond1 84 +atom 86 (1) (13125, -33715, 940) - +bond1 85 +atom 87 (1) (13142, -33741, -885) - +bond1 85 +atom 88 (8) (11339, -33162, 2) - +bond1 85 +atom 89 (6) (10691, -34475, 21) - +bond1 88 +atom 90 (1) (10950, -34987, 947) - +bond1 89 +atom 91 (1) (10968, -35023, -878) - +bond1 89 +atom 92 (8) (9250, -34218, 2) - +bond1 89 +atom 93 (6) (8442, -35440, 19) - +bond1 92 +atom 94 (1) (8636, -35983, 943) - +bond1 93 +atom 95 (1) (8648, -36015, -882) - +bond1 93 +atom 96 (8) (7044, -35004, 2) - +bond1 93 +atom 97 (6) (6091, -36115, 20) - +bond1 96 +atom 98 (1) (6214, -36677, 945) - +bond1 97 +atom 99 (1) (6222, -36713, -880) - +bond1 97 +atom 100 (8) (4758, -35508, 2) - +bond1 97 +atom 101 (6) (3672, -36490, 20) - +bond1 100 +atom 102 (1) (3725, -37063, 945) - +bond1 101 +atom 103 (1) (3728, -37100, -880) - +bond1 101 +atom 104 (8) (2427, -35720, 2) - +bond1 101 +atom 105 (6) (1226, -36558, 21) - +bond1 104 +atom 106 (1) (1206, -37131, 948) - +bond1 105 +atom 107 (1) (1205, -37172, -877) - +bond1 105 +atom 108 (8) (88, -35638, 1) - +bond1 105 +atom 109 (6) (-1208, -36318, 19) - +bond1 108 +atom 110 (1) (-1300, -36886, 944) - +bond1 109 +atom 111 (1) (-1306, -36923, -881) - +bond1 109 +atom 112 (8) (-2222, -35262, 0) - +bond1 109 +atom 113 (6) (-3594, -35775, 17) - +bond1 112 +atom 114 (1) (-3757, -36327, 941) - +bond1 113 +atom 115 (1) (-3766, -36361, -884) - +bond1 113 +atom 116 (8) (-4467, -34599, 0) - +bond1 113 +atom 117 (6) (-5892, -34936, 19) - +bond1 116 +atom 118 (1) (-6122, -35462, 944) - +bond1 117 +atom 119 (1) (-6138, -35497, -881) - +bond1 117 +atom 120 (8) (-6611, -33660, 1) - +bond1 117 +atom 121 (6) (-8067, -33815, 20) - +bond1 120 +atom 122 (1) (-8361, -34307, 947) - +bond1 121 +atom 123 (1) (-8382, -34342, -878) - +bond1 121 +atom 124 (8) (-8621, -32460, 1) - +bond1 121 +atom 125 (6) (-10085, -32430, 19) - +bond1 124 +atom 126 (1) (-10440, -32884, 944) - +bond1 125 +atom 127 (1) (-10462, -32913, -881) - +bond1 125 +atom 128 (8) (-10465, -31017, 1) - +bond1 125 +atom 129 (6) (-11913, -30805, 16) - +bond1 128 +atom 130 (1) (-12324, -31212, 939) - +bond1 129 +atom 131 (1) (-12346, -31233, -886) - +bond1 129 +atom 132 (8) (-12113, -29354, 1) - +bond1 129 +atom 133 (6) (-13524, -28962, 21) - +bond1 132 +atom 134 (1) (-13978, -29312, 947) - +bond1 133 +atom 135 (1) (-14011, -29336, -878) - +bond1 133 +atom 136 (8) (-13540, -27498, 2) - +bond1 133 +atom 137 (6) (-14891, -26933, 20) - +bond1 136 +atom 138 (1) (-15387, -27224, 945) - +bond1 137 +atom 139 (1) (-15419, -27242, -880) - +bond1 137 +atom 140 (8) (-14724, -25478, 2) - +bond1 137 +atom 141 (6) (-15993, -24748, 20) - +bond1 140 +atom 142 (1) (-16522, -24974, 945) - +bond1 141 +atom 143 (1) (-16556, -24989, -880) - +bond1 141 +atom 144 (8) (-15645, -23326, 2) - +bond1 141 +atom 145 (6) (-16813, -22443, 21) - +bond1 144 +atom 146 (1) (-17365, -22600, 947) - +bond1 145 +atom 147 (1) (-17403, -22612, -878) - +bond1 145 +atom 148 (8) (-16290, -21075, 1) - +bond1 145 +atom 149 (6) (-17339, -20053, 16) - +bond1 148 +atom 150 (1) (-17910, -20141, 939) - +bond1 149 +atom 151 (1) (-17940, -20146, -886) - +bond1 149 +atom 152 (8) (-16648, -18761, 1) - +bond1 149 +atom 153 (6) (-17560, -17616, 21) - +bond1 152 +atom 154 (1) (-18134, -17632, 947) - +bond1 153 +atom 155 (1) (-18174, -17633, -878) - +bond1 153 +atom 156 (8) (-16714, -16421, 2) - +bond1 153 +atom 157 (6) (-17475, -15170, 20) - +bond1 156 +atom 158 (1) (-18048, -15114, 945) - +bond1 157 +atom 159 (1) (-18084, -15111, -880) - +bond1 157 +atom 160 (8) (-16486, -14091, 2) - +bond1 157 +atom 161 (6) (-17085, -12755, 21) - +bond1 160 +atom 162 (1) (-17644, -12628, 947) - +bond1 161 +atom 163 (1) (-17683, -12619, -878) - +bond1 161 +atom 164 (8) (-15968, -11808, 2) - +bond1 161 +atom 165 (6) (-16395, -10407, 19) - +bond1 164 +atom 166 (1) (-16936, -10210, 943) - +bond1 165 +atom 167 (1) (-16969, -10198, -882) - +bond1 165 +atom 168 (8) (-15168, -9608, 2) - +bond1 165 +atom 169 (6) (-15416, -8164, 19) - +bond1 168 +atom 170 (1) (-15928, -7902, 943) - +bond1 169 +atom 171 (1) (-15959, -7885, -882) - +bond1 169 +atom 172 (8) (-14098, -7525, 2) - +bond1 169 +atom 173 (6) (-14163, -6063, 21) - +bond1 172 +atom 174 (1) (-14637, -5738, 947) - +bond1 173 +atom 175 (1) (-14669, -5716, -878) - +bond1 173 +atom 176 (8) (-12776, -5594, 2) - +bond1 173 +atom 177 (6) (-12657, -4134, 20) - +bond1 176 +atom 178 (1) (-13087, -3752, 945) - +bond1 177 +atom 179 (1) (-13114, -3728, -880) - +bond1 177 +atom 180 (8) (-11222, -3843, 2) - +bond1 177 +atom 181 (6) (-10920, -2411, 19) - +bond1 180 +atom 182 (1) (-11299, -1977, 944) - +bond1 181 +atom 183 (1) (-11322, -1951, -881) - +bond1 181 +atom 184 (8) (-9460, -2303, 2) - +bond1 181 +atom 185 (6) (-8980, -920, 21) - +bond1 184 +atom 186 (1) (-9300, -443, 947) - +bond1 185 +atom 187 (1) (-9323, -411, -878) - +bond1 185 +atom 188 (8) (-7518, -996, 2) - +bond1 185 +atom 189 (6) (-6868, 315, 18) - +bond1 188 +atom 190 (1) (-7128, 831, 942) - +bond1 189 +atom 191 (1) (-7143, 860, -883) - +bond1 189 +atom 192 (8) (-5427, 56, 1) - +bond1 189 +atom 193 (6) (-4619, 1277, 20) - +bond1 192 +atom 194 (1) (-4811, 1818, 945) - +bond1 193 +atom 195 (1) (-4823, 1854, -880) - +bond1 193 +atom 196 (8) (-3221, 839, 2) - +bond1 193 +atom 197 (6) (-2266, 1949, 21) - +bond1 196 +atom 198 (1) (-2389, 2509, 947) - +bond1 197 +atom 199 (1) (-2397, 2548, -878) - +bond1 197 +atom 200 (8) (-935, 1340, 2) - +bond1 197 1 +rmotor (Rotary Motor1) (127, 127, 127) 2.00 3.00 (1912, -17084, 21) (0, 0, -1000) 10.00 1.00 0.10 +shaft 157 73 161 77 165 81 1 85 173 89 5 177 93 9 181 97 13 185 101 17 189 105 21 193 109 25 197 113 29 117 33 121 37 125 41 129 45 133 49 137 53 141 57 169 145 61 149 65 153 69 +thermo (Thermo-18) (153, 0, 51) 1 200 200 +egroup (001 rotarymotor to 200 atoms) +end molecular machine part 001 rotarymotor to 200 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/test_001_rotarymotor_to_50_atoms.trc b/sim/src/tests/jigs_to_several_atoms/test_001_rotarymotor_to_50_atoms.trc new file mode 100755 index 000000000..ea7d0c49f --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_001_rotarymotor_to_50_atoms.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_001_rotarymotor_to_50_atoms.trc test_001_rotarymotor_to_50_atoms.mmp +# Date and Time: Wed Apr 19 10:53:31 2006 +# Input File: test_001_rotarymotor_to_50_atoms.mmp +# Output File: test_001_rotarymotor_to_50_atoms.xyz +# Trace File: test_001_rotarymotor_to_50_atoms.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 200 +# +# 3 columns: +# Rotary Motor1: speed (GHz) +# Rotary Motor1: torque (nn-nm) +# Thermo-18: temperature (K) +# +# Time speed torque T.meter +# picosec Rotary Motor1 Thermo-18 +# + 0.0100 0.315 1.686 334.51 +# Done: diff --git a/sim/src/tests/jigs_to_several_atoms/test_001_rotarymotor_to_50_atoms.xyzcmp b/sim/src/tests/jigs_to_several_atoms/test_001_rotarymotor_to_50_atoms.xyzcmp new file mode 100755 index 000000000..fc135e6d0 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_001_rotarymotor_to_50_atoms.xyzcmp @@ -0,0 +1,202 @@ +200 +Frame 0, Iteration: 100 +C 0.163859 2.325743 -0.016351 +H -0.001979 2.966533 0.853120 +H 0.151830 2.854038 -0.968238 +O 1.372229 1.562947 0.026381 +C 2.629954 2.369557 -0.001374 +H 2.660982 2.989144 0.895574 +H 2.642091 2.962783 -0.918607 +O 3.732013 1.433860 -0.020342 +C 5.028282 2.133888 0.026541 +H 5.123931 2.624916 0.996305 +H 5.165870 2.786410 -0.839829 +O 6.036165 1.078078 0.009417 +C 7.414969 1.612462 0.018195 +H 7.575570 2.095779 0.986052 +H 7.624107 2.250703 -0.844633 +O 8.276068 0.476291 -0.002467 +C 9.735435 0.791866 -0.007197 +H 9.999608 1.313784 0.914561 +H 9.940419 1.305549 -0.949652 +O 10.451310 -0.487584 0.014139 +C 11.896562 -0.350392 0.014182 +H 12.230640 0.126449 0.937991 +H 12.308880 0.188899 -0.838480 +O 12.457429 -1.661006 0.002957 +C 13.938995 -1.730456 0.028161 +H 14.351352 -1.194180 0.887299 +H 14.265485 -1.325613 -0.926774 +O 14.256260 -3.129050 -0.019947 +C 15.744493 -3.353194 -0.024075 +H 16.172842 -2.837595 0.838903 +H 16.183875 -2.952217 -0.940317 +O 15.978530 -4.803940 0.036295 +C 17.376778 -5.181547 0.033807 +H 17.874067 -4.828486 0.936692 +H 17.885365 -4.826135 -0.863038 +O 17.398818 -6.626589 -0.018636 +C 18.734505 -7.242889 0.039237 +H 19.167273 -6.991049 1.005955 +H 19.344368 -6.947517 -0.815637 +O 18.536460 -8.650268 -0.002986 +C 19.817079 -9.419146 0.024425 +H 20.491190 -9.143763 0.840544 +H 20.337710 -9.242868 -0.912612 +O 19.485314 -10.815035 -0.000697 +C 20.612463 -11.696506 -0.002035 +H 21.124209 -11.547302 0.942966 +H 21.248403 -11.500083 -0.865512 +O 20.142081 -13.074522 0.040458 +C 21.177365 -14.128494 0.047948 +H 21.785826 -14.063282 0.955315 +H 21.716077 -14.103028 -0.899220 +O 20.450421 -15.388701 0.000205 +C 21.420658 -16.544811 0.067144 +H 22.019775 -16.553432 0.984159 +H 22.091363 -16.443837 -0.797276 +O 20.539892 -17.711186 -0.007958 +C 21.264679 -18.982332 -0.014943 +H 21.925391 -19.081324 0.847106 +H 21.799976 -18.990157 -0.964765 +O 20.263865 -20.095459 -0.001731 +C 20.891091 -21.425736 0.006188 +H 21.354605 -21.518953 0.983950 +H 21.603426 -21.553810 -0.813991 +O 19.797507 -22.371677 0.024584 +C 20.188226 -23.760489 0.050308 +H 20.721858 -23.954704 0.986420 +H 20.795572 -23.903830 -0.841307 +O 18.955025 -24.525726 -0.024837 +C 19.236075 -25.970460 0.023032 +H 19.712181 -26.155645 0.987100 +H 19.860040 -26.236218 -0.835253 +O 17.888771 -26.636192 0.004677 +C 17.998391 -28.112081 0.052741 +H 18.404703 -28.388620 1.030498 +H 18.564721 -28.498110 -0.800045 +O 16.615946 -28.514156 -0.029615 +C 16.437267 -29.985419 0.057128 +H 16.907490 -30.318880 0.986011 +H 16.929275 -30.321974 -0.850131 +O 15.042481 -30.364543 -0.039620 +C 14.742187 -31.780224 0.048533 +H 15.113809 -32.226328 0.982869 +H 15.157005 -32.253271 -0.842590 +O 13.252607 -31.870681 0.045555 +C 12.823115 -33.253966 0.030277 +H 13.158500 -33.783001 0.923782 +H 13.163217 -33.784280 -0.860022 +O 11.351475 -33.177742 0.022614 +C 10.687945 -34.495674 -0.001647 +H 10.957286 -35.016479 0.915918 +H 10.962164 -35.126669 -0.856311 +O 9.242480 -34.216904 -0.015808 +C 8.456057 -35.433157 -0.005644 +H 8.712993 -35.943628 0.921926 +H 8.694920 -35.981624 -0.920807 +O 7.062022 -34.997562 -0.002439 +C 6.087110 -36.102148 0.014464 +H 6.213330 -36.492465 1.020547 +H 6.267461 -36.809377 -0.799066 +O 4.765508 -35.546797 -0.026044 +C 3.678281 -36.498217 0.045769 +H 3.692188 -37.104828 0.958044 +H 3.654862 -37.071953 -0.880581 +O 2.402977 -35.705123 0.003266 +C 1.196224 -36.542390 -0.011730 +H 1.254333 -37.183734 0.868186 +H 1.169427 -37.083785 -0.958888 +O 0.070659 -35.629926 0.008382 +C -1.214941 -36.324422 0.026266 +H -1.294868 -37.010573 0.874451 +H -1.252906 -36.858521 -0.922115 +O -2.251233 -35.260597 0.053485 +C -3.614560 -35.749179 -0.005982 +H -3.815651 -36.389397 0.852670 +H -3.819742 -36.273956 -0.938258 +O -4.506737 -34.573773 0.025091 +C -5.867319 -34.906982 0.014614 +H -6.045944 -35.446354 0.940615 +H -6.051560 -35.467757 -0.898139 +O -6.593592 -33.677937 0.016743 +C -8.087220 -33.808521 0.009134 +H -8.457328 -34.337394 0.889866 +H -8.445006 -34.282994 -0.905855 +O -8.596972 -32.451408 0.036290 +C -10.072021 -32.421445 -0.016290 +H -10.508452 -32.891186 0.865107 +H -10.414232 -32.834241 -0.967547 +O -10.488200 -31.021445 0.022628 +C -11.912633 -30.850543 0.003985 +H -12.370506 -31.228741 0.928949 +H -12.327998 -31.281554 -0.911170 +O -12.095826 -29.355327 -0.007039 +C -13.495781 -28.976796 0.015138 +H -13.933235 -29.444864 0.899785 +H -13.882771 -29.335054 -0.935761 +O -13.510864 -27.528651 -0.028567 +C -14.881566 -26.943641 0.023065 +H -15.412865 -27.217498 0.938035 +H -15.433525 -27.263274 -0.858631 +O -14.750032 -25.516263 -0.067296 +C -16.007762 -24.764433 0.043437 +H -16.572269 -25.103202 0.920603 +H -16.541552 -24.924866 -0.889978 +O -15.663370 -23.326811 -0.019343 +C -16.800027 -22.415572 0.049249 +H -17.262535 -22.539840 1.030021 +H -17.459278 -22.634689 -0.788226 +O -16.316760 -21.067193 -0.034611 +C -17.342751 -20.086263 0.011062 +H -17.875574 -20.166924 0.967713 +H -17.932387 -20.179111 -0.905043 +O -16.649781 -18.796807 0.007620 +C -17.572235 -17.595374 0.017014 +H -18.185572 -17.535771 0.919487 +H -18.197957 -17.590825 -0.881637 +O -16.751641 -16.414430 0.041465 +C -17.473555 -15.202039 -0.020331 +H -17.957509 -15.180621 0.953089 +H -18.106766 -15.247678 -0.918269 +O -16.476781 -14.085893 0.028457 +C -17.068835 -12.733941 0.047676 +H -17.651639 -12.589215 0.959848 +H -17.615313 -12.570922 -0.880307 +O -15.959441 -11.776407 0.009241 +C -16.380735 -10.412897 0.051000 +H -17.041229 -10.162866 0.882728 +H -16.941088 -10.287852 -0.871164 +O -15.170796 -9.561961 0.042572 +C -15.441429 -8.191960 0.008009 +H -15.926400 -7.960903 0.953234 +H -16.067171 -7.955150 -0.858791 +O -14.066883 -7.504718 0.027746 +C -14.147936 -6.051580 0.027839 +H -14.646469 -5.848460 0.976249 +H -14.683027 -5.756899 -0.878398 +O -12.736502 -5.625545 0.031681 +C -12.630061 -4.111031 -0.023198 +H -13.037098 -3.685792 0.888112 +H -13.123773 -3.653351 -0.885410 +O -11.277308 -3.812494 0.017530 +C -10.906553 -2.410492 -0.019634 +H -11.268037 -1.931252 0.896129 +H -11.250672 -2.001258 -0.971330 +O -9.473264 -2.292759 0.008752 +C -8.963218 -0.907588 -0.017931 +H -9.252962 -0.508386 0.954223 +H -9.343662 -0.304616 -0.855314 +O -7.562617 -0.987440 0.000876 +C -6.837285 0.371292 0.014400 +H -7.116375 0.845516 0.956912 +H -7.095519 1.049426 -0.813401 +O -5.412365 0.084757 -0.007686 +C -4.599432 1.234957 0.015091 +H -4.857876 1.730485 0.957101 +H -4.782040 1.867752 -0.850370 +O -3.225502 0.824139 0.021403 +C -2.270225 1.970768 -0.002233 +H -2.428044 2.566369 0.901559 +H -2.402017 2.562169 -0.917876 +O -0.903699 1.353005 0.014776 diff --git a/sim/src/tests/jigs_to_several_atoms/test_002_rotarymotor_to_100_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/test_002_rotarymotor_to_100_atoms.mmp new file mode 100755 index 000000000..0d777da31 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_002_rotarymotor_to_100_atoms.mmp @@ -0,0 +1,709 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (001 rotarymotor to 100 atoms) +info opengroup open = True +mol (Chunk-1) - +atom 1 (6) (246, 2418, 238) - +atom 2 (8) (176, 3200, -1004) - +bond1 1 +atom 3 (8) (1498, 1656, 253) - +bond1 1 +atom 4 (6) (2707, 2485, 240) - +bond1 3 +atom 5 (8) (2736, 3271, -1001) - +bond1 4 +atom 6 (8) (3853, 1573, 254) - +bond1 4 +atom 7 (6) (5156, 2244, 242) - +bond1 6 +atom 8 (8) (5284, 3020, -998) - +bond1 7 +atom 9 (8) (6180, 1195, 256) - +bond1 7 +atom 10 (6) (7557, 1697, 244) - +bond1 9 +atom 11 (8) (7780, 2453, -995) - +bond1 10 +atom 12 (8) (8440, 528, 257) - +bond1 10 +atom 13 (6) (9869, 855, 246) - +bond1 12 +atom 14 (8) (10186, 1578, -993) - +bond1 13 +atom 15 (8) (10600, -415, 258) - +bond1 13 +atom 16 (6) (12058, -270, 248) - +bond1 15 +atom 17 (8) (12464, 408, -990) - +bond1 16 +atom 18 (8) (12624, -1622, 259) - +bond1 16 +atom 19 (6) (14089, -1661, 250) - +bond1 18 +atom 20 (8) (14577, -1038, -987) - +bond1 19 +atom 21 (8) (14480, -3073, 261) - +bond1 19 +atom 22 (6) (15928, -3296, 252) - +bond1 21 +atom 23 (8) (16492, -2738, -984) - +bond1 22 +atom 24 (8) (16139, -4746, 262) - +bond1 22 +atom 25 (6) (17548, -5148, 254) - +bond1 24 +atom 26 (8) (18178, -4665, -982) - +bond1 25 +atom 27 (8) (17576, -6613, 263) - +bond1 25 +atom 28 (6) (18923, -7189, 256) - +bond1 27 +atom 29 (8) (19609, -6788, -980) - +bond1 28 +atom 30 (8) (18766, -8646, 264) - +bond1 28 +atom 31 (6) (20031, -9387, 258) - +bond1 30 +atom 32 (8) (20762, -9075, -977) - +bond1 31 +atom 33 (8) (19692, -10813, 265) - +bond1 31 +atom 34 (6) (20854, -11706, 259) - +bond1 33 +atom 35 (8) (21619, -11488, -976) - +bond1 34 +atom 36 (8) (20339, -13078, 266) - +bond1 34 +atom 37 (6) (21380, -14109, 260) - +bond1 36 +atom 38 (8) (22167, -13989, -974) - +bond1 37 +atom 39 (8) (20697, -15406, 266) - +bond1 37 +atom 40 (6) (21600, -16560, 261) - +bond1 39 +atom 41 (8) (22397, -16539, -973) - +bond1 40 +atom 42 (8) (20761, -17761, 267) - +bond1 40 +atom 43 (6) (21512, -19019, 261) - +bond1 42 +atom 44 (8) (22306, -19098, -972) - +bond1 43 +atom 45 (8) (20529, -20106, 267) - +bond1 43 +atom 46 (6) (21117, -21448, 262) - +bond1 45 +atom 47 (8) (21895, -21625, -972) - +bond1 46 +atom 48 (8) (20006, -22403, 267) - +bond1 46 +atom 49 (6) (20422, -23808, 261) - +bond1 48 +atom 50 (8) (21171, -24081, -972) - +bond1 49 +atom 51 (8) (19199, -24616, 267) - +bond1 49 +atom 52 (6) (19436, -26062, 261) - +bond1 51 +atom 53 (8) (20146, -26426, -973) - +bond1 52 +atom 54 (8) (18123, -26711, 266) - +bond1 52 +atom 55 (6) (18177, -28176, 260) - +bond1 54 +atom 56 (8) (18834, -28626, -974) - +bond1 55 +atom 57 (8) (16792, -28656, 266) - +bond1 55 +atom 58 (6) (16662, -30115, 259) - +bond1 57 +atom 59 (8) (17258, -30643, -975) - +bond1 58 +atom 60 (8) (15229, -30418, 265) - +bond1 58 +atom 61 (6) (14917, -31850, 258) - +bond1 60 +atom 62 (8) (15442, -32448, -977) - +bond1 61 +atom 63 (8) (13457, -31971, 264) - +bond1 61 +atom 64 (6) (12969, -33353, 256) - +bond1 63 +atom 65 (8) (13414, -34011, -979) - +bond1 64 +atom 66 (8) (11505, -33290, 263) - +bond1 64 +atom 67 (6) (10847, -34600, 255) - +bond1 66 +atom 68 (8) (11206, -35308, -981) - +bond1 67 +atom 69 (8) (9402, -34354, 262) - +bond1 67 +atom 70 (6) (8586, -35571, 253) - +bond1 69 +atom 71 (8) (8853, -36317, -984) - +bond1 70 +atom 72 (8) (7183, -35146, 261) - +bond1 70 +atom 73 (6) (6221, -36250, 251) - +bond1 72 +atom 74 (8) (6392, -37024, -986) - +bond1 73 +atom 75 (8) (4882, -35653, 260) - +bond1 73 +atom 76 (6) (3789, -36628, 249) - +bond1 75 +atom 77 (8) (3861, -37416, -989) - +bond1 76 +atom 78 (8) (2536, -35867, 258) - +bond1 76 +atom 79 (6) (1328, -36698, 247) - +bond1 78 +atom 80 (8) (1302, -37487, -992) - +bond1 79 +atom 81 (8) (181, -35786, 257) - +bond1 79 +atom 82 (6) (-1121, -36458, 244) - +bond1 81 +atom 83 (8) (-1246, -37236, -995) - +bond1 82 +atom 84 (8) (-2144, -35409, 255) - +bond1 82 +atom 85 (6) (-3521, -35912, 242) - +bond1 84 +atom 86 (8) (-3742, -36667, -998) - +bond1 85 +atom 87 (8) (-4405, -34743, 254) - +bond1 85 +atom 88 (6) (-5834, -35069, 240) - +bond1 87 +atom 89 (8) (-6148, -35790, -1001) - +bond1 88 +atom 90 (8) (-6564, -33799, 253) - +bond1 88 +atom 91 (6) (-8023, -33943, 238) - +bond1 90 +atom 92 (8) (-8424, -34617, -1004) - +bond1 91 +atom 93 (8) (-8588, -32591, 251) - +bond1 91 +atom 94 (6) (-10054, -32551, 236) - +bond1 93 +atom 95 (8) (-10536, -33169, -1007) - +bond1 94 +atom 96 (8) (-10445, -31138, 250) - +bond1 94 +atom 97 (6) (-11894, -30915, 234) - +bond1 96 +atom 98 (8) (-12449, -31467, -1009) - +bond1 97 +atom 99 (8) (-12105, -29465, 249) - +bond1 97 +atom 100 (6) (-13515, -29062, 232) - +bond1 99 +atom 101 (8) (-14134, -29539, -1012) - +bond1 100 +atom 102 (8) (-13543, -27596, 248) - +bond1 100 +atom 103 (6) (-14891, -27020, 231) - +bond1 102 +atom 104 (8) (-15564, -27415, -1014) - +bond1 103 +atom 105 (8) (-14735, -25562, 248) - +bond1 103 +atom 106 (6) (-16000, -24822, 229) - +bond1 105 +atom 107 (8) (-16717, -25130, -1015) - +bond1 106 +atom 108 (8) (-15664, -23395, 247) - +bond1 106 +atom 109 (6) (-16826, -22502, 228) - +bond1 108 +atom 110 (8) (-17575, -22718, -1017) - +bond1 109 +atom 111 (8) (-16313, -21129, 246) - +bond1 109 +atom 112 (6) (-17355, -20097, 228) - +bond1 111 +atom 113 (8) (-18125, -20217, -1018) - +bond1 112 +atom 114 (8) (-16675, -18799, 246) - +bond1 112 +atom 115 (6) (-17579, -17645, 227) - +bond1 114 +atom 116 (8) (-18357, -17667, -1018) - +bond1 115 +atom 117 (8) (-16741, -16442, 246) - +bond1 115 +atom 118 (6) (-17494, -15184, 227) - +bond1 117 +atom 119 (8) (-18268, -15108, -1019) - +bond1 118 +atom 120 (8) (-16512, -14095, 246) - +bond1 118 +atom 121 (6) (-17101, -12753, 227) - +bond1 120 +atom 122 (8) (-17860, -12581, -1019) - +bond1 121 +atom 123 (8) (-15990, -11796, 246) - +bond1 121 +atom 124 (6) (-16406, -10390, 227) - +bond1 123 +atom 125 (8) (-17138, -10124, -1019) - +bond1 124 +atom 126 (8) (-15184, -9580, 246) - +bond1 124 +atom 127 (6) (-15421, -8134, 227) - +bond1 126 +atom 128 (8) (-16113, -7777, -1018) - +bond1 127 +atom 129 (8) (-14107, -7483, 246) - +bond1 127 +atom 130 (6) (-14160, -6018, 228) - +bond1 129 +atom 131 (8) (-14802, -5578, -1017) - +bond1 130 +atom 132 (8) (-12775, -5538, 247) - +bond1 130 +atom 133 (6) (-12643, -4078, 229) - +bond1 132 +atom 134 (8) (-13225, -3560, -1016) - +bond1 133 +atom 135 (8) (-11209, -3776, 247) - +bond1 133 +atom 136 (6) (-10895, -2344, 230) - +bond1 135 +atom 137 (8) (-11408, -1756, -1015) - +bond1 136 +atom 138 (8) (-9434, -2224, 248) - +bond1 136 +atom 139 (6) (-8943, -843, 231) - +bond1 138 +atom 140 (8) (-9378, -195, -1013) - +bond1 139 +atom 141 (8) (-7478, -908, 249) - +bond1 139 +atom 142 (6) (-6818, 400, 233) - +bond1 141 +atom 143 (8) (-7169, 1098, -1011) - +bond1 142 +atom 144 (8) (-5373, 152, 250) - +bond1 142 +atom 145 (6) (-4554, 1368, 234) - +bond1 144 +atom 146 (8) (-4815, 2105, -1009) - +bond1 145 +atom 147 (8) (-3152, 941, 251) - +bond1 145 +atom 148 (6) (-2186, 2044, 236) - +bond1 147 +atom 149 (8) (-2353, 2810, -1006) - +bond1 148 +atom 150 (8) (-849, 1445, 252) - +bond1 148 1 +atom 151 (1) (11141, -35181, 1127) - +bond1 67 +atom 152 (1) (8805, -36185, 1125) - +bond1 70 +atom 153 (1) (14490, -1146, 1122) - +bond1 19 +atom 154 (1) (6361, -36888, 1123) - +bond1 73 +atom 155 (1) (3848, -37279, 1120) - +bond1 76 +atom 156 (1) (2730, 3142, 1108) - +bond1 4 +atom 157 (1) (1305, -37352, 1117) - +bond1 79 +atom 158 (1) (-1226, -37104, 1114) - +bond1 82 +atom 159 (1) (22021, -14011, 1134) - +bond1 37 +atom 160 (1) (-3707, -36541, 1111) - +bond1 85 +atom 161 (1) (-6098, -35671, 1108) - +bond1 88 +atom 162 (1) (16391, -2836, 1124) - +bond1 22 +atom 163 (1) (-8361, -34508, 1105) - +bond1 91 +atom 164 (1) (-10460, -33070, 1103) - +bond1 94 +atom 165 (1) (5261, 2892, 1111) - +bond1 7 +atom 166 (1) (-12362, -31379, 1100) - +bond1 97 +atom 167 (1) (-14038, -29464, 1098) - +bond1 100 +atom 168 (1) (22249, -16542, 1135) - +bond1 40 +atom 169 (1) (-15461, -27354, 1096) - +bond1 103 +atom 170 (1) (-16608, -25082, 1095) - +bond1 106 +atom 171 (1) (18065, -4751, 1127) - +bond1 25 +atom 172 (1) (-17462, -22684, 1093) - +bond1 109 +atom 173 (1) (-18009, -20199, 1092) - +bond1 112 +atom 174 (1) (7741, 2326, 1114) - +bond1 10 +atom 175 (1) (-18241, -17664, 1091) - +bond1 115 +atom 176 (1) (-18153, -15120, 1091) - +bond1 118 +atom 177 (1) (22158, -19083, 1136) - +bond1 43 +atom 178 (1) (-17747, -12606, 1091) - +bond1 121 +atom 179 (1) (-17029, -10164, 1091) - +bond1 124 +atom 180 (1) (19484, -6860, 1129) - +bond1 28 +atom 181 (1) (-16010, -7831, 1092) - +bond1 127 +atom 182 (1) (-14706, -5644, 1092) - +bond1 130 +atom 183 (1) (10131, 1455, 1117) - +bond1 13 +atom 184 (1) (-13138, -3639, 1094) - +bond1 133 +atom 185 (1) (-11330, -1846, 1095) - +bond1 136 +atom 186 (1) (21750, -21592, 1136) - +bond1 46 +atom 187 (1) (-9312, -295, 1097) - +bond1 139 +atom 188 (1) (-7115, 989, 1099) - +bond1 142 +atom 189 (1) (20628, -9131, 1131) - +bond1 31 +atom 190 (1) (-4775, 1989, 1101) - +bond1 145 +atom 191 (1) (20013, -26359, 1135) - +bond1 52 +atom 192 (1) (-2328, 2687, 1103) - +bond1 148 +atom 193 (1) (12393, 291, 1119) - +bond1 16 +atom 194 (1) (18712, -28543, 1134) - +bond1 55 +atom 195 (1) (21031, -24030, 1136) - +bond1 49 +atom 196 (1) (17148, -30547, 1133) - +bond1 58 +atom 197 (1) (186, 3074, 1106) - +bond1 1 +atom 198 (1) (15346, -32339, 1131) - +bond1 61 +atom 199 (1) (13333, -33892, 1130) - +bond1 64 +atom 200 (1) (21478, -11527, 1133) - +bond1 34 +atom 201 (6) (10856, -34612, -2228) - +bond1 68 +atom 202 (8) (9411, -34366, -2247) - +bond1 201 +atom 203 (6) (8593, -35583, -2230) - +bond1 202 71 +atom 204 (8) (7190, -35157, -2249) - +bond1 203 +atom 205 (6) (6225, -36261, -2232) - +bond1 204 74 +atom 206 (8) (4887, -35663, -2250) - +bond1 205 +atom 207 (6) (3792, -36637, -2234) - +bond1 206 77 +atom 208 (8) (2539, -35876, -2251) - +bond1 207 +atom 209 (6) (1331, -36705, -2236) - +bond1 208 80 +atom 210 (8) (184, -35792, -2253) - +bond1 209 +atom 211 (6) (-1119, -36463, -2238) - +bond1 210 83 +atom 212 (8) (-2142, -35413, -2254) - +bond1 211 +atom 213 (6) (-3519, -35915, -2241) - +bond1 212 86 +atom 214 (8) (-4402, -34745, -2255) - +bond1 213 +atom 215 (6) (-5831, -35070, -2243) - +bond1 214 89 +atom 216 (8) (-6561, -33799, -2257) - +bond1 215 +atom 217 (6) (-8019, -33942, -2245) - +bond1 216 92 +atom 218 (8) (-8583, -32589, -2258) - +bond1 217 +atom 219 (6) (-10049, -32548, -2247) - +bond1 218 95 +atom 220 (8) (-10439, -31136, -2259) - +bond1 219 +atom 221 (6) (-11887, -30912, -2249) - +bond1 220 98 +atom 222 (8) (-12097, -29461, -2260) - +bond1 221 +atom 223 (6) (-13506, -29058, -2251) - +bond1 222 101 +atom 224 (8) (-13533, -27592, -2261) - +bond1 223 +atom 225 (6) (-14880, -27016, -2252) - +bond1 224 104 +atom 226 (8) (-14724, -25559, -2262) - +bond1 225 +atom 227 (6) (-15988, -24818, -2253) - +bond1 226 107 +atom 228 (8) (-15651, -23392, -2263) - +bond1 227 +atom 229 (6) (-16813, -22500, -2254) - +bond1 228 110 +atom 230 (8) (-16299, -21127, -2263) - +bond1 229 +atom 231 (6) (-17341, -20096, -2255) - +bond1 230 113 +atom 232 (8) (-16659, -18798, -2263) - +bond1 231 +atom 233 (6) (-17564, -17645, -2256) - +bond1 232 116 +atom 234 (8) (-16725, -16443, -2264) - +bond1 233 +atom 235 (6) (-17478, -15186, -2256) - +bond1 234 119 +atom 236 (8) (-16496, -14098, -2264) - +bond1 235 +atom 237 (6) (-17086, -12756, -2256) - +bond1 236 122 +atom 238 (8) (-15975, -11800, -2264) - +bond1 237 +atom 239 (6) (-16392, -10395, -2256) - +bond1 238 125 +atom 240 (8) (-15170, -9586, -2264) - +bond1 239 +atom 241 (6) (-15407, -8140, -2255) - +bond1 240 128 +atom 242 (8) (-14093, -7490, -2263) - +bond1 241 +atom 243 (6) (-14147, -6026, -2255) - +bond1 242 131 +atom 244 (8) (-12763, -5546, -2263) - +bond1 243 +atom 245 (6) (-12632, -4086, -2254) - +bond1 244 134 +atom 246 (8) (-11198, -3784, -2262) - +bond1 245 +atom 247 (6) (-10886, -2352, -2253) - +bond1 246 137 +atom 248 (8) (-9425, -2232, -2261) - +bond1 247 +atom 249 (6) (-8935, -851, -2252) - +bond1 248 140 +atom 250 (8) (-7471, -915, -2261) - +bond1 249 +atom 251 (6) (-6812, 393, -2250) - +bond1 250 143 +atom 252 (8) (-5367, 145, -2260) - +bond1 251 +atom 253 (6) (-4549, 1362, -2248) - +bond1 252 146 +atom 254 (8) (-3147, 935, -2259) - +bond1 253 +atom 255 (6) (-2183, 2039, -2247) - +bond1 254 149 +atom 256 (8) (-845, 1441, -2258) - +bond1 255 +atom 257 (6) (248, 2416, -2245) - +bond1 256 2 +atom 258 (8) (1501, 1654, -2256) - +bond1 257 +atom 259 (6) (2709, 2484, -2243) - +bond1 258 5 +atom 260 (8) (3857, 1573, -2255) - +bond1 259 +atom 261 (6) (5159, 2245, -2241) - +bond1 260 8 +atom 262 (8) (6184, 1197, -2254) - +bond1 261 +atom 263 (6) (7560, 1700, -2238) - +bond1 262 11 +atom 264 (8) (8445, 532, -2253) - +bond1 263 +atom 265 (6) (9874, 859, -2236) - +bond1 264 14 +atom 266 (8) (10606, -410, -2251) - +bond1 265 +atom 267 (6) (12065, -264, -2234) - +bond1 266 17 +atom 268 (8) (12632, -1616, -2250) - +bond1 267 +atom 269 (6) (14097, -1654, -2232) - +bond1 268 20 +atom 270 (8) (14490, -3066, -2249) - +bond1 269 +atom 271 (6) (15939, -3288, -2230) - +bond1 270 23 +atom 272 (8) (16152, -4739, -2248) - +bond1 271 +atom 273 (6) (17561, -5141, -2228) - +bond1 272 26 +atom 274 (8) (17590, -6607, -2246) - +bond1 273 +atom 275 (6) (18938, -7183, -2227) - +bond1 274 29 +atom 276 (8) (18783, -8640, -2245) - +bond1 275 +atom 277 (6) (20048, -9381, -2225) - +bond1 276 32 +atom 278 (8) (19711, -10808, -2245) - +bond1 277 +atom 279 (6) (20873, -11702, -2224) - +bond1 278 35 +atom 280 (8) (20360, -13075, -2244) - +bond1 279 +atom 281 (6) (21401, -14107, -2223) - +bond1 280 38 +atom 282 (8) (20719, -15405, -2243) - +bond1 281 +atom 283 (6) (21622, -16560, -2222) - +bond1 282 41 +atom 284 (8) (20784, -17763, -2243) - +bond1 283 +atom 285 (6) (21535, -19022, -2221) - +bond1 284 44 +atom 286 (8) (20552, -20110, -2243) - +bond1 285 +atom 287 (6) (21140, -21453, -2221) - +bond1 286 47 +atom 288 (8) (20028, -22409, -2243) - +bond1 287 +atom 289 (6) (20443, -23815, -2221) - +bond1 288 50 +atom 290 (8) (19221, -24625, -2243) - +bond1 289 +atom 291 (6) (19456, -26072, -2222) - +bond1 290 53 +atom 292 (8) (18142, -26722, -2243) - +bond1 291 +atom 293 (6) (18195, -28187, -2222) - +bond1 292 56 +atom 294 (8) (16810, -28667, -2244) - +bond1 293 +atom 295 (6) (16678, -30128, -2223) - +bond1 294 59 +atom 296 (8) (15244, -30431, -2244) - +bond1 295 +atom 297 (6) (14931, -31863, -2225) - +bond1 296 62 +atom 298 (8) (13470, -31984, -2245) - +bond1 297 +atom 299 (6) (12980, -33366, -2226) - +bond1 298 65 +atom 300 (8) (11515, -33303, -2246) - +bond1 299 201 +atom 301 (1) (-8355, -34505, -3114) - +bond1 217 +atom 302 (1) (-10452, -33064, -3117) - +bond1 219 +atom 303 (1) (-12352, -31372, -3119) - +bond1 221 +atom 304 (1) (-14024, -29456, -3122) - +bond1 223 +atom 305 (1) (-15444, -27346, -3123) - +bond1 225 +atom 306 (1) (14504, -1133, -3098) - +bond1 269 +atom 307 (1) (-16588, -25075, -3125) - +bond1 227 +atom 308 (1) (-17440, -22679, -3126) - +bond1 229 +atom 309 (1) (-17985, -20196, -3127) - +bond1 231 +atom 310 (1) (189, 3069, -3114) - +bond1 257 +atom 311 (1) (-18215, -17663, -3128) - +bond1 233 +atom 312 (1) (2732, 3141, -3111) - +bond1 259 +atom 313 (1) (-18127, -15122, -3129) - +bond1 235 +atom 314 (1) (-17721, -12612, -3129) - +bond1 237 +atom 315 (1) (7746, 2332, -3106) - +bond1 263 +atom 316 (1) (-17004, -10173, -3128) - +bond1 239 +atom 317 (1) (10138, 1463, -3103) - +bond1 265 +atom 318 (1) (-15986, -7842, -3128) - +bond1 241 +atom 319 (1) (12403, 302, -3100) - +bond1 267 +atom 320 (1) (22197, -19087, -3083) - +bond1 285 +atom 321 (1) (-14685, -5657, -3127) - +bond1 243 +atom 322 (1) (16409, -2822, -3095) - +bond1 271 +atom 323 (1) (-13120, -3653, -3126) - +bond1 245 +atom 324 (1) (18086, -4737, -3093) - +bond1 273 +atom 325 (1) (-11315, -1861, -3125) - +bond1 247 +atom 326 (1) (19510, -6848, -3091) - +bond1 275 +atom 327 (1) (-9300, -309, -3123) - +bond1 249 +atom 328 (1) (20658, -9120, -3089) - +bond1 277 +atom 329 (1) (-7106, 976, -3121) - +bond1 251 +atom 330 (1) (21512, -11519, -3087) - +bond1 279 +atom 331 (1) (-4768, 1978, -3119) - +bond1 253 +atom 332 (1) (22057, -14006, -3085) - +bond1 281 +atom 333 (1) (-2323, 2679, -3116) - +bond1 255 +atom 334 (1) (22287, -16542, -3084) - +bond1 283 +atom 335 (1) (5265, 2894, -3109) - +bond1 261 +atom 336 (1) (21788, -21600, -3083) - +bond1 287 +atom 337 (1) (21068, -24043, -3083) - +bond1 289 +atom 338 (1) (20048, -26376, -3084) - +bond1 291 +atom 339 (1) (18743, -28562, -3085) - +bond1 293 +atom 340 (1) (17175, -30568, -3086) - +bond1 295 +atom 341 (1) (15368, -32362, -3088) - +bond1 297 +atom 342 (1) (13351, -33915, -3090) - +bond1 299 +atom 343 (1) (11155, -35203, -3092) - +bond1 201 +atom 344 (1) (8815, -36206, -3095) - +bond1 203 +atom 345 (1) (6368, -36907, -3097) - +bond1 205 +atom 346 (1) (3852, -37295, -3100) - +bond1 207 +atom 347 (1) (1308, -37364, -3103) - +bond1 209 +atom 348 (1) (-1224, -37112, -3106) - +bond1 211 +atom 349 (1) (-3705, -36545, -3109) - +bond1 213 +atom 350 (1) (-6095, -35671, -3111) - +bond1 215 +rmotor (Rotary Motor-90) (127, 127, 127) 1.00 1.50 (2037, -17108, -1015) (0, 0, 999) 10.00 2.00 0.50 +shaft 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 103 106 109 112 115 118 121 124 127 130 133 136 139 142 145 148 201 203 205 207 209 211 213 215 217 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 279 281 283 285 287 289 291 293 295 297 299 +thermo (Thermo-91) (153, 0, 51) 1 350 150 +egroup (001 rotarymotor to 100 atoms) +end molecular machine part 001 rotarymotor to 100 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/test_002_rotarymotor_to_100_atoms.trc b/sim/src/tests/jigs_to_several_atoms/test_002_rotarymotor_to_100_atoms.trc new file mode 100755 index 000000000..795db10aa --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_002_rotarymotor_to_100_atoms.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_002_rotarymotor_to_100_atoms.trc test_002_rotarymotor_to_100_atoms.mmp +# Date and Time: Wed Apr 19 10:53:32 2006 +# Input File: test_002_rotarymotor_to_100_atoms.mmp +# Output File: test_002_rotarymotor_to_100_atoms.xyz +# Trace File: test_002_rotarymotor_to_100_atoms.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 350 +# +# 3 columns: +# Rotary Motor-90: speed (GHz) +# Rotary Motor-90: torque (nn-nm) +# Thermo-91: temperature (K) +# +# Time speed torque T.meter +# picosec Rotary Motor-90 Thermo-91 +# + 0.0100 0.116 0.871 327.85 +# Done: diff --git a/sim/src/tests/jigs_to_several_atoms/test_002_rotarymotor_to_100_atoms.xyzcmp b/sim/src/tests/jigs_to_several_atoms/test_002_rotarymotor_to_100_atoms.xyzcmp new file mode 100755 index 000000000..8903e685d --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_002_rotarymotor_to_100_atoms.xyzcmp @@ -0,0 +1,352 @@ +350 +Frame 0, Iteration: 100 +C 0.261717 2.426068 0.213006 +O 0.124908 3.187594 -1.055525 +O 1.510886 1.637155 0.244892 +C 2.682356 2.483737 0.258027 +O 2.784832 3.271649 -1.013963 +O 3.847287 1.571498 0.229045 +C 5.152888 2.215756 0.258743 +O 5.279547 2.982991 -1.000549 +O 6.178551 1.194467 0.258566 +C 7.555739 1.663107 0.269030 +O 7.789892 2.451897 -0.963900 +O 8.431675 0.503675 0.275956 +C 9.867810 0.841641 0.230685 +O 10.186690 1.578405 -0.957055 +O 10.613628 -0.384972 0.255664 +C 12.048324 -0.253667 0.233471 +O 12.495617 0.442162 -1.002937 +O 12.624129 -1.630249 0.250207 +C 14.070824 -1.674772 0.234748 +O 14.595628 -1.035586 -0.975443 +O 14.479776 -3.074886 0.275337 +C 15.929211 -3.311339 0.207519 +O 16.540191 -2.733971 -0.987952 +O 16.150733 -4.717720 0.268224 +C 17.575276 -5.160570 0.269417 +O 18.193420 -4.635230 -0.992828 +O 17.550802 -6.637026 0.261238 +C 18.875189 -7.175793 0.233162 +O 19.616807 -6.794950 -1.018029 +O 18.780176 -8.597867 0.264836 +C 20.045472 -9.368338 0.247908 +O 20.793342 -9.091220 -0.950532 +O 19.724613 -10.793623 0.287521 +C 20.871402 -11.702833 0.259854 +O 21.626507 -11.509975 -0.945364 +O 20.365494 -13.057393 0.260531 +C 21.383824 -14.139931 0.266857 +O 22.150288 -14.003735 -0.964464 +O 20.720888 -15.410142 0.264086 +C 21.592570 -16.530667 0.264602 +O 22.391750 -16.559888 -0.959645 +O 20.818792 -17.743212 0.259154 +C 21.513550 -19.025501 0.242367 +O 22.317156 -19.089078 -0.971253 +O 20.500327 -20.093744 0.254384 +C 21.091686 -21.446445 0.264582 +O 21.901240 -21.604408 -0.971418 +O 20.024300 -22.409088 0.313806 +C 20.436490 -23.831692 0.293009 +O 21.185502 -24.090151 -0.953018 +O 19.181147 -24.646782 0.246322 +C 19.408362 -26.045959 0.253079 +O 20.184637 -26.446389 -0.918154 +O 18.146779 -26.717517 0.271082 +C 18.205774 -28.143563 0.256323 +O 18.832677 -28.605321 -0.978104 +O 16.785203 -28.652817 0.250187 +C 16.650976 -30.128566 0.232803 +O 17.238386 -30.623062 -1.008385 +O 15.185412 -30.455481 0.269203 +C 14.904072 -31.871125 0.245523 +O 15.408088 -32.452572 -0.963997 +O 13.478766 -31.977112 0.301311 +C 12.963014 -33.355822 0.268998 +O 13.399051 -34.043264 -0.941116 +O 11.484847 -33.280166 0.243160 +C 10.845351 -34.574737 0.243214 +O 11.166447 -35.283326 -1.008280 +O 9.421799 -34.350512 0.272846 +C 8.574872 -35.545898 0.264146 +O 8.870471 -36.293909 -0.968803 +O 7.143830 -35.151960 0.275897 +C 6.226703 -36.266604 0.280160 +O 6.392556 -37.025738 -0.938398 +O 4.915817 -35.676936 0.263648 +C 3.795487 -36.571803 0.221582 +O 3.816854 -37.402401 -0.948309 +O 2.533892 -35.821398 0.243342 +C 1.335086 -36.673540 0.224637 +O 1.307917 -37.529292 -1.029808 +O 0.183878 -35.820517 0.282959 +C -1.112449 -36.493840 0.290073 +O -1.241582 -37.248263 -0.984110 +O -2.171669 -35.429653 0.309117 +C -3.496694 -35.928395 0.255483 +O -3.730696 -36.696309 -1.000129 +O -4.405666 -34.768909 0.283496 +C -5.827611 -35.071821 0.258865 +O -6.147302 -35.813661 -1.009347 +O -6.561037 -33.815758 0.240586 +C -8.013645 -33.982190 0.223194 +O -8.439043 -34.617057 -1.017136 +O -8.572881 -32.612387 0.226891 +C -10.022707 -32.520848 0.229457 +O -10.525495 -33.133276 -0.992864 +O -10.429060 -31.126093 0.258868 +C -11.895823 -30.903881 0.224029 +O -12.454996 -31.407237 -0.988166 +O -12.095699 -29.496437 0.252629 +C -13.499066 -29.096543 0.225401 +O -14.107840 -29.554540 -0.989159 +O -13.576631 -27.629350 0.282323 +C -14.927508 -27.025172 0.209657 +O -15.593913 -27.392286 -1.016732 +O -14.775014 -25.571306 0.225155 +C -15.979365 -24.816164 0.197648 +O -16.730561 -25.088377 -1.016784 +O -15.673374 -23.384406 0.256369 +C -16.820906 -22.509931 0.243589 +O -17.578053 -22.746811 -1.043665 +O -16.299534 -21.123139 0.234014 +C -17.369990 -20.085560 0.261629 +O -18.137565 -20.208034 -1.024632 +O -16.701189 -18.798199 0.203025 +C -17.599282 -17.621936 0.223107 +O -18.408901 -17.639026 -1.005080 +O -16.719810 -16.413563 0.241945 +C -17.454215 -15.187103 0.235843 +O -18.238825 -15.098097 -1.018446 +O -16.487372 -14.105787 0.271420 +C -17.117855 -12.757080 0.211254 +O -17.889496 -12.580109 -1.059018 +O -16.019001 -11.775894 0.264648 +C -16.388068 -10.376540 0.254138 +O -17.121885 -10.132270 -1.043189 +O -15.212732 -9.567436 0.240822 +C -15.414475 -8.125243 0.197795 +O -16.135633 -7.770776 -1.000131 +O -14.097793 -7.536559 0.230356 +C -14.173976 -6.040732 0.241155 +O -14.811150 -5.591508 -1.033114 +O -12.763307 -5.528744 0.250845 +C -12.624154 -4.087470 0.232241 +O -13.203347 -3.610198 -1.030613 +O -11.175191 -3.776839 0.238408 +C -10.856400 -2.369790 0.185751 +O -11.401297 -1.759684 -1.016002 +O -9.458353 -2.225001 0.269720 +C -8.957260 -0.850134 0.236595 +O -9.395917 -0.231782 -1.069755 +O -7.502509 -0.927793 0.284398 +C -6.845383 0.354044 0.235608 +O -7.167697 1.117632 -1.014741 +O -5.384910 0.159715 0.235714 +C -4.549312 1.388233 0.257230 +O -4.805646 2.120251 -0.960324 +O -3.164809 0.939432 0.282864 +C -2.201764 2.044068 0.217255 +O -2.350205 2.771837 -1.015116 +O -0.861249 1.452187 0.316374 +H 11.152102 -35.209166 1.073807 +H 8.820132 -36.216012 1.092844 +H 14.459090 -1.124070 1.089572 +H 6.303765 -36.826853 1.214692 +H 3.778600 -37.233899 1.079679 +H 2.643333 3.111544 1.157468 +H 1.328837 -37.410700 1.024276 +H -1.125625 -37.163737 1.157408 +H 22.048638 -14.135379 1.141501 +H -3.629457 -36.524599 1.158425 +H -6.087682 -35.615704 1.169247 +H 16.384022 -2.847874 1.077546 +H -8.292642 -34.507351 1.139516 +H -10.411159 -32.992345 1.129449 +H 5.270236 2.818078 1.163171 +H -12.448400 -31.347850 1.052699 +H -13.987308 -29.550304 1.090483 +H 22.214520 -16.418826 1.157892 +H -15.565756 -27.431327 0.996381 +H -16.563217 -25.112224 1.064253 +H 18.036077 -4.823166 1.203475 +H -17.354952 -22.651811 1.188039 +H -17.995679 -20.123103 1.161611 +H 7.738483 2.214821 1.193172 +H -18.277738 -17.689714 1.076690 +H -18.020306 -15.237998 1.166698 +H 22.263517 -19.021810 1.032714 +H -17.755059 -12.559886 1.075886 +H -16.972411 -10.129890 1.144791 +H 19.317920 -6.809407 1.156750 +H -15.974070 -7.796227 1.069502 +H -14.717461 -5.645242 1.123505 +H 10.181676 1.462421 1.069569 +H -13.134627 -3.647932 1.092083 +H -11.271413 -1.774019 0.993532 +H 21.687145 -21.593144 1.169954 +H -9.285313 -0.321564 1.141694 +H -7.221179 0.916966 1.090630 +H 20.701680 -9.024959 1.054498 +H -4.805496 1.999115 1.126087 +H 20.001444 -26.158407 1.155154 +H -2.295844 2.746648 1.045224 +H 12.462227 0.209546 1.130881 +H 18.630733 -28.516473 1.190968 +H 21.052305 -24.039286 1.174736 +H 17.122864 -30.584529 1.107235 +H 0.212917 3.141982 1.035056 +H 15.320073 -32.300010 1.154129 +H 13.340613 -33.893702 1.147730 +H 21.540184 -11.543214 1.109351 +C 10.809050 -34.573923 -2.259697 +O 9.377096 -34.344428 -2.235676 +C 8.570685 -35.549790 -2.222632 +O 7.172823 -35.145055 -2.247106 +C 6.251547 -36.257670 -2.212698 +O 4.895610 -35.691001 -2.285052 +C 3.778524 -36.619648 -2.263641 +O 2.534988 -35.868755 -2.283404 +C 1.356178 -36.687479 -2.244834 +O 0.196535 -35.800538 -2.219457 +C -1.120964 -36.455017 -2.220536 +O -2.148846 -35.419998 -2.293245 +C -3.510367 -35.868028 -2.229101 +O -4.398661 -34.751670 -2.264362 +C -5.815247 -35.079658 -2.252622 +O -6.560548 -33.812370 -2.246456 +C -8.033335 -33.941439 -2.248909 +O -8.582784 -32.578800 -2.270077 +C -10.040515 -32.513356 -2.255461 +O -10.461210 -31.145343 -2.296357 +C -11.920175 -30.939222 -2.239229 +O -12.068180 -29.501168 -2.267571 +C -13.493575 -29.068032 -2.252835 +O -13.565039 -27.602846 -2.237133 +C -14.899028 -27.005941 -2.248502 +O -14.723814 -25.545609 -2.240048 +C -15.963452 -24.794564 -2.247362 +O -15.673121 -23.384968 -2.301838 +C -16.819488 -22.511292 -2.257974 +O -16.309852 -21.146556 -2.291895 +C -17.340673 -20.084776 -2.256684 +O -16.685956 -18.811706 -2.253496 +C -17.572445 -17.651851 -2.297568 +O -16.675601 -16.439152 -2.264183 +C -17.433195 -15.170013 -2.276678 +O -16.505794 -14.093832 -2.288139 +C -17.115625 -12.791028 -2.298461 +O -16.000536 -11.823043 -2.272320 +C -16.381091 -10.447632 -2.290756 +O -15.169775 -9.607562 -2.229519 +C -15.418582 -8.137984 -2.243857 +O -14.115756 -7.479401 -2.270667 +C -14.117456 -6.021769 -2.274419 +O -12.755549 -5.521547 -2.257519 +C -12.603175 -4.086094 -2.259337 +O -11.213341 -3.774590 -2.267904 +C -10.910737 -2.360390 -2.262378 +O -9.432619 -2.216047 -2.235384 +C -8.901925 -0.848974 -2.283736 +O -7.439490 -0.910802 -2.244868 +C -6.812306 0.384734 -2.224130 +O -5.369235 0.188163 -2.292148 +C -4.557489 1.375946 -2.222132 +O -3.154804 0.961919 -2.270179 +C -2.186064 2.044560 -2.237716 +O -0.888992 1.450091 -2.258056 +C 0.211280 2.392996 -2.237081 +O 1.494084 1.663235 -2.277185 +C 2.715044 2.506229 -2.263874 +O 3.851689 1.593219 -2.250455 +C 5.175319 2.263313 -2.227061 +O 6.190183 1.214146 -2.267604 +C 7.581910 1.692662 -2.213794 +O 8.452558 0.522524 -2.222267 +C 9.855784 0.882597 -2.266494 +O 10.595579 -0.397570 -2.292642 +C 12.074060 -0.271042 -2.210300 +O 12.628373 -1.619272 -2.229200 +C 14.116853 -1.676157 -2.240339 +O 14.472979 -3.083877 -2.250595 +C 15.938662 -3.289325 -2.251424 +O 16.161690 -4.718559 -2.265343 +C 17.600391 -5.156182 -2.227529 +O 17.631608 -6.619882 -2.240143 +C 18.910247 -7.179226 -2.229087 +O 18.772215 -8.617794 -2.202116 +C 20.048030 -9.406548 -2.203890 +O 19.722573 -10.802487 -2.254526 +C 20.907148 -11.749953 -2.232916 +O 20.374742 -13.093671 -2.234803 +C 21.406888 -14.117719 -2.226848 +O 20.733835 -15.434927 -2.246874 +C 21.612084 -16.552554 -2.203959 +O 20.785425 -17.776366 -2.270190 +C 21.538238 -19.030020 -2.197921 +O 20.548465 -20.091621 -2.264096 +C 21.158323 -21.434944 -2.242861 +O 20.036268 -22.410749 -2.229191 +C 20.443477 -23.807413 -2.208409 +O 19.232540 -24.591966 -2.265321 +C 19.455004 -26.060307 -2.232113 +O 18.108985 -26.732726 -2.193847 +C 18.199463 -28.150348 -2.200301 +O 16.810864 -28.608674 -2.290572 +C 16.647806 -30.114858 -2.226679 +O 15.224204 -30.419479 -2.209811 +C 14.938589 -31.854029 -2.204062 +O 13.463755 -31.980242 -2.240303 +C 12.971797 -33.377514 -2.232314 +O 11.548773 -33.305155 -2.218906 +H -8.367698 -34.514870 -3.115856 +H -10.438256 -33.132243 -3.064179 +H -12.389090 -31.403133 -3.109746 +H -13.985961 -29.478903 -3.137207 +H -15.426703 -27.373187 -3.130707 +H 14.444051 -1.245916 -3.191247 +H -16.493229 -25.044463 -3.167819 +H -17.484123 -22.692700 -3.101431 +H -17.978475 -20.184341 -3.134016 +H 0.101360 3.133191 -3.026701 +H -18.105530 -17.758360 -3.252752 +H 2.774084 3.249323 -3.064745 +H -18.011013 -15.119891 -3.204034 +H -17.783156 -12.620494 -3.147487 +H 7.779582 2.277233 -3.112352 +H -17.056568 -10.267238 -3.133457 +H 10.044025 1.494069 -3.156604 +H -16.054341 -7.783759 -3.060583 +H 12.455951 0.328299 -3.037802 +H 22.224792 -19.039924 -3.042054 +H -14.621248 -5.725391 -3.194909 +H 16.447796 -2.813319 -3.092584 +H -13.095839 -3.719799 -3.160010 +H 18.137550 -4.695128 -3.058073 +H -11.243939 -1.885625 -3.187208 +H 19.459132 -6.890042 -3.132656 +H -9.290478 -0.317657 -3.155196 +H 20.683028 -9.271277 -3.080190 +H -7.175472 0.994484 -3.047615 +H 21.548685 -11.605120 -3.109874 +H -4.783266 2.042606 -3.058044 +H 21.994731 -13.927662 -3.134922 +H -2.392646 2.693312 -3.091399 +H 22.262204 -16.558251 -3.077441 +H 5.292594 2.969942 -3.049889 +H 21.893130 -21.594889 -3.038913 +H 21.058911 -23.986600 -3.090669 +H 20.033337 -26.307795 -3.128617 +H 18.787959 -28.466173 -3.063253 +H 17.121115 -30.524939 -3.120591 +H 15.311571 -32.398593 -3.074031 +H 13.355448 -33.829662 -3.150845 +H 11.040918 -35.065934 -3.207199 +H 8.774123 -36.156950 -3.108461 +H 6.398440 -36.938644 -3.055381 +H 3.892764 -37.273795 -3.130168 +H 1.332333 -37.269537 -3.163483 +H -1.232093 -37.060817 -3.119948 +H -3.616946 -36.453720 -3.136716 +H -6.077992 -35.634714 -3.159363 diff --git a/sim/src/tests/jigs_to_several_atoms/test_003_linearmotor_to_50_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/test_003_linearmotor_to_50_atoms.mmp new file mode 100755 index 000000000..b805bdba6 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_003_linearmotor_to_50_atoms.mmp @@ -0,0 +1,220 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (003 linearmotor to 50 atoms) +info opengroup open = True +group (Linear motor 50 atoms) +info opengroup open = True +mol (Chunk-5) - +atom 1 (6) (-855, -9, 0) - +atom 2 (1) (-576, 800, 657) - +bond1 1 +atom 3 (1) (-1779, -450, 344) - +bond1 1 +atom 4 (1) (-989, 370, -1002) - +bond1 1 +atom 5 (8) (197, -1020, 0) - +bond1 1 +atom 6 (6) (1704, -29, 0) - +bond1 5 +atom 7 (1) (1983, 780, 657) - +bond1 6 +atom 8 (1) (1570, 350, -1002) - +bond1 6 +atom 9 (8) (2757, -1040, 0) - +bond1 6 +atom 10 (6) (4264, -49, 0) - +bond1 9 +atom 11 (1) (4543, 760, 657) - +bond1 10 +atom 12 (1) (4130, 330, -1002) - +bond1 10 +atom 13 (8) (5317, -1060, 0) - +bond1 10 +atom 14 (6) (6824, -69, 0) - +bond1 13 +atom 15 (1) (7103, 740, 657) - +bond1 14 +atom 16 (1) (6690, 310, -1002) - +bond1 14 +atom 17 (8) (7877, -1080, 0) - +bond1 14 +atom 18 (6) (9384, -89, 0) - +bond1 17 +atom 19 (1) (9663, 720, 657) - +bond1 18 +atom 20 (1) (9250, 290, -1002) - +bond1 18 +atom 21 (8) (10437, -1100, 0) - +bond1 18 +atom 22 (6) (11944, -109, 0) - +bond1 21 +atom 23 (1) (12223, 700, 657) - +bond1 22 +atom 24 (1) (11810, 270, -1002) - +bond1 22 +atom 25 (8) (12997, -1120, 0) - +bond1 22 +atom 26 (6) (14504, -129, 0) - +bond1 25 +atom 27 (1) (14783, 680, 657) - +bond1 26 +atom 28 (1) (14370, 250, -1002) - +bond1 26 +atom 29 (8) (15557, -1140, 0) - +bond1 26 +atom 30 (6) (17064, -149, 0) - +bond1 29 +atom 31 (1) (17343, 660, 657) - +bond1 30 +atom 32 (1) (16930, 230, -1002) - +bond1 30 +atom 33 (8) (18117, -1160, 0) - +bond1 30 +atom 34 (6) (19624, -169, 0) - +bond1 33 +atom 35 (1) (19903, 640, 657) - +bond1 34 +atom 36 (1) (19490, 210, -1002) - +bond1 34 +atom 37 (8) (20677, -1180, 0) - +bond1 34 +atom 38 (6) (22184, -189, 0) - +bond1 37 +atom 39 (1) (22463, 620, 657) - +bond1 38 +atom 40 (1) (22050, 190, -1002) - +bond1 38 +atom 41 (8) (23237, -1200, 0) - +bond1 38 +atom 42 (6) (24744, -209, 0) - +bond1 41 +atom 43 (1) (25023, 600, 657) - +bond1 42 +atom 44 (1) (24610, 170, -1002) - +bond1 42 +atom 45 (8) (25797, -1220, 0) - +bond1 42 +atom 46 (6) (27304, -229, 0) - +bond1 45 +atom 47 (1) (27583, 580, 657) - +bond1 46 +atom 48 (1) (27170, 150, -1002) - +bond1 46 +atom 49 (8) (28357, -1240, 0) - +bond1 46 +atom 50 (6) (29864, -249, 0) - +bond1 49 +atom 51 (1) (30143, 560, 657) - +bond1 50 +atom 52 (1) (29730, 130, -1002) - +bond1 50 +atom 53 (8) (30917, -1260, 0) - +bond1 50 +atom 54 (6) (32424, -269, 0) - +bond1 53 +atom 55 (1) (32703, 540, 657) - +bond1 54 +atom 56 (1) (32290, 110, -1002) - +bond1 54 +atom 57 (8) (33477, -1280, 0) - +bond1 54 +atom 58 (6) (34984, -289, 0) - +bond1 57 +atom 59 (1) (35263, 520, 657) - +bond1 58 +atom 60 (1) (34850, 90, -1002) - +bond1 58 +atom 61 (8) (36037, -1300, 0) - +bond1 58 +atom 62 (6) (37544, -309, 0) - +bond1 61 +atom 63 (1) (37823, 500, 657) - +bond1 62 +atom 64 (1) (37410, 70, -1002) - +bond1 62 +atom 65 (8) (38597, -1320, 0) - +bond1 62 +atom 66 (6) (40104, -329, 0) - +bond1 65 +atom 67 (1) (40383, 480, 657) - +bond1 66 +atom 68 (1) (39970, 50, -1002) - +bond1 66 +atom 69 (8) (41157, -1340, 0) - +bond1 66 +atom 70 (6) (42664, -349, 0) - +bond1 69 +atom 71 (1) (42943, 460, 657) - +bond1 70 +atom 72 (1) (42530, 30, -1002) - +bond1 70 +atom 73 (8) (43717, -1360, 0) - +bond1 70 +atom 74 (6) (45224, -369, 0) - +bond1 73 +atom 75 (1) (45503, 440, 657) - +bond1 74 +atom 76 (1) (45090, 10, -1002) - +bond1 74 +atom 77 (8) (46277, -1380, 0) - +bond1 74 +atom 78 (6) (47784, -389, 0) - +bond1 77 +atom 79 (1) (48063, 420, 657) - +bond1 78 +atom 80 (1) (47650, -9, -1002) - +bond1 78 +atom 81 (8) (48837, -1400, 0) - +bond1 78 +atom 82 (6) (50344, -409, 0) - +bond1 81 +atom 83 (1) (50623, 400, 657) - +bond1 82 +atom 84 (1) (50210, -29, -1002) - +bond1 82 +atom 85 (8) (51397, -1420, 0) - +bond1 82 +atom 86 (6) (52904, -429, 0) - +bond1 85 +atom 87 (1) (53183, 380, 657) - +bond1 86 +atom 88 (1) (52770, -49, -1002) - +bond1 86 +atom 89 (8) (53957, -1440, 0) - +bond1 86 +atom 90 (6) (55464, -449, 0) - +bond1 89 +atom 91 (1) (55743, 360, 657) - +bond1 90 +atom 92 (1) (55330, -69, -1002) - +bond1 90 +atom 93 (8) (56517, -1460, 0) - +bond1 90 +atom 94 (6) (58024, -469, 0) - +bond1 93 +atom 95 (1) (58303, 340, 657) - +bond1 94 +atom 96 (1) (57890, -89, -1002) - +bond1 94 +atom 97 (8) (59077, -1480, 0) - +bond1 94 +atom 98 (6) (60584, -489, 0) - +bond1 97 +atom 99 (1) (60863, 320, 657) - +bond1 98 +atom 100 (1) (60450, -109, -1002) - +bond1 98 +atom 101 (8) (61637, -1500, 0) - +bond1 98 +atom 102 (1) (62492, -983, 0) - +bond1 101 +lmotor (Linear Motor.1) (127, 127, 127) 0.500000 0.050000 (30390, -754, 0) (0, 0, -1000) 10.00 1.00 0.02 +shaft 21 65 66 69 70 73 74 77 9 78 81 1 82 6 85 86 10 89 90 14 93 13 94 18 97 98 22 101 25 26 29 30 33 34 37 38 17 41 42 45 46 49 50 53 5 54 57 58 61 62 +thermo (Thermo-45) (153, 0, 51) 1 102 42 +egroup (Linear motor 50 atoms) +egroup (003 linearmotor to 50 atoms) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 003 linearmotor to 50 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/test_003_linearmotor_to_50_atoms.trc b/sim/src/tests/jigs_to_several_atoms/test_003_linearmotor_to_50_atoms.trc new file mode 100755 index 000000000..54045c958 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_003_linearmotor_to_50_atoms.trc @@ -0,0 +1,53 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_003_linearmotor_to_50_atoms.trc test_003_linearmotor_to_50_atoms.mmp +# Date and Time: Wed Apr 19 10:53:30 2006 +# Input File: test_003_linearmotor_to_50_atoms.mmp +# Output File: test_003_linearmotor_to_50_atoms.xyz +# Trace File: test_003_linearmotor_to_50_atoms.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 102 +# +# 2 columns: +# Linear Motor.1: displacement (angstroms) +# Thermo-45: temperature (K) +# +# Time Lmotor T.meter +# picosec Linear Motor.1 Thermo-45 +# +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 +# Warning: excessive energy on C-1-O bond at iteration 1 + 0.0100 0.0150 843.53 +# Done: diff --git a/sim/src/tests/jigs_to_several_atoms/test_003_linearmotor_to_50_atoms.xyzcmp b/sim/src/tests/jigs_to_several_atoms/test_003_linearmotor_to_50_atoms.xyzcmp new file mode 100755 index 000000000..fe7b4fa7e --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_003_linearmotor_to_50_atoms.xyzcmp @@ -0,0 +1,104 @@ +102 +Frame 0, Iteration: 100 +C -0.855000 -0.009000 -0.032969 +H -0.659758 0.868239 0.591410 +H -1.722464 -0.557942 0.328461 +H -1.074812 0.335257 -1.042090 +O 0.197000 -1.020000 -0.013639 +C 1.704000 -0.029000 -0.067879 +H 1.774077 0.650060 0.782642 +H 1.709745 0.342716 -1.090494 +O 2.757000 -1.040000 0.008909 +C 4.264000 -0.049000 0.012550 +H 4.359262 0.659907 0.836928 +H 4.251823 0.369025 -0.988697 +O 5.317000 -1.060000 0.002795 +C 6.824000 -0.069000 0.017779 +H 6.936360 0.703197 0.781823 +H 6.778636 0.439932 -0.940728 +O 7.877000 -1.080000 -0.014088 +C 9.384000 -0.089000 -0.041152 +H 9.423783 0.637922 0.771670 +H 9.438758 0.379193 -1.020994 +O 10.437000 -1.100000 0.020392 +C 11.944000 -0.109000 -0.080734 +H 12.117419 0.586691 0.739520 +H 11.961093 0.412231 -1.038505 +O 12.997000 -1.120000 0.023608 +C 14.504000 -0.129000 -0.058430 +H 14.555886 0.549655 0.793577 +H 14.403188 0.341535 -1.035667 +O 15.557000 -1.140000 -0.039741 +C 17.064000 -0.149000 -0.031294 +H 17.158249 0.609891 0.745926 +H 17.154406 0.290616 -1.023216 +O 18.117000 -1.160000 0.022208 +C 19.624000 -0.169000 -0.034748 +H 19.703722 0.464507 0.847906 +H 19.693086 0.340616 -0.996325 +O 20.677000 -1.180000 0.036923 +C 22.184000 -0.189000 -0.020702 +H 22.332438 0.518865 0.793011 +H 22.147622 0.315538 -0.983893 +O 23.237000 -1.200000 0.015100 +C 24.744000 -0.209000 -0.050975 +H 24.827238 0.480981 0.788385 +H 24.789271 0.273035 -1.024731 +O 25.797000 -1.220000 -0.013191 +C 27.304000 -0.229000 -0.020523 +H 27.388964 0.522239 0.764648 +H 27.361178 0.246267 -0.999797 +O 28.357000 -1.240000 0.046708 +C 29.864000 -0.249000 -0.017865 +H 29.913656 0.476082 0.800066 +H 29.803754 0.200339 -1.007204 +O 30.917000 -1.260000 0.076636 +C 32.424000 -0.269000 -0.033126 +H 32.613840 0.521331 0.700617 +H 32.401393 0.189753 -1.018984 +O 33.477000 -1.280000 -0.010909 +C 34.984000 -0.289000 -0.070313 +H 35.022409 0.530761 0.650612 +H 34.871843 0.062118 -1.091680 +O 36.037000 -1.300000 -0.013148 +C 37.544000 -0.309000 0.001345 +H 37.655013 0.391664 0.830646 +H 37.583854 0.123175 -0.996494 +O 38.597000 -1.320000 0.056398 +C 40.104000 -0.329000 -0.059437 +H 40.191461 0.424274 0.725875 +H 40.035190 0.138458 -1.042259 +O 41.157000 -1.340000 0.011554 +C 42.664000 -0.349000 -0.010153 +H 42.773323 0.391115 0.784641 +H 42.586515 0.094410 -0.999229 +O 43.717000 -1.360000 0.037874 +C 45.224000 -0.369000 0.011173 +H 45.365695 0.309728 0.852477 +H 45.303247 0.163930 -0.940770 +O 46.277000 -1.380000 0.066587 +C 47.784000 -0.389000 -0.055850 +H 47.862809 0.437363 0.659948 +H 47.802669 -0.111739 -1.106633 +O 48.837000 -1.400000 0.036624 +C 50.344000 -0.409000 0.037274 +H 50.444906 0.318304 0.842951 +H 50.262201 0.050466 -0.944147 +O 51.397000 -1.420000 0.017975 +C 52.904000 -0.429000 -0.021245 +H 52.984363 0.235817 0.837645 +H 52.926351 0.053440 -0.997362 +O 53.957000 -1.440000 -0.005861 +C 55.464000 -0.449000 -0.057964 +H 55.567334 0.198133 0.819500 +H 55.462440 0.038242 -1.030111 +O 56.517000 -1.460000 -0.023983 +C 58.024000 -0.469000 -0.030692 +H 58.111782 0.269441 0.770936 +H 58.091259 0.006933 -1.004804 +O 59.077000 -1.480000 0.005941 +C 60.584000 -0.489000 -0.018022 +H 60.705927 0.218590 0.807218 +H 60.637009 -0.120439 -1.038108 +O 61.637000 -1.500000 0.032249 +H 62.511560 -1.091281 0.116766 diff --git a/sim/src/tests/jigs_to_several_atoms/test_004_linearmotor_to_100_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/test_004_linearmotor_to_100_atoms.mmp new file mode 100755 index 000000000..9d505cd93 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_004_linearmotor_to_100_atoms.mmp @@ -0,0 +1,424 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (003 linearmotor to 100 atoms) +info opengroup open = True +group (Linear motor 50 atoms) +info opengroup open = True +forward_ref (682437328) # thermo (Thermo-45) +egroup (Linear motor 50 atoms) +mol (Chunk-5-frag46) def +atom 1 (6) (-828, 82, 369) def +atom 2 (8) (331, -758, 52) def +bond1 1 +atom 3 (6) (1518, 14, -327) def +bond1 2 +atom 4 (8) (2690, -787, 37) def +bond1 3 +atom 5 (6) (3878, 24, 325) def +bond1 4 +atom 6 (8) (5051, -811, 47) def +bond1 5 +atom 7 (6) (6243, -31, -301) def +bond1 6 +atom 8 (8) (7410, -840, 65) def +bond1 7 +atom 9 (6) (8597, -35, 373) def +bond1 8 +atom 10 (8) (9770, -862, 72) def +bond1 9 +atom 11 (6) (10957, -74, -275) def +bond1 10 +atom 12 (8) (12130, -884, 69) def +bond1 11 +atom 13 (1) (-804, 323, 1430) def +bond1 1 +atom 14 (1) (-826, 959, -277) def +bond1 1 +atom 15 (1) (1533, 951, 231) def +bond1 3 +atom 16 (1) (1513, 153, -1407) def +bond1 3 +atom 17 (1) (3876, 282, 1383) def +bond1 5 +atom 18 (1) (3890, 892, -334) def +bond1 5 +atom 19 (1) (6250, 893, 274) def +bond1 7 +atom 20 (1) (6253, 126, -1378) def +bond1 7 +atom 21 (1) (8595, 194, 1437) def +bond1 9 +atom 22 (1) (8608, 849, -262) def +bond1 9 +atom 23 (1) (10966, 843, 313) def +bond1 11 +atom 24 (1) (10957, 98, -1350) def +bond1 11 +atom 25 (6) (-59599, -1934, 232) def +atom 26 (8) (-58135, -2008, 233) def +bond1 25 +atom 27 (6) (-57474, -701, 217) def +bond1 26 +atom 28 (8) (-56037, -985, 227) def +bond1 27 +atom 29 (6) (-55201, 216, 207) def +bond1 28 +atom 30 (8) (-53815, -257, 234) def +bond1 29 +atom 31 (6) (-52832, 821, 347) def +bond1 30 +atom 32 (8) (-51517, 191, 205) def +bond1 31 +atom 33 (6) (-50432, 1154, 2) def +bond1 32 +atom 34 (8) (-49181, 421, 220) def +bond1 33 +atom 35 (6) (-48034, 1297, 469) def +bond1 34 +atom 36 (8) (-46832, 498, 212) def +bond1 35 +atom 37 (6) (-45644, 1313, -54) def +bond1 36 +atom 38 (8) (-44479, 469, 224) def +bond1 37 +atom 39 (6) (-43269, 1238, 531) def +bond1 38 +atom 40 (8) (-42125, 379, 210) def +bond1 39 +atom 41 (6) (-40907, 1135, -101) def +bond1 40 +atom 42 (8) (-39770, 264, 212) def +bond1 41 +atom 43 (6) (-38552, 1006, 552) def +bond1 42 +atom 44 (8) (-37414, 146, 211) def +bond1 43 +atom 45 (6) (-36197, 899, -107) def +bond1 44 +atom 46 (8) (-35057, 33, 213) def +bond1 45 +atom 47 (6) (-33845, 781, 565) def +bond1 46 +atom 48 (8) (-32699, -63, 211) def +bond1 47 +atom 49 (6) (-31493, 706, -110) def +bond1 48 +atom 50 (8) (-30341, -144, 204) def +bond1 49 +atom 51 (6) (-29138, 618, 552) def +bond1 50 +atom 52 (8) (-27982, -213, 203) def +bond1 51 +atom 53 (6) (-26782, 568, -111) def +bond1 52 +atom 54 (8) (-25623, -274, 199) def +bond1 53 +atom 55 (6) (-24425, 497, 548) def +bond1 54 +atom 56 (8) (-23263, -327, 199) def +bond1 55 +atom 57 (6) (-22068, 463, -111) def +bond1 56 +atom 58 (8) (-20904, -376, 191) def +bond1 57 +atom 59 (6) (-19707, 399, 531) def +bond1 58 +atom 60 (8) (-18545, -425, 183) def +bond1 59 +atom 61 (6) (-17350, 364, -130) def +bond1 60 +atom 62 (8) (-16185, -471, 178) def +bond1 61 +atom 63 (6) (-14991, 307, 523) def +bond1 62 +atom 64 (8) (-13826, -516, 183) def +bond1 63 +atom 65 (6) (-12628, 275, -115) def +bond1 64 +atom 66 (8) (-11466, -564, 194) def +bond1 65 +atom 67 (6) (-10273, 209, 554) def +bond1 66 +atom 68 (8) (-9106, -605, 200) def +bond1 67 +atom 69 (6) (-7914, 194, -100) def +bond1 68 +atom 70 (8) (-6747, -645, 187) def +bond1 69 +atom 71 (6) (-5546, 131, 515) def +bond1 70 +atom 72 (8) (-4387, -690, 149) def +bond1 71 +atom 73 (6) (-3206, 102, -207) def +bond1 72 +atom 74 (8) (-2028, -716, 96) def +bond1 73 1 +atom 75 (1) (-59912, -1402, 1129) def +bond1 25 +atom 76 (1) (-59968, -2957, 240) def +bond1 25 +atom 77 (1) (-59912, -1416, -671) def +bond1 25 +atom 78 (1) (-57737, -155, 1122) def +bond1 27 +atom 79 (1) (-57729, -181, -704) def +bond1 27 +atom 80 (1) (-55397, 803, 1103) def +bond1 29 +atom 81 (1) (-55374, 756, -722) def +bond1 29 +atom 82 (1) (-52905, 1265, 1339) def +bond1 31 +atom 83 (1) (-52982, 1530, -465) def +bond1 31 +atom 84 (1) (-50517, 1953, 738) def +bond1 33 +atom 85 (1) (-50459, 1502, -1029) def +bond1 33 +atom 86 (1) (-48040, 1593, 1517) def +bond1 35 +atom 87 (1) (-48065, 2138, -223) def +bond1 35 +atom 88 (1) (-45638, 2172, 617) def +bond1 37 +atom 89 (1) (-45635, 1584, -1108) def +bond1 37 +atom 90 (1) (-43255, 1455, 1597) def +bond1 39 +atom 91 (1) (-43241, 2129, -96) def +bond1 39 +atom 92 (1) (-40865, 2026, 525) def +bond1 41 +atom 93 (1) (-40895, 1352, -1168) def +bond1 41 +atom 94 (1) (-38542, 1188, 1625) def +bond1 43 +atom 95 (1) (-38507, 1918, -44) def +bond1 43 +atom 96 (1) (-36155, 1796, 511) def +bond1 45 +atom 97 (1) (-36186, 1108, -1176) def +bond1 45 +atom 98 (1) (-33838, 946, 1641) def +bond1 47 +atom 99 (1) (-33808, 1702, -16) def +bond1 47 +atom 100 (1) (-31460, 1602, 510) def +bond1 49 +atom 101 (1) (-31489, 918, -1178) def +bond1 49 +atom 102 (1) (-29132, 789, 1627) def +bond1 51 +atom 103 (1) (-29111, 1537, -34) def +bond1 51 +atom 104 (1) (-26758, 1460, 516) def +bond1 53 +atom 105 (1) (-26777, 787, -1177) def +bond1 53 +atom 106 (1) (-24421, 667, 1623) def +bond1 55 +atom 107 (1) (-24404, 1415, -38) def +bond1 55 +atom 108 (1) (-22047, 1350, 521) def +bond1 57 +atom 109 (1) (-22067, 688, -1176) def +bond1 57 +atom 110 (1) (-19699, 576, 1605) def +bond1 59 +atom 111 (1) (-19690, 1314, -60) def +bond1 59 +atom 112 (1) (-17331, 1255, 498) def +bond1 61 +atom 113 (1) (-17348, 585, -1196) def +bond1 61 +atom 114 (1) (-14990, 487, 1596) def +bond1 63 +atom 115 (1) (-14972, 1220, -71) def +bond1 63 +atom 116 (1) (-12613, 1160, 521) def +bond1 65 +atom 117 (1) (-12618, 505, -1179) def +bond1 65 +atom 118 (1) (-10273, 369, 1630) def +bond1 67 +atom 119 (1) (-10255, 1134, -23) def +bond1 67 +atom 120 (1) (-7896, 1071, 546) def +bond1 69 +atom 121 (1) (-7916, 436, -1162) def +bond1 69 +atom 122 (1) (-5525, 303, 1590) def +bond1 71 +atom 123 (1) (-5539, 1049, -72) def +bond1 71 +atom 124 (1) (-3181, 1007, 399) def +bond1 73 +atom 125 (1) (-3228, 298, -1278) def +bond1 73 +forward_ref (682338584) # lmotor (Linear Motor-52) +mol (Chunk-5-frag46-frag53) def +atom 126 (6) (13319, -78, 369) def +bond1 12 +atom 127 (8) (14490, -904, 59) def +bond1 126 +atom 128 (6) (15674, -115, -299) def +bond1 127 +atom 129 (8) (16850, -918, 52) def +bond1 128 +atom 130 (6) (18034, -105, 352) def +bond1 129 +atom 131 (8) (19210, -925, 46) def +bond1 130 +atom 132 (6) (20390, -131, -311) def +bond1 131 +atom 133 (8) (21571, -925, 45) def +bond1 132 +atom 134 (6) (22747, -105, 353) def +bond1 133 +atom 135 (8) (23931, -912, 39) def +bond1 134 +atom 136 (6) (25100, -104, -323) def +bond1 135 +atom 137 (8) (26291, -884, 32) def +bond1 136 +atom 138 (6) (27458, -48, 336) def +bond1 137 +atom 139 (8) (28651, -840, 19) def +bond1 138 +atom 140 (6) (29808, -18, -349) def +bond1 139 +atom 141 (8) (31010, -776, 14) def +bond1 140 +atom 142 (6) (32159, 79, 328) def +bond1 141 +atom 143 (8) (33368, -692, 21) def +bond1 142 +atom 144 (6) (34518, 150, -322) def +bond1 143 +atom 145 (8) (35725, -603, 28) def +bond1 144 +atom 146 (6) (36871, 254, 345) def +bond1 145 +atom 147 (8) (38081, -512, 34) def +bond1 146 +atom 148 (6) (39234, 334, -289) def +bond1 147 +atom 149 (8) (40436, -446, 14) def +bond1 148 +atom 150 (6) (41611, 387, 286) def +bond1 149 +atom 151 (8) (42790, -440, 18) def +bond1 150 +atom 152 (6) (43998, 346, -249) def +bond1 151 +atom 153 (8) (45139, -535, 11) def +bond1 152 +atom 154 (6) (46392, 191, 233) def +bond1 153 +atom 155 (8) (47474, -775, 32) def +bond1 154 +atom 156 (6) (48792, -151, -104) def +bond1 155 +atom 157 (8) (49771, -1234, 3) def +bond1 156 +atom 158 (6) (51159, -766, 19) def +bond1 157 +atom 159 (8) (51990, -1971, 8) def +bond1 158 +atom 160 (6) (53428, -1692, 8) def +bond1 159 +atom 161 (8) (54086, -2999, 8) def +bond1 160 +atom 162 (6) (55549, -2923, 5) def +bond1 161 +atom 163 (8) (56017, -4307, 6) def +bond1 162 +atom 164 (1) (13325, 150, 1433) def +bond1 126 +atom 165 (1) (13323, 807, -266) def +bond1 126 +atom 166 (1) (15681, 807, 280) def +bond1 128 +atom 167 (1) (15671, 47, -1375) def +bond1 128 +atom 168 (1) (18037, 126, 1416) def +bond1 130 +atom 169 (1) (18035, 779, -285) def +bond1 130 +atom 170 (1) (20390, 793, 266) def +bond1 132 +atom 171 (1) (20390, 28, -1387) def +bond1 132 +atom 172 (1) (22749, 116, 1418) def +bond1 134 +atom 173 (1) (22740, 784, -276) def +bond1 134 +atom 174 (1) (25091, 821, 251) def +bond1 136 +atom 175 (1) (25095, 51, -1400) def +bond1 136 +atom 176 (1) (27460, 172, 1402) def +bond1 138 +atom 177 (1) (27438, 841, -293) def +bond1 138 +atom 178 (1) (29784, 913, 216) def +bond1 140 +atom 179 (1) (29802, 127, -1428) def +bond1 140 +atom 180 (1) (32148, 300, 1394) def +bond1 142 +atom 181 (1) (32130, 968, -301) def +bond1 142 +atom 182 (1) (34482, 1067, 267) def +bond1 144 +atom 183 (1) (34515, 323, -1396) def +bond1 144 +atom 184 (1) (36860, 470, 1412) def +bond1 146 +atom 185 (1) (36839, 1146, -280) def +bond1 146 +atom 186 (1) (39215, 1226, 337) def +bond1 148 +atom 187 (1) (39218, 551, -1356) def +bond1 148 +atom 188 (1) (41609, 661, 1340) def +bond1 150 +atom 189 (1) (41611, 1243, -388) def +bond1 150 +atom 190 (1) (44036, 1195, 433) def +bond1 152 +atom 191 (1) (44006, 628, -1300) def +bond1 152 +atom 192 (1) (46418, 537, 1265) def +bond1 154 +atom 193 (1) (46483, 990, -501) def +bond1 154 +atom 194 (1) (48945, 552, 712) def +bond1 156 +atom 195 (1) (48867, 298, -1093) def +bond1 156 +atom 196 (1) (51338, -217, 943) def +bond1 158 +atom 197 (1) (51354, -189, -882) def +bond1 158 +atom 198 (1) (53689, -1160, 922) def +bond1 160 +atom 199 (1) (53689, -1159, -904) def +bond1 160 +atom 200 (1) (55886, -2432, 917) def +bond1 162 +atom 201 (1) (55883, -2435, -909) def +bond1 162 +atom 202 (1) (56984, -4324, 4) def +bond1 163 +thermo (Thermo-45) (153, 0, 51) 126 202 134 +info leaf forwarded = 682437328 +lmotor (Linear Motor-52) (127, 127, 127) 1.500000 0.100000 (-1489, -354, 115) (-2, 0, -999) 10.00 2.00 0.10 +shaft 1 2 3 4 5 6 7 8 9 10 11 12 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 +info leaf forwarded = 682338584 +egroup (003 linearmotor to 100 atoms) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 003 linearmotor to 100 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/test_004_linearmotor_to_100_atoms.trc b/sim/src/tests/jigs_to_several_atoms/test_004_linearmotor_to_100_atoms.trc new file mode 100755 index 000000000..2c7ad316a --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_004_linearmotor_to_100_atoms.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_004_linearmotor_to_100_atoms.trc test_004_linearmotor_to_100_atoms.mmp +# Date and Time: Wed Apr 19 10:53:31 2006 +# Input File: test_004_linearmotor_to_100_atoms.mmp +# Output File: test_004_linearmotor_to_100_atoms.xyz +# Trace File: test_004_linearmotor_to_100_atoms.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 202 +# +# 2 columns: +# Thermo-45: temperature (K) +# Linear Motor-52: displacement (angstroms) +# +# Time T.meter Lmotor +# picosec Thermo-45 Linear Motor-52 +# + 0.0100 300.09 -0.0001 +# Done: diff --git a/sim/src/tests/jigs_to_several_atoms/test_004_linearmotor_to_100_atoms.xyzcmp b/sim/src/tests/jigs_to_several_atoms/test_004_linearmotor_to_100_atoms.xyzcmp new file mode 100755 index 000000000..1dbce1b2e --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_004_linearmotor_to_100_atoms.xyzcmp @@ -0,0 +1,204 @@ +202 +Frame 0, Iteration: 100 +C -0.828029 0.082000 0.354742 +O 0.330872 -0.758000 -0.012077 +C 1.517978 0.014000 -0.338134 +O 2.690041 -0.787000 0.057382 +C 3.877941 0.024000 0.295602 +O 5.050922 -0.811000 0.008000 +C 6.243037 -0.031000 -0.282450 +O 7.409969 -0.840000 0.049700 +C 8.596974 -0.035000 0.359913 +O 9.770074 -0.862000 0.108794 +C 10.957059 -0.074000 -0.245550 +O 12.130023 -0.884000 0.080509 +H -0.759370 0.292439 1.418177 +H -0.828208 1.027210 -0.194933 +H 1.559288 0.961710 0.203883 +H 1.480988 0.241488 -1.402870 +H 3.969359 0.392693 1.317872 +H 3.902866 0.849089 -0.415444 +H 6.212926 0.904820 0.279990 +H 6.301934 0.147628 -1.353152 +H 8.586086 0.231093 1.418368 +H 8.632174 0.760351 -0.385204 +H 11.073563 0.833372 0.349995 +H 10.961154 0.186791 -1.304071 +C -59.598949 -1.934000 0.257338 +O -58.135051 -2.008000 0.207695 +C -57.474018 -0.701000 0.208230 +O -56.037048 -0.985000 0.202779 +C -55.201105 0.216000 0.154684 +O -53.815020 -0.257000 0.223864 +C -52.832007 0.821000 0.343666 +O -51.516942 0.191000 0.234205 +C -50.431943 1.154000 0.030276 +O -49.181013 0.421000 0.213710 +C -48.033918 1.297000 0.509926 +O -46.832031 0.498000 0.196555 +C -45.643945 1.313000 -0.026410 +O -44.478976 0.469000 0.235852 +C -43.269018 1.238000 0.521820 +O -42.125008 0.379000 0.205767 +C -40.907002 1.135000 -0.102179 +O -39.770028 0.264000 0.197802 +C -38.552018 1.006000 0.543128 +O -37.414007 0.146000 0.207749 +C -36.197042 0.899000 -0.127979 +O -35.057010 0.033000 0.208148 +C -33.844989 0.781000 0.570452 +O -32.698911 -0.063000 0.255644 +C -31.492920 0.706000 -0.070166 +O -30.340964 -0.144000 0.221848 +C -29.138039 0.618000 0.532384 +O -27.982011 -0.213000 0.197656 +C -26.781884 0.568000 -0.053009 +O -25.623002 -0.274000 0.198149 +C -24.425059 0.497000 0.518603 +O -23.263026 -0.327000 0.185808 +C -22.068025 0.463000 -0.123320 +O -20.904075 -0.376000 0.153307 +C -19.707108 0.399000 0.476963 +O -18.545006 -0.425000 0.180211 +C -17.350027 0.364000 -0.143574 +O -16.184973 -0.471000 0.191407 +C -14.990968 0.307000 0.538873 +O -13.825952 -0.516000 0.206775 +C -12.627900 0.275000 -0.064948 +O -11.466050 -0.564000 0.169061 +C -10.273000 0.209000 0.553751 +O -9.106041 -0.605000 0.179567 +C -7.913993 0.194000 -0.096694 +O -6.746985 -0.645000 0.194468 +C -5.545994 0.131000 0.517924 +O -4.386982 -0.690000 0.157784 +C -3.205937 0.102000 -0.175410 +O -2.027902 -0.716000 0.144705 +H -59.838617 -1.503749 1.227019 +H -59.950892 -2.965093 0.146926 +H -60.035530 -1.320387 -0.530064 +H -57.736355 -0.075734 1.063817 +H -57.708947 -0.122882 -0.687017 +H -55.407936 0.760817 1.079101 +H -55.355993 0.739819 -0.793707 +H -52.887178 1.137047 1.386952 +H -52.960420 1.561022 -0.449416 +H -50.573361 1.897532 0.817108 +H -50.380127 1.494441 -1.004833 +H -48.010820 1.510897 1.578810 +H -48.064231 2.156992 -0.158202 +H -45.622173 2.153885 0.669089 +H -45.621051 1.545688 -1.090399 +H -43.225389 1.477360 1.585422 +H -43.232287 2.056295 -0.200516 +H -40.872774 2.055976 0.482735 +H -40.860970 1.302408 -1.178040 +H -38.482001 1.221021 1.608012 +H -38.479786 1.953021 0.003429 +H -36.106721 1.799454 0.482064 +H -36.211059 1.113763 -1.196109 +H -33.831889 1.127493 1.607973 +H -33.764225 1.642203 -0.093412 +H -31.426864 1.612804 0.540122 +H -31.417598 0.902903 -1.138794 +H -29.177510 0.726317 1.617415 +H -29.179129 1.529458 -0.068734 +H -26.802214 1.492013 0.532150 +H -26.857413 0.760511 -1.124838 +H -24.345202 0.662971 1.592229 +H -24.423252 1.456732 -0.007384 +H -22.052872 1.363754 0.493194 +H -22.085010 0.656295 -1.195946 +H -19.695445 0.530388 1.558528 +H -19.633050 1.319569 -0.105636 +H -17.380892 1.202639 0.560762 +H -17.357813 0.625427 -1.204838 +H -15.024854 0.491675 1.617638 +H -15.028667 1.241658 -0.026420 +H -12.687593 1.150532 0.589448 +H -12.564744 0.591589 -1.106817 +H -10.207652 0.358242 1.631477 +H -10.187410 1.142965 -0.003021 +H -7.833935 1.036987 0.590539 +H -7.966970 0.438346 -1.157512 +H -5.578242 0.319276 1.593019 +H -5.574423 1.075521 -0.028875 +H -3.118835 0.988518 0.459202 +H -3.178287 0.285731 -1.252491 +C 13.318993 -0.078000 0.365325 +O 14.489932 -0.904000 0.025130 +C 15.674046 -0.115000 -0.276093 +O 16.849982 -0.918000 0.042978 +C 18.034094 -0.105000 0.398931 +O 19.209974 -0.925000 0.033113 +C 20.390013 -0.131000 -0.304614 +O 21.571012 -0.925000 0.051137 +C 22.746981 -0.105000 0.343298 +O 23.930955 -0.912000 0.016622 +C 25.099928 -0.104000 -0.358888 +O 26.291001 -0.884000 0.032483 +C 27.458023 -0.048000 0.347630 +O 28.650991 -0.840000 0.014752 +C 29.807900 -0.018000 -0.398729 +O 31.010054 -0.776000 0.040815 +C 32.159019 0.079000 0.337394 +O 33.367981 -0.692000 0.011382 +C 34.517903 0.150000 -0.370487 +O 35.725033 -0.603000 0.044546 +C 36.871071 0.254000 0.380579 +O 38.081049 -0.512000 0.058606 +C 39.234001 0.334000 -0.288723 +O 40.435968 -0.446000 -0.001845 +C 41.611104 0.387000 0.337992 +O 42.789931 -0.440000 -0.016332 +C 43.998015 0.346000 -0.241690 +O 45.139001 -0.535000 0.011719 +C 46.392010 0.191000 0.238149 +O 47.473943 -0.775000 0.003380 +C 48.792116 -0.151000 -0.046145 +O 49.770921 -1.234000 -0.036492 +C 51.159032 -0.766000 0.034967 +O 51.989904 -1.971000 -0.039740 +C 53.428047 -1.692000 0.031667 +O 54.086071 -2.999000 0.043618 +C 55.548996 -2.923000 0.002906 +O 56.017010 -4.307000 0.011094 +H 13.374262 0.218801 1.412454 +H 13.338866 0.830422 -0.241906 +H 15.627100 0.881665 0.169947 +H 15.691909 -0.066445 -1.360381 +H 18.057037 0.276535 1.429638 +H 17.947728 0.676613 -0.351855 +H 20.400568 0.792047 0.274814 +H 20.345375 -0.019922 -1.389275 +H 22.867467 0.122603 1.406401 +H 22.759097 0.824599 -0.232478 +H 25.077889 0.777352 0.283717 +H 25.064392 0.032094 -1.441323 +H 27.586233 0.041893 1.429403 +H 27.528747 0.846985 -0.297137 +H 29.815009 0.939419 0.122949 +H 29.820034 0.160737 -1.481533 +H 32.020669 0.349359 1.387554 +H 32.153204 0.951237 -0.317871 +H 34.556439 1.114136 0.143122 +H 34.556954 0.246511 -1.457357 +H 36.839949 0.507256 1.443886 +H 36.917796 1.090196 -0.339364 +H 39.215836 1.158659 0.423211 +H 39.228773 0.627551 -1.349589 +H 41.495114 0.596319 1.403318 +H 41.703812 1.304475 -0.261442 +H 43.992409 1.143929 0.502195 +H 44.025345 0.841624 -1.219989 +H 46.478327 0.646975 1.228219 +H 46.538916 0.866345 -0.601131 +H 48.858650 0.488195 0.836609 +H 48.908841 0.361246 -0.999735 +H 51.314854 -0.299309 1.007429 +H 51.354011 -0.131044 -0.832351 +H 53.634215 -1.110546 0.933302 +H 53.665341 -1.150254 -0.891556 +H 55.970270 -2.435096 0.887192 +H 55.756211 -2.417554 -0.944270 +H 56.981664 -4.284681 0.059567 diff --git a/sim/src/tests/jigs_to_several_atoms/test_005_anchors_to_50_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/test_005_anchors_to_50_atoms.mmp new file mode 100755 index 000000000..13819d494 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_005_anchors_to_50_atoms.mmp @@ -0,0 +1,414 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (004 anchors to 50 atoms) +info opengroup open = True +group (Anchor 50 atoms-) +info opengroup open = True +mol (Chunk-7) - +atom 1 (6) (187, 1923, 20) - +atom 2 (1) (137, 2473, 956) - +bond1 1 +atom 3 (1) (132, 2530, -879) - +bond1 1 +atom 4 (8) (1408, 1125, -8) - +bond1 1 +atom 5 (6) (2583, 1989, 21) - +bond1 4 +atom 6 (1) (2600, 2544, 956) - +bond1 5 +atom 7 (1) (2607, 2596, -879) - +bond1 5 +atom 8 (8) (3694, 1044, 0) - +bond1 5 +atom 9 (6) (4968, 1755, 21) - +bond1 8 +atom 10 (1) (5060, 2303, 955) - +bond1 9 +atom 11 (1) (5063, 2354, -880) - +bond1 9 +atom 12 (8) (5953, 678, -7) - +bond1 9 +atom 13 (6) (7306, 1224, 21) - +bond1 12 +atom 14 (1) (7461, 1756, 955) - +bond1 13 +atom 15 (1) (7479, 1806, -880) - +bond1 13 +atom 16 (8) (8147, 32, -3) - +bond1 13 +atom 17 (6) (9558, 404, 21) - +bond1 16 +atom 18 (1) (9781, 912, 955) - +bond1 17 +atom 19 (1) (9800, 960, -880) - +bond1 17 +atom 20 (8) (10244, -883, -5) - +bond1 17 +atom 21 (6) (11690, -691, 21) - +bond1 20 +atom 22 (1) (11974, -214, 955) - +bond1 21 +atom 23 (1) (12001, -169, -880) - +bond1 21 +atom 24 (8) (12209, -2054, -4) - +bond1 21 +atom 25 (6) (13668, -2045, 21) - +bond1 24 +atom 26 (1) (14009, -1608, 955) - +bond1 25 +atom 27 (1) (14041, -1567, -880) - +bond1 25 +atom 28 (8) (14012, -3463, -4) - +bond1 25 +atom 29 (6) (15460, -3637, 20) - +bond1 28 +atom 30 (1) (15853, -3247, 956) - +bond1 29 +atom 31 (1) (15891, -3208, -879) - +bond1 29 +atom 32 (8) (15623, -5087, -7) - +bond1 29 +atom 33 (6) (17038, -5441, 20) - +bond1 32 +atom 34 (1) (17477, -5102, 955) - +bond1 33 +atom 35 (1) (17521, -5071, -880) - +bond1 33 +atom 36 (8) (17019, -6900, -4) - +bond1 33 +atom 37 (6) (18378, -7428, 21) - +bond1 36 +atom 38 (1) (18857, -7146, 955) - +bond1 37 +atom 39 (1) (18902, -7123, -880) - +bond1 37 +atom 40 (8) (18175, -8873, -1) - +bond1 37 +atom 41 (6) (19458, -9568, 21) - +bond1 40 +atom 42 (1) (19969, -9352, 955) - +bond1 41 +atom 43 (1) (20015, -9328, -880) - +bond1 41 +atom 44 (8) (19076, -10976, -7) - +bond1 41 +atom 45 (6) (20261, -11827, 20) - +bond1 44 +atom 46 (1) (20793, -11675, 956) - +bond1 45 +atom 47 (1) (20846, -11659, -879) - +bond1 45 +atom 48 (8) (19706, -13176, -7) - +bond1 45 +atom 49 (6) (20775, -14168, 21) - +bond1 48 +atom 50 (1) (21323, -14081, 955) - +bond1 49 +atom 51 (1) (21375, -14078, -880) - +bond1 49 +atom 52 (8) (20054, -15437, 0) - +bond1 49 +atom 53 (6) (20991, -16555, 21) - +bond1 52 +atom 54 (1) (21546, -16543, 955) - +bond1 53 +atom 55 (1) (21597, -16536, -880) - +bond1 53 +atom 56 (8) (20117, -17724, -8) - +bond1 53 +atom 57 (6) (20906, -18951, 20) - +bond1 56 +atom 58 (1) (21456, -19005, 956) - +bond1 57 +atom 59 (1) (21512, -19011, -879) - +bond1 57 +atom 60 (8) (19893, -20001, -6) - +bond1 57 +atom 61 (6) (20522, -21317, 21) - +bond1 60 +atom 62 (1) (21064, -21438, 956) - +bond1 61 +atom 63 (1) (21113, -21454, -880) - +bond1 61 +atom 64 (8) (19385, -22232, -1) - +bond1 61 +atom 65 (6) (19844, -23616, 22) - +bond1 64 +atom 66 (1) (20367, -23807, 956) - +bond1 65 +atom 67 (1) (20414, -23823, -880) - +bond1 65 +atom 68 (8) (18602, -24381, -2) - +bond1 65 +atom 69 (6) (18884, -25813, 20) - +bond1 68 +atom 70 (1) (19374, -26069, 956) - +bond1 69 +atom 71 (1) (19428, -26088, -879) - +bond1 69 +atom 72 (8) (17556, -26416, -12) - +bond1 69 +atom 73 (6) (17657, -27871, 20) - +bond1 72 +atom 74 (1) (18115, -28180, 956) - +bond1 73 +atom 75 (1) (18157, -28219, -879) - +bond1 73 +atom 76 (8) (16263, -28303, -2) - +bond1 73 +atom 77 (6) (16181, -29760, 22) - +bond1 76 +atom 78 (1) (16597, -30129, 956) - +bond1 77 +atom 79 (1) (16633, -30162, -880) - +bond1 77 +atom 80 (8) (14744, -30014, 0) - +bond1 77 +atom 81 (6) (14480, -31449, 21) - +bond1 80 +atom 82 (1) (14842, -31868, 956) - +bond1 81 +atom 83 (1) (14883, -31904, -879) - +bond1 81 +atom 84 (8) (13023, -31521, -9) - +bond1 81 +atom 85 (6) (12580, -32911, 20) - +bond1 84 +atom 86 (1) (12893, -33369, 955) - +bond1 85 +atom 87 (1) (12918, -33417, -880) - +bond1 85 +atom 88 (8) (11126, -32800, -2) - +bond1 85 +atom 89 (6) (10513, -34124, 21) - +bond1 88 +atom 90 (1) (10763, -34620, 955) - +bond1 89 +atom 91 (1) (10787, -34665, -880) - +bond1 89 +atom 92 (8) (9084, -33832, -4) - +bond1 89 +atom 93 (6) (8310, -35068, 21) - +bond1 92 +atom 94 (1) (8496, -35591, 955) - +bond1 93 +atom 95 (1) (8513, -35640, -880) - +bond1 93 +atom 96 (8) (6928, -34599, -4) - +bond1 93 +atom 97 (6) (6006, -35729, 20) - +bond1 96 +atom 98 (1) (6124, -36270, 956) - +bond1 97 +atom 99 (1) (6137, -36322, -880) - +bond1 97 +atom 100 (8) (4694, -35090, -7) - +bond1 97 +atom 101 (6) (3637, -36095, 21) - +bond1 100 +atom 102 (1) (3689, -36647, 956) - +bond1 101 +atom 103 (1) (3690, -36700, -880) - +bond1 101 +atom 104 (8) (2416, -35297, -2) - +bond1 101 +atom 105 (6) (1241, -36162, 22) - +bond1 104 +atom 106 (1) (1221, -36717, 956) - +bond1 105 +atom 107 (1) (1220, -36768, -879) - +bond1 105 +atom 108 (8) (129, -35217, -3) - +bond1 105 +atom 109 (6) (-1144, -35927, 21) - +bond1 108 +atom 110 (1) (-1234, -36474, 956) - +bond1 109 +atom 111 (1) (-1240, -36528, -879) - +bond1 109 +atom 112 (8) (-2128, -34850, -7) - +bond1 109 +atom 113 (6) (-3481, -35395, 20) - +bond1 112 +atom 114 (1) (-3637, -35925, 956) - +bond1 113 +atom 115 (1) (-3653, -35980, -879) - +bond1 113 +atom 116 (8) (-4322, -34204, -8) - +bond1 113 +atom 117 (6) (-5733, -34575, 21) - +bond1 116 +atom 118 (1) (-5953, -35083, 956) - +bond1 117 +atom 119 (1) (-5978, -35131, -879) - +bond1 117 +atom 120 (8) (-6418, -33287, -3) - +bond1 117 +atom 121 (6) (-7864, -33478, 22) - +bond1 120 +atom 122 (1) (-8148, -33956, 956) - +bond1 121 +atom 123 (1) (-8176, -33998, -879) - +bond1 121 +atom 124 (8) (-8382, -32113, 0) - +bond1 121 +atom 125 (6) (-9841, -32122, 20) - +bond1 124 +atom 126 (1) (-10186, -32555, 956) - +bond1 125 +atom 127 (1) (-10213, -32604, -879) - +bond1 125 +atom 128 (8) (-10185, -30705, -12) - +bond1 125 +atom 129 (6) (-11633, -30530, 20) - +bond1 128 +atom 130 (1) (-12023, -30924, 955) - +bond1 129 +atom 131 (1) (-12068, -30955, -880) - +bond1 129 +atom 132 (8) (-11796, -29080, 1) - +bond1 129 +atom 133 (6) (-13211, -28726, 22) - +bond1 132 +atom 134 (1) (-13653, -29064, 955) - +bond1 133 +atom 135 (1) (-13689, -29097, -880) - +bond1 133 +atom 136 (8) (-13191, -27267, -4) - +bond1 133 +atom 137 (6) (-14550, -26738, 20) - +bond1 136 +atom 138 (1) (-15029, -27017, 955) - +bond1 137 +atom 139 (1) (-15074, -27047, -880) - +bond1 137 +atom 140 (8) (-14348, -25293, -7) - +bond1 137 +atom 141 (6) (-15630, -24598, 21) - +bond1 140 +atom 142 (1) (-16140, -24819, 955) - +bond1 141 +atom 143 (1) (-16189, -24835, -880) - +bond1 141 +atom 144 (8) (-15248, -23190, -1) - +bond1 141 +atom 145 (6) (-16434, -22340, 21) - +bond1 144 +atom 146 (1) (-16968, -22490, 956) - +bond1 145 +atom 147 (1) (-17017, -22509, -879) - +bond1 145 +atom 148 (8) (-15879, -20991, -7) - +bond1 145 +atom 149 (6) (-16948, -19999, 20) - +bond1 148 +atom 150 (1) (-17495, -20085, 956) - +bond1 149 +atom 151 (1) (-17549, -20090, -880) - +bond1 149 +atom 152 (8) (-16228, -18730, -4) - +bond1 149 +atom 153 (6) (-17165, -17612, 21) - +bond1 152 +atom 154 (1) (-17719, -17626, 956) - +bond1 153 +atom 155 (1) (-17773, -17629, -879) - +bond1 153 +atom 156 (8) (-16292, -16443, -6) - +bond1 153 +atom 157 (6) (-17081, -15216, 21) - +bond1 156 +atom 158 (1) (-17634, -15164, 956) - +bond1 157 +atom 159 (1) (-17685, -15155, -879) - +bond1 157 +atom 160 (8) (-16068, -14166, -1) - +bond1 157 +atom 161 (6) (-16698, -12850, 22) - +bond1 160 +atom 162 (1) (-17240, -12725, 956) - +bond1 161 +atom 163 (1) (-17290, -12717, -879) - +bond1 161 +atom 164 (8) (-15562, -11935, -4) - +bond1 161 +atom 165 (6) (-16021, -10550, 20) - +bond1 164 +atom 166 (1) (-16540, -10359, 956) - +bond1 165 +atom 167 (1) (-16594, -10344, -879) - +bond1 165 +atom 168 (8) (-14779, -9785, -9) - +bond1 165 +atom 169 (6) (-15061, -8354, 21) - +bond1 168 +atom 170 (1) (-15555, -8103, 956) - +bond1 169 +atom 171 (1) (-15601, -8073, -879) - +bond1 169 +atom 172 (8) (-13733, -7750, -2) - +bond1 169 +atom 173 (6) (-13834, -6295, 22) - +bond1 172 +atom 174 (1) (-14291, -5981, 956) - +bond1 173 +atom 175 (1) (-14335, -5953, -879) - +bond1 173 +atom 176 (8) (-12440, -5863, -4) - +bond1 173 +atom 177 (6) (-12358, -4406, 21) - +bond1 176 +atom 178 (1) (-12770, -4038, 956) - +bond1 177 +atom 179 (1) (-12814, -4003, -879) - +bond1 177 +atom 180 (8) (-10921, -4152, -8) - +bond1 177 +atom 181 (6) (-10656, -2718, 21) - +bond1 180 +atom 182 (1) (-11023, -2303, 956) - +bond1 181 +atom 183 (1) (-11055, -2259, -879) - +bond1 181 +atom 184 (8) (-9199, -2646, -2) - +bond1 181 +atom 185 (6) (-8756, -1256, 22) - +bond1 184 +atom 186 (1) (-9066, -795, 956) - +bond1 185 +atom 187 (1) (-9096, -753, -879) - +bond1 185 +atom 188 (8) (-7302, -1368, -3) - +bond1 185 +atom 189 (6) (-6688, -44, 20) - +bond1 188 +atom 190 (1) (-6935, 449, 956) - +bond1 189 +atom 191 (1) (-6965, 497, -879) - +bond1 189 +atom 192 (8) (-5259, -337, -11) - +bond1 189 +atom 193 (6) (-4485, 898, 21) - +bond1 192 +atom 194 (1) (-4676, 1418, 956) - +bond1 193 +atom 195 (1) (-4683, 1472, -879) - +bond1 193 +atom 196 (8) (-3104, 428, 3) - +bond1 193 +atom 197 (6) (-2181, 1557, 22) - +bond1 196 +atom 198 (1) (-2296, 2101, 956) - +bond1 197 +atom 199 (1) (-2315, 2148, -879) - +bond1 197 +atom 200 (8) (-869, 918, -8) - +bond1 1 197 +ground (Anchor.2) (0, 0, 0) 21 149 25 157 129 161 165 45 41 173 153 177 181 133 185 189 49 193 197 29 73 77 137 81 85 53 89 93 33 97 101 141 105 69 109 57 113 65 117 37 121 125 145 1 5 61 9 13 169 17 +egroup (Anchor 50 atoms-) +egroup (004 anchors to 50 atoms) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 004 anchors to 50 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/test_005_anchors_to_50_atoms.trc b/sim/src/tests/jigs_to_several_atoms/test_005_anchors_to_50_atoms.trc new file mode 100755 index 000000000..c6d76b7a7 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_005_anchors_to_50_atoms.trc @@ -0,0 +1,28 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_005_anchors_to_50_atoms.trc test_005_anchors_to_50_atoms.mmp +# Date and Time: Wed Apr 19 10:53:31 2006 +# Input File: test_005_anchors_to_50_atoms.mmp +# Output File: test_005_anchors_to_50_atoms.xyz +# Trace File: test_005_anchors_to_50_atoms.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 200 +# +# 1 columns: +# Anchor.2: torque (nn-nm) +# +# Time Anchor +# picosec Anchor.2 +# + 0.0100 16.73 +# Done: diff --git a/sim/src/tests/jigs_to_several_atoms/test_005_anchors_to_50_atoms.xyzcmp b/sim/src/tests/jigs_to_several_atoms/test_005_anchors_to_50_atoms.xyzcmp new file mode 100755 index 000000000..c068cb1d9 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_005_anchors_to_50_atoms.xyzcmp @@ -0,0 +1,202 @@ +200 +Frame 0, Iteration: 100 +C 0.187000 1.923004 0.019987 +H 0.022985 2.551462 0.901880 +H 0.174933 2.455138 -0.931166 +O 1.377809 1.144212 0.018409 +C 2.583010 1.988985 0.020991 +H 2.618877 2.590816 0.930689 +H 2.606498 2.569832 -0.902617 +O 3.686944 1.021523 -0.021362 +C 4.967997 1.754980 0.021005 +H 5.063178 2.222039 1.003328 +H 5.103400 2.402003 -0.845962 +O 5.944410 0.670079 0.000817 +C 7.305990 1.223998 0.021003 +H 7.459536 1.698747 0.997157 +H 7.514221 1.864545 -0.839125 +O 8.129486 0.078432 -0.006222 +C 9.558003 0.404002 0.020991 +H 9.822510 0.918161 0.944923 +H 9.767409 0.920902 -0.916041 +O 10.261215 -0.865155 0.008202 +C 11.690007 -0.690998 0.021005 +H 12.023505 -0.227111 0.956617 +H 12.106192 -0.156717 -0.836277 +O 12.216182 -2.009034 -0.003303 +C 13.668003 -2.045001 0.020994 +H 14.073847 -1.520830 0.886681 +H 14.003868 -1.637710 -0.932944 +O 13.976003 -3.444636 -0.024512 +C 15.459989 -3.637004 0.019983 +H 15.881760 -3.125541 0.888300 +H 15.892557 -3.238618 -0.900418 +O 15.660178 -5.085158 0.029530 +C 17.038016 -5.440996 0.020003 +H 17.527749 -5.097667 0.931320 +H 17.562060 -5.079186 -0.867201 +O 17.048213 -6.867212 -0.024907 +C 18.378002 -7.428008 0.021011 +H 18.802924 -7.187497 0.995435 +H 18.991669 -7.137533 -0.833797 +O 18.164660 -8.839358 -0.006423 +C 19.457991 -9.568003 0.020992 +H 20.117134 -9.300945 0.851176 +H 19.978426 -9.391829 -0.920333 +O 19.101068 -10.961259 -0.008885 +C 20.260987 -11.826993 0.020000 +H 20.751668 -11.676253 0.981537 +H 20.887321 -11.626730 -0.850496 +O 19.735190 -13.168029 0.031112 +C 20.774995 -14.168017 0.021005 +H 21.369329 -14.114445 0.935432 +H 21.317125 -14.154556 -0.925525 +O 20.031881 -15.427049 -0.004822 +C 20.991002 -16.554994 0.021017 +H 21.581642 -16.562843 0.938469 +H 21.674783 -16.450802 -0.832971 +O 20.125525 -17.705665 -0.018440 +C 20.905972 -18.951001 0.019984 +H 21.542173 -19.047531 0.900214 +H 21.428997 -18.959382 -0.938460 +O 19.858888 -20.030972 -0.007751 +C 20.521985 -21.317010 0.021006 +H 20.965881 -21.415562 1.011606 +H 21.226241 -21.452694 -0.799888 +O 19.405351 -22.254553 0.021273 +C 19.843985 -23.616005 0.022011 +H 20.354118 -23.807652 0.968482 +H 20.444547 -23.759746 -0.876317 +O 18.580326 -24.364458 -0.029824 +C 18.883987 -25.812982 0.020004 +H 19.340131 -25.982098 0.995492 +H 19.509087 -26.066351 -0.836336 +O 17.530982 -26.425132 -0.010353 +C 17.657001 -27.870998 0.020013 +H 18.058341 -28.139886 1.003610 +H 18.232104 -28.265479 -0.820977 +O 16.290750 -28.265761 -0.035645 +C 16.180988 -29.759974 0.022008 +H 16.630477 -30.058906 0.970518 +H 16.669719 -30.080314 -0.898462 +O 14.758320 -30.068137 -0.043382 +C 14.479988 -31.449020 0.021006 +H 14.837424 -31.900315 0.961445 +H 14.897010 -31.939324 -0.858906 +O 12.998308 -31.541434 0.033566 +C 12.580003 -32.911009 0.020004 +H 12.911113 -33.430855 0.920768 +H 12.925327 -33.455641 -0.858863 +O 11.137993 -32.817808 0.019077 +C 10.512993 -34.124004 0.020998 +H 10.776747 -34.645555 0.941107 +H 10.783413 -34.756040 -0.835118 +O 9.078507 -33.837065 -0.020011 +C 8.310010 -35.067990 0.020990 +H 8.570603 -35.559482 0.958545 +H 8.556655 -35.609112 -0.893371 +O 6.946948 -34.600498 -0.007118 +C 6.006005 -35.728987 0.020009 +H 6.130856 -36.102273 1.037130 +H 6.190824 -36.429802 -0.796129 +O 4.703572 -35.137916 -0.035567 +C 3.636990 -36.094995 0.021003 +H 3.647551 -36.689723 0.940202 +H 3.608440 -36.675402 -0.903191 +O 2.393641 -35.287570 -0.000342 +C 1.240988 -36.161986 0.021985 +H 1.291390 -36.790007 0.913004 +H 1.205003 -36.691646 -0.930755 +O 0.117603 -35.218412 0.005265 +C -1.144003 -35.926996 0.020999 +H -1.223254 -36.598355 0.876253 +H -1.182493 -36.464112 -0.927432 +O -2.157082 -34.855879 0.046886 +C -3.481020 -35.394983 0.019992 +H -3.690025 -36.010296 0.897441 +H -3.698956 -35.909468 -0.915880 +O -4.369094 -34.193097 0.018123 +C -5.732989 -34.574991 0.020999 +H -5.893549 -35.096250 0.964969 +H -5.907746 -35.130697 -0.900368 +O -6.400817 -33.315676 0.013459 +C -7.864005 -33.477992 0.021996 +H -8.233835 -33.994640 0.909047 +H -8.226084 -33.943370 -0.894707 +O -8.362629 -32.112834 0.036917 +C -9.840991 -32.121987 0.019988 +H -10.271928 -32.573868 0.913193 +H -10.177648 -32.530869 -0.934816 +O -10.215590 -30.712324 0.011501 +C -11.632998 -30.530006 0.019994 +H -12.080117 -30.912529 0.949031 +H -12.056452 -30.972119 -0.884281 +O -11.788690 -29.076879 -0.006188 +C -13.210975 -28.726012 0.021990 +H -13.624077 -29.195273 0.915671 +H -13.577780 -29.095203 -0.936163 +O -13.170732 -27.299859 -0.034070 +C -14.549988 -26.738011 0.019996 +H -15.065546 -27.010075 0.944789 +H -15.099796 -27.066246 -0.862415 +O -14.379195 -25.333205 -0.077090 +C -15.630000 -24.598007 0.020997 +H -16.183097 -24.937771 0.902245 +H -16.171076 -24.766254 -0.910601 +O -15.272340 -23.192916 -0.023832 +C -16.433993 -22.339988 0.021010 +H -16.881414 -22.452429 1.013666 +H -17.093355 -22.553783 -0.819846 +O -15.918424 -20.986219 -0.042590 +C -16.947997 -19.999013 0.019997 +H -17.468235 -20.088074 0.984105 +H -17.544811 -20.101447 -0.890967 +O -16.233127 -18.763792 0.003141 +C -17.164999 -17.611993 0.021000 +H -17.771346 -17.545635 0.928771 +H -17.794582 -17.602526 -0.876254 +O -16.339844 -16.433520 0.034634 +C -17.080991 -15.216013 0.020998 +H -17.552185 -15.211743 1.004484 +H -17.707499 -15.272554 -0.880363 +O -16.064628 -14.158637 0.026095 +C -16.697983 -12.849987 0.022005 +H -17.256623 -12.696728 0.945298 +H -17.237681 -12.678069 -0.910031 +O -15.564334 -11.901005 0.001619 +C -16.020993 -10.549994 0.020004 +H -16.653258 -10.303933 0.873482 +H -16.586530 -10.421946 -0.904845 +O -14.788980 -9.729669 0.031000 +C -15.061001 -8.354002 0.021002 +H -15.538688 -8.139050 0.976840 +H -15.689335 -8.119547 -0.839386 +O -13.703187 -7.725534 0.024124 +C -13.833983 -6.295006 0.022007 +H -14.317290 -6.097340 0.979375 +H -14.364069 -6.002304 -0.885628 +O -12.411408 -5.895998 0.027357 +C -12.357998 -4.405998 0.020991 +H -12.750126 -3.982929 0.946121 +H -12.842806 -3.951453 -0.844411 +O -10.991210 -4.119450 0.009576 +C -10.655997 -2.717999 0.020991 +H -11.008370 -2.248088 0.949204 +H -10.995261 -2.307444 -0.934702 +O -9.221844 -2.632893 0.007326 +C -8.756005 -1.255998 0.021992 +H -9.040861 -0.862793 1.002324 +H -9.131453 -0.660767 -0.815570 +O -7.359932 -1.362249 -0.002542 +C -6.687987 -0.043987 0.020004 +H -6.954168 0.436567 0.964668 +H -6.947551 0.648310 -0.797455 +O -5.251227 -0.297161 -0.019007 +C -4.484991 0.897985 0.020999 +H -4.741281 1.368972 0.979014 +H -4.658173 1.521363 -0.856474 +O -3.116981 0.422273 0.023724 +C -2.180998 1.556995 0.021994 +H -2.335479 2.151179 0.926142 +H -2.315913 2.149717 -0.892466 +O -0.840338 0.934096 0.006854 diff --git a/sim/src/tests/jigs_to_several_atoms/test_006_anchors_to_100_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/test_006_anchors_to_100_atoms.mmp new file mode 100755 index 000000000..c6ac8df08 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_006_anchors_to_100_atoms.mmp @@ -0,0 +1,421 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (003 anchors to 100 atoms) +info opengroup open = True +group (Linear motor 50 atoms) +info opengroup open = True +forward_ref (682437328) # thermo (Thermo-45) +egroup (Linear motor 50 atoms) +mol (Chunk-5-frag46) def +atom 1 (6) (-828, 82, 369) def +atom 2 (8) (331, -758, 52) def +bond1 1 +atom 3 (6) (1518, 14, -327) def +bond1 2 +atom 4 (8) (2690, -787, 37) def +bond1 3 +atom 5 (6) (3878, 24, 325) def +bond1 4 +atom 6 (8) (5051, -811, 47) def +bond1 5 +atom 7 (6) (6243, -31, -301) def +bond1 6 +atom 8 (8) (7410, -840, 65) def +bond1 7 +atom 9 (6) (8597, -35, 373) def +bond1 8 +atom 10 (8) (9770, -862, 72) def +bond1 9 +atom 11 (6) (10957, -74, -275) def +bond1 10 +atom 12 (8) (12130, -884, 69) def +bond1 11 +atom 13 (1) (-804, 323, 1430) def +bond1 1 +atom 14 (1) (-826, 959, -277) def +bond1 1 +atom 15 (1) (1533, 951, 231) def +bond1 3 +atom 16 (1) (1513, 153, -1407) def +bond1 3 +atom 17 (1) (3876, 282, 1383) def +bond1 5 +atom 18 (1) (3890, 892, -334) def +bond1 5 +atom 19 (1) (6250, 893, 274) def +bond1 7 +atom 20 (1) (6253, 126, -1378) def +bond1 7 +atom 21 (1) (8595, 194, 1437) def +bond1 9 +atom 22 (1) (8608, 849, -262) def +bond1 9 +atom 23 (1) (10966, 843, 313) def +bond1 11 +atom 24 (1) (10957, 98, -1350) def +bond1 11 +atom 25 (6) (-59599, -1934, 232) def +atom 26 (8) (-58135, -2008, 233) def +bond1 25 +atom 27 (6) (-57474, -701, 217) def +bond1 26 +atom 28 (8) (-56037, -985, 227) def +bond1 27 +atom 29 (6) (-55201, 216, 207) def +bond1 28 +atom 30 (8) (-53815, -257, 234) def +bond1 29 +atom 31 (6) (-52832, 821, 347) def +bond1 30 +atom 32 (8) (-51517, 191, 205) def +bond1 31 +atom 33 (6) (-50432, 1154, 2) def +bond1 32 +atom 34 (8) (-49181, 421, 220) def +bond1 33 +atom 35 (6) (-48034, 1297, 469) def +bond1 34 +atom 36 (8) (-46832, 498, 212) def +bond1 35 +atom 37 (6) (-45644, 1313, -54) def +bond1 36 +atom 38 (8) (-44479, 469, 224) def +bond1 37 +atom 39 (6) (-43269, 1238, 531) def +bond1 38 +atom 40 (8) (-42125, 379, 210) def +bond1 39 +atom 41 (6) (-40907, 1135, -101) def +bond1 40 +atom 42 (8) (-39770, 264, 212) def +bond1 41 +atom 43 (6) (-38552, 1006, 552) def +bond1 42 +atom 44 (8) (-37414, 146, 211) def +bond1 43 +atom 45 (6) (-36197, 899, -107) def +bond1 44 +atom 46 (8) (-35057, 33, 213) def +bond1 45 +atom 47 (6) (-33845, 781, 565) def +bond1 46 +atom 48 (8) (-32699, -63, 211) def +bond1 47 +atom 49 (6) (-31493, 706, -110) def +bond1 48 +atom 50 (8) (-30341, -144, 204) def +bond1 49 +atom 51 (6) (-29138, 618, 552) def +bond1 50 +atom 52 (8) (-27982, -213, 203) def +bond1 51 +atom 53 (6) (-26782, 568, -111) def +bond1 52 +atom 54 (8) (-25623, -274, 199) def +bond1 53 +atom 55 (6) (-24425, 497, 548) def +bond1 54 +atom 56 (8) (-23263, -327, 199) def +bond1 55 +atom 57 (6) (-22068, 463, -111) def +bond1 56 +atom 58 (8) (-20904, -376, 191) def +bond1 57 +atom 59 (6) (-19707, 399, 531) def +bond1 58 +atom 60 (8) (-18545, -425, 183) def +bond1 59 +atom 61 (6) (-17350, 364, -130) def +bond1 60 +atom 62 (8) (-16185, -471, 178) def +bond1 61 +atom 63 (6) (-14991, 307, 523) def +bond1 62 +atom 64 (8) (-13826, -516, 183) def +bond1 63 +atom 65 (6) (-12628, 275, -115) def +bond1 64 +atom 66 (8) (-11466, -564, 194) def +bond1 65 +atom 67 (6) (-10273, 209, 554) def +bond1 66 +atom 68 (8) (-9106, -605, 200) def +bond1 67 +atom 69 (6) (-7914, 194, -100) def +bond1 68 +atom 70 (8) (-6747, -645, 187) def +bond1 69 +atom 71 (6) (-5546, 131, 515) def +bond1 70 +atom 72 (8) (-4387, -690, 149) def +bond1 71 +atom 73 (6) (-3206, 102, -207) def +bond1 72 +atom 74 (8) (-2028, -716, 96) def +bond1 73 1 +atom 75 (1) (-59912, -1402, 1129) def +bond1 25 +atom 76 (1) (-59968, -2957, 240) def +bond1 25 +atom 77 (1) (-59912, -1416, -671) def +bond1 25 +atom 78 (1) (-57737, -155, 1122) def +bond1 27 +atom 79 (1) (-57729, -181, -704) def +bond1 27 +atom 80 (1) (-55397, 803, 1103) def +bond1 29 +atom 81 (1) (-55374, 756, -722) def +bond1 29 +atom 82 (1) (-52905, 1265, 1339) def +bond1 31 +atom 83 (1) (-52982, 1530, -465) def +bond1 31 +atom 84 (1) (-50517, 1953, 738) def +bond1 33 +atom 85 (1) (-50459, 1502, -1029) def +bond1 33 +atom 86 (1) (-48040, 1593, 1517) def +bond1 35 +atom 87 (1) (-48065, 2138, -223) def +bond1 35 +atom 88 (1) (-45638, 2172, 617) def +bond1 37 +atom 89 (1) (-45635, 1584, -1108) def +bond1 37 +atom 90 (1) (-43255, 1455, 1597) def +bond1 39 +atom 91 (1) (-43241, 2129, -96) def +bond1 39 +atom 92 (1) (-40865, 2026, 525) def +bond1 41 +atom 93 (1) (-40895, 1352, -1168) def +bond1 41 +atom 94 (1) (-38542, 1188, 1625) def +bond1 43 +atom 95 (1) (-38507, 1918, -44) def +bond1 43 +atom 96 (1) (-36155, 1796, 511) def +bond1 45 +atom 97 (1) (-36186, 1108, -1176) def +bond1 45 +atom 98 (1) (-33838, 946, 1641) def +bond1 47 +atom 99 (1) (-33808, 1702, -16) def +bond1 47 +atom 100 (1) (-31460, 1602, 510) def +bond1 49 +atom 101 (1) (-31489, 918, -1178) def +bond1 49 +atom 102 (1) (-29132, 789, 1627) def +bond1 51 +atom 103 (1) (-29111, 1537, -34) def +bond1 51 +atom 104 (1) (-26758, 1460, 516) def +bond1 53 +atom 105 (1) (-26777, 787, -1177) def +bond1 53 +atom 106 (1) (-24421, 667, 1623) def +bond1 55 +atom 107 (1) (-24404, 1415, -38) def +bond1 55 +atom 108 (1) (-22047, 1350, 521) def +bond1 57 +atom 109 (1) (-22067, 688, -1176) def +bond1 57 +atom 110 (1) (-19699, 576, 1605) def +bond1 59 +atom 111 (1) (-19690, 1314, -60) def +bond1 59 +atom 112 (1) (-17331, 1255, 498) def +bond1 61 +atom 113 (1) (-17348, 585, -1196) def +bond1 61 +atom 114 (1) (-14990, 487, 1596) def +bond1 63 +atom 115 (1) (-14972, 1220, -71) def +bond1 63 +atom 116 (1) (-12613, 1160, 521) def +bond1 65 +atom 117 (1) (-12618, 505, -1179) def +bond1 65 +atom 118 (1) (-10273, 369, 1630) def +bond1 67 +atom 119 (1) (-10255, 1134, -23) def +bond1 67 +atom 120 (1) (-7896, 1071, 546) def +bond1 69 +atom 121 (1) (-7916, 436, -1162) def +bond1 69 +atom 122 (1) (-5525, 303, 1590) def +bond1 71 +atom 123 (1) (-5539, 1049, -72) def +bond1 71 +atom 124 (1) (-3181, 1007, 399) def +bond1 73 +atom 125 (1) (-3228, 298, -1278) def +bond1 73 +mol (Chunk-5-frag46-frag53) def +atom 126 (6) (13319, -78, 369) def +bond1 12 +atom 127 (8) (14490, -904, 59) def +bond1 126 +atom 128 (6) (15674, -115, -299) def +bond1 127 +atom 129 (8) (16850, -918, 52) def +bond1 128 +atom 130 (6) (18034, -105, 352) def +bond1 129 +atom 131 (8) (19210, -925, 46) def +bond1 130 +atom 132 (6) (20390, -131, -311) def +bond1 131 +atom 133 (8) (21571, -925, 45) def +bond1 132 +atom 134 (6) (22747, -105, 353) def +bond1 133 +atom 135 (8) (23931, -912, 39) def +bond1 134 +atom 136 (6) (25100, -104, -323) def +bond1 135 +atom 137 (8) (26291, -884, 32) def +bond1 136 +atom 138 (6) (27458, -48, 336) def +bond1 137 +atom 139 (8) (28651, -840, 19) def +bond1 138 +atom 140 (6) (29808, -18, -349) def +bond1 139 +atom 141 (8) (31010, -776, 14) def +bond1 140 +atom 142 (6) (32159, 79, 328) def +bond1 141 +atom 143 (8) (33368, -692, 21) def +bond1 142 +atom 144 (6) (34518, 150, -322) def +bond1 143 +atom 145 (8) (35725, -603, 28) def +bond1 144 +atom 146 (6) (36871, 254, 345) def +bond1 145 +atom 147 (8) (38081, -512, 34) def +bond1 146 +atom 148 (6) (39234, 334, -289) def +bond1 147 +atom 149 (8) (40436, -446, 14) def +bond1 148 +atom 150 (6) (41611, 387, 286) def +bond1 149 +atom 151 (8) (42790, -440, 18) def +bond1 150 +atom 152 (6) (43998, 346, -249) def +bond1 151 +atom 153 (8) (45139, -535, 11) def +bond1 152 +atom 154 (6) (46392, 191, 233) def +bond1 153 +atom 155 (8) (47474, -775, 32) def +bond1 154 +atom 156 (6) (48792, -151, -104) def +bond1 155 +atom 157 (8) (49771, -1234, 3) def +bond1 156 +atom 158 (6) (51159, -766, 19) def +bond1 157 +atom 159 (8) (51990, -1971, 8) def +bond1 158 +atom 160 (6) (53428, -1692, 8) def +bond1 159 +atom 161 (8) (54086, -2999, 8) def +bond1 160 +atom 162 (6) (55549, -2923, 5) def +bond1 161 +atom 163 (8) (56017, -4307, 6) def +bond1 162 +atom 164 (1) (13325, 150, 1433) def +bond1 126 +atom 165 (1) (13323, 807, -266) def +bond1 126 +atom 166 (1) (15681, 807, 280) def +bond1 128 +atom 167 (1) (15671, 47, -1375) def +bond1 128 +atom 168 (1) (18037, 126, 1416) def +bond1 130 +atom 169 (1) (18035, 779, -285) def +bond1 130 +atom 170 (1) (20390, 793, 266) def +bond1 132 +atom 171 (1) (20390, 28, -1387) def +bond1 132 +atom 172 (1) (22749, 116, 1418) def +bond1 134 +atom 173 (1) (22740, 784, -276) def +bond1 134 +atom 174 (1) (25091, 821, 251) def +bond1 136 +atom 175 (1) (25095, 51, -1400) def +bond1 136 +atom 176 (1) (27460, 172, 1402) def +bond1 138 +atom 177 (1) (27438, 841, -293) def +bond1 138 +atom 178 (1) (29784, 913, 216) def +bond1 140 +atom 179 (1) (29802, 127, -1428) def +bond1 140 +atom 180 (1) (32148, 300, 1394) def +bond1 142 +atom 181 (1) (32130, 968, -301) def +bond1 142 +atom 182 (1) (34482, 1067, 267) def +bond1 144 +atom 183 (1) (34515, 323, -1396) def +bond1 144 +atom 184 (1) (36860, 470, 1412) def +bond1 146 +atom 185 (1) (36839, 1146, -280) def +bond1 146 +atom 186 (1) (39215, 1226, 337) def +bond1 148 +atom 187 (1) (39218, 551, -1356) def +bond1 148 +atom 188 (1) (41609, 661, 1340) def +bond1 150 +atom 189 (1) (41611, 1243, -388) def +bond1 150 +atom 190 (1) (44036, 1195, 433) def +bond1 152 +atom 191 (1) (44006, 628, -1300) def +bond1 152 +atom 192 (1) (46418, 537, 1265) def +bond1 154 +atom 193 (1) (46483, 990, -501) def +bond1 154 +atom 194 (1) (48945, 552, 712) def +bond1 156 +atom 195 (1) (48867, 298, -1093) def +bond1 156 +atom 196 (1) (51338, -217, 943) def +bond1 158 +atom 197 (1) (51354, -189, -882) def +bond1 158 +atom 198 (1) (53689, -1160, 922) def +bond1 160 +atom 199 (1) (53689, -1159, -904) def +bond1 160 +atom 200 (1) (55886, -2432, 917) def +bond1 162 +atom 201 (1) (55883, -2435, -909) def +bond1 162 +atom 202 (1) (56984, -4324, 4) def +bond1 163 +thermo (Thermo-45) (153, 0, 51) 126 202 134 +info leaf forwarded = 682437328 +ground (Anchor-77) (0, 0, 0) 1 2 3 4 5 6 7 8 9 10 11 12 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 +egroup (003 anchors to 100 atoms) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 003 anchors to 100 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/test_006_anchors_to_100_atoms.trc b/sim/src/tests/jigs_to_several_atoms/test_006_anchors_to_100_atoms.trc new file mode 100755 index 000000000..f8b8edf72 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_006_anchors_to_100_atoms.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_006_anchors_to_100_atoms.trc test_006_anchors_to_100_atoms.mmp +# Date and Time: Wed Apr 19 10:53:31 2006 +# Input File: test_006_anchors_to_100_atoms.mmp +# Output File: test_006_anchors_to_100_atoms.xyz +# Trace File: test_006_anchors_to_100_atoms.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 202 +# +# 2 columns: +# Thermo-45: temperature (K) +# Anchor-77: torque (nn-nm) +# +# Time T.meter Anchor +# picosec Thermo-45 Anchor-77 +# + 0.0100 205.71 22.01 +# Done: diff --git a/sim/src/tests/jigs_to_several_atoms/test_006_anchors_to_100_atoms.xyzcmp b/sim/src/tests/jigs_to_several_atoms/test_006_anchors_to_100_atoms.xyzcmp new file mode 100755 index 000000000..def9d9293 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_006_anchors_to_100_atoms.xyzcmp @@ -0,0 +1,204 @@ +202 +Frame 0, Iteration: 100 +C -0.827991 0.082000 0.369001 +O 0.330989 -0.757996 0.051986 +C 1.518003 0.013995 -0.327002 +O 2.689992 -0.786995 0.037005 +C 3.878021 0.024000 0.324987 +O 5.050999 -0.810998 0.046992 +C 6.243000 -0.031011 -0.300995 +O 7.409999 -0.840005 0.064999 +C 8.597001 -0.035008 0.372989 +O 9.769999 -0.862000 0.072009 +C 10.957011 -0.074000 -0.274990 +O 12.129996 -0.884002 0.069001 +H -0.782908 0.294501 1.435576 +H -0.812079 1.022569 -0.185141 +H 1.570926 0.964824 0.208214 +H 1.463564 0.236044 -1.392279 +H 3.958152 0.397281 1.345140 +H 3.912102 0.841747 -0.395323 +H 6.215373 0.903391 0.261645 +H 6.297528 0.138889 -1.375133 +H 8.596916 0.228727 1.429478 +H 8.624246 0.760153 -0.375373 +H 11.070321 0.825918 0.333049 +H 10.966298 0.193059 -1.330982 +C -59.598989 -1.934003 0.232011 +O -58.135002 -2.007988 0.232992 +C -57.474000 -0.701004 0.216997 +O -56.037012 -0.984993 0.226996 +C -55.200994 0.215988 0.206989 +O -53.814999 -0.256984 0.233997 +C -52.831994 0.820989 0.347001 +O -51.516994 0.191001 0.205002 +C -50.431991 1.153995 0.002009 +O -49.180998 0.421006 0.219999 +C -48.033997 1.296986 0.469013 +O -46.831996 0.498011 0.211995 +C -45.643993 1.312983 -0.053992 +O -44.479005 0.469000 0.224004 +C -43.268990 1.237990 0.530990 +O -42.125006 0.379010 0.210000 +C -40.907000 1.134987 -0.101001 +O -39.769988 0.264011 0.211999 +C -38.551994 1.005994 0.552000 +O -37.413997 0.146008 0.211000 +C -36.197006 0.899000 -0.107005 +O -35.057007 0.033003 0.213000 +C -33.844994 0.781006 0.564990 +O -32.698996 -0.062996 0.211011 +C -31.492986 0.705987 -0.109990 +O -30.340997 -0.143999 0.204004 +C -29.138013 0.617982 0.551993 +O -27.982007 -0.212994 0.202999 +C -26.781999 0.567990 -0.110986 +O -25.622994 -0.273996 0.199000 +C -24.424982 0.497008 0.547997 +O -23.263002 -0.326990 0.198997 +C -22.068006 0.462995 -0.111006 +O -20.903999 -0.375998 0.190992 +C -19.707002 0.398998 0.530990 +O -18.545012 -0.425005 0.182999 +C -17.350005 0.363986 -0.129999 +O -16.185008 -0.470996 0.178002 +C -14.991001 0.306998 0.523008 +O -13.825998 -0.516000 0.183001 +C -12.628005 0.274993 -0.114984 +O -11.466007 -0.563992 0.193995 +C -10.272989 0.209003 0.554000 +O -9.106009 -0.604991 0.199997 +C -7.913994 0.193994 -0.099996 +O -6.747003 -0.644990 0.186999 +C -5.546001 0.131002 0.515004 +O -4.387009 -0.689995 0.149002 +C -3.205988 0.101985 -0.206990 +O -2.028002 -0.715995 0.096009 +H -59.843370 -1.509234 1.203461 +H -59.950847 -2.966508 0.136026 +H -60.032419 -1.312879 -0.551057 +H -57.739231 -0.070305 1.066243 +H -57.705883 -0.128698 -0.684177 +H -55.409269 0.773149 1.128653 +H -55.355358 0.728215 -0.743975 +H -52.877935 1.133679 1.394213 +H -52.967996 1.562194 -0.439816 +H -50.578716 1.890042 0.797248 +H -50.371916 1.499590 -1.029398 +H -48.012860 1.515061 1.535473 +H -48.063504 2.163462 -0.193337 +H -45.618031 2.149821 0.646143 +H -45.626128 1.543792 -1.118560 +H -43.228534 1.476857 1.592418 +H -43.229940 2.055247 -0.194814 +H -40.874365 2.057688 0.479211 +H -40.858915 1.298573 -1.178898 +H -38.479129 1.223463 1.616621 +H -38.481657 1.950607 0.008101 +H -36.107057 1.803330 0.497902 +H -36.210715 1.113324 -1.174482 +H -33.822130 1.121418 1.603761 +H -33.770760 1.647242 -0.094440 +H -31.430730 1.600384 0.516215 +H -31.410680 0.911054 -1.177845 +H -29.182922 0.722729 1.637281 +H -29.176656 1.527438 -0.051362 +H -26.803574 1.482203 0.486603 +H -26.859857 0.755169 -1.183691 +H -24.346519 0.664871 1.622836 +H -24.422045 1.450355 0.010203 +H -22.056367 1.367827 0.499233 +H -22.079839 0.649986 -1.184187 +H -19.687026 0.533302 1.614432 +H -19.637616 1.308047 -0.070784 +H -17.378300 1.202284 0.576712 +H -17.360915 0.628807 -1.187155 +H -15.022161 0.487297 1.600335 +H -15.030036 1.244857 -0.037155 +H -12.696370 1.142014 0.551060 +H -12.553749 0.591277 -1.155577 +H -10.206608 0.365363 1.629937 +H -10.188856 1.140660 -0.007447 +H -7.829261 1.036979 0.587489 +H -7.973445 0.436721 -1.160023 +H -5.578549 0.317624 1.589724 +H -5.574100 1.075947 -0.031240 +H -3.113096 0.980132 0.439748 +H -3.186260 0.292265 -1.281489 +C 13.318998 -0.077998 0.368997 +O 14.490000 -0.903990 0.058994 +C 15.673990 -0.115009 -0.299002 +O 16.850004 -0.918008 0.052003 +C 18.033984 -0.105005 0.351999 +O 19.209999 -0.924998 0.045999 +C 20.390003 -0.131005 -0.311000 +O 21.571001 -0.924997 0.045002 +C 22.747017 -0.105015 0.352998 +O 23.931009 -0.911996 0.038994 +C 25.100008 -0.104017 -0.323003 +O 26.291001 -0.883996 0.031999 +C 27.458005 -0.048013 0.336005 +O 28.650995 -0.839996 0.018998 +C 29.808000 -0.018011 -0.349017 +O 31.009996 -0.775999 0.014004 +C 32.158986 0.078983 0.327998 +O 33.368000 -0.691988 0.021003 +C 34.518006 0.149994 -0.322013 +O 35.725002 -0.602988 0.028005 +C 36.871007 0.253998 0.345005 +O 38.080997 -0.512001 0.034005 +C 39.233995 0.333999 -0.288997 +O 40.436001 -0.446004 0.013991 +C 41.610996 0.386995 0.286019 +O 42.789998 -0.439998 0.017991 +C 43.998001 0.345994 -0.248988 +O 45.139000 -0.534989 0.011000 +C 46.391999 0.191005 0.232990 +O 47.473992 -0.774995 0.031994 +C 48.791987 -0.151003 -0.103981 +O 49.771001 -1.234003 0.002990 +C 51.159006 -0.766012 0.019010 +O 51.989996 -1.971008 0.007988 +C 53.427997 -1.691999 0.008006 +O 54.086003 -2.998991 0.008011 +C 55.548993 -2.923001 0.004996 +O 56.017010 -4.306992 0.006000 +H 13.364548 0.221389 1.416130 +H 13.345611 0.828542 -0.239824 +H 15.628491 0.878197 0.150874 +H 15.687363 -0.075855 -1.388269 +H 18.057007 0.278505 1.380451 +H 17.948445 0.682112 -0.398480 +H 20.403613 0.790827 0.270842 +H 20.340995 -0.021379 -1.395231 +H 22.861993 0.123599 1.417371 +H 22.762965 0.822559 -0.224558 +H 25.081184 0.786110 0.312280 +H 25.060444 0.031826 -1.403122 +H 27.584727 0.043426 1.417603 +H 27.528624 0.847654 -0.307613 +H 29.817847 0.945872 0.163414 +H 29.813168 0.165629 -1.424427 +H 32.012953 0.346547 1.377443 +H 32.159370 0.954183 -0.324271 +H 34.558330 1.124665 0.172230 +H 34.549645 0.248956 -1.412437 +H 36.841506 0.504738 1.404997 +H 36.916090 1.094538 -0.369693 +H 39.210261 1.155316 0.430376 +H 39.236403 0.631269 -1.342554 +H 41.491636 0.604819 1.347467 +H 41.704905 1.308590 -0.305883 +H 43.997645 1.145678 0.494479 +H 44.018448 0.838785 -1.227829 +H 46.473212 0.651118 1.217185 +H 46.542814 0.863485 -0.612348 +H 48.856029 0.489078 0.780919 +H 48.909922 0.358291 -1.059502 +H 51.316809 -0.288939 0.985834 +H 51.352996 -0.138887 -0.854369 +H 53.647326 -1.116734 0.909045 +H 53.651701 -1.145499 -0.915908 +H 55.964259 -2.435107 0.891403 +H 55.762752 -2.416316 -0.940954 +H 56.981302 -4.284748 0.059723 diff --git a/sim/src/tests/jigs_to_several_atoms/test_007_rotarymotor_and_anchors_to_100_atoms.mmp b/sim/src/tests/jigs_to_several_atoms/test_007_rotarymotor_and_anchors_to_100_atoms.mmp new file mode 100755 index 000000000..9bf5af549 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_007_rotarymotor_and_anchors_to_100_atoms.mmp @@ -0,0 +1,710 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (001 rotarymotor and anchors to 100 atoms) +info opengroup open = True +mol (Chunk-1) - +atom 1 (6) (246, 2418, 238) - +atom 2 (8) (176, 3200, -1004) - +bond1 1 +atom 3 (8) (1498, 1656, 253) - +bond1 1 +atom 4 (6) (2707, 2485, 240) - +bond1 3 +atom 5 (8) (2736, 3271, -1000) - +bond1 4 +atom 6 (8) (3853, 1573, 254) - +bond1 4 +atom 7 (6) (5156, 2244, 242) - +bond1 6 +atom 8 (8) (5284, 3020, -998) - +bond1 7 +atom 9 (8) (6180, 1195, 256) - +bond1 7 +atom 10 (6) (7557, 1697, 244) - +bond1 9 +atom 11 (8) (7780, 2453, -995) - +bond1 10 +atom 12 (8) (8440, 528, 257) - +bond1 10 +atom 13 (6) (9869, 855, 246) - +bond1 12 +atom 14 (8) (10186, 1578, -993) - +bond1 13 +atom 15 (8) (10600, -415, 258) - +bond1 13 +atom 16 (6) (12058, -270, 248) - +bond1 15 +atom 17 (8) (12464, 408, -990) - +bond1 16 +atom 18 (8) (12624, -1622, 259) - +bond1 16 +atom 19 (6) (14089, -1661, 250) - +bond1 18 +atom 20 (8) (14577, -1038, -987) - +bond1 19 +atom 21 (8) (14480, -3073, 261) - +bond1 19 +atom 22 (6) (15928, -3296, 252) - +bond1 21 +atom 23 (8) (16492, -2738, -984) - +bond1 22 +atom 24 (8) (16139, -4746, 262) - +bond1 22 +atom 25 (6) (17548, -5148, 254) - +bond1 24 +atom 26 (8) (18178, -4665, -982) - +bond1 25 +atom 27 (8) (17576, -6613, 263) - +bond1 25 +atom 28 (6) (18923, -7189, 256) - +bond1 27 +atom 29 (8) (19609, -6788, -980) - +bond1 28 +atom 30 (8) (18766, -8646, 264) - +bond1 28 +atom 31 (6) (20031, -9387, 258) - +bond1 30 +atom 32 (8) (20762, -9075, -977) - +bond1 31 +atom 33 (8) (19692, -10813, 265) - +bond1 31 +atom 34 (6) (20854, -11706, 259) - +bond1 33 +atom 35 (8) (21619, -11488, -976) - +bond1 34 +atom 36 (8) (20339, -13078, 266) - +bond1 34 +atom 37 (6) (21380, -14109, 260) - +bond1 36 +atom 38 (8) (22167, -13989, -974) - +bond1 37 +atom 39 (8) (20697, -15406, 266) - +bond1 37 +atom 40 (6) (21600, -16560, 261) - +bond1 39 +atom 41 (8) (22397, -16539, -973) - +bond1 40 +atom 42 (8) (20761, -17761, 267) - +bond1 40 +atom 43 (6) (21512, -19019, 261) - +bond1 42 +atom 44 (8) (22306, -19098, -972) - +bond1 43 +atom 45 (8) (20529, -20106, 267) - +bond1 43 +atom 46 (6) (21117, -21448, 262) - +bond1 45 +atom 47 (8) (21895, -21625, -972) - +bond1 46 +atom 48 (8) (20006, -22403, 267) - +bond1 46 +atom 49 (6) (20422, -23808, 261) - +bond1 48 +atom 50 (8) (21171, -24081, -972) - +bond1 49 +atom 51 (8) (19199, -24616, 267) - +bond1 49 +atom 52 (6) (19436, -26062, 261) - +bond1 51 +atom 53 (8) (20146, -26426, -973) - +bond1 52 +atom 54 (8) (18123, -26711, 266) - +bond1 52 +atom 55 (6) (18177, -28176, 260) - +bond1 54 +atom 56 (8) (18834, -28626, -974) - +bond1 55 +atom 57 (8) (16792, -28656, 266) - +bond1 55 +atom 58 (6) (16662, -30115, 259) - +bond1 57 +atom 59 (8) (17258, -30643, -975) - +bond1 58 +atom 60 (8) (15229, -30418, 265) - +bond1 58 +atom 61 (6) (14917, -31850, 258) - +bond1 60 +atom 62 (8) (15442, -32448, -977) - +bond1 61 +atom 63 (8) (13457, -31971, 264) - +bond1 61 +atom 64 (6) (12969, -33353, 256) - +bond1 63 +atom 65 (8) (13414, -34011, -979) - +bond1 64 +atom 66 (8) (11505, -33290, 263) - +bond1 64 +atom 67 (6) (10847, -34600, 255) - +bond1 66 +atom 68 (8) (11206, -35308, -981) - +bond1 67 +atom 69 (8) (9402, -34354, 262) - +bond1 67 +atom 70 (6) (8586, -35571, 253) - +bond1 69 +atom 71 (8) (8853, -36317, -984) - +bond1 70 +atom 72 (8) (7183, -35146, 261) - +bond1 70 +atom 73 (6) (6221, -36250, 251) - +bond1 72 +atom 74 (8) (6392, -37024, -986) - +bond1 73 +atom 75 (8) (4882, -35653, 260) - +bond1 73 +atom 76 (6) (3789, -36628, 249) - +bond1 75 +atom 77 (8) (3861, -37416, -989) - +bond1 76 +atom 78 (8) (2536, -35867, 258) - +bond1 76 +atom 79 (6) (1328, -36698, 247) - +bond1 78 +atom 80 (8) (1302, -37487, -992) - +bond1 79 +atom 81 (8) (181, -35786, 257) - +bond1 79 +atom 82 (6) (-1121, -36458, 244) - +bond1 81 +atom 83 (8) (-1246, -37236, -995) - +bond1 82 +atom 84 (8) (-2144, -35409, 255) - +bond1 82 +atom 85 (6) (-3521, -35912, 242) - +bond1 84 +atom 86 (8) (-3742, -36667, -998) - +bond1 85 +atom 87 (8) (-4405, -34743, 254) - +bond1 85 +atom 88 (6) (-5834, -35069, 240) - +bond1 87 +atom 89 (8) (-6148, -35790, -1000) - +bond1 88 +atom 90 (8) (-6564, -33799, 253) - +bond1 88 +atom 91 (6) (-8023, -33943, 238) - +bond1 90 +atom 92 (8) (-8424, -34617, -1004) - +bond1 91 +atom 93 (8) (-8588, -32591, 251) - +bond1 91 +atom 94 (6) (-10054, -32551, 236) - +bond1 93 +atom 95 (8) (-10536, -33169, -1006) - +bond1 94 +atom 96 (8) (-10445, -31138, 250) - +bond1 94 +atom 97 (6) (-11894, -30915, 234) - +bond1 96 +atom 98 (8) (-12449, -31467, -1008) - +bond1 97 +atom 99 (8) (-12105, -29465, 249) - +bond1 97 +atom 100 (6) (-13515, -29062, 232) - +bond1 99 +atom 101 (8) (-14134, -29539, -1012) - +bond1 100 +atom 102 (8) (-13543, -27596, 248) - +bond1 100 +atom 103 (6) (-14891, -27020, 231) - +bond1 102 +atom 104 (8) (-15564, -27415, -1014) - +bond1 103 +atom 105 (8) (-14735, -25562, 248) - +bond1 103 +atom 106 (6) (-16000, -24822, 229) - +bond1 105 +atom 107 (8) (-16717, -25130, -1014) - +bond1 106 +atom 108 (8) (-15664, -23395, 247) - +bond1 106 +atom 109 (6) (-16826, -22502, 228) - +bond1 108 +atom 110 (8) (-17575, -22718, -1016) - +bond1 109 +atom 111 (8) (-16312, -21129, 246) - +bond1 109 +atom 112 (6) (-17355, -20097, 228) - +bond1 111 +atom 113 (8) (-18125, -20217, -1018) - +bond1 112 +atom 114 (8) (-16675, -18799, 246) - +bond1 112 +atom 115 (6) (-17579, -17645, 227) - +bond1 114 +atom 116 (8) (-18357, -17667, -1018) - +bond1 115 +atom 117 (8) (-16741, -16442, 246) - +bond1 115 +atom 118 (6) (-17494, -15184, 227) - +bond1 117 +atom 119 (8) (-18268, -15108, -1018) - +bond1 118 +atom 120 (8) (-16512, -14095, 246) - +bond1 118 +atom 121 (6) (-17101, -12753, 227) - +bond1 120 +atom 122 (8) (-17860, -12581, -1018) - +bond1 121 +atom 123 (8) (-15990, -11796, 246) - +bond1 121 +atom 124 (6) (-16406, -10390, 227) - +bond1 123 +atom 125 (8) (-17138, -10124, -1018) - +bond1 124 +atom 126 (8) (-15184, -9580, 246) - +bond1 124 +atom 127 (6) (-15421, -8134, 227) - +bond1 126 +atom 128 (8) (-16113, -7777, -1018) - +bond1 127 +atom 129 (8) (-14107, -7483, 246) - +bond1 127 +atom 130 (6) (-14160, -6018, 228) - +bond1 129 +atom 131 (8) (-14802, -5578, -1016) - +bond1 130 +atom 132 (8) (-12775, -5538, 247) - +bond1 130 +atom 133 (6) (-12643, -4078, 229) - +bond1 132 +atom 134 (8) (-13225, -3560, -1016) - +bond1 133 +atom 135 (8) (-11209, -3776, 247) - +bond1 133 +atom 136 (6) (-10895, -2344, 230) - +bond1 135 +atom 137 (8) (-11408, -1756, -1014) - +bond1 136 +atom 138 (8) (-9434, -2224, 248) - +bond1 136 +atom 139 (6) (-8943, -843, 231) - +bond1 138 +atom 140 (8) (-9378, -195, -1012) - +bond1 139 +atom 141 (8) (-7478, -908, 249) - +bond1 139 +atom 142 (6) (-6818, 400, 233) - +bond1 141 +atom 143 (8) (-7169, 1098, -1010) - +bond1 142 +atom 144 (8) (-5373, 152, 250) - +bond1 142 +atom 145 (6) (-4554, 1368, 234) - +bond1 144 +atom 146 (8) (-4815, 2105, -1008) - +bond1 145 +atom 147 (8) (-3152, 941, 251) - +bond1 145 +atom 148 (6) (-2186, 2044, 236) - +bond1 147 +atom 149 (8) (-2353, 2810, -1006) - +bond1 148 +atom 150 (8) (-849, 1445, 252) - +bond1 148 1 +atom 151 (1) (11141, -35181, 1127) - +bond1 67 +atom 152 (1) (8805, -36185, 1125) - +bond1 70 +atom 153 (1) (14490, -1146, 1122) - +bond1 19 +atom 154 (1) (6361, -36888, 1123) - +bond1 73 +atom 155 (1) (3848, -37279, 1120) - +bond1 76 +atom 156 (1) (2730, 3142, 1108) - +bond1 4 +atom 157 (1) (1305, -37352, 1117) - +bond1 79 +atom 158 (1) (-1226, -37104, 1114) - +bond1 82 +atom 159 (1) (22021, -14011, 1134) - +bond1 37 +atom 160 (1) (-3707, -36541, 1111) - +bond1 85 +atom 161 (1) (-6098, -35671, 1108) - +bond1 88 +atom 162 (1) (16391, -2836, 1124) - +bond1 22 +atom 163 (1) (-8361, -34508, 1105) - +bond1 91 +atom 164 (1) (-10460, -33070, 1103) - +bond1 94 +atom 165 (1) (5261, 2892, 1111) - +bond1 7 +atom 166 (1) (-12362, -31379, 1100) - +bond1 97 +atom 167 (1) (-14038, -29464, 1098) - +bond1 100 +atom 168 (1) (22249, -16542, 1135) - +bond1 40 +atom 169 (1) (-15461, -27354, 1096) - +bond1 103 +atom 170 (1) (-16608, -25082, 1095) - +bond1 106 +atom 171 (1) (18065, -4751, 1127) - +bond1 25 +atom 172 (1) (-17462, -22684, 1093) - +bond1 109 +atom 173 (1) (-18009, -20199, 1092) - +bond1 112 +atom 174 (1) (7741, 2326, 1114) - +bond1 10 +atom 175 (1) (-18241, -17664, 1091) - +bond1 115 +atom 176 (1) (-18153, -15120, 1091) - +bond1 118 +atom 177 (1) (22158, -19083, 1136) - +bond1 43 +atom 178 (1) (-17747, -12606, 1091) - +bond1 121 +atom 179 (1) (-17029, -10164, 1091) - +bond1 124 +atom 180 (1) (19484, -6860, 1129) - +bond1 28 +atom 181 (1) (-16010, -7831, 1092) - +bond1 127 +atom 182 (1) (-14706, -5644, 1092) - +bond1 130 +atom 183 (1) (10131, 1455, 1117) - +bond1 13 +atom 184 (1) (-13138, -3639, 1094) - +bond1 133 +atom 185 (1) (-11330, -1846, 1095) - +bond1 136 +atom 186 (1) (21750, -21592, 1136) - +bond1 46 +atom 187 (1) (-9312, -295, 1097) - +bond1 139 +atom 188 (1) (-7115, 989, 1099) - +bond1 142 +atom 189 (1) (20628, -9131, 1131) - +bond1 31 +atom 190 (1) (-4775, 1989, 1101) - +bond1 145 +atom 191 (1) (20013, -26359, 1135) - +bond1 52 +atom 192 (1) (-2328, 2687, 1103) - +bond1 148 +atom 193 (1) (12393, 291, 1119) - +bond1 16 +atom 194 (1) (18712, -28543, 1134) - +bond1 55 +atom 195 (1) (21031, -24030, 1136) - +bond1 49 +atom 196 (1) (17148, -30547, 1133) - +bond1 58 +atom 197 (1) (186, 3074, 1106) - +bond1 1 +atom 198 (1) (15346, -32339, 1131) - +bond1 61 +atom 199 (1) (13333, -33892, 1130) - +bond1 64 +atom 200 (1) (21478, -11527, 1133) - +bond1 34 +atom 201 (6) (10856, -34612, -2228) - +bond1 68 +atom 202 (8) (9411, -34366, -2247) - +bond1 201 +atom 203 (6) (8593, -35583, -2230) - +bond1 202 71 +atom 204 (8) (7190, -35157, -2249) - +bond1 203 +atom 205 (6) (6225, -36261, -2232) - +bond1 204 74 +atom 206 (8) (4887, -35663, -2250) - +bond1 205 +atom 207 (6) (3792, -36637, -2234) - +bond1 206 77 +atom 208 (8) (2539, -35876, -2251) - +bond1 207 +atom 209 (6) (1331, -36705, -2236) - +bond1 208 80 +atom 210 (8) (184, -35792, -2253) - +bond1 209 +atom 211 (6) (-1119, -36463, -2238) - +bond1 210 83 +atom 212 (8) (-2142, -35413, -2254) - +bond1 211 +atom 213 (6) (-3519, -35915, -2241) - +bond1 212 86 +atom 214 (8) (-4402, -34745, -2255) - +bond1 213 +atom 215 (6) (-5831, -35070, -2243) - +bond1 214 89 +atom 216 (8) (-6561, -33799, -2257) - +bond1 215 +atom 217 (6) (-8019, -33942, -2245) - +bond1 216 92 +atom 218 (8) (-8583, -32589, -2258) - +bond1 217 +atom 219 (6) (-10049, -32548, -2247) - +bond1 218 95 +atom 220 (8) (-10439, -31136, -2259) - +bond1 219 +atom 221 (6) (-11887, -30912, -2249) - +bond1 220 98 +atom 222 (8) (-12097, -29461, -2260) - +bond1 221 +atom 223 (6) (-13506, -29058, -2251) - +bond1 222 101 +atom 224 (8) (-13533, -27592, -2261) - +bond1 223 +atom 225 (6) (-14880, -27016, -2252) - +bond1 224 104 +atom 226 (8) (-14724, -25559, -2262) - +bond1 225 +atom 227 (6) (-15988, -24818, -2253) - +bond1 226 107 +atom 228 (8) (-15651, -23392, -2263) - +bond1 227 +atom 229 (6) (-16813, -22500, -2254) - +bond1 228 110 +atom 230 (8) (-16299, -21127, -2263) - +bond1 229 +atom 231 (6) (-17341, -20096, -2255) - +bond1 230 113 +atom 232 (8) (-16659, -18798, -2263) - +bond1 231 +atom 233 (6) (-17564, -17645, -2256) - +bond1 232 116 +atom 234 (8) (-16725, -16443, -2264) - +bond1 233 +atom 235 (6) (-17478, -15186, -2256) - +bond1 234 119 +atom 236 (8) (-16496, -14098, -2264) - +bond1 235 +atom 237 (6) (-17086, -12756, -2256) - +bond1 236 122 +atom 238 (8) (-15975, -11800, -2264) - +bond1 237 +atom 239 (6) (-16392, -10395, -2256) - +bond1 238 125 +atom 240 (8) (-15170, -9586, -2264) - +bond1 239 +atom 241 (6) (-15407, -8140, -2255) - +bond1 240 128 +atom 242 (8) (-14093, -7490, -2263) - +bond1 241 +atom 243 (6) (-14147, -6026, -2255) - +bond1 242 131 +atom 244 (8) (-12763, -5546, -2263) - +bond1 243 +atom 245 (6) (-12632, -4086, -2254) - +bond1 244 134 +atom 246 (8) (-11198, -3784, -2262) - +bond1 245 +atom 247 (6) (-10886, -2352, -2253) - +bond1 246 137 +atom 248 (8) (-9425, -2232, -2261) - +bond1 247 +atom 249 (6) (-8935, -851, -2252) - +bond1 248 140 +atom 250 (8) (-7471, -915, -2261) - +bond1 249 +atom 251 (6) (-6812, 393, -2250) - +bond1 250 143 +atom 252 (8) (-5367, 145, -2260) - +bond1 251 +atom 253 (6) (-4549, 1362, -2248) - +bond1 252 146 +atom 254 (8) (-3147, 935, -2259) - +bond1 253 +atom 255 (6) (-2183, 2039, -2247) - +bond1 254 149 +atom 256 (8) (-845, 1441, -2258) - +bond1 255 +atom 257 (6) (248, 2416, -2245) - +bond1 256 2 +atom 258 (8) (1501, 1654, -2256) - +bond1 257 +atom 259 (6) (2709, 2484, -2243) - +bond1 258 5 +atom 260 (8) (3857, 1573, -2255) - +bond1 259 +atom 261 (6) (5159, 2245, -2241) - +bond1 260 8 +atom 262 (8) (6184, 1197, -2254) - +bond1 261 +atom 263 (6) (7560, 1700, -2238) - +bond1 262 11 +atom 264 (8) (8445, 532, -2253) - +bond1 263 +atom 265 (6) (9874, 859, -2236) - +bond1 264 14 +atom 266 (8) (10606, -410, -2251) - +bond1 265 +atom 267 (6) (12065, -264, -2234) - +bond1 266 17 +atom 268 (8) (12632, -1616, -2250) - +bond1 267 +atom 269 (6) (14097, -1654, -2232) - +bond1 268 20 +atom 270 (8) (14490, -3066, -2249) - +bond1 269 +atom 271 (6) (15939, -3288, -2230) - +bond1 270 23 +atom 272 (8) (16152, -4739, -2248) - +bond1 271 +atom 273 (6) (17561, -5141, -2228) - +bond1 272 26 +atom 274 (8) (17590, -6607, -2246) - +bond1 273 +atom 275 (6) (18938, -7183, -2227) - +bond1 274 29 +atom 276 (8) (18783, -8640, -2245) - +bond1 275 +atom 277 (6) (20048, -9381, -2225) - +bond1 276 32 +atom 278 (8) (19711, -10808, -2245) - +bond1 277 +atom 279 (6) (20873, -11702, -2224) - +bond1 278 35 +atom 280 (8) (20360, -13075, -2244) - +bond1 279 +atom 281 (6) (21401, -14107, -2223) - +bond1 280 38 +atom 282 (8) (20719, -15405, -2243) - +bond1 281 +atom 283 (6) (21622, -16560, -2222) - +bond1 282 41 +atom 284 (8) (20784, -17763, -2243) - +bond1 283 +atom 285 (6) (21535, -19022, -2221) - +bond1 284 44 +atom 286 (8) (20552, -20110, -2243) - +bond1 285 +atom 287 (6) (21140, -21453, -2221) - +bond1 286 47 +atom 288 (8) (20028, -22409, -2243) - +bond1 287 +atom 289 (6) (20443, -23815, -2221) - +bond1 288 50 +atom 290 (8) (19221, -24625, -2243) - +bond1 289 +atom 291 (6) (19456, -26072, -2222) - +bond1 290 53 +atom 292 (8) (18142, -26722, -2243) - +bond1 291 +atom 293 (6) (18195, -28187, -2222) - +bond1 292 56 +atom 294 (8) (16810, -28667, -2244) - +bond1 293 +atom 295 (6) (16678, -30128, -2223) - +bond1 294 59 +atom 296 (8) (15244, -30431, -2244) - +bond1 295 +atom 297 (6) (14931, -31863, -2225) - +bond1 296 62 +atom 298 (8) (13470, -31984, -2245) - +bond1 297 +atom 299 (6) (12980, -33366, -2226) - +bond1 298 65 +atom 300 (8) (11515, -33303, -2246) - +bond1 299 201 +atom 301 (1) (-8355, -34505, -3114) - +bond1 217 +atom 302 (1) (-10452, -33064, -3117) - +bond1 219 +atom 303 (1) (-12352, -31372, -3119) - +bond1 221 +atom 304 (1) (-14024, -29456, -3122) - +bond1 223 +atom 305 (1) (-15444, -27346, -3123) - +bond1 225 +atom 306 (1) (14504, -1133, -3098) - +bond1 269 +atom 307 (1) (-16588, -25075, -3125) - +bond1 227 +atom 308 (1) (-17440, -22679, -3126) - +bond1 229 +atom 309 (1) (-17985, -20196, -3127) - +bond1 231 +atom 310 (1) (189, 3069, -3114) - +bond1 257 +atom 311 (1) (-18215, -17663, -3128) - +bond1 233 +atom 312 (1) (2732, 3141, -3111) - +bond1 259 +atom 313 (1) (-18127, -15122, -3129) - +bond1 235 +atom 314 (1) (-17721, -12612, -3129) - +bond1 237 +atom 315 (1) (7746, 2332, -3106) - +bond1 263 +atom 316 (1) (-17004, -10173, -3128) - +bond1 239 +atom 317 (1) (10138, 1463, -3103) - +bond1 265 +atom 318 (1) (-15986, -7842, -3128) - +bond1 241 +atom 319 (1) (12403, 302, -3100) - +bond1 267 +atom 320 (1) (22197, -19087, -3083) - +bond1 285 +atom 321 (1) (-14685, -5657, -3127) - +bond1 243 +atom 322 (1) (16409, -2822, -3095) - +bond1 271 +atom 323 (1) (-13120, -3653, -3126) - +bond1 245 +atom 324 (1) (18086, -4737, -3093) - +bond1 273 +atom 325 (1) (-11315, -1861, -3125) - +bond1 247 +atom 326 (1) (19510, -6848, -3091) - +bond1 275 +atom 327 (1) (-9300, -309, -3123) - +bond1 249 +atom 328 (1) (20658, -9120, -3089) - +bond1 277 +atom 329 (1) (-7106, 976, -3121) - +bond1 251 +atom 330 (1) (21512, -11519, -3087) - +bond1 279 +atom 331 (1) (-4768, 1978, -3119) - +bond1 253 +atom 332 (1) (22057, -14006, -3085) - +bond1 281 +atom 333 (1) (-2323, 2679, -3116) - +bond1 255 +atom 334 (1) (22287, -16542, -3084) - +bond1 283 +atom 335 (1) (5265, 2894, -3109) - +bond1 261 +atom 336 (1) (21788, -21600, -3083) - +bond1 287 +atom 337 (1) (21068, -24043, -3083) - +bond1 289 +atom 338 (1) (20048, -26376, -3084) - +bond1 291 +atom 339 (1) (18743, -28562, -3085) - +bond1 293 +atom 340 (1) (17175, -30568, -3086) - +bond1 295 +atom 341 (1) (15368, -32362, -3088) - +bond1 297 +atom 342 (1) (13351, -33915, -3090) - +bond1 299 +atom 343 (1) (11155, -35203, -3092) - +bond1 201 +atom 344 (1) (8815, -36206, -3095) - +bond1 203 +atom 345 (1) (6368, -36907, -3097) - +bond1 205 +atom 346 (1) (3852, -37295, -3100) - +bond1 207 +atom 347 (1) (1308, -37364, -3103) - +bond1 209 +atom 348 (1) (-1224, -37112, -3106) - +bond1 211 +atom 349 (1) (-3705, -36545, -3109) - +bond1 213 +atom 350 (1) (-6095, -35671, -3111) - +bond1 215 +rmotor (Rotary Motor-90) (127, 127, 127) 1.00 1.50 (2037, -17108, -1014) (0, 0, 1000) 10.00 2.00 0.50 +shaft 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 103 106 109 112 115 118 121 124 127 130 133 136 139 142 145 148 201 203 205 207 209 211 213 215 217 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 279 281 283 285 287 289 291 293 295 297 299 +thermo (Thermo-91) (153, 0, 51) 1 350 150 +ground (Anchor-98) (0, 0, 0) 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 103 106 109 112 115 118 121 124 127 130 133 136 139 142 145 148 201 203 205 207 209 211 213 215 217 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 279 281 283 285 287 289 291 293 295 297 299 +egroup (001 rotarymotor and anchors to 100 atoms) +end molecular machine part 001 rotarymotor and anchors to 100 atoms diff --git a/sim/src/tests/jigs_to_several_atoms/test_007_rotarymotor_and_anchors_to_100_atoms.trc b/sim/src/tests/jigs_to_several_atoms/test_007_rotarymotor_and_anchors_to_100_atoms.trc new file mode 100755 index 000000000..26178db8b --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_007_rotarymotor_and_anchors_to_100_atoms.trc @@ -0,0 +1,31 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_007_rotarymotor_and_anchors_to_100_atoms.trc test_007_rotarymotor_and_anchors_to_100_atoms.mmp +# Date and Time: Wed Apr 19 10:53:32 2006 +# Input File: test_007_rotarymotor_and_anchors_to_100_atoms.mmp +# Output File: test_007_rotarymotor_and_anchors_to_100_atoms.xyz +# Trace File: test_007_rotarymotor_and_anchors_to_100_atoms.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 350 +# +# 4 columns: +# Rotary Motor-90: speed (GHz) +# Rotary Motor-90: torque (nn-nm) +# Thermo-91: temperature (K) +# Anchor-98: torque (nn-nm) +# +# Time speed torque T.meter Anchor +# picosec Rotary Motor-90 Thermo-91 Anchor-98 +# + 0.0100 0.017 0.932 232.10 48.93 +# Done: diff --git a/sim/src/tests/jigs_to_several_atoms/test_007_rotarymotor_and_anchors_to_100_atoms.xyzcmp b/sim/src/tests/jigs_to_several_atoms/test_007_rotarymotor_and_anchors_to_100_atoms.xyzcmp new file mode 100755 index 000000000..1b1cbb9b6 --- /dev/null +++ b/sim/src/tests/jigs_to_several_atoms/test_007_rotarymotor_and_anchors_to_100_atoms.xyzcmp @@ -0,0 +1,352 @@ +350 +Frame 0, Iteration: 100 +C 0.246006 2.418002 0.237983 +O 0.125704 3.187695 -1.051931 +O 1.512575 1.638162 0.245567 +C 2.706992 2.484993 0.239999 +O 2.785944 3.271050 -1.013780 +O 3.852726 1.573154 0.227014 +C 5.155998 2.243981 0.242003 +O 5.278720 2.982989 -1.009224 +O 6.178738 1.201130 0.256425 +C 7.556998 1.696978 0.244016 +O 7.789013 2.454873 -0.972822 +O 8.430439 0.508900 0.275345 +C 9.869000 0.854995 0.246002 +O 10.187656 1.577413 -0.951385 +O 10.615878 -0.384866 0.257142 +C 12.058008 -0.269995 0.247991 +O 12.495386 0.440213 -1.004222 +O 12.630211 -1.633432 0.251066 +C 14.088993 -1.661006 0.249994 +O 14.595604 -1.033379 -0.974278 +O 14.480387 -3.071275 0.277788 +C 15.928004 -3.295998 0.251984 +O 16.540164 -2.732520 -0.978614 +O 16.143684 -4.712098 0.269237 +C 17.548004 -5.148009 0.254003 +O 18.188033 -4.634401 -0.994838 +O 17.557265 -6.638436 0.262037 +C 18.922979 -7.188984 0.255989 +O 19.623919 -6.794672 -1.015839 +O 18.781872 -8.599155 0.265934 +C 20.031008 -9.386983 0.257992 +O 20.791519 -9.090855 -0.948784 +O 19.720978 -10.795391 0.288208 +C 20.854009 -11.705997 0.259000 +O 21.621998 -11.507605 -0.943392 +O 20.361306 -13.054744 0.259731 +C 21.380004 -14.109015 0.260004 +O 22.148834 -14.001634 -0.965960 +O 20.725568 -15.410889 0.264296 +C 21.600004 -16.559981 0.260998 +O 22.393726 -16.562451 -0.962605 +O 20.818726 -17.744614 0.259062 +C 21.512008 -19.018997 0.260986 +O 22.315612 -19.087311 -0.973595 +O 20.504034 -20.092610 0.254968 +C 21.116985 -21.447993 0.262001 +O 21.903026 -21.605528 -0.970002 +O 20.026062 -22.402553 0.312130 +C 20.421998 -23.808011 0.261009 +O 21.184141 -24.088808 -0.956992 +O 19.182333 -24.649201 0.245117 +C 19.435996 -26.061992 0.261005 +O 20.188331 -26.448445 -0.917042 +O 18.149979 -26.723317 0.272493 +C 18.177001 -28.175987 0.259998 +O 18.829271 -28.608379 -0.978223 +O 16.778069 -28.653785 0.250985 +C 16.661982 -30.115005 0.258984 +O 17.239620 -30.622152 -1.002756 +O 15.186622 -30.448911 0.271187 +C 14.916991 -31.850009 0.258001 +O 15.405977 -32.449670 -0.963332 +O 13.480657 -31.973411 0.301700 +C 12.968993 -33.352999 0.256011 +O 13.400239 -34.042073 -0.941442 +O 11.483607 -33.284274 0.242883 +C 10.847000 -34.599991 0.254991 +O 11.170953 -35.291000 -1.001417 +O 9.422599 -34.356834 0.272355 +C 8.585992 -35.570985 0.253001 +O 8.873468 -36.300603 -0.971023 +O 7.147071 -35.151996 0.274088 +C 6.220999 -36.250004 0.251020 +O 6.390206 -37.024210 -0.942037 +O 4.907363 -35.682120 0.263815 +C 3.788995 -36.627973 0.248999 +O 3.816933 -37.410218 -0.942127 +O 2.532353 -35.831194 0.244944 +C 1.328008 -36.698001 0.246981 +O 1.305916 -37.534500 -1.027932 +O 0.186733 -35.821373 0.281504 +C -1.120996 -36.458013 0.244014 +O -1.241806 -37.246013 -0.990360 +O -2.179159 -35.424991 0.306589 +C -3.520994 -35.912010 0.242005 +O -3.733096 -36.700590 -0.999297 +O -4.410597 -34.765725 0.281587 +C -5.833998 -35.069002 0.240004 +O -6.149063 -35.813690 -1.010780 +O -6.561403 -33.811419 0.240585 +C -8.022992 -33.943015 0.237992 +O -8.436774 -34.612089 -1.012545 +O -8.580042 -32.606057 0.227603 +C -10.053981 -32.550981 0.236003 +O -10.529866 -33.140398 -0.989846 +O -10.429497 -31.130967 0.259364 +C -11.893998 -30.914993 0.234000 +O -12.449842 -31.403545 -0.991400 +O -12.097341 -29.495357 0.254228 +C -13.514986 -29.062021 0.232000 +O -14.107967 -29.551658 -0.985361 +O -13.571234 -27.624188 0.283359 +C -14.891023 -27.020005 0.230985 +O -15.588362 -27.391440 -1.012735 +O -14.776546 -25.568850 0.227527 +C -15.999998 -24.821994 0.228988 +O -16.734476 -25.090163 -1.012380 +O -15.676163 -23.384482 0.256855 +C -16.825992 -22.501998 0.228003 +O -17.577685 -22.745466 -1.045324 +O -16.295463 -21.123327 0.230569 +C -17.355002 -20.096994 0.228005 +O -18.137110 -20.209715 -1.028537 +O -16.695573 -18.802971 0.200808 +C -17.579008 -17.644988 0.226994 +O -18.406026 -17.640034 -0.998392 +O -16.722032 -16.413084 0.241831 +C -17.493972 -15.184003 0.227009 +O -18.247426 -15.098708 -1.015786 +O -16.489791 -14.107697 0.271556 +C -17.101009 -12.753000 0.226990 +O -17.886529 -12.577599 -1.050825 +O -16.017625 -11.775136 0.263475 +C -16.405996 -10.389991 0.227004 +O -17.128727 -10.128162 -1.040221 +O -15.217671 -9.572027 0.241059 +C -15.420999 -8.133998 0.226991 +O -16.134026 -7.772271 -0.996605 +O -14.097316 -7.535938 0.231065 +C -14.160001 -6.018016 0.228003 +O -14.813422 -5.589940 -1.030777 +O -12.759992 -5.524823 0.249097 +C -12.642982 -4.078007 0.228997 +O -13.207543 -3.608447 -1.030206 +O -11.179916 -3.771316 0.239716 +C -10.894989 -2.344002 0.229986 +O -11.402091 -1.757251 -1.012994 +O -9.465824 -2.222328 0.271063 +C -8.943009 -0.843010 0.230995 +O -9.398394 -0.229971 -1.063406 +O -7.496145 -0.918029 0.284133 +C -6.818017 0.399980 0.232996 +O -7.166692 1.122592 -1.019836 +O -5.384452 0.159055 0.233734 +C -4.554000 1.368001 0.234012 +O -4.804892 2.117039 -0.964227 +O -3.163313 0.937693 0.283457 +C -2.186007 2.043995 0.235994 +O -2.349008 2.769146 -1.013401 +O -0.860831 1.448151 0.318023 +H 11.154418 -35.233113 1.086731 +H 8.827560 -36.235495 1.086896 +H 14.475640 -1.109449 1.106961 +H 6.297979 -36.805289 1.185523 +H 3.767730 -37.285934 1.118254 +H 2.661450 3.108412 1.139010 +H 1.323653 -37.441306 1.044046 +H -1.131815 -37.126200 1.108359 +H 22.040587 -14.117464 1.132588 +H -3.647235 -36.510330 1.145794 +H -6.091432 -35.611607 1.149826 +H 16.388541 -2.828640 1.121618 +H -8.292643 -34.473686 1.150299 +H -10.435194 -33.015931 1.144564 +H 5.273558 2.838650 1.149798 +H -12.448080 -31.355395 1.063002 +H -13.993328 -29.525193 1.099209 +H 22.222623 -16.436099 1.154969 +H -15.542010 -27.431315 1.006033 +H -16.586969 -25.117537 1.097485 +H 18.011070 -4.820797 1.185175 +H -17.353406 -22.642917 1.171658 +H -17.974701 -20.129786 1.123293 +H 7.740030 2.236289 1.173816 +H -18.260406 -17.706677 1.074642 +H -18.047986 -15.240466 1.164993 +H 22.271787 -19.012635 1.043662 +H -17.742565 -12.557032 1.085481 +H -16.986473 -10.138927 1.118722 +H 19.351488 -6.807243 1.182841 +H -15.982154 -7.801455 1.098888 +H -14.700460 -5.636947 1.104704 +H 10.184642 1.474945 1.087757 +H -13.146913 -3.640820 1.091418 +H -11.307542 -1.737485 1.044332 +H 21.706794 -21.593008 1.171254 +H -9.275384 -0.319400 1.135410 +H -7.205421 0.951101 1.091626 +H 20.692640 -9.035743 1.060088 +H -4.808525 1.976551 1.103926 +H 20.032129 -26.164038 1.169026 +H -2.284613 2.746699 1.063863 +H 12.475117 0.200045 1.140448 +H 18.607996 -28.538490 1.195820 +H 21.032652 -24.020206 1.140799 +H 17.126541 -30.576061 1.132567 +H 0.200780 3.138695 1.053525 +H 15.324801 -32.284145 1.169884 +H 13.340727 -33.886536 1.134576 +H 21.526126 -11.545395 1.107589 +C 10.855973 -34.611970 -2.228016 +O 9.386299 -34.352946 -2.234844 +C 8.592986 -35.582980 -2.229993 +O 7.173934 -35.150755 -2.248340 +C 6.225012 -36.261006 -2.231987 +O 4.891704 -35.692325 -2.283264 +C 3.791993 -36.636996 -2.234004 +O 2.533358 -35.876187 -2.281589 +C 1.331010 -36.704991 -2.236008 +O 0.194224 -35.801387 -2.219388 +C -1.118999 -36.462996 -2.237995 +O -2.151598 -35.425641 -2.293906 +C -3.518994 -35.914987 -2.241000 +O -4.398471 -34.759696 -2.264663 +C -5.830992 -35.070002 -2.243001 +O -6.559530 -33.809599 -2.245470 +C -8.019004 -33.941996 -2.244999 +O -8.583467 -32.582733 -2.269258 +C -10.048994 -32.547989 -2.246997 +O -10.453175 -31.152072 -2.296580 +C -11.887010 -30.912012 -2.248994 +O -12.066379 -29.494340 -2.267896 +C -13.505988 -29.058009 -2.250994 +O -13.561711 -27.602925 -2.236501 +C -14.880009 -27.015993 -2.251993 +O -14.725808 -25.547762 -2.240506 +C -15.987988 -24.817987 -2.252998 +O -15.675616 -23.389072 -2.302160 +C -16.813007 -22.500007 -2.254005 +O -16.307860 -21.146311 -2.291280 +C -17.341002 -20.096001 -2.255001 +O -16.685266 -18.814676 -2.251374 +C -17.563996 -17.645003 -2.256011 +O -16.677465 -16.438065 -2.260262 +C -17.477970 -15.185996 -2.256008 +O -16.512418 -14.094163 -2.286062 +C -17.086015 -12.756014 -2.256014 +O -15.998344 -11.806502 -2.268883 +C -16.391994 -10.395026 -2.256008 +O -15.169722 -9.603094 -2.227672 +C -15.407010 -8.140000 -2.254984 +O -14.117313 -7.479919 -2.269650 +C -14.146986 -6.026001 -2.255008 +O -12.763685 -5.523865 -2.256372 +C -12.631988 -4.086004 -2.254008 +O -11.216952 -3.773596 -2.267747 +C -10.886004 -2.352005 -2.253001 +O -9.429872 -2.217390 -2.232509 +C -8.934980 -0.851006 -2.252016 +O -7.444335 -0.908416 -2.244828 +C -6.812002 0.393004 -2.249988 +O -5.368897 0.187587 -2.294040 +C -4.549004 1.362021 -2.247984 +O -3.153329 0.959121 -2.271324 +C -2.183010 2.039001 -2.246995 +O -0.884070 1.454113 -2.259501 +C 0.247975 2.415990 -2.245002 +O 1.495695 1.661484 -2.275697 +C 2.709005 2.484012 -2.243004 +O 3.848174 1.587191 -2.249684 +C 5.159004 2.245005 -2.240995 +O 6.185523 1.210591 -2.269207 +C 7.560012 1.699994 -2.237987 +O 8.451839 0.522181 -2.221995 +C 9.873988 0.859009 -2.236002 +O 10.596789 -0.401588 -2.291436 +C 12.065004 -0.264001 -2.233988 +O 12.622332 -1.616140 -2.229671 +C 14.096999 -1.654017 -2.232001 +O 14.471276 -3.079882 -2.249287 +C 15.939000 -3.287997 -2.230001 +O 16.154430 -4.715158 -2.263651 +C 17.561017 -5.141003 -2.227996 +O 17.637484 -6.619629 -2.241034 +C 18.937993 -7.183003 -2.227001 +O 18.774404 -8.615862 -2.202404 +C 20.048003 -9.381010 -2.224986 +O 19.715939 -10.790829 -2.254165 +C 20.873010 -11.702021 -2.223994 +O 20.370582 -13.085196 -2.234466 +C 21.400998 -14.107007 -2.223003 +O 20.734663 -15.437610 -2.247375 +C 21.621999 -16.560007 -2.221995 +O 20.783933 -17.776044 -2.271705 +C 21.535002 -19.022000 -2.220992 +O 20.547213 -20.092006 -2.264236 +C 21.140007 -21.452989 -2.221001 +O 20.032697 -22.414110 -2.227968 +C 20.443006 -23.814992 -2.220994 +O 19.232405 -24.593884 -2.264846 +C 19.455996 -26.071993 -2.221991 +O 18.108308 -26.740160 -2.194083 +C 18.195002 -28.186979 -2.221995 +O 16.810121 -28.611515 -2.291075 +C 16.677977 -30.127977 -2.223008 +O 15.227494 -30.420868 -2.211439 +C 14.930993 -31.862994 -2.224987 +O 13.462254 -31.977622 -2.240089 +C 12.980004 -33.366002 -2.225996 +O 11.554233 -33.308200 -2.216748 +H -8.355292 -34.513396 -3.110546 +H -10.442173 -33.166483 -3.058904 +H -12.358496 -31.378354 -3.112582 +H -13.990414 -29.474114 -3.133224 +H -15.413354 -27.380297 -3.130037 +H 14.427820 -1.236814 -3.184503 +H -16.515654 -25.061416 -3.177858 +H -17.478798 -22.683965 -3.096345 +H -17.978370 -20.194685 -3.132297 +H 0.126144 3.152939 -3.039171 +H -18.088483 -17.753118 -3.206175 +H 2.769737 3.226224 -3.038468 +H -18.043297 -15.131210 -3.189955 +H -17.754599 -12.592723 -3.102292 +H 7.766675 2.280803 -3.135651 +H -17.061228 -10.231182 -3.106563 +H 10.051808 1.470380 -3.120091 +H -16.050725 -7.784112 -3.064137 +H 12.450107 0.339192 -3.059066 +H 22.225396 -19.032913 -3.063524 +H -14.644385 -5.729203 -3.178564 +H 16.447038 -2.812303 -3.070253 +H -13.118921 -3.720763 -3.158858 +H 18.106570 -4.681132 -3.051768 +H -11.223440 -1.882602 -3.176852 +H 19.487365 -6.894470 -3.133199 +H -9.312211 -0.325221 -3.127692 +H 20.686965 -9.253876 -3.099489 +H -7.178205 1.008300 -3.071338 +H 21.518497 -11.571778 -3.096333 +H -4.777646 2.040280 -3.073911 +H 21.984370 -13.921079 -3.128233 +H -2.395514 2.689660 -3.099218 +H 22.273811 -16.567934 -3.096497 +H 5.278176 2.953662 -3.059344 +H 21.872680 -21.606984 -3.013232 +H 21.061088 -23.989431 -3.101712 +H 20.032411 -26.313564 -3.114989 +H 18.789215 -28.490077 -3.087966 +H 17.142535 -30.529324 -3.124588 +H 15.304017 -32.408189 -3.092716 +H 13.363044 -33.819818 -3.139706 +H 11.072436 -35.093458 -3.183540 +H 8.789612 -36.185407 -3.119538 +H 6.379385 -36.947017 -3.067900 +H 3.903632 -37.286990 -3.100648 +H 1.315173 -37.282913 -3.159073 +H -1.230409 -37.067995 -3.138194 +H -3.620457 -36.499963 -3.155907 +H -6.089198 -35.625982 -3.150402 diff --git a/sim/src/tests/minimize/h2.mmp b/sim/src/tests/minimize/h2.mmp new file mode 100755 index 000000000..57dea00d9 --- /dev/null +++ b/sim/src/tests/minimize/h2.mmp @@ -0,0 +1,19 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.891760) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (Untitled) +info opengroup open = True +mol (Chunk-H13) vdw +atom 1 (1) (-371, 0, 0) def +atom 2 (1) (372, 0, 0) def +bond1 1 +egroup (Untitled) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Untitled diff --git a/sim/src/tests/minimize/test_0001.ba b/sim/src/tests/minimize/test_0001.ba new file mode 100755 index 000000000..97880f964 --- /dev/null +++ b/sim/src/tests/minimize/test_0001.ba @@ -0,0 +1,45 @@ +LENGTH 0 1 0.769250284368 +LENGTH 0 2 0.769803221609 +LENGTH 0 3 1.53979316793 +LENGTH 0 6 1.53871732297 +LENGTH 9 10 0.769084520713 +LENGTH 9 11 0.7700012987 +LENGTH 9 12 1.73233484061 +LENGTH 3 4 0.770638047335 +LENGTH 3 5 0.769338027138 +LENGTH 3 9 1.54048953258 +LENGTH 12 13 0.770462847904 +LENGTH 12 14 0.768425012607 +LENGTH 6 7 0.770408333288 +LENGTH 6 8 0.769985714153 +LENGTH 6 12 1.74652340379 +ANGLE 0 3 4 109.474494925 +ANGLE 0 3 5 109.508735057 +ANGLE 0 3 9 109.484840265 +ANGLE 0 6 7 104.089727514 +ANGLE 0 6 8 108.925240921 +ANGLE 0 6 12 111.993655092 +ANGLE 1 0 2 109.493753532 +ANGLE 1 0 3 109.46543457 +ANGLE 1 0 6 109.540602962 +ANGLE 2 0 3 109.405323301 +ANGLE 2 0 6 109.482327668 +ANGLE 3 0 6 109.439782433 +ANGLE 3 9 10 104.171367515 +ANGLE 3 9 11 108.77863304 +ANGLE 3 9 12 112.511207986 +ANGLE 4 3 5 109.471010336 +ANGLE 4 3 9 109.375729819 +ANGLE 5 3 9 109.512432486 +ANGLE 6 12 9 95.0804682662 +ANGLE 6 12 13 112.34353709 +ANGLE 6 12 14 112.259049919 +ANGLE 7 6 8 109.47701199 +ANGLE 7 6 12 113.639592149 +ANGLE 8 6 12 108.576542027 +ANGLE 9 12 13 113.5222725 +ANGLE 9 12 14 113.67111377 +ANGLE 10 9 11 109.526163306 +ANGLE 10 9 12 112.516865618 +ANGLE 11 9 12 109.182660523 +ANGLE 13 12 14 109.419326451 diff --git a/sim/src/tests/minimize/test_0001.md5sums b/sim/src/tests/minimize/test_0001.md5sums new file mode 100755 index 000000000..768db2ad7 --- /dev/null +++ b/sim/src/tests/minimize/test_0001.md5sums @@ -0,0 +1,2 @@ +stdout 418651447C50AFC9561D3C3A21181D2B +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/minimize/test_0001.mmp b/sim/src/tests/minimize/test_0001.mmp new file mode 100755 index 000000000..7df428e15 --- /dev/null +++ b/sim/src/tests/minimize/test_0001.mmp @@ -0,0 +1,50 @@ +mmpformat 050130 required; 050217 optional +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) = +(0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.936981, 0.308166, -0.163947, 0.014883) (5.314410) = +(0.000000, 0.000000, 0.000000) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, = +0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, = +0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, = +1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (Untitled) +mol (Chunk-C1) def +atom 1 (6) (-192, 2912, 0) def +atom 2 (0) (113, 3476, 425) def +bond1 1 +atom 3 (0) (-618, 3217, -564) def +bond1 1 +atom 4 (6) (-1081, 2023, 889) def +bond1 1 +atom 5 (0) (-1796, 2006, 602) def +bond1 4 +atom 6 (0) (-1098, 2309, 1603) def +bond1 4 +atom 7 (6) (935, 2061, -611) def +bond1 1 +atom 8 (0) (777, 2054, -1365) def +bond1 7 +atom 9 (0) (1608, 2416, -493) def +bond1 7 +atom 10 (6) (-509, 593, 921) def +bond1 4 +atom 11 (0) (-1056, 164, 592) def +bond1 10 +atom 12 (0) (-420, 378, 1655) def +bond1 10 +atom 13 (6) (1013, 469, 103) def +bond1 7 10 +atom 14 (0) (1613, 391, 580) def +bond1 13 +atom 15 (0) (1034, -87, -427) def +bond1 13 +egroup (Untitled) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part Untitled diff --git a/sim/src/tests/minimize/test_0001.out b/sim/src/tests/minimize/test_0001.out new file mode 100755 index 000000000..d8f75f67d --- /dev/null +++ b/sim/src/tests/minimize/test_0001.out @@ -0,0 +1,12 @@ +======= test_0001.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 6 +== structure comparison == +cutover to fine tolerance at 1 diff --git a/sim/src/tests/minimize/test_0001.test b/sim/src/tests/minimize/test_0001.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/minimize/test_0001.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/minimize/test_0001.xyzcmp b/sim/src/tests/minimize/test_0001.xyzcmp new file mode 100755 index 000000000..224e59810 --- /dev/null +++ b/sim/src/tests/minimize/test_0001.xyzcmp @@ -0,0 +1,17 @@ +15 +RMS=0.994508 +C -0.193641 2.900593 -0.026523 +X 0.093601 3.502437 0.394872 +X -0.623522 3.154064 -0.637458 +C -1.079249 2.005273 0.890906 +X -1.803795 1.958430 0.584626 +X -1.090331 2.310792 1.617200 +C 0.986482 2.029986 -0.552402 +X 0.945121 1.985940 -1.338110 +X 1.667645 2.347089 -0.314849 +C -0.443634 0.583852 0.936816 +X -0.955793 0.061908 0.643109 +X -0.248030 0.411844 1.680547 +C 0.839719 0.603152 0.054672 +X 1.466374 0.446893 0.504740 +X 0.762053 0.079748 -0.528147 diff --git a/sim/src/tests/minimize/test_0002.md5sums b/sim/src/tests/minimize/test_0002.md5sums new file mode 100755 index 000000000..17ac93b99 --- /dev/null +++ b/sim/src/tests/minimize/test_0002.md5sums @@ -0,0 +1,2 @@ +stdout 9961762F03FC62301F295D9630F78043 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/minimize/test_0002.mmp b/sim/src/tests/minimize/test_0002.mmp new file mode 100755 index 000000000..95824a5a9 --- /dev/null +++ b/sim/src/tests/minimize/test_0002.mmp @@ -0,0 +1,51 @@ +mmpformat 050130 required; 050217 optional +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.931707, 0.283577, 0.061527, -0.218450) (7.290000) (0.000000, 0.000000, 0.000000) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (test) +mol (Chunk-C1) tub +atom 1 (6) (-799, 5348, -1559) def +atom 2 (0) (-189, 5715, -1264) def +bond1 1 +atom 3 (0) (-1167, 5814, -2048) def +bond1 1 +atom 4 (6) (-5012, 84, -135) def +bond1 1 +atom 5 (0) (-5115, -538, -576) def +bond1 4 +atom 6 (0) (-5654, 225, 264) def +bond1 4 +atom 7 (6) (-72, 739, 1778) def +bond1 4 +atom 8 (0) (42, 806, 2536) def +bond1 7 +atom 9 (0) (256, 1332, 1414) def +bond1 7 +atom 10 (6) (816, 1628, -889) def +bond1 1 +atom 11 (0) (121, 1684, -562) def +bond1 10 +atom 12 (0) (841, 998, -1331) def +bond1 10 +atom 13 (6) (7742, 2455, 696) def +bond1 10 +atom 14 (0) (7988, 3042, 1130) def +bond1 13 +atom 15 (0) (8326, 2189, 270) def +bond1 13 +atom 16 (6) (3146, -1161, 2167) def +bond1 13 7 +atom 17 (0) (3572, -1589, 2645) def +bond1 16 +atom 18 (0) (2515, -1554, 1966) def +bond1 16 +egroup (test) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part test diff --git a/sim/src/tests/minimize/test_0002.out b/sim/src/tests/minimize/test_0002.out new file mode 100755 index 000000000..767a9e856 --- /dev/null +++ b/sim/src/tests/minimize/test_0002.out @@ -0,0 +1,4 @@ +======= test_0002.test ======= +TYPE fail +PROGRAM simulator -f500 -m -x test_0002.mmp + diff --git a/sim/src/tests/minimize/test_0002.test b/sim/src/tests/minimize/test_0002.test new file mode 100755 index 000000000..6274c9465 --- /dev/null +++ b/sim/src/tests/minimize/test_0002.test @@ -0,0 +1,3 @@ +TYPE fail +PROGRAM simulator -f500 -m -x test_0002.mmp + diff --git a/sim/src/tests/minimize/test_0003.md5sums b/sim/src/tests/minimize/test_0003.md5sums new file mode 100755 index 000000000..b76ec8987 --- /dev/null +++ b/sim/src/tests/minimize/test_0003.md5sums @@ -0,0 +1,2 @@ +stdout 635EAD435B36BDC5849EBA59B7252E5F +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/minimize/test_0003.mmp b/sim/src/tests/minimize/test_0003.mmp new file mode 100755 index 000000000..58ff16b45 --- /dev/null +++ b/sim/src/tests/minimize/test_0003.mmp @@ -0,0 +1,66 @@ +mmpformat 050130 required; 050217 optional +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.536041, -0.061509, 0.303863, 0.785203) (5.149980) (0.000000, 0.000000, 0.000000) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (1) +mol (Chunk-C93) def +atom 1 (6) (-247, 1824, -328) def +atom 2 (0) (-705, 1410, -819) def +bond1 1 +atom 3 (0) (-637, 2430, -7) def +bond1 1 +atom 4 (6) (-584, 2236, 1718) def +bond1 1 +atom 5 (0) (-701, 1934, 2436) def +bond1 4 +atom 6 (0) (-732, 3010, 1695) def +bond1 4 +atom 7 (6) (265, 475, 567) def +bond1 4 +atom 8 (0) (-354, 415, 85) def +bond1 7 +atom 9 (0) (925, 196, 237) def +bond1 7 +atom 10 (6) (1671, 1055, -2062) def +bond1 1 +atom 11 (0) (2261, 1134, -2555) def +bond1 10 +atom 12 (6) (1882, 322, -80) def +bond1 10 +atom 13 (0) (2000, 614, 625) def +bond1 12 +atom 14 (6) (1066, -860, 449) def +bond1 7 12 +atom 15 (0) (1395, -1208, 1074) def +bond1 14 +atom 16 (0) (733, -1384, -34) def +bond1 14 +atom 17 (6) (-1397, -20, -2263) def +bond1 10 +atom 18 (0) (-1719, -606, -1847) def +bond1 17 +atom 19 (0) (-1936, 388, -2668) def +bond1 17 +mol (Chunk-C114) def +atom 20 (6) (1862, 228, -2527) def +bond1 17 +atom 21 (0) (2225, 926, -2496) def +bond1 20 +atom 22 (0) (2203, -259, -3043) def +bond1 20 +atom 23 (6) (2775, -212, -1199) def +bond1 20 12 +atom 24 (0) (3473, 149, -1218) def +bond1 23 +atom 25 (0) (2844, -989, -1094) def +bond1 23 +egroup (1) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part 1 diff --git a/sim/src/tests/minimize/test_0003.out b/sim/src/tests/minimize/test_0003.out new file mode 100755 index 000000000..a92a474f5 --- /dev/null +++ b/sim/src/tests/minimize/test_0003.out @@ -0,0 +1,3 @@ +======= test_0003.test ======= +TYPE fail +PROGRAM simulator -f300 -m -X -x test_0003.mmp diff --git a/sim/src/tests/minimize/test_0003.test b/sim/src/tests/minimize/test_0003.test new file mode 100755 index 000000000..d3308fa28 --- /dev/null +++ b/sim/src/tests/minimize/test_0003.test @@ -0,0 +1,2 @@ +TYPE fail +PROGRAM simulator -f300 -m -X -x test_0003.mmp diff --git a/sim/src/tests/minimize/test_0004.md5sums b/sim/src/tests/minimize/test_0004.md5sums new file mode 100755 index 000000000..4ffe9b75c --- /dev/null +++ b/sim/src/tests/minimize/test_0004.md5sums @@ -0,0 +1,2 @@ +stdout 5B9D7158E91BDB040018D9A6F14A2DEA +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/minimize/test_0004.mmp b/sim/src/tests/minimize/test_0004.mmp new file mode 100755 index 000000000..c9d13eef3 --- /dev/null +++ b/sim/src/tests/minimize/test_0004.mmp @@ -0,0 +1,78 @@ +mmpformat 050130 required; 050217 optional +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (6.905391) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.666349, 0.131054, 0.730464, -0.072288) (6.430436) (0.000000, 0.000000, 0.000000) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (AllInOne) +mol (Chunk-Si1) def +atom 1 (14) (-1242, -1372, 301) def +atom 2 (14) (1087, -1426, 237) def +bond1 1 +atom 3 (14) (-1910, 861, 302) def +bond1 1 +atom 4 (14) (1858, 772, 191) def +bond1 2 +atom 5 (14) (5, 2186, 236) def +bond1 3 4 +atom 6 (8) (73, 3245, 1715) def +bond1 5 +atom 7 (0) (160, 2828, 2220) def +bond1 6 +atom 8 (8) (2908, 1087, 1644) def +bond1 4 +atom 9 (0) (2526, 949, 2165) def +bond1 8 +atom 10 (8) (1724, -2272, 1718) def +bond1 2 +atom 11 (0) (1527, -1898, 2226) def +bond1 10 +atom 12 (8) (-1837, -2194, 1812) def +bond1 1 +atom 13 (0) (-1458, -1955, 2297) def +bond1 12 +atom 14 (8) (-2856, 1220, 1815) def +bond1 3 +atom 15 (0) (-2432, 1118, 2310) def +bond1 14 +atom 16 (8) (-13, 3229, -1265) def +bond1 5 +atom 17 (8) (-2947, 1197, -1166) def +bond1 3 +atom 18 (8) (-1918, -2216, -1162) def +bond1 1 +atom 19 (8) (1642, -2306, -1255) def +bond1 2 +atom 20 (8) (2820, 1059, -1337) def +bond1 4 +atom 21 (6) (-2089, 962, -2287) def +bond1 17 +atom 22 (0) (-2453, 1162, -2935) def +bond1 21 +atom 23 (6) (51, 2308, -2357) def +bond1 16 21 +atom 24 (0) (86, 2698, -3020) def +bond1 23 +atom 25 (6) (-1423, -1473, -2279) def +bond1 18 21 +atom 26 (0) (-1743, -1739, -2927) def +bond1 25 +atom 27 (6) (1048, -1597, -2345) def +bond1 19 25 +atom 28 (0) (1237, -1940, -3008) def +bond1 27 +atom 29 (6) (1898, 823, -2405) def +bond1 20 27 23 +atom 30 (0) (2242, 970, -3078) def +bond1 29 +rmotor (Rotary Motor.2) (112, 0, 0) 0.00 0.00 (-40, 204, 253) (-28, -9, -999) 4.00 0.50 0.20 +shaft 1 5 2 3 4 +mol (AllInOne-blankPdb.pdb) def +egroup (AllInOne) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part AllInOne diff --git a/sim/src/tests/minimize/test_0004.out b/sim/src/tests/minimize/test_0004.out new file mode 100755 index 000000000..bb9acdd12 --- /dev/null +++ b/sim/src/tests/minimize/test_0004.out @@ -0,0 +1,3 @@ +======= test_0004.test ======= +TYPE fail +PROGRAM simulator -f600 -m -x test_0004.mmp diff --git a/sim/src/tests/minimize/test_0004.test b/sim/src/tests/minimize/test_0004.test new file mode 100755 index 000000000..8f56b1eaf --- /dev/null +++ b/sim/src/tests/minimize/test_0004.test @@ -0,0 +1,2 @@ +TYPE fail +PROGRAM simulator -f600 -m -x test_0004.mmp diff --git a/sim/src/tests/minimize/test_0005.ba b/sim/src/tests/minimize/test_0005.ba new file mode 100755 index 000000000..a7a8c9467 --- /dev/null +++ b/sim/src/tests/minimize/test_0005.ba @@ -0,0 +1,45 @@ +LENGTH 0 1 0.770062335139 +LENGTH 0 2 0.770013636243 +LENGTH 0 3 1.55573294623 +LENGTH 0 6 1.63041988457 +LENGTH 9 10 0.768899213161 +LENGTH 9 11 0.769969479915 +LENGTH 9 12 1.75952777756 +LENGTH 3 4 0.769252884297 +LENGTH 3 5 0.77067502879 +LENGTH 3 9 1.85955263437 +LENGTH 12 13 0.769987662239 +LENGTH 12 14 0.768966189114 +LENGTH 6 7 0.769362073409 +LENGTH 6 8 0.769749309841 +LENGTH 6 12 1.54000194805 +ANGLE 0 3 4 112.083612472 +ANGLE 0 3 5 99.6214319304 +ANGLE 0 3 9 109.704511138 +ANGLE 0 6 7 115.257844633 +ANGLE 0 6 8 101.203865489 +ANGLE 0 6 12 120.826736622 +ANGLE 1 0 2 109.397770219 +ANGLE 1 0 3 108.588148475 +ANGLE 1 0 6 112.942272293 +ANGLE 2 0 3 111.421634557 +ANGLE 2 0 6 110.280691994 +ANGLE 3 0 6 104.131747411 +ANGLE 3 9 10 113.964933553 +ANGLE 3 9 11 114.375816288 +ANGLE 3 9 12 101.726060986 +ANGLE 4 3 5 109.423185971 +ANGLE 4 3 9 107.545804666 +ANGLE 5 3 9 118.390993049 +ANGLE 6 12 9 103.304578082 +ANGLE 6 12 13 109.826270378 +ANGLE 6 12 14 111.914202775 +ANGLE 7 6 8 109.391270139 +ANGLE 7 6 12 97.9187517163 +ANGLE 8 6 12 112.403674886 +ANGLE 9 12 13 113.212594669 +ANGLE 9 12 14 109.021124188 +ANGLE 10 9 11 109.36368228 +ANGLE 10 9 12 115.164498925 +ANGLE 11 9 12 101.545698171 +ANGLE 13 12 14 109.48016823 diff --git a/sim/src/tests/minimize/test_0005.md5sums b/sim/src/tests/minimize/test_0005.md5sums new file mode 100755 index 000000000..44a4dd133 --- /dev/null +++ b/sim/src/tests/minimize/test_0005.md5sums @@ -0,0 +1,2 @@ +stdout B5313F41C12B97E461CFE5F6E71B2C75 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/minimize/test_0005.mmp b/sim/src/tests/minimize/test_0005.mmp new file mode 100755 index 000000000..4ef7b603d --- /dev/null +++ b/sim/src/tests/minimize/test_0005.mmp @@ -0,0 +1,45 @@ +mmpformat 050130 required; 050217 optional +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.421789, 0.882976, 0.067448, -0.194675) (5.845851) (0.000000, 0.000000, 0.000000) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (Untitled) +mol (Chunk-C1) def +atom 1 (6) (-16, 344, -737) def +atom 2 (0) (-70, 968, -289) def +bond1 1 +atom 3 (0) (-4, 560, -1476) def +bond1 1 +atom 4 (6) (-1225, -588, -437) def +bond1 1 +atom 5 (0) (-1643, -337, 158) def +bond1 4 +atom 6 (0) (-1625, -494, -1089) def +bond1 4 +atom 7 (6) (1288, -573, -395) def +bond1 1 +atom 8 (0) (1701, -343, 212) def +bond1 7 +atom 9 (0) (1705, -485, -1036) def +bond1 7 +atom 10 (6) (-613, -2292, -13) def +bond1 4 +atom 11 (0) (-910, -2578, 636) def +bond1 10 +atom 12 (0) (-692, -2808, -579) def +bond1 10 +atom 13 (6) (1130, -2052, 4) def +bond1 7 10 +atom 14 (0) (1446, -2171, 696) def +bond1 13 +atom 15 (0) (1453, -2524, -510) def +bond1 13 +egroup (Untitled) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part Untitled diff --git a/sim/src/tests/minimize/test_0005.out b/sim/src/tests/minimize/test_0005.out new file mode 100755 index 000000000..099e1f091 --- /dev/null +++ b/sim/src/tests/minimize/test_0005.out @@ -0,0 +1,12 @@ +======= test_0005.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 15 +== structure comparison == +cutover to fine tolerance at 1 diff --git a/sim/src/tests/minimize/test_0005.test b/sim/src/tests/minimize/test_0005.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/minimize/test_0005.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/minimize/test_0005.xyzcmp b/sim/src/tests/minimize/test_0005.xyzcmp new file mode 100755 index 000000000..11018362d --- /dev/null +++ b/sim/src/tests/minimize/test_0005.xyzcmp @@ -0,0 +1,17 @@ +15 +RMS=0.971384 +C 0.026298 0.250187 -0.667958 +X -0.029462 0.848762 -0.157195 +X 0.013470 0.504545 -1.414576 +C -1.158547 -0.735295 -0.438743 +X -1.603140 -0.470945 0.155759 +X -1.573781 -0.799738 -1.105366 +C 1.352656 -0.525484 -0.410434 +X 1.735787 -0.189963 0.190915 +X 1.785943 -0.522454 -1.068635 +C -0.564232 -2.125150 -0.062418 +X -0.821329 -2.331220 0.653418 +X -0.773656 -2.652609 -0.609160 +C 0.987352 -1.992942 -0.037569 +X 1.249579 -2.149352 0.687991 +X 1.298065 -2.481342 -0.571032 diff --git a/sim/src/tests/minimize/test_0006.md5sums b/sim/src/tests/minimize/test_0006.md5sums new file mode 100755 index 000000000..ea2d3eb5e --- /dev/null +++ b/sim/src/tests/minimize/test_0006.md5sums @@ -0,0 +1,2 @@ +stdout 532D5D15E9512E03E080E7FC8BE8444B +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/minimize/test_0006.mmp b/sim/src/tests/minimize/test_0006.mmp new file mode 100755 index 000000000..33c4d87b4 --- /dev/null +++ b/sim/src/tests/minimize/test_0006.mmp @@ -0,0 +1,75 @@ +mmpformat 050130 +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, -3.500000) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (Untitled) +mol (Cookie.1) def +atom 1 (6) (7213, -3214, 10910) def +atom 2 (0) (7760, -2734, 10691) def +bond1 1 +atom 3 (0) (7526, -3818, 11248) def +bond1 1 +atom 4 (6) (5795, -2460, 9017) def +atom 5 (0) (6342, -1980, 8799) def +bond1 4 +atom 6 (6) (6421, -3668, 9694) def +bond1 4 1 +atom 7 (0) (6748, -2863, 11398) def +bond1 1 +atom 8 (0) (5399, -2687, 8410) def +bond1 4 +atom 9 (6) (3771, -2718, 10431) def +bond1 4 +atom 10 (0) (3406, -2145, 10772) def +bond1 9 +atom 11 (6) (2353, -1964, 8539) def +atom 12 (0) (2900, -1484, 8320) def +bond1 11 +atom 13 (6) (2979, -3172, 9215) def +bond1 11 9 +atom 14 (0) (3842, -3298, 10918) def +bond1 9 +atom 15 (0) (1957, -2191, 7931) def +bond1 11 +atom 16 (0) (1888, -1613, 9027) def +bond1 11 +atom 17 (6) (7351, -4370, 8717) def +bond1 6 +atom 18 (0) (7898, -3890, 8499) def +bond1 17 +atom 19 (0) (7665, -4974, 9056) def +bond1 17 +atom 20 (0) (6955, -4597, 8110) def +bond1 17 +atom 21 (6) (5327, -4628, 10131) def +bond1 6 +atom 22 (0) (5641, -5232, 10469) def +bond1 21 +atom 23 (0) (4932, -4855, 9523) def +bond1 21 +atom 24 (0) (4863, -4277, 10619) def +bond1 21 +atom 25 (6) (3909, -3874, 8239) def +bond1 13 +atom 26 (0) (4456, -3394, 8020) def +bond1 25 +atom 27 (0) (4222, -4478, 8577) def +bond1 25 +atom 28 (0) (3513, -4101, 7631) def +bond1 25 +atom 29 (6) (1885, -4132, 9653) def +bond1 13 +atom 30 (0) (2199, -4736, 9991) def +bond1 29 +atom 31 (0) (1490, -4359, 9045) def +bond1 29 +atom 32 (0) (1421, -3781, 10141) def +bond1 29 +egroup (Untitled) +end1 +end molecular machine part Untitled diff --git a/sim/src/tests/minimize/test_0006.out b/sim/src/tests/minimize/test_0006.out new file mode 100755 index 000000000..0e524c9c9 --- /dev/null +++ b/sim/src/tests/minimize/test_0006.out @@ -0,0 +1,3 @@ +======= test_0006.test ======= +TYPE fail +PROGRAM simulator -f300 -m -X -x test_0006.mmp diff --git a/sim/src/tests/minimize/test_0006.test b/sim/src/tests/minimize/test_0006.test new file mode 100755 index 000000000..30b4f840a --- /dev/null +++ b/sim/src/tests/minimize/test_0006.test @@ -0,0 +1,2 @@ +TYPE fail +PROGRAM simulator -f300 -m -X -x test_0006.mmp diff --git a/sim/src/tests/minimize/test_0007.md5sums b/sim/src/tests/minimize/test_0007.md5sums new file mode 100755 index 000000000..163c0d483 --- /dev/null +++ b/sim/src/tests/minimize/test_0007.md5sums @@ -0,0 +1,2 @@ +stdout F45D33A7F1CFE3CC33B5FC260FD9F9DA +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/minimize/test_0007.mmp b/sim/src/tests/minimize/test_0007.mmp new file mode 100755 index 000000000..d6b15b24d --- /dev/null +++ b/sim/src/tests/minimize/test_0007.mmp @@ -0,0 +1,34 @@ +mmpformat 050130 required; 050217 optional +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.988510, 0.095252, 0.028494, -0.113860) (10.000000) (-3.966752, -2.232186, 3.919845) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (Untitled) +mol (Chunk-C1) def +atom 1 (6) (4324, 860, 1629) def +atom 2 (0) (4557, 347, 2153) def +bond1 1 +atom 3 (0) (4119, 498, 981) def +bond1 1 +atom 4 (6) (3067, 1636, 2248) def +bond1 1 +atom 5 (0) (2592, 1146, 2605) def +bond1 4 +atom 6 (0) (2697, 1994, 1675) def +bond1 4 +atom 7 (0) (3343, 2145, 2756) def +bond1 4 +mol (Chunk-C6) def +atom 8 (0) (4966, 9816, 3035) def +atom 9 (0) (5557, 8867, 2463) def +atom 10 (6) (5222, 9094, 3118) def +bond1 8 9 1 +atom 11 (0) (5667, 9012, 3741) def +bond1 10 +egroup (Untitled) +end1 +end molecular machine part Untitled diff --git a/sim/src/tests/minimize/test_0007.out b/sim/src/tests/minimize/test_0007.out new file mode 100755 index 000000000..367656d70 --- /dev/null +++ b/sim/src/tests/minimize/test_0007.out @@ -0,0 +1,4 @@ +======= test_0007.test ======= +TYPE fail +PROGRAM simulator -f300 -m -X -x test_0007.mmp + diff --git a/sim/src/tests/minimize/test_0007.test b/sim/src/tests/minimize/test_0007.test new file mode 100755 index 000000000..87ca31007 --- /dev/null +++ b/sim/src/tests/minimize/test_0007.test @@ -0,0 +1,3 @@ +TYPE fail +PROGRAM simulator -f300 -m -X -x test_0007.mmp + diff --git a/sim/src/tests/minimize/test_0008.md5sums b/sim/src/tests/minimize/test_0008.md5sums new file mode 100755 index 000000000..9b52d3b21 --- /dev/null +++ b/sim/src/tests/minimize/test_0008.md5sums @@ -0,0 +1,3 @@ +stdout 9AAF99B737DE4D1E31E809FFBA5A04EE +stderr D41D8CD98F00B204E9800998ECF8427E +test_0008.xyz BE0E0243A63DE6F9367CAB175B09CE61 diff --git a/sim/src/tests/minimize/test_0008.mmp b/sim/src/tests/minimize/test_0008.mmp new file mode 100755 index 000000000..86a218703 --- /dev/null +++ b/sim/src/tests/minimize/test_0008.mmp @@ -0,0 +1,47 @@ +mmpformat 050130 required; 050217 optional +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (Untitled) +mol (Chunk-C644) def +atom 1 (6) (-889, -340, 889) def +atom 2 (0) (-502, -534, 1526) def +bond1 1 +atom 3 (0) (-1083, -977, 502) def +bond1 1 +mol (Chunk-C649) def +atom 4 (6) (0, 548, 0) def +bond1 1 +atom 5 (0) (-444, 992, -444) def +bond1 4 +atom 6 (0) (444, 103, -444) def +bond1 4 +mol (Chunk-C654) def +atom 7 (6) (3476, 155, 889) def +bond1 4 +atom 8 (0) (3105, 314, 1544) def +bond1 7 +atom 9 (0) (3635, 811, 518) def +bond1 7 +atom 10 (0) (4132, -215, 1048) def +bond1 7 +mol (Chunk-C659) def +atom 11 (6) (-7198, 712, 1277) def +bond1 1 +atom 12 (0) (-7072, 1468, 1203) def +bond1 11 +atom 13 (0) (-7382, 553, 2007) def +bond1 11 +atom 14 (0) (-7776, 501, 815) def +bond1 11 +ground (Ground.2) (0, 0, 0) 11 7 +egroup (Untitled) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part Untitled diff --git a/sim/src/tests/minimize/test_0008.out b/sim/src/tests/minimize/test_0008.out new file mode 100755 index 000000000..df0df7724 --- /dev/null +++ b/sim/src/tests/minimize/test_0008.out @@ -0,0 +1,75 @@ +======= test_0008.test ======= +# test ground in minimize +======= exitvalue ======= +0 +======= stderr ======= +cutover to fine tolerance at 24 +======= stdout ======= +iters per frame = 10 +number of frames = 100 +timestep = 1.000000e-16 +temp = 0.000000 +dump as text +< test_0008.mmp > test_0008.xyz +final RMS gradient=207.865961 after 27 iterations +======= test_0008.trc ======= +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# Date and Time: Mon Nov 21 18:46:01 2005 +# Input File:test_0008.mmp +# Output File: test_0008.xyz +# Trace File: test_0008.trc +# Number of Atoms: 14 +# Number of Frames: 100 +# Steps per Frame: 10 +# Temperature: 300.0 +# +# 1 columns: +# Ground.2: torque (nn-nm) +# +0 13135.73 28548.02 +1 9671.79 16569.11 +2 8873.06 21189.10 +3 6831.47 11145.79 +4 6354.29 15442.57 +5 4969.12 8730.53 +6 4012.65 8777.25 +7 4112.74 9227.45 +8 2426.67 4357.53 +9 3764.82 10563.36 +10 1336.95 2725.49 +11 2256.87 6782.78 +12 835.89 1610.74 +13 1072.79 2734.09 +14 681.56 1417.03 +15 1071.36 2942.41 +16 537.66 1204.34 +17 1213.07 3646.28 +18 377.66 814.24 +19 517.80 1495.38 +20 283.76 733.44 +21 201.55 387.98 +22 205.26 389.03 +23 206.95 389.47 +24 207.58 389.63 +25 207.80 389.69 +26 207.87 389.71 +27 207.87 389.71 +# Done: Minimization final rms: 207.865961, highForce: 389.705572 +======= test_0008.xyz ======= +14 +RMS=207.865961 +C -0.843024 -0.543537 0.853242 +X -0.542998 -0.442245 1.576479 +X -0.780582 -1.300519 0.631898 +C -0.003121 0.377643 -0.171659 +X -0.267837 1.121110 -0.159760 +X -0.024260 0.073592 -0.901744 +C 3.397474 0.347381 0.990887 +X 3.390610 0.484938 1.779797 +X 3.799640 0.925880 0.606099 +X 3.713348 -0.371383 0.830192 +C -7.165141 0.815799 1.309404 +X -7.259287 1.606439 1.222077 +X -7.418251 0.578378 2.032657 +X -7.550572 0.417524 0.730434 diff --git a/sim/src/tests/minimize/test_0008.test b/sim/src/tests/minimize/test_0008.test new file mode 100755 index 000000000..d7949de9e --- /dev/null +++ b/sim/src/tests/minimize/test_0008.test @@ -0,0 +1 @@ +# test ground in minimize diff --git a/sim/src/tests/minimize/test_0009.ba b/sim/src/tests/minimize/test_0009.ba new file mode 100755 index 000000000..834d21dee --- /dev/null +++ b/sim/src/tests/minimize/test_0009.ba @@ -0,0 +1,54 @@ +LENGTH 0 1 1.06955224276 +LENGTH 0 2 1.06862200988 +LENGTH 0 3 1.53242977001 +LENGTH 0 6 1.53242977001 +LENGTH 3 4 1.06916041827 +LENGTH 3 5 1.07007149294 +LENGTH 3 12 1.53337177488 +LENGTH 6 7 1.06952980323 +LENGTH 6 8 1.06916041827 +LENGTH 6 9 1.53278243727 +LENGTH 9 10 1.06992850228 +LENGTH 9 11 1.07031443978 +LENGTH 9 15 1.53263563837 +LENGTH 12 13 1.0697831556 +LENGTH 12 14 1.06935401061 +LENGTH 12 15 1.5320760425 +LENGTH 15 16 1.06909447665 +LENGTH 15 17 1.06989111596 +ANGLE 0 3 4 109.093851577 +ANGLE 0 3 5 109.074562761 +ANGLE 0 3 12 107.92637306 +ANGLE 0 6 7 109.120149845 +ANGLE 0 6 8 109.093851577 +ANGLE 0 6 9 107.911810965 +ANGLE 1 0 2 111.838890747 +ANGLE 1 0 3 109.270015321 +ANGLE 1 0 6 109.270015321 +ANGLE 2 0 3 109.332720042 +ANGLE 2 0 6 109.332720042 +ANGLE 3 0 6 107.704755926 +ANGLE 3 12 13 108.981827552 +ANGLE 3 12 14 109.106514356 +ANGLE 3 12 15 107.944418579 +ANGLE 4 3 5 111.94539253 +ANGLE 4 3 12 109.333328752 +ANGLE 5 3 12 109.380425476 +ANGLE 6 9 10 109.047035792 +ANGLE 6 9 11 108.991991416 +ANGLE 6 9 15 107.990824765 +ANGLE 7 6 8 111.857283185 +ANGLE 7 6 9 109.455979319 +ANGLE 8 6 9 109.317049143 +ANGLE 9 15 12 108.206881299 +ANGLE 9 15 16 109.050010395 +ANGLE 9 15 17 109.172838714 +ANGLE 10 9 11 111.874244736 +ANGLE 10 9 15 109.435146098 +ANGLE 11 9 15 109.418671667 +ANGLE 12 15 16 109.2109321 +ANGLE 12 15 17 109.157430629 +ANGLE 13 12 14 111.89765673 +ANGLE 13 12 15 109.42637237 +ANGLE 14 12 15 109.398809872 +ANGLE 16 15 17 111.967398006 diff --git a/sim/src/tests/minimize/test_0009.md5sums b/sim/src/tests/minimize/test_0009.md5sums new file mode 100755 index 000000000..c428692e4 --- /dev/null +++ b/sim/src/tests/minimize/test_0009.md5sums @@ -0,0 +1,2 @@ +stdout 5A1A255B7B749034ECA0F4EA494BD612 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/minimize/test_0009.mmp b/sim/src/tests/minimize/test_0009.mmp new file mode 100755 index 000000000..30c2ed4e2 --- /dev/null +++ b/sim/src/tests/minimize/test_0009.mmp @@ -0,0 +1,38 @@ +mmpformat 050130 required; 050217 optional +# mmp file for minimizer, might affect details of format +atom 1 (6) (-2893, 282, 5) - +atom 2 (1) (-3500, 889, -633) singlet +bond1 1 +atom 3 (1) (-2249, -362, -554) singlet +bond1 1 +atom 4 (6) (-2047, 1186, 908) - +bond1 1 +atom 5 (1) (-2695, 1746, 1548) singlet +bond1 4 +atom 6 (1) (-1441, 1822, 297) singlet +bond1 4 +atom 7 (6) (-3797, -564, 908) - +bond1 1 +atom 8 (1) (-4434, -1169, 298) singlet +bond1 7 +atom 9 (1) (-4357, 84, 1548) singlet +bond1 7 +atom 10 (6) (-2899, -1467, 1761) - +bond1 7 +atom 11 (1) (-3514, -2096, 2370) singlet +bond1 10 +atom 12 (1) (-2263, -2036, 1115) singlet +bond1 10 +atom 13 (6) (-1143, 288, 1761) - +bond1 4 +atom 14 (1) (-575, -348, 1115) singlet +bond1 13 +atom 15 (1) (-514, 902, 2370) singlet +bond1 13 +atom 16 (6) (-2041, -569, 2659) - +bond1 13 10 +atom 17 (1) (-2682, 70, 3228) singlet +bond1 16 +atom 18 (1) (-1428, -1182, 3286) singlet +bond1 16 +end mmp file for min or sim selection Untitled diff --git a/sim/src/tests/minimize/test_0009.out b/sim/src/tests/minimize/test_0009.out new file mode 100755 index 000000000..dfb30833e --- /dev/null +++ b/sim/src/tests/minimize/test_0009.out @@ -0,0 +1,12 @@ +======= test_0009.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 3 +== structure comparison == +cutover to fine tolerance at 1 diff --git a/sim/src/tests/minimize/test_0009.test b/sim/src/tests/minimize/test_0009.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/minimize/test_0009.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/minimize/test_0009.xyzcmp b/sim/src/tests/minimize/test_0009.xyzcmp new file mode 100755 index 000000000..9adf108bc --- /dev/null +++ b/sim/src/tests/minimize/test_0009.xyzcmp @@ -0,0 +1,20 @@ +18 +RMS=0.944578 +C -2.919195 0.308230 -0.009946 +H -3.543230 0.932399 -0.644376 +H -2.296592 -0.314696 -0.646957 +C -2.021851 1.202030 0.882969 +H -2.644673 1.840587 1.503990 +H -1.397204 1.834823 0.257833 +C -3.813202 -0.588662 0.883246 +H -4.446065 -1.213329 0.258202 +H -4.451814 0.034209 1.504199 +C -2.921666 -1.482009 1.782727 +H -3.548254 -2.111888 2.408880 +H -2.302256 -2.123791 1.161579 +C -1.128604 0.310414 1.782472 +H -0.486726 -0.309034 1.161423 +H -0.498694 0.937042 2.408554 +C -2.019861 -0.590962 2.674507 +H -2.639215 0.028700 3.317716 +H -1.392897 -1.218064 3.302981 diff --git a/sim/src/tests/minimize/test_0010.md5sums b/sim/src/tests/minimize/test_0010.md5sums new file mode 100755 index 000000000..940049551 --- /dev/null +++ b/sim/src/tests/minimize/test_0010.md5sums @@ -0,0 +1,3 @@ +stdout F5EFB79C69A1861A568F44688E893A1E +stderr D41D8CD98F00B204E9800998ECF8427E +test_0010.xyz F56E48CE5BB3A7E089967BFFE4CB5899 diff --git a/sim/src/tests/minimize/test_0010.mmp b/sim/src/tests/minimize/test_0010.mmp new file mode 100755 index 000000000..1170905be --- /dev/null +++ b/sim/src/tests/minimize/test_0010.mmp @@ -0,0 +1,19 @@ +mmpformat 050130 required; 050217 optional +# mmp file for minimizer, might affect details of format +atom 1 (6) (-446, -4024, 0) - +atom 2 (1) (-1064, -3406, -617) singlet +bond1 1 +atom 3 (1) (-1064, -4642, 617) singlet +bond1 1 +atom 4 (1) (171, -4642, -617) singlet +bond1 1 +atom 5 (6) (468, -3109, 915) - +bond1 1 +atom 6 (1) (1086, -3727, 1532) singlet +bond1 5 +atom 7 (1) (-149, -2491, 1532) singlet +bond1 5 +atom 8 (1) (1086, -2491, 297) singlet +bond1 5 +ground (name) (0, 0, 0) 1 +end mmp file for min or sim selection Untitled diff --git a/sim/src/tests/minimize/test_0010.out b/sim/src/tests/minimize/test_0010.out new file mode 100755 index 000000000..884f3c6bd --- /dev/null +++ b/sim/src/tests/minimize/test_0010.out @@ -0,0 +1,48 @@ +======= test_0010.test ======= +======= exitvalue ======= +0 +======= stderr ======= +cutover to fine tolerance at 3 +linearMinimize allocated 0 instead of 1 +minimize allocated 0 instead of 1 +======= stdout ======= +iters per frame = 10 +number of frames = 100 +timestep = 1.000000e-16 +temp = 0.000000 +dump as text +< test_0010.mmp > test_0010.xyz +final RMS gradient=7582.712038 after 5 iterations +======= test_0010.trc ======= +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# Date and Time: Mon Nov 21 18:46:01 2005 +# Input File:test_0010.mmp +# Output File: test_0010.xyz +# Trace File: test_0010.trc +# Number of Atoms: 8 +# Number of Frames: 100 +# Steps per Frame: 10 +# Temperature: 300.0 +# +# 1 columns: +# name: torque (nn-nm) +# +0 4414.89 5119.84 +1 7057.31 9108.03 +2 7576.21 10302.71 +3 7582.72 10317.78 +4 7582.71 10317.76 +5 7582.71 10317.76 +# Done: Minimization final rms: 7582.712038, highForce: 10317.761244 +======= test_0010.xyz ======= +8 +RMS=7582.712038 +C -0.431041 -4.006431 0.018021 +H -1.179033 -3.273533 -0.732820 +H -1.179467 -4.757219 0.750197 +H 0.304842 -4.757578 -0.733611 +C 0.453592 -3.126018 0.896000 +H 1.201107 -3.859214 1.647622 +H -0.282590 -2.375349 1.648413 +H 1.200589 -2.376658 0.165177 diff --git a/sim/src/tests/minimize/test_0010.test b/sim/src/tests/minimize/test_0010.test new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/sim/src/tests/minimize/test_0010.test diff --git a/sim/src/tests/minimize/test_0011.md5sums b/sim/src/tests/minimize/test_0011.md5sums new file mode 100755 index 000000000..a5ecb4e3a --- /dev/null +++ b/sim/src/tests/minimize/test_0011.md5sums @@ -0,0 +1,3 @@ +stdout 133377BC72B22D95AD3271853E5E1FA4 +stderr D41D8CD98F00B204E9800998ECF8427E +test_0011.xyz 8A463CBC86C9B6908D72B5035210082E diff --git a/sim/src/tests/minimize/test_0011.mmp b/sim/src/tests/minimize/test_0011.mmp new file mode 100755 index 000000000..cac839afb --- /dev/null +++ b/sim/src/tests/minimize/test_0011.mmp @@ -0,0 +1,45 @@ +mmpformat 050130 required; 050217 optional +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.457728, -0.139399, 0.871848, -0.104570) (5.314410) (0.000000, 0.000000, 0.000000) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (Untitled) +mol (Chunk-C1) def +atom 1 (6) (-2742, -1034, -88) def +atom 2 (0) (-2528, -536, 457) def +bond1 1 +atom 3 (0) (-3420, -1347, 100) def +bond1 1 +atom 4 (6) (-2873, -297, -1434) def +bond1 1 +atom 5 (0) (-2764, 456, -1325) def +bond1 4 +atom 6 (0) (-3576, -416, -1724) def +bond1 4 +atom 7 (6) (-1682, -2145, -213) def +bond1 1 +atom 8 (0) (-1129, -2033, 311) def +bond1 7 +atom 9 (0) (-2013, -2830, -95) def +bond1 7 +atom 10 (6) (-1815, -831, -2417) def +bond1 4 +atom 11 (0) (-1327, -265, -2601) def +bond1 10 +atom 12 (0) (-2163, -1087, -3055) def +bond1 10 +atom 13 (6) (-1051, -2048, -1691) def +bond1 7 10 +atom 14 (0) (-1167, -2712, -2063) def +bond1 13 +atom 15 (0) (-295, -1911, -1639) def +bond1 13 +egroup (Untitled) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part Untitled diff --git a/sim/src/tests/minimize/test_0011.out b/sim/src/tests/minimize/test_0011.out new file mode 100755 index 000000000..9b747b018 --- /dev/null +++ b/sim/src/tests/minimize/test_0011.out @@ -0,0 +1,52 @@ +======= test_0011.test ======= +======= exitvalue ======= +0 +======= stderr ======= +cutover to fine tolerance at 2 +======= stdout ======= +iters per frame = 10 +number of frames = 100 +timestep = 1.000000e-16 +temp = 0.000000 +dump as text +< test_0011.mmp > test_0011.xyz +final RMS gradient=3088.163537 after 5 iterations +======= test_0011.trc ======= +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# Date and Time: Mon Nov 21 18:46:01 2005 +# Input File:test_0011.mmp +# Output File: test_0011.xyz +# Trace File: test_0011.trc +# Number of Atoms: 15 +# Number of Frames: 100 +# Steps per Frame: 10 +# Temperature: 300.0 +# +# 0 columns: +# +0 3141.31 3508.14 +1 3091.14 3465.47 +2 3088.33 3463.03 +3 3088.17 3462.89 +4 3088.16 3462.88 +5 3088.16 3462.88 +# Done: Minimization final rms: 3088.163537, highForce: 3462.884504 +======= test_0011.xyz ======= +15 +RMS=3088.163537 +C -2.742203 -1.033957 -0.087676 +X -2.527794 -0.535690 0.457268 +X -3.420376 -1.347225 0.100024 +C -2.873257 -0.296722 -1.434100 +X -2.763845 0.456423 -1.324901 +X -3.576379 -0.416166 -1.724167 +C -1.681713 -2.145181 -0.213062 +X -1.128670 -2.032848 0.311219 +X -2.013207 -2.830379 -0.095122 +C -1.814774 -0.831214 -2.417241 +X -1.326625 -0.264749 -2.600952 +X -2.163223 -1.087233 -3.055270 +C -1.051050 -2.048037 -1.690823 +X -1.167229 -2.712274 -2.063241 +X -0.294656 -1.910749 -1.638958 diff --git a/sim/src/tests/minimize/test_0011.test b/sim/src/tests/minimize/test_0011.test new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/sim/src/tests/minimize/test_0011.test diff --git a/sim/src/tests/minimize/test_0012.md5sums b/sim/src/tests/minimize/test_0012.md5sums new file mode 100755 index 000000000..aa777d7fa --- /dev/null +++ b/sim/src/tests/minimize/test_0012.md5sums @@ -0,0 +1,3 @@ +stdout FD02724A82513C290C46018B77D18DF9 +stderr D41D8CD98F00B204E9800998ECF8427E +test_0012.xyz 37627A982FAA366736C101B742556F2A diff --git a/sim/src/tests/minimize/test_0012.mmp b/sim/src/tests/minimize/test_0012.mmp new file mode 100755 index 000000000..42f81e8c7 --- /dev/null +++ b/sim/src/tests/minimize/test_0012.mmp @@ -0,0 +1,45 @@ +mmpformat 050130 required; 050217 optional +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.907421, 0.292459, 0.188762, -0.235425) (6.147814) (0.000000, 0.000000, 0.000000) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, 1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (123) +mol (Chunk-C501) tub +atom 1 (6) (38, 22, 0) def +atom 2 (0) (-406, 467, -444) def +bond1 1 +atom 3 (0) (482, -421, -444) def +bond1 1 +atom 4 (6) (927, 911, 889) def +bond1 1 +atom 5 (0) (747, 1637, 705) def +bond1 4 +atom 6 (0) (1678, 795, 768) def +bond1 4 +atom 7 (6) (-851, -866, 889) def +bond1 1 +atom 8 (0) (-714, -1607, 729) def +bond1 7 +atom 9 (0) (-1591, -706, 752) def +bond1 7 +atom 10 (6) (697, 609, 2373) def +bond1 4 +atom 11 (0) (478, 1260, 2720) def +bond1 10 +atom 12 (0) (1345, 350, 2698) def +bond1 10 +atom 13 (6) (-477, -535, 2431) def +bond1 10 7 +atom 14 (0) (-1116, -289, 2782) def +bond1 13 +atom 15 (0) (-183, -1130, 2821) def +bond1 13 +egroup (123) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part 123 diff --git a/sim/src/tests/minimize/test_0012.out b/sim/src/tests/minimize/test_0012.out new file mode 100755 index 000000000..11baa1fe0 --- /dev/null +++ b/sim/src/tests/minimize/test_0012.out @@ -0,0 +1,60 @@ +======= test_0012.test ======= +======= exitvalue ======= +0 +======= stderr ======= +cutover to fine tolerance at 10 +======= stdout ======= +iters per frame = 10 +number of frames = 100 +timestep = 1.000000e-16 +temp = 0.000000 +dump as text +< test_0012.mmp > test_0012.xyz +final RMS gradient=1015.467017 after 13 iterations +======= test_0012.trc ======= +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# Date and Time: Mon Nov 21 18:46:02 2005 +# Input File:test_0012.mmp +# Output File: test_0012.xyz +# Trace File: test_0012.trc +# Number of Atoms: 15 +# Number of Frames: 100 +# Steps per Frame: 10 +# Temperature: 300.0 +# +# 0 columns: +# +0 3550.60 4227.89 +1 2624.64 3592.73 +2 2222.26 3154.62 +3 1958.94 2842.14 +4 1733.53 2549.57 +5 1497.79 2235.02 +6 1192.49 1837.07 +7 740.52 1132.36 +8 910.55 1161.42 +9 1016.14 1275.91 +10 1015.46 1275.19 +11 1015.47 1275.20 +12 1015.47 1275.20 +13 1015.47 1275.20 +# Done: Minimization final rms: 1015.467017, highForce: 1275.198815 +======= test_0012.xyz ======= +15 +RMS=1015.467017 +C 0.042598 0.017086 -0.067141 +X -0.418301 0.463142 -0.518624 +X 0.495400 -0.443953 -0.516759 +C 0.978131 0.965869 0.858575 +X 0.809129 1.722942 0.733617 +X 1.731489 0.825684 0.685271 +C -0.871709 -0.895041 0.908811 +X -0.731729 -1.658919 0.776134 +X -1.630933 -0.736406 0.788833 +C 0.678583 0.608268 2.409941 +X 0.426433 1.249819 2.795389 +X 1.331438 0.334392 2.751416 +C -0.475507 -0.529987 2.437090 +X -1.101272 -0.247443 2.828362 +X -0.209750 -1.178454 2.798086 diff --git a/sim/src/tests/minimize/test_0012.test b/sim/src/tests/minimize/test_0012.test new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/sim/src/tests/minimize/test_0012.test diff --git a/sim/src/tests/minimize/test_0013.md5sums b/sim/src/tests/minimize/test_0013.md5sums new file mode 100755 index 000000000..320f94ab0 --- /dev/null +++ b/sim/src/tests/minimize/test_0013.md5sums @@ -0,0 +1,2 @@ +stdout 990B7471A8601BE7B57A390E2AD3E6EE +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/minimize/test_0013.mmp b/sim/src/tests/minimize/test_0013.mmp new file mode 100755 index 000000000..2c90fd9fd --- /dev/null +++ b/sim/src/tests/minimize/test_0013.mmp @@ -0,0 +1,24 @@ +mmpformat 050130 required; 050217 optional +kelvin 300 +group (Data) +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) = +(0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.936981, 0.308166, -0.163947, 0.014883) (5.314410) = +(0.000000, 0.000000, 0.000000) (1.000000) +datum (XY) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, = +0.000000, 1.000000) (0.000000, 1.000000, 0.000000) +datum (YZ) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (1.000000, = +0.000000, 0.000000) (0.000000, 1.000000, 0.000000) +datum (ZX) (0, 0, 255) plane (0.000000, 0.000000, 0.000000) (0.000000, = +1.000000, 0.000000) (0.000000, 1.000000, 0.000000) +egroup (Data) +group (Untitled) +mol (Chunk-C1) def +atom 1 (1) (0, 0, 0) def +atom 2 (1) (0, 0, 5000) def +bond1 1 +egroup (Untitled) +end1 +group (Clipboard) +egroup (Clipboard) +end molecular machine part Untitled diff --git a/sim/src/tests/minimize/test_0013.out b/sim/src/tests/minimize/test_0013.out new file mode 100755 index 000000000..acfb0b231 --- /dev/null +++ b/sim/src/tests/minimize/test_0013.out @@ -0,0 +1,8 @@ +======= test_0013.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +0 +======= stderr ======= +== structure comparison == diff --git a/sim/src/tests/minimize/test_0013.test b/sim/src/tests/minimize/test_0013.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/minimize/test_0013.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/minimize/test_0013.xyzcmp b/sim/src/tests/minimize/test_0013.xyzcmp new file mode 100755 index 000000000..28b4051a9 --- /dev/null +++ b/sim/src/tests/minimize/test_0013.xyzcmp @@ -0,0 +1,4 @@ +2 +RMS=0.000216 +H 0.000000 0.000000 0.3715 +H 0.000000 0.000000 -0.3715 diff --git a/sim/src/tests/minimize/test_h2.mmp b/sim/src/tests/minimize/test_h2.mmp new file mode 100755 index 000000000..6bae622a3 --- /dev/null +++ b/sim/src/tests/minimize/test_h2.mmp @@ -0,0 +1,20 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.891760) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (Untitled) +info opengroup open = True +mol (Chunk-H13) vdw +atom 1 (1) (-348, 89, -118) def +atom 2 (1) (769, -82, -11) def +bond1 1 +egroup (Untitled) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Untitled + diff --git a/sim/src/tests/minimize/test_h2.test b/sim/src/tests/minimize/test_h2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/minimize/test_h2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/minimize/test_h2.xyzcmp b/sim/src/tests/minimize/test_h2.xyzcmp new file mode 100755 index 000000000..4795e99d5 --- /dev/null +++ b/sim/src/tests/minimize/test_h2.xyzcmp @@ -0,0 +1,4 @@ +2 +h2.mmp +H -0.371000 0.000000 0.000000 +H 0.372000 0.000000 0.000000 diff --git a/sim/src/tests/motors/001_linearmotor_0_force_and_0_stiffness.mmp b/sim/src/tests/motors/001_linearmotor_0_force_and_0_stiffness.mmp new file mode 100755 index 000000000..ed11cc450 --- /dev/null +++ b/sim/src/tests/motors/001_linearmotor_0_force_and_0_stiffness.mmp @@ -0,0 +1,104 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (12.624868) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (001 linearmotor-0 force and 0 Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) def +atom 2 (6) (-2395, -17, 1570) def +atom 3 (6) (-2396, 1360, -779) def +bond1 1 +atom 4 (6) (-2398, 1349, 793) def +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) def +bond1 2 +atom 6 (6) (-2389, -1363, -798) def +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) def +bond1 6 +atom 8 (8) (-1183, -20, 2400) def +bond1 2 +atom 9 (8) (-1185, 2085, -1187) def +bond1 3 +atom 10 (8) (-1178, 13, -2403) def +bond1 1 +atom 11 (8) (-1176, -2092, 1185) def +bond1 5 +atom 12 (8) (-1188, 2068, 1214) def +bond1 4 +atom 13 (1) (-3198, -1983, -1161) def +bond1 6 +atom 14 (1) (-3207, -25, 2285) def +bond1 2 +atom 15 (1) (-3209, 1980, -1133) def +bond1 3 +atom 16 (1) (-3203, 6, -2291) def +bond1 1 +atom 17 (1) (-3200, -1999, 1127) def +bond1 5 +atom 18 (1) (-3212, 1964, 1154) def +bond1 4 +atom 19 (6) (1, 10, -1545) def +bond1 10 +atom 20 (6) (-1, -10, 1545) def +bond1 8 +atom 21 (6) (-3, 1343, -763) def +bond1 19 9 +atom 22 (6) (-4, 1332, 781) def +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) def +bond1 20 11 +atom 24 (6) (4, -1332, -781) def +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) def +bond1 24 +atom 26 (8) (1178, -13, 2403) def +bond1 20 +atom 27 (8) (1176, 2092, -1185) def +bond1 21 +atom 28 (8) (1183, 20, -2400) def +bond1 19 +atom 29 (8) (1185, -2085, 1187) def +bond1 23 +atom 30 (8) (1173, 2075, 1216) def +bond1 22 +atom 31 (6) (2395, 17, -1570) def +bond1 28 +atom 32 (6) (2392, -4, 1575) def +bond1 26 +atom 33 (6) (2390, 1374, -774) def +bond1 31 27 +atom 34 (6) (2389, 1363, 798) def +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) def +bond1 32 29 +atom 36 (6) (2398, -1349, -793) def +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) def +bond1 36 +atom 38 (1) (3202, -6, 2291) def +bond1 32 +atom 39 (1) (3200, 1999, -1127) def +bond1 33 +atom 40 (1) (3207, 25, -2285) def +bond1 31 +atom 41 (1) (3209, -1980, 1133) def +bond1 35 +atom 42 (1) (3198, 1983, 1161) def +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) def +lmotor (Linear Motor-87) (127, 127, 127) 0.000000 0.000000 (0, 0, 0) (-999, -2, -1) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (001 linearmotor-0 force and 0 Stiffness) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 001 linearmotor-0 force and 0 Stiffness diff --git a/sim/src/tests/motors/002_linearmotor_0_force_and_negative_stiffness.mmp b/sim/src/tests/motors/002_linearmotor_0_force_and_negative_stiffness.mmp new file mode 100755 index 000000000..9c0700a22 --- /dev/null +++ b/sim/src/tests/motors/002_linearmotor_0_force_and_negative_stiffness.mmp @@ -0,0 +1,104 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (12.624868) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (002 linearmotor-0 force and negative Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) def +atom 2 (6) (-2395, -17, 1570) def +atom 3 (6) (-2396, 1360, -779) def +bond1 1 +atom 4 (6) (-2398, 1349, 793) def +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) def +bond1 2 +atom 6 (6) (-2389, -1363, -798) def +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) def +bond1 6 +atom 8 (8) (-1183, -20, 2400) def +bond1 2 +atom 9 (8) (-1185, 2085, -1187) def +bond1 3 +atom 10 (8) (-1178, 13, -2403) def +bond1 1 +atom 11 (8) (-1176, -2092, 1185) def +bond1 5 +atom 12 (8) (-1188, 2068, 1214) def +bond1 4 +atom 13 (1) (-3198, -1983, -1161) def +bond1 6 +atom 14 (1) (-3207, -25, 2285) def +bond1 2 +atom 15 (1) (-3209, 1980, -1133) def +bond1 3 +atom 16 (1) (-3203, 6, -2291) def +bond1 1 +atom 17 (1) (-3200, -1999, 1127) def +bond1 5 +atom 18 (1) (-3212, 1964, 1154) def +bond1 4 +atom 19 (6) (1, 10, -1545) def +bond1 10 +atom 20 (6) (-1, -10, 1545) def +bond1 8 +atom 21 (6) (-3, 1343, -763) def +bond1 19 9 +atom 22 (6) (-4, 1332, 781) def +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) def +bond1 20 11 +atom 24 (6) (4, -1332, -781) def +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) def +bond1 24 +atom 26 (8) (1178, -13, 2403) def +bond1 20 +atom 27 (8) (1176, 2092, -1185) def +bond1 21 +atom 28 (8) (1183, 20, -2400) def +bond1 19 +atom 29 (8) (1185, -2085, 1187) def +bond1 23 +atom 30 (8) (1173, 2075, 1216) def +bond1 22 +atom 31 (6) (2395, 17, -1570) def +bond1 28 +atom 32 (6) (2392, -4, 1575) def +bond1 26 +atom 33 (6) (2390, 1374, -774) def +bond1 31 27 +atom 34 (6) (2389, 1363, 798) def +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) def +bond1 32 29 +atom 36 (6) (2398, -1349, -793) def +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) def +bond1 36 +atom 38 (1) (3202, -6, 2291) def +bond1 32 +atom 39 (1) (3200, 1999, -1127) def +bond1 33 +atom 40 (1) (3207, 25, -2285) def +bond1 31 +atom 41 (1) (3209, -1980, 1133) def +bond1 35 +atom 42 (1) (3198, 1983, 1161) def +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) def +lmotor (Linear Motor-87) (127, 127, 127) 0.000000 -0.100000 (0, 0, 0) (-999, -2, -1) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (002 linearmotor-0 force and negative Stiffness) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 002 linearmotor-0 force and negative Stiffness diff --git a/sim/src/tests/motors/003_linearmotor_0_force_and_positive_stiffness.mmp b/sim/src/tests/motors/003_linearmotor_0_force_and_positive_stiffness.mmp new file mode 100755 index 000000000..3f5b6b3f8 --- /dev/null +++ b/sim/src/tests/motors/003_linearmotor_0_force_and_positive_stiffness.mmp @@ -0,0 +1,104 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (12.624868) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (003 linearmotor-0 force and positive Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) def +atom 2 (6) (-2395, -17, 1570) def +atom 3 (6) (-2396, 1360, -779) def +bond1 1 +atom 4 (6) (-2398, 1349, 793) def +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) def +bond1 2 +atom 6 (6) (-2389, -1363, -798) def +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) def +bond1 6 +atom 8 (8) (-1183, -20, 2400) def +bond1 2 +atom 9 (8) (-1185, 2085, -1187) def +bond1 3 +atom 10 (8) (-1178, 13, -2403) def +bond1 1 +atom 11 (8) (-1176, -2092, 1185) def +bond1 5 +atom 12 (8) (-1188, 2068, 1214) def +bond1 4 +atom 13 (1) (-3198, -1983, -1161) def +bond1 6 +atom 14 (1) (-3207, -25, 2285) def +bond1 2 +atom 15 (1) (-3209, 1980, -1133) def +bond1 3 +atom 16 (1) (-3203, 6, -2291) def +bond1 1 +atom 17 (1) (-3200, -1999, 1127) def +bond1 5 +atom 18 (1) (-3212, 1964, 1154) def +bond1 4 +atom 19 (6) (1, 10, -1545) def +bond1 10 +atom 20 (6) (-1, -10, 1545) def +bond1 8 +atom 21 (6) (-3, 1343, -763) def +bond1 19 9 +atom 22 (6) (-4, 1332, 781) def +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) def +bond1 20 11 +atom 24 (6) (4, -1332, -781) def +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) def +bond1 24 +atom 26 (8) (1178, -13, 2403) def +bond1 20 +atom 27 (8) (1176, 2092, -1185) def +bond1 21 +atom 28 (8) (1183, 20, -2400) def +bond1 19 +atom 29 (8) (1185, -2085, 1187) def +bond1 23 +atom 30 (8) (1173, 2075, 1216) def +bond1 22 +atom 31 (6) (2395, 17, -1570) def +bond1 28 +atom 32 (6) (2392, -4, 1575) def +bond1 26 +atom 33 (6) (2390, 1374, -774) def +bond1 31 27 +atom 34 (6) (2389, 1363, 798) def +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) def +bond1 32 29 +atom 36 (6) (2398, -1349, -793) def +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) def +bond1 36 +atom 38 (1) (3202, -6, 2291) def +bond1 32 +atom 39 (1) (3200, 1999, -1127) def +bond1 33 +atom 40 (1) (3207, 25, -2285) def +bond1 31 +atom 41 (1) (3209, -1980, 1133) def +bond1 35 +atom 42 (1) (3198, 1983, 1161) def +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) def +lmotor (Linear Motor-87) (127, 127, 127) 0.000000 0.100000 (0, 0, 0) (-999, -2, -1) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (003 linearmotor-0 force and positive Stiffness) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 003 linearmotor-0 force and positive Stiffness diff --git a/sim/src/tests/motors/004_linearmotor_negative_force_and_negative_stiffness.mmp b/sim/src/tests/motors/004_linearmotor_negative_force_and_negative_stiffness.mmp new file mode 100755 index 000000000..525d0a6b9 --- /dev/null +++ b/sim/src/tests/motors/004_linearmotor_negative_force_and_negative_stiffness.mmp @@ -0,0 +1,104 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (16.967732) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (004 linearmotor-negative force and negative Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) def +atom 2 (6) (-2395, -17, 1570) def +atom 3 (6) (-2396, 1360, -779) def +bond1 1 +atom 4 (6) (-2398, 1349, 793) def +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) def +bond1 2 +atom 6 (6) (-2389, -1363, -798) def +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) def +bond1 6 +atom 8 (8) (-1183, -20, 2400) def +bond1 2 +atom 9 (8) (-1185, 2085, -1187) def +bond1 3 +atom 10 (8) (-1178, 13, -2403) def +bond1 1 +atom 11 (8) (-1176, -2092, 1185) def +bond1 5 +atom 12 (8) (-1188, 2068, 1214) def +bond1 4 +atom 13 (1) (-3198, -1983, -1161) def +bond1 6 +atom 14 (1) (-3207, -25, 2285) def +bond1 2 +atom 15 (1) (-3209, 1980, -1133) def +bond1 3 +atom 16 (1) (-3203, 6, -2291) def +bond1 1 +atom 17 (1) (-3200, -1999, 1127) def +bond1 5 +atom 18 (1) (-3212, 1964, 1154) def +bond1 4 +atom 19 (6) (1, 10, -1545) def +bond1 10 +atom 20 (6) (-1, -10, 1545) def +bond1 8 +atom 21 (6) (-3, 1343, -763) def +bond1 19 9 +atom 22 (6) (-4, 1332, 781) def +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) def +bond1 20 11 +atom 24 (6) (4, -1332, -781) def +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) def +bond1 24 +atom 26 (8) (1178, -13, 2403) def +bond1 20 +atom 27 (8) (1176, 2092, -1185) def +bond1 21 +atom 28 (8) (1183, 20, -2400) def +bond1 19 +atom 29 (8) (1185, -2085, 1187) def +bond1 23 +atom 30 (8) (1173, 2075, 1216) def +bond1 22 +atom 31 (6) (2395, 17, -1570) def +bond1 28 +atom 32 (6) (2392, -4, 1575) def +bond1 26 +atom 33 (6) (2390, 1374, -774) def +bond1 31 27 +atom 34 (6) (2389, 1363, 798) def +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) def +bond1 32 29 +atom 36 (6) (2398, -1349, -793) def +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) def +bond1 36 +atom 38 (1) (3202, -6, 2291) def +bond1 32 +atom 39 (1) (3200, 1999, -1127) def +bond1 33 +atom 40 (1) (3207, 25, -2285) def +bond1 31 +atom 41 (1) (3209, -1980, 1133) def +bond1 35 +atom 42 (1) (3198, 1983, 1161) def +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) def +lmotor (Linear Motor-87) (92, 127, 109) -1.500000 -0.100000 (0, 0, 0) (-999, -2, 0) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (004 linearmotor-negative force and negative Stiffness) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 004 linearmotor-negative force and negative Stiffness diff --git a/sim/src/tests/motors/005_linearmotor_negative_force_and_positive_stiffness.mmp b/sim/src/tests/motors/005_linearmotor_negative_force_and_positive_stiffness.mmp new file mode 100755 index 000000000..0d2d8b6a2 --- /dev/null +++ b/sim/src/tests/motors/005_linearmotor_negative_force_and_positive_stiffness.mmp @@ -0,0 +1,104 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (16.967732) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (005 linearmotor-negative force and positive Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) def +atom 2 (6) (-2395, -17, 1570) def +atom 3 (6) (-2396, 1360, -779) def +bond1 1 +atom 4 (6) (-2398, 1349, 793) def +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) def +bond1 2 +atom 6 (6) (-2389, -1363, -798) def +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) def +bond1 6 +atom 8 (8) (-1183, -20, 2400) def +bond1 2 +atom 9 (8) (-1185, 2085, -1187) def +bond1 3 +atom 10 (8) (-1178, 13, -2403) def +bond1 1 +atom 11 (8) (-1176, -2092, 1185) def +bond1 5 +atom 12 (8) (-1188, 2068, 1214) def +bond1 4 +atom 13 (1) (-3198, -1983, -1161) def +bond1 6 +atom 14 (1) (-3207, -25, 2285) def +bond1 2 +atom 15 (1) (-3209, 1980, -1133) def +bond1 3 +atom 16 (1) (-3203, 6, -2291) def +bond1 1 +atom 17 (1) (-3200, -1999, 1127) def +bond1 5 +atom 18 (1) (-3212, 1964, 1154) def +bond1 4 +atom 19 (6) (1, 10, -1545) def +bond1 10 +atom 20 (6) (-1, -10, 1545) def +bond1 8 +atom 21 (6) (-3, 1343, -763) def +bond1 19 9 +atom 22 (6) (-4, 1332, 781) def +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) def +bond1 20 11 +atom 24 (6) (4, -1332, -781) def +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) def +bond1 24 +atom 26 (8) (1178, -13, 2403) def +bond1 20 +atom 27 (8) (1176, 2092, -1185) def +bond1 21 +atom 28 (8) (1183, 20, -2400) def +bond1 19 +atom 29 (8) (1185, -2085, 1187) def +bond1 23 +atom 30 (8) (1173, 2075, 1216) def +bond1 22 +atom 31 (6) (2395, 17, -1570) def +bond1 28 +atom 32 (6) (2392, -4, 1575) def +bond1 26 +atom 33 (6) (2390, 1374, -774) def +bond1 31 27 +atom 34 (6) (2389, 1363, 798) def +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) def +bond1 32 29 +atom 36 (6) (2398, -1349, -793) def +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) def +bond1 36 +atom 38 (1) (3202, -6, 2291) def +bond1 32 +atom 39 (1) (3200, 1999, -1127) def +bond1 33 +atom 40 (1) (3207, 25, -2285) def +bond1 31 +atom 41 (1) (3209, -1980, 1133) def +bond1 35 +atom 42 (1) (3198, 1983, 1161) def +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) def +lmotor (Linear Motor-87) (92, 127, 109) -1.500000 0.100000 (0, 0, 0) (-999, -2, 0) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (005 linearmotor-negative force and positive Stiffness) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 005 linearmotor-negative force and positive Stiffness diff --git a/sim/src/tests/motors/006_linearmotor_negative_force_and_0_stiffness.mmp b/sim/src/tests/motors/006_linearmotor_negative_force_and_0_stiffness.mmp new file mode 100755 index 000000000..2b77df9de --- /dev/null +++ b/sim/src/tests/motors/006_linearmotor_negative_force_and_0_stiffness.mmp @@ -0,0 +1,104 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (16.967732) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (006 linearmotor-negative force and 0 Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) def +atom 2 (6) (-2395, -17, 1570) def +atom 3 (6) (-2396, 1360, -779) def +bond1 1 +atom 4 (6) (-2398, 1349, 793) def +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) def +bond1 2 +atom 6 (6) (-2389, -1363, -798) def +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) def +bond1 6 +atom 8 (8) (-1183, -20, 2400) def +bond1 2 +atom 9 (8) (-1185, 2085, -1187) def +bond1 3 +atom 10 (8) (-1178, 13, -2403) def +bond1 1 +atom 11 (8) (-1176, -2092, 1185) def +bond1 5 +atom 12 (8) (-1188, 2068, 1214) def +bond1 4 +atom 13 (1) (-3198, -1983, -1161) def +bond1 6 +atom 14 (1) (-3207, -25, 2285) def +bond1 2 +atom 15 (1) (-3209, 1980, -1133) def +bond1 3 +atom 16 (1) (-3203, 6, -2291) def +bond1 1 +atom 17 (1) (-3200, -1999, 1127) def +bond1 5 +atom 18 (1) (-3212, 1964, 1154) def +bond1 4 +atom 19 (6) (1, 10, -1545) def +bond1 10 +atom 20 (6) (-1, -10, 1545) def +bond1 8 +atom 21 (6) (-3, 1343, -763) def +bond1 19 9 +atom 22 (6) (-4, 1332, 781) def +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) def +bond1 20 11 +atom 24 (6) (4, -1332, -781) def +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) def +bond1 24 +atom 26 (8) (1178, -13, 2403) def +bond1 20 +atom 27 (8) (1176, 2092, -1185) def +bond1 21 +atom 28 (8) (1183, 20, -2400) def +bond1 19 +atom 29 (8) (1185, -2085, 1187) def +bond1 23 +atom 30 (8) (1173, 2075, 1216) def +bond1 22 +atom 31 (6) (2395, 17, -1570) def +bond1 28 +atom 32 (6) (2392, -4, 1575) def +bond1 26 +atom 33 (6) (2390, 1374, -774) def +bond1 31 27 +atom 34 (6) (2389, 1363, 798) def +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) def +bond1 32 29 +atom 36 (6) (2398, -1349, -793) def +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) def +bond1 36 +atom 38 (1) (3202, -6, 2291) def +bond1 32 +atom 39 (1) (3200, 1999, -1127) def +bond1 33 +atom 40 (1) (3207, 25, -2285) def +bond1 31 +atom 41 (1) (3209, -1980, 1133) def +bond1 35 +atom 42 (1) (3198, 1983, 1161) def +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) def +lmotor (Linear Motor-87) (92, 127, 109) -1.500000 0.000000 (0, 0, 0) (-999, -2, 0) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (006 linearmotor-negative force and 0 Stiffness) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 006 linearmotor-negative force and 0 Stiffness diff --git a/sim/src/tests/motors/007_linearmotor_positive_force_and_0_stiffness.mmp b/sim/src/tests/motors/007_linearmotor_positive_force_and_0_stiffness.mmp new file mode 100755 index 000000000..024f38658 --- /dev/null +++ b/sim/src/tests/motors/007_linearmotor_positive_force_and_0_stiffness.mmp @@ -0,0 +1,104 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (16.967732) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (linearmotor-medium force and 0 Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) def +atom 2 (6) (-2395, -17, 1570) def +atom 3 (6) (-2396, 1360, -779) def +bond1 1 +atom 4 (6) (-2398, 1349, 793) def +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) def +bond1 2 +atom 6 (6) (-2389, -1363, -798) def +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) def +bond1 6 +atom 8 (8) (-1183, -20, 2400) def +bond1 2 +atom 9 (8) (-1185, 2085, -1187) def +bond1 3 +atom 10 (8) (-1178, 13, -2403) def +bond1 1 +atom 11 (8) (-1176, -2092, 1185) def +bond1 5 +atom 12 (8) (-1188, 2068, 1214) def +bond1 4 +atom 13 (1) (-3198, -1983, -1161) def +bond1 6 +atom 14 (1) (-3207, -25, 2285) def +bond1 2 +atom 15 (1) (-3209, 1980, -1133) def +bond1 3 +atom 16 (1) (-3203, 6, -2291) def +bond1 1 +atom 17 (1) (-3200, -1999, 1127) def +bond1 5 +atom 18 (1) (-3212, 1964, 1154) def +bond1 4 +atom 19 (6) (1, 10, -1545) def +bond1 10 +atom 20 (6) (-1, -10, 1545) def +bond1 8 +atom 21 (6) (-3, 1343, -763) def +bond1 19 9 +atom 22 (6) (-4, 1332, 781) def +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) def +bond1 20 11 +atom 24 (6) (4, -1332, -781) def +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) def +bond1 24 +atom 26 (8) (1178, -13, 2403) def +bond1 20 +atom 27 (8) (1176, 2092, -1185) def +bond1 21 +atom 28 (8) (1183, 20, -2400) def +bond1 19 +atom 29 (8) (1185, -2085, 1187) def +bond1 23 +atom 30 (8) (1173, 2075, 1216) def +bond1 22 +atom 31 (6) (2395, 17, -1570) def +bond1 28 +atom 32 (6) (2392, -4, 1575) def +bond1 26 +atom 33 (6) (2390, 1374, -774) def +bond1 31 27 +atom 34 (6) (2389, 1363, 798) def +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) def +bond1 32 29 +atom 36 (6) (2398, -1349, -793) def +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) def +bond1 36 +atom 38 (1) (3202, -6, 2291) def +bond1 32 +atom 39 (1) (3200, 1999, -1127) def +bond1 33 +atom 40 (1) (3207, 25, -2285) def +bond1 31 +atom 41 (1) (3209, -1980, 1133) def +bond1 35 +atom 42 (1) (3198, 1983, 1161) def +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) def +lmotor (Linear Motor-87) (92, 127, 109) 1.500000 0.000000 (0, 0, 0) (-999, -2, 0) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (linearmotor-medium force and 0 Stiffness) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part linearmotor-medium force and 0 Stiffness diff --git a/sim/src/tests/motors/008_linearmotor_positive_force_and_positive_stiffness.mmp b/sim/src/tests/motors/008_linearmotor_positive_force_and_positive_stiffness.mmp new file mode 100755 index 000000000..823a2714b --- /dev/null +++ b/sim/src/tests/motors/008_linearmotor_positive_force_and_positive_stiffness.mmp @@ -0,0 +1,104 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (16.967732) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (008 linearmotor-positive force and positive Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) def +atom 2 (6) (-2395, -17, 1570) def +atom 3 (6) (-2396, 1360, -779) def +bond1 1 +atom 4 (6) (-2398, 1349, 793) def +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) def +bond1 2 +atom 6 (6) (-2389, -1363, -798) def +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) def +bond1 6 +atom 8 (8) (-1183, -20, 2400) def +bond1 2 +atom 9 (8) (-1185, 2085, -1187) def +bond1 3 +atom 10 (8) (-1178, 13, -2403) def +bond1 1 +atom 11 (8) (-1176, -2092, 1185) def +bond1 5 +atom 12 (8) (-1188, 2068, 1214) def +bond1 4 +atom 13 (1) (-3198, -1983, -1161) def +bond1 6 +atom 14 (1) (-3207, -25, 2285) def +bond1 2 +atom 15 (1) (-3209, 1980, -1133) def +bond1 3 +atom 16 (1) (-3203, 6, -2291) def +bond1 1 +atom 17 (1) (-3200, -1999, 1127) def +bond1 5 +atom 18 (1) (-3212, 1964, 1154) def +bond1 4 +atom 19 (6) (1, 10, -1545) def +bond1 10 +atom 20 (6) (-1, -10, 1545) def +bond1 8 +atom 21 (6) (-3, 1343, -763) def +bond1 19 9 +atom 22 (6) (-4, 1332, 781) def +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) def +bond1 20 11 +atom 24 (6) (4, -1332, -781) def +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) def +bond1 24 +atom 26 (8) (1178, -13, 2403) def +bond1 20 +atom 27 (8) (1176, 2092, -1185) def +bond1 21 +atom 28 (8) (1183, 20, -2400) def +bond1 19 +atom 29 (8) (1185, -2085, 1187) def +bond1 23 +atom 30 (8) (1173, 2075, 1216) def +bond1 22 +atom 31 (6) (2395, 17, -1570) def +bond1 28 +atom 32 (6) (2392, -4, 1575) def +bond1 26 +atom 33 (6) (2390, 1374, -774) def +bond1 31 27 +atom 34 (6) (2389, 1363, 798) def +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) def +bond1 32 29 +atom 36 (6) (2398, -1349, -793) def +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) def +bond1 36 +atom 38 (1) (3202, -6, 2291) def +bond1 32 +atom 39 (1) (3200, 1999, -1127) def +bond1 33 +atom 40 (1) (3207, 25, -2285) def +bond1 31 +atom 41 (1) (3209, -1980, 1133) def +bond1 35 +atom 42 (1) (3198, 1983, 1161) def +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) def +lmotor (Linear Motor-87) (92, 127, 109) 1.500000 0.100000 (0, 0, 0) (-999, -2, 0) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (008 linearmotor-positive force and positive Stiffness) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 008 linearmotor-positive force and positive Stiffness diff --git a/sim/src/tests/motors/009_linearmotor_Methane_Molecule.mmp b/sim/src/tests/motors/009_linearmotor_Methane_Molecule.mmp new file mode 100755 index 000000000..9e0b8afdb --- /dev/null +++ b/sim/src/tests/motors/009_linearmotor_Methane_Molecule.mmp @@ -0,0 +1,35 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.707107, 0.000000, -0.707107, 0.000000) (24.807623) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (009 linearmotor-Methane Molecule) +info opengroup open = True +mol (Chunk-C41) def +atom 1 (6) (212, 48, 0) def +atom 2 (1) (839, 676, 627) def +bond1 1 +atom 3 (1) (-415, 676, -627) def +bond1 1 +atom 4 (1) (-415, -579, 627) def +bond1 1 +atom 5 (1) (839, -579, -627) def +bond1 1 +lmotor (Linear Motor-7) (127, 127, 127) 1.000000 0.100000 (212, 48, 0) (0, 0, -1000) 10.00 0.50 0.10 +shaft 1 +thermo (Thermo-11) (153, 0, 51) 1 5 1 +mol (ref-1) def +atom 6 (10) (212, 18048, 0) def +mdistance (Distance-14) (0, 0, 0) (Helvetica) 10 1 6 +mol (ref-2) def +atom 7 (10) (0, 0, -18000) def +mdistance (Distance-15) (0, 0, 0) (Helvetica) 10 1 7 +ground (Anchor-17) (0, 0, 0) 6 7 +egroup (009 linearmotor-Methane Molecule) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 009 linearmotor-Methane Molecule diff --git a/sim/src/tests/motors/010_linearmotor_box_of_helium.mmp b/sim/src/tests/motors/010_linearmotor_box_of_helium.mmp new file mode 100755 index 000000000..42f65a1bf --- /dev/null +++ b/sim/src/tests/motors/010_linearmotor_box_of_helium.mmp @@ -0,0 +1,111 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (25.822647) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (010 linearmotor-box of helium) +info opengroup open = True +mol (Chunk-C41) def +atom 1 (6) (212, 48, 0) def +atom 2 (1) (839, 676, 627) def +bond1 1 +atom 3 (1) (-415, 676, -627) def +bond1 1 +atom 4 (1) (-415, -579, 627) def +bond1 1 +atom 5 (1) (839, -579, -627) def +bond1 1 +lmotor (Linear Motor-7) (127, 127, 127) 1.000000 0.100000 (212, 48, 0) (0, 0, -1000) 10.00 0.50 0.10 +shaft 1 +thermo (Thermo-11) (153, 0, 51) 1 5 1 +group (He walls) +info opengroup open = True +mol (Chunk-C41-copy3) def +atom 6 (2) (-12138, -3070, 6990) def +atom 7 (2) (-12108, -8440, 6990) def +atom 8 (2) (-12078, -13808, 6990) def +atom 9 (2) (-11998, 13708, 6990) def +atom 10 (2) (-11968, 8340, 6990) def +atom 11 (2) (-11938, 2969, 6990) def +atom 12 (2) (-12100, -3020, 0) def +atom 13 (2) (-12070, -8390, 0) def +atom 14 (2) (-12040, -13758, 0) def +atom 15 (2) (-11960, 13758, 0) def +atom 16 (2) (-11930, 8390, 0) def +atom 17 (2) (-11900, 3019, 0) def +atom 18 (2) (-12057, -2970, -6989) def +atom 19 (2) (-12028, -8340, -6989) def +atom 20 (2) (-11997, -13708, -6989) def +atom 21 (2) (-11917, 13808, -6989) def +atom 22 (2) (-11887, 8440, -6989) def +atom 23 (2) (-11857, 3069, -6989) def +mol (Chunk-C41-copy10) def +atom 24 (2) (-6990, -3180, -9998) def +atom 25 (2) (-6990, -8550, -9968) def +atom 26 (2) (-6990, -13918, -9938) def +atom 27 (2) (-6990, 13598, -9858) def +atom 28 (2) (-6990, 8230, -9828) def +atom 29 (2) (-6990, 2859, -9797) def +atom 30 (2) (0, -3020, -10099) def +atom 31 (2) (0, -8390, -10069) def +atom 32 (2) (0, -13758, -10039) def +atom 33 (2) (0, 13758, -9959) def +atom 34 (2) (0, 8390, -9929) def +atom 35 (2) (0, 3019, -9899) def +atom 36 (2) (6990, -2860, -10198) def +atom 37 (2) (6990, -8230, -10168) def +atom 38 (2) (6990, -13598, -10137) def +atom 39 (2) (6990, 13918, -10057) def +atom 40 (2) (6990, 8550, -10028) def +atom 41 (2) (6990, 3179, -9997) def +mol (Chunk-C41-copy3) def +atom 42 (2) (-6990, -3070, 9858) def +atom 43 (2) (-6990, -8440, 9887) def +atom 44 (2) (-6990, -13808, 9918) def +atom 45 (2) (-6990, 13708, 9998) def +atom 46 (2) (-6990, 8340, 10028) def +atom 47 (2) (-6990, 2969, 10058) def +atom 48 (2) (0, -3020, 9899) def +atom 49 (2) (0, -8390, 9929) def +atom 50 (2) (0, -13758, 9959) def +atom 51 (2) (0, 13758, 10040) def +atom 52 (2) (0, 8390, 10069) def +atom 53 (2) (0, 3019, 10100) def +atom 54 (2) (6990, -2970, 9938) def +atom 55 (2) (6990, -8340, 9967) def +atom 56 (2) (6990, -13708, 9998) def +atom 57 (2) (6990, 13808, 10078) def +atom 58 (2) (6990, 8440, 10108) def +atom 59 (2) (6990, 3069, 10138) def +mol (Chunk-C41-copy10) def +atom 60 (2) (12070, 8389, 0) def +atom 61 (2) (12100, 3019, 0) def +atom 62 (2) (11798, -2860, -6989) def +atom 63 (2) (11828, -8230, -6989) def +atom 64 (2) (11858, -13598, -6989) def +atom 65 (2) (11938, 13918, -6989) def +atom 66 (2) (11968, 8549, -6989) def +atom 67 (2) (11998, 3179, -6989) def +atom 68 (2) (11998, -3180, 6990) def +atom 69 (2) (12028, -8550, 6990) def +atom 70 (2) (12058, -13918, 6990) def +atom 71 (2) (12138, 13598, 6990) def +atom 72 (2) (12168, 8229, 6990) def +atom 73 (2) (12198, 2859, 6990) def +atom 74 (2) (11900, -3020, 0) def +atom 75 (2) (11930, -8390, 0) def +atom 76 (2) (11960, -13758, 0) def +atom 77 (2) (12040, 13758, 0) def +ground (Anchor-117) (0, 0, 0) 42 43 44 45 46 47 24 25 26 27 28 29 48 49 50 51 52 53 54 55 56 57 58 59 30 31 32 33 34 35 36 37 38 39 40 41 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 +info leaf hidden = True +thermo (Thermo-118) (153, 0, 51) 6 23 17 +mangle (Angle-121) (0, 0, 0) (Helvetica) 10 53 1 35 +egroup (He walls) +egroup (010 linearmotor-box of helium) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 010 linearmotor-box of helium diff --git a/sim/src/tests/motors/011_rotarymotor_0_torque_and_0_speed.mmp b/sim/src/tests/motors/011_rotarymotor_0_torque_and_0_speed.mmp new file mode 100755 index 000000000..3fa7ee8f5 --- /dev/null +++ b/sim/src/tests/motors/011_rotarymotor_0_torque_and_0_speed.mmp @@ -0,0 +1,48 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.702269) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (rotarymotor- high torque and speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) def +atom 2 (0) (-1756, 10, -550) def +bond1 1 +atom 3 (0) (-1697, -38, 690) def +bond1 1 +atom 4 (6) (-290, 1170, 48) def +bond1 1 +atom 5 (0) (-433, 1633, -551) def +bond1 4 +atom 6 (0) (-380, 1587, 690) def +bond1 4 +atom 7 (6) (1159, 611, -33) def +bond1 4 +atom 8 (0) (1569, 835, 580) def +bond1 7 +atom 9 (0) (1517, 883, -661) def +bond1 7 +atom 10 (6) (-427, -1343, -45) def +bond1 1 +atom 11 (0) (-617, -1740, -678) def +bond1 10 +atom 12 (0) (-565, -1796, 563) def +bond1 10 +atom 13 (6) (1075, -940, -89) def +bond1 7 10 +atom 14 (0) (1453, -1251, 506) def +bond1 13 +atom 15 (0) (1404, -1205, -736) def +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 0.00 0.00 (49, -108, -14) (-42, 39, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- high torque and speed) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part rotarymotor- high torque and speed diff --git a/sim/src/tests/motors/012_rotarymotor_0_torque_and_negative_speed.mmp b/sim/src/tests/motors/012_rotarymotor_0_torque_and_negative_speed.mmp new file mode 100755 index 000000000..8f4b27b97 --- /dev/null +++ b/sim/src/tests/motors/012_rotarymotor_0_torque_and_negative_speed.mmp @@ -0,0 +1,48 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.909100) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (rotarymotor- 0 torque and negative speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) def +atom 2 (0) (-1756, 10, -550) def +bond1 1 +atom 3 (0) (-1697, -38, 690) def +bond1 1 +atom 4 (6) (-290, 1170, 48) def +bond1 1 +atom 5 (0) (-433, 1633, -551) def +bond1 4 +atom 6 (0) (-380, 1587, 690) def +bond1 4 +atom 7 (6) (1159, 611, -33) def +bond1 4 +atom 8 (0) (1569, 835, 580) def +bond1 7 +atom 9 (0) (1517, 883, -661) def +bond1 7 +atom 10 (6) (-427, -1343, -45) def +bond1 1 +atom 11 (0) (-617, -1740, -678) def +bond1 10 +atom 12 (0) (-565, -1796, 563) def +bond1 10 +atom 13 (6) (1075, -940, -89) def +bond1 7 10 +atom 14 (0) (1453, -1251, 506) def +bond1 13 +atom 15 (0) (1404, -1205, -736) def +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 0.00 -1.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- 0 torque and negative speed) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part rotarymotor- 0 torque and negative speed diff --git a/sim/src/tests/motors/013_rotarymotor_0_torque_and_positive_speed.mmp b/sim/src/tests/motors/013_rotarymotor_0_torque_and_positive_speed.mmp new file mode 100755 index 000000000..9ec4d635b --- /dev/null +++ b/sim/src/tests/motors/013_rotarymotor_0_torque_and_positive_speed.mmp @@ -0,0 +1,48 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.541012) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (rotarymotor- 0 torque and positive speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) def +atom 2 (0) (-1756, 10, -550) def +bond1 1 +atom 3 (0) (-1697, -38, 690) def +bond1 1 +atom 4 (6) (-290, 1170, 48) def +bond1 1 +atom 5 (0) (-433, 1633, -551) def +bond1 4 +atom 6 (0) (-380, 1587, 690) def +bond1 4 +atom 7 (6) (1159, 611, -33) def +bond1 4 +atom 8 (0) (1569, 835, 580) def +bond1 7 +atom 9 (0) (1517, 883, -661) def +bond1 7 +atom 10 (6) (-427, -1343, -45) def +bond1 1 +atom 11 (0) (-617, -1740, -678) def +bond1 10 +atom 12 (0) (-565, -1796, 563) def +bond1 10 +atom 13 (6) (1075, -940, -89) def +bond1 7 10 +atom 14 (0) (1453, -1251, 506) def +bond1 13 +atom 15 (0) (1404, -1205, -736) def +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 0.00 1.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- 0 torque and positive speed) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part rotarymotor- 0 torque and positive speed diff --git a/sim/src/tests/motors/014_rotarymotor_negative_torque_and_negative_speed.mmp b/sim/src/tests/motors/014_rotarymotor_negative_torque_and_negative_speed.mmp new file mode 100755 index 000000000..34a864670 --- /dev/null +++ b/sim/src/tests/motors/014_rotarymotor_negative_torque_and_negative_speed.mmp @@ -0,0 +1,48 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.909100) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (rotarymotor- negative torque and negative speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) def +atom 2 (0) (-1756, 10, -550) def +bond1 1 +atom 3 (0) (-1697, -38, 690) def +bond1 1 +atom 4 (6) (-290, 1170, 48) def +bond1 1 +atom 5 (0) (-433, 1633, -551) def +bond1 4 +atom 6 (0) (-380, 1587, 690) def +bond1 4 +atom 7 (6) (1159, 611, -33) def +bond1 4 +atom 8 (0) (1569, 835, 580) def +bond1 7 +atom 9 (0) (1517, 883, -661) def +bond1 7 +atom 10 (6) (-427, -1343, -45) def +bond1 1 +atom 11 (0) (-617, -1740, -678) def +bond1 10 +atom 12 (0) (-565, -1796, 563) def +bond1 10 +atom 13 (6) (1075, -940, -89) def +bond1 7 10 +atom 14 (0) (1453, -1251, 506) def +bond1 13 +atom 15 (0) (1404, -1205, -736) def +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) -0.50 -1.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- negative torque and negative speed) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part rotarymotor- negative torque and negative speed diff --git a/sim/src/tests/motors/015_rotarymotor_negative_torque_and_positive_speed.mmp b/sim/src/tests/motors/015_rotarymotor_negative_torque_and_positive_speed.mmp new file mode 100755 index 000000000..264cb4b7f --- /dev/null +++ b/sim/src/tests/motors/015_rotarymotor_negative_torque_and_positive_speed.mmp @@ -0,0 +1,48 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.909100) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (rotarymotor- negative torque and positive speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) def +atom 2 (0) (-1756, 10, -550) def +bond1 1 +atom 3 (0) (-1697, -38, 690) def +bond1 1 +atom 4 (6) (-290, 1170, 48) def +bond1 1 +atom 5 (0) (-433, 1633, -551) def +bond1 4 +atom 6 (0) (-380, 1587, 690) def +bond1 4 +atom 7 (6) (1159, 611, -33) def +bond1 4 +atom 8 (0) (1569, 835, 580) def +bond1 7 +atom 9 (0) (1517, 883, -661) def +bond1 7 +atom 10 (6) (-427, -1343, -45) def +bond1 1 +atom 11 (0) (-617, -1740, -678) def +bond1 10 +atom 12 (0) (-565, -1796, 563) def +bond1 10 +atom 13 (6) (1075, -940, -89) def +bond1 7 10 +atom 14 (0) (1453, -1251, 506) def +bond1 13 +atom 15 (0) (1404, -1205, -736) def +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) -0.50 1.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- negative torque and positive speed) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part rotarymotor- negative torque and positive speed diff --git a/sim/src/tests/motors/016_rotarymotor_negative_torque_and_0_speed.mmp b/sim/src/tests/motors/016_rotarymotor_negative_torque_and_0_speed.mmp new file mode 100755 index 000000000..84d324a53 --- /dev/null +++ b/sim/src/tests/motors/016_rotarymotor_negative_torque_and_0_speed.mmp @@ -0,0 +1,48 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.909100) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (rotarymotor-negative torque and 0 speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) def +atom 2 (0) (-1756, 10, -550) def +bond1 1 +atom 3 (0) (-1697, -38, 690) def +bond1 1 +atom 4 (6) (-290, 1170, 48) def +bond1 1 +atom 5 (0) (-433, 1633, -551) def +bond1 4 +atom 6 (0) (-380, 1587, 690) def +bond1 4 +atom 7 (6) (1159, 611, -33) def +bond1 4 +atom 8 (0) (1569, 835, 580) def +bond1 7 +atom 9 (0) (1517, 883, -661) def +bond1 7 +atom 10 (6) (-427, -1343, -45) def +bond1 1 +atom 11 (0) (-617, -1740, -678) def +bond1 10 +atom 12 (0) (-565, -1796, 563) def +bond1 10 +atom 13 (6) (1075, -940, -89) def +bond1 7 10 +atom 14 (0) (1453, -1251, 506) def +bond1 13 +atom 15 (0) (1404, -1205, -736) def +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) -0.50 0.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor-negative torque and 0 speed) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part rotarymotor-negative torque and 0 speed diff --git a/sim/src/tests/motors/017_rotarymotor_positive_torque_and_negative_speed.mmp b/sim/src/tests/motors/017_rotarymotor_positive_torque_and_negative_speed.mmp new file mode 100755 index 000000000..7b13fcc28 --- /dev/null +++ b/sim/src/tests/motors/017_rotarymotor_positive_torque_and_negative_speed.mmp @@ -0,0 +1,48 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.909100) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (rotarymotor- positive torque and negative speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) def +atom 2 (0) (-1756, 10, -550) def +bond1 1 +atom 3 (0) (-1697, -38, 690) def +bond1 1 +atom 4 (6) (-290, 1170, 48) def +bond1 1 +atom 5 (0) (-433, 1633, -551) def +bond1 4 +atom 6 (0) (-380, 1587, 690) def +bond1 4 +atom 7 (6) (1159, 611, -33) def +bond1 4 +atom 8 (0) (1569, 835, 580) def +bond1 7 +atom 9 (0) (1517, 883, -661) def +bond1 7 +atom 10 (6) (-427, -1343, -45) def +bond1 1 +atom 11 (0) (-617, -1740, -678) def +bond1 10 +atom 12 (0) (-565, -1796, 563) def +bond1 10 +atom 13 (6) (1075, -940, -89) def +bond1 7 10 +atom 14 (0) (1453, -1251, 506) def +bond1 13 +atom 15 (0) (1404, -1205, -736) def +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 0.50 1.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- positive torque and negative speed) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part rotarymotor- positive torque and negative speed diff --git a/sim/src/tests/motors/018_rotarymotor_positive_torque_and_0_speed.mmp b/sim/src/tests/motors/018_rotarymotor_positive_torque_and_0_speed.mmp new file mode 100755 index 000000000..68a1c2c63 --- /dev/null +++ b/sim/src/tests/motors/018_rotarymotor_positive_torque_and_0_speed.mmp @@ -0,0 +1,48 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.909100) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (rotarymotor-positive torque and 0 speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) def +atom 2 (0) (-1756, 10, -550) def +bond1 1 +atom 3 (0) (-1697, -38, 690) def +bond1 1 +atom 4 (6) (-290, 1170, 48) def +bond1 1 +atom 5 (0) (-433, 1633, -551) def +bond1 4 +atom 6 (0) (-380, 1587, 690) def +bond1 4 +atom 7 (6) (1159, 611, -33) def +bond1 4 +atom 8 (0) (1569, 835, 580) def +bond1 7 +atom 9 (0) (1517, 883, -661) def +bond1 7 +atom 10 (6) (-427, -1343, -45) def +bond1 1 +atom 11 (0) (-617, -1740, -678) def +bond1 10 +atom 12 (0) (-565, -1796, 563) def +bond1 10 +atom 13 (6) (1075, -940, -89) def +bond1 7 10 +atom 14 (0) (1453, -1251, 506) def +bond1 13 +atom 15 (0) (1404, -1205, -736) def +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 0.50 0.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor-positive torque and 0 speed) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part rotarymotor-positive torque and 0 speed diff --git a/sim/src/tests/motors/019_rotarymotor_medium_torque_and_speed.mmp b/sim/src/tests/motors/019_rotarymotor_medium_torque_and_speed.mmp new file mode 100755 index 000000000..b94aa2b53 --- /dev/null +++ b/sim/src/tests/motors/019_rotarymotor_medium_torque_and_speed.mmp @@ -0,0 +1,47 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.992963, -0.112593, -0.036700, 0.000000) (4.369325) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (rotarymotor-medium torque and speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1268, -54, 99) def +atom 2 (0) (-1771, 102, -464) def +bond1 1 +atom 3 (0) (-1675, -175, 743) def +bond1 1 +atom 4 (6) (-285, 1135, 294) def +bond1 1 +atom 5 (0) (-445, 1700, -204) def +bond1 4 +atom 6 (0) (-354, 1426, 1004) def +bond1 4 +atom 7 (6) (1160, 605, 67) def +bond1 4 +atom 8 (0) (1588, 713, 698) def +bond1 7 +atom 9 (0) (1499, 991, -510) def +bond1 7 +atom 10 (6) (-431, -1317, -259) def +bond1 1 +atom 11 (0) (-641, -1591, -949) def +bond1 10 +atom 12 (0) (-552, -1875, 258) def +bond1 10 +atom 13 (6) (1070, -909, -273) def +bond1 7 10 +atom 14 (0) (1465, -1324, 242) def +bond1 13 +atom 15 (0) (1379, -1048, -967) def +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 0.30 0.40 (49, -108, -14) (-72, 223, -972) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +egroup (rotarymotor-medium torque and speed) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part rotarymotor-medium torque and speed diff --git a/sim/src/tests/motors/020_rotarymotor_high_torque_and_speed.mmp b/sim/src/tests/motors/020_rotarymotor_high_torque_and_speed.mmp new file mode 100755 index 000000000..7f36915a3 --- /dev/null +++ b/sim/src/tests/motors/020_rotarymotor_high_torque_and_speed.mmp @@ -0,0 +1,48 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.702269) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (rotarymotor- high torque and speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) def +atom 2 (0) (-1756, 10, -550) def +bond1 1 +atom 3 (0) (-1697, -38, 690) def +bond1 1 +atom 4 (6) (-290, 1170, 48) def +bond1 1 +atom 5 (0) (-433, 1633, -551) def +bond1 4 +atom 6 (0) (-380, 1587, 690) def +bond1 4 +atom 7 (6) (1159, 611, -33) def +bond1 4 +atom 8 (0) (1569, 835, 580) def +bond1 7 +atom 9 (0) (1517, 883, -661) def +bond1 7 +atom 10 (6) (-427, -1343, -45) def +bond1 1 +atom 11 (0) (-617, -1740, -678) def +bond1 10 +atom 12 (0) (-565, -1796, 563) def +bond1 10 +atom 13 (6) (1075, -940, -89) def +bond1 7 10 +atom 14 (0) (1453, -1251, 506) def +bond1 13 +atom 15 (0) (1404, -1205, -736) def +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 3.00 4.50 (49, -108, -14) (-42, 39, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- high torque and speed) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part rotarymotor- high torque and speed diff --git a/sim/src/tests/motors/021_rotarymotor_dyno_jig_test_to_same_chunk.mmp b/sim/src/tests/motors/021_rotarymotor_dyno_jig_test_to_same_chunk.mmp new file mode 100755 index 000000000..f7be079e3 --- /dev/null +++ b/sim/src/tests/motors/021_rotarymotor_dyno_jig_test_to_same_chunk.mmp @@ -0,0 +1,106 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (11.063054) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (rotarymotor- 2 motors to same chunk) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) def +atom 2 (6) (-2395, -17, 1570) def +atom 3 (6) (-2396, 1360, -779) def +bond1 1 +atom 4 (6) (-2398, 1349, 793) def +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) def +bond1 2 +atom 6 (6) (-2389, -1363, -798) def +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) def +bond1 6 +atom 8 (8) (-1183, -20, 2400) def +bond1 2 +atom 9 (8) (-1185, 2085, -1187) def +bond1 3 +atom 10 (8) (-1178, 13, -2403) def +bond1 1 +atom 11 (8) (-1176, -2092, 1185) def +bond1 5 +atom 12 (8) (-1188, 2068, 1214) def +bond1 4 +atom 13 (1) (-3198, -1983, -1161) def +bond1 6 +atom 14 (1) (-3207, -25, 2285) def +bond1 2 +atom 15 (1) (-3209, 1980, -1133) def +bond1 3 +atom 16 (1) (-3203, 6, -2291) def +bond1 1 +atom 17 (1) (-3200, -1999, 1127) def +bond1 5 +atom 18 (1) (-3212, 1964, 1154) def +bond1 4 +atom 19 (6) (1, 10, -1545) def +bond1 10 +atom 20 (6) (-1, -10, 1545) def +bond1 8 +atom 21 (6) (-3, 1343, -763) def +bond1 19 9 +atom 22 (6) (-4, 1332, 781) def +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) def +bond1 20 11 +atom 24 (6) (4, -1332, -781) def +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) def +bond1 24 +atom 26 (8) (1178, -13, 2403) def +bond1 20 +atom 27 (8) (1176, 2092, -1185) def +bond1 21 +atom 28 (8) (1183, 20, -2400) def +bond1 19 +atom 29 (8) (1185, -2085, 1187) def +bond1 23 +atom 30 (8) (1173, 2075, 1216) def +bond1 22 +atom 31 (6) (2395, 17, -1570) def +bond1 28 +atom 32 (6) (2392, -4, 1575) def +bond1 26 +atom 33 (6) (2390, 1374, -774) def +bond1 31 27 +atom 34 (6) (2389, 1363, 798) def +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) def +bond1 32 29 +atom 36 (6) (2398, -1349, -793) def +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) def +bond1 36 +atom 38 (1) (3202, -6, 2291) def +bond1 32 +atom 39 (1) (3200, 1999, -1127) def +bond1 33 +atom 40 (1) (3207, 25, -2285) def +bond1 31 +atom 41 (1) (3209, -1980, 1133) def +bond1 35 +atom 42 (1) (3198, 1983, 1161) def +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) def +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +rmotor (Rotary Motor--0 torque and speed) (85, 170, 127) 0.00 0.00 (-2393, -6, -2) (-999, -2, 0) 2.00 0.50 0.10 +shaft 1 2 3 4 5 6 +rmotor (Rotary Motor-187) (127, 127, 127) 0.50 0.40 (2393, 6, 2) (-999, -2, 0) 2.00 0.50 0.10 +shaft 31 32 33 34 35 36 +egroup (rotarymotor- 2 motors to same chunk) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part rotarymotor- 2 motors to same chunk diff --git a/sim/src/tests/motors/022_rotary_motor_small_bearing_test.mmp b/sim/src/tests/motors/022_rotary_motor_small_bearing_test.mmp new file mode 100755 index 000000000..55e76ce84 --- /dev/null +++ b/sim/src/tests/motors/022_rotary_motor_small_bearing_test.mmp @@ -0,0 +1,438 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (37.233414) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (rotary motor- small bearing test) +info opengroup open = True +mol (OuterSleeve-copy32) def +atom 1 (6) (-2868, -5945, 1370) def +atom 2 (6) (-2484, -5150, 42) def +bond1 1 +atom 3 (6) (-2878, -5941, -1285) def +bond1 2 +atom 4 (14) (-4770, -5942, 1214) def +bond1 1 +atom 5 (14) (-4777, -5942, -1118) def +bond1 3 4 +atom 6 (8) (-3038, -3813, 49) def +bond1 2 +atom 7 (6) (-5134, -4073, 1385) def +bond1 4 +atom 8 (6) (-4455, -3540, 47) def +bond1 6 7 +atom 9 (6) (-5135, -4074, -1289) def +bond1 5 8 +atom 10 (14) (-6859, -3271, 1214) def +bond1 7 +atom 11 (14) (-6861, -3275, -1118) def +bond1 9 10 +atom 12 (8) (-4376, -2097, 46) def +bond1 8 +atom 13 (6) (-6395, -1427, 1375) def +bond1 10 +atom 14 (6) (-5541, -1241, 42) def +bond1 12 13 +atom 15 (6) (-6395, -1434, -1288) def +bond1 11 14 +atom 16 (14) (-7589, 53, 1205) def +bond1 13 +atom 17 (14) (-7592, 43, -1128) def +bond1 15 16 +atom 18 (8) (-4849, 27, 42) def +bond1 14 +atom 19 (6) (-6370, 1515, 1363) def +bond1 16 +atom 20 (6) (-5522, 1306, 31) def +bond1 18 19 +atom 21 (6) (-6372, 1500, -1302) def +bond1 17 20 +atom 22 (14) (-6808, 3364, 1186) def +bond1 19 +atom 23 (14) (-6812, 3350, -1148) def +bond1 21 22 +atom 24 (8) (-4345, 2147, 24) def +bond1 20 +atom 25 (6) (-5071, 4143, 1348) def +bond1 22 +atom 26 (6) (-4401, 3590, 14) def +bond1 24 25 +atom 27 (6) (-5076, 4125, -1325) def +bond1 23 26 +atom 28 (14) (-4676, 6004, 1165) def +bond1 25 +atom 29 (14) (-4683, 5989, -1168) def +bond1 27 28 +atom 30 (8) (-2980, 3842, 10) def +bond1 26 +atom 31 (6) (-2774, 5978, 1320) def +bond1 28 +atom 32 (6) (-2403, 5169, -3) def +bond1 30 31 +atom 33 (6) (-2783, 5960, -1335) def +bond1 29 32 +atom 34 (14) (-1590, 7463, 1144) def +bond1 31 +atom 35 (14) (-1600, 7447, -1187) def +bond1 33 34 +atom 36 (8) (-1012, 4769, -6) def +bond1 32 +atom 37 (6) (97, 6580, 1314) def +bond1 34 +atom 38 (6) (83, 5710, -18) def +bond1 36 37 +atom 39 (6) (83, 6563, -1361) def +bond1 35 38 +atom 40 (14) (1797, 7434, 1128) def +bond1 37 +atom 41 (14) (1784, 7421, -1203) def +bond1 39 40 +atom 42 (8) (1163, 4751, -17) def +bond1 38 +atom 43 (6) (2959, 5930, 1291) def +bond1 40 +atom 44 (6) (2560, 5128, -28) def +bond1 42 43 +atom 45 (6) (2942, 5914, -1363) def +bond1 41 44 +atom 46 (14) (4859, 5923, 1118) def +bond1 43 +atom 47 (14) (4844, 5911, -1214) def +bond1 45 46 +atom 48 (8) (3115, 3790, -22) def +bond1 44 +atom 49 (6) (5222, 4054, 1296) def +bond1 46 +atom 50 (6) (4532, 3515, -32) def +bond1 48 49 +atom 51 (6) (5201, 4041, -1378) def +bond1 47 50 +atom 52 (14) (6946, 3250, 1115) def +bond1 49 +atom 53 (14) (6927, 3239, -1217) def +bond1 51 52 +atom 54 (8) (4452, 2072, -23) def +bond1 50 +atom 55 (6) (6483, 1407, 1293) def +bond1 52 +atom 56 (6) (5616, 1214, -30) def +bond1 54 55 +atom 57 (6) (6458, 1397, -1371) def +bond1 53 56 +atom 58 (14) (7675, -74, 1121) def +bond1 55 +atom 59 (14) (7653, -82, -1212) def +bond1 57 58 +atom 60 (8) (4922, -54, -14) def +bond1 56 +atom 61 (6) (6456, -1534, 1303) def +bond1 58 +atom 62 (6) (5594, -1333, -21) def +bond1 60 61 +atom 63 (6) (6428, -1538, -1363) def +bond1 59 62 +atom 64 (14) (6893, -3384, 1133) def +bond1 61 +atom 65 (14) (6868, -3387, -1199) def +bond1 63 64 +atom 66 (8) (4416, -2170, -6) def +bond1 62 +atom 67 (6) (5158, -4161, 1322) def +bond1 64 +atom 68 (6) (4472, -3615, -6) def +bond1 66 67 +atom 69 (6) (5129, -4159, -1351) def +bond1 65 68 +atom 70 (14) (4760, -6023, 1155) def +bond1 67 +atom 71 (14) (4738, -6021, -1178) def +bond1 69 70 +atom 72 (8) (3051, -3864, 12) def +bond1 68 +atom 73 (6) (2860, -5992, 1335) def +bond1 70 +atom 74 (6) (2474, -5191, 11) def +bond1 72 73 +atom 75 (6) (2838, -5987, -1322) def +bond1 71 74 +atom 76 (14) (1676, -7480, 1177) def +bond1 73 +atom 77 (14) (1659, -7475, -1154) def +bond1 75 76 +atom 78 (8) (1084, -4789, 25) def +bond1 74 +atom 79 (6) (-8, -6597, 1364) def +bond1 76 +atom 80 (6) (-9, -5730, 28) def +bond1 78 79 +atom 81 (6) (-25, -6588, -1312) def +bond1 77 80 +atom 82 (14) (-1710, -7452, 1199) def +bond1 1 79 +atom 83 (14) (-1721, -7448, -1132) def +bond1 3 81 82 +atom 84 (8) (-1088, -4771, 40) def +bond1 2 80 +atom 85 (1) (-2607, -5439, 2320) def +bond1 1 +atom 86 (1) (-2626, -5436, -2238) def +bond1 3 +atom 87 (1) (-5548, -6894, 2030) def +bond1 4 +atom 88 (1) (-5558, -6892, -1935) def +bond1 5 +atom 89 (1) (-4645, -3686, 2305) def +bond1 7 +atom 90 (1) (-4648, -3687, -2210) def +bond1 9 +atom 91 (1) (-7969, -3797, 2032) def +bond1 10 +atom 92 (1) (-7969, -3804, -1937) def +bond1 11 +atom 93 (1) (-5811, -1308, 2311) def +bond1 13 +atom 94 (1) (-5815, -1322, -2226) def +bond1 15 +atom 95 (1) (-8820, 66, 2020) def +bond1 16 +atom 96 (1) (-8822, 47, -1944) def +bond1 17 +atom 97 (1) (-5784, 1393, 2297) def +bond1 19 +atom 98 (1) (-5788, 1370, -2237) def +bond1 21 +atom 99 (1) (-7910, 3913, 2001) def +bond1 22 +atom 100 (1) (-7915, 3886, -1967) def +bond1 23 +atom 101 (1) (-4590, 3755, 2272) def +bond1 25 +atom 102 (1) (-4599, 3726, -2245) def +bond1 27 +atom 103 (1) (-5439, 6974, 1975) def +bond1 28 +atom 104 (1) (-5452, 6947, -1989) def +bond1 29 +atom 105 (1) (-2520, 5473, 2273) def +bond1 31 +atom 106 (1) (-2536, 5445, -2284) def +bond1 33 +atom 107 (1) (-1843, 8670, 1955) def +bond1 34 +atom 108 (1) (-1861, 8645, -2012) def +bond1 35 +atom 109 (1) (96, 5957, 2234) def +bond1 37 +atom 110 (1) (73, 5929, -2274) def +bond1 39 +atom 111 (1) (2079, 8636, 1936) def +bond1 40 +atom 112 (1) (2057, 8613, -2030) def +bond1 41 +atom 113 (1) (2709, 5432, 2248) def +bond1 43 +atom 114 (1) (2681, 5406, -2311) def +bond1 45 +atom 115 (1) (5647, 6877, 1923) def +bond1 46 +atom 116 (1) (5620, 6855, -2041) def +bond1 47 +atom 117 (1) (4741, 3672, 2222) def +bond1 49 +atom 118 (1) (4706, 3649, -2292) def +bond1 51 +atom 119 (1) (8064, 3780, 1921) def +bond1 52 +atom 120 (1) (8031, 3760, -2048) def +bond1 53 +atom 121 (1) (5911, 1295, 2236) def +bond1 55 +atom 122 (1) (5868, 1279, -2303) def +bond1 57 +atom 123 (1) (8914, -84, 1923) def +bond1 58 +atom 124 (1) (8875, -97, -2041) def +bond1 59 +atom 125 (1) (5879, -1405, 2242) def +bond1 61 +atom 126 (1) (5833, -1412, -2291) def +bond1 63 +atom 127 (1) (8004, -3928, 1938) def +bond1 64 +atom 128 (1) (7959, -3932, -2031) def +bond1 65 +atom 129 (1) (4689, -3768, 2251) def +bond1 67 +atom 130 (1) (4640, -3765, -2268) def +bond1 69 +atom 131 (1) (5532, -6989, 1961) def +bond1 70 +atom 132 (1) (5493, -6983, -2004) def +bond1 71 +atom 133 (1) (2616, -5479, 2286) def +bond1 73 +atom 134 (1) (2579, -5475, -2269) def +bond1 75 +atom 135 (1) (1940, -8685, 1988) def +bond1 76 +atom 136 (1) (1909, -8673, -1979) def +bond1 77 +atom 137 (1) (3, -5972, 2283) def +bond1 79 +atom 138 (1) (-25, -5956, -2227) def +bond1 81 +atom 139 (1) (-1983, -8652, 2014) def +bond1 82 +atom 140 (1) (-2001, -8642, -1954) def +bond1 83 +mol (InnerSleeve-copy33) def +atom 141 (6) (-2044, -1223, -2399) def +atom 142 (6) (8, 2379, -2430) def +atom 143 (6) (2088, 1194, -2436) def +atom 144 (6) (2101, -1199, -2423) def +atom 145 (6) (35, -2408, -2403) def +atom 146 (6) (-1290, -784, -3673) def +bond1 141 +atom 147 (6) (-1298, 727, -3682) def +bond1 146 +atom 148 (6) (5, 1490, -3693) def +bond1 142 147 +atom 149 (6) (1319, 742, -3697) def +bond1 143 148 +atom 150 (6) (1327, -769, -3689) def +bond1 144 149 +atom 151 (6) (22, -1533, -3676) def +bond1 145 146 150 +atom 152 (16) (-3431, -34, -2604) def +bond1 141 +atom 153 (16) (-1721, 2963, -2625) def +bond1 142 +atom 154 (16) (1729, 2983, -2644) def +bond1 142 143 +atom 155 (16) (3472, 4, -2644) def +bond1 143 144 +atom 156 (16) (1763, -2994, -2612) def +bond1 144 145 +atom 157 (16) (-1687, -3013, -2591) def +bond1 141 145 +atom 158 (6) (-2031, 1196, 2468) def +atom 159 (6) (36, 2405, 2449) def +atom 160 (6) (-2016, -1197, 2481) def +atom 161 (6) (64, -2383, 2474) def +atom 162 (6) (2131, -1175, 2456) def +atom 163 (6) (2118, 1219, 2444) def +atom 164 (6) (49, 1530, 3721) def +bond1 159 +atom 165 (6) (-1255, 767, 3734) def +bond1 158 164 +atom 166 (6) (-1246, -745, 3742) def +bond1 160 165 +atom 167 (6) (66, -1494, 3737) def +bond1 161 166 +atom 168 (6) (1371, -730, 3726) def +bond1 162 167 +atom 169 (6) (1363, 781, 3718) def +bond1 163 164 168 +atom 170 (16) (-1691, 2993, 2653) def +bond1 158 159 +atom 171 (16) (-3402, -7, 2683) def +bond1 158 160 +atom 172 (16) (-1658, -2989, 2680) def +bond1 160 161 +atom 173 (16) (1795, -2970, 2660) def +bond1 161 162 +atom 174 (16) (3505, 30, 2642) def +bond1 162 163 +atom 175 (16) (1761, 3011, 2632) def +bond1 159 163 +atom 176 (6) (1354, 771, 1175) def +bond1 163 +atom 177 (6) (34, 1522, 1179) def +bond1 159 176 +atom 178 (6) (-1277, 756, 1191) def +bond1 158 177 +atom 179 (6) (-1268, -762, 1199) def +bond1 160 178 +atom 180 (6) (51, -1513, 1195) def +bond1 161 179 +atom 181 (6) (1363, -747, 1183) def +bond1 162 176 180 +atom 182 (8) (22, 2347, 9) def +bond1 177 +atom 183 (8) (2064, 1183, 4) def +bond1 176 +atom 184 (8) (2077, -1164, 17) def +bond1 181 +atom 185 (8) (-2005, 1161, 28) def +bond1 178 +atom 186 (8) (-1992, -1186, 41) def +bond1 179 +atom 187 (8) (49, -2350, 35) def +bond1 180 +atom 188 (6) (38, -1526, -1133) def +bond1 145 187 +atom 189 (6) (-1282, -774, -1130) def +bond1 141 186 188 +atom 190 (6) (-1291, 744, -1138) def +bond1 185 189 +atom 191 (6) (20, 1510, -1150) def +bond1 142 182 190 +atom 192 (6) (1340, 758, -1154) def +bond1 143 183 191 +atom 193 (6) (1349, -760, -1145) def +bond1 144 184 188 192 +atom 194 (1) (-1862, -1122, -4582) def +bond1 146 +atom 195 (1) (-1874, 1047, -4594) def +bond1 147 +atom 196 (1) (-3, 2143, -4610) def +bond1 148 +atom 197 (1) (1880, 1068, -4616) def +bond1 149 +atom 198 (1) (1892, -1100, -4604) def +bond1 150 +atom 199 (1) (21, -2196, -4585) def +bond1 151 +atom 200 (1) (51, 2194, 4630) def +bond1 164 +atom 201 (1) (-1821, 1098, 4649) def +bond1 165 +atom 202 (1) (-1809, -1072, 4660) def +bond1 166 +atom 203 (1) (75, -2148, 4653) def +bond1 167 +atom 204 (1) (1948, -1052, 4638) def +bond1 168 +atom 205 (1) (1936, 1119, 4626) def +bond1 169 +atom 206 (6) (-2058, 1170, -2412) def +bond1 147 152 153 190 +rmotor (Rotary Motor-165) (127, 127, 127) 1.50 3.00 (50, 11, 2462) (-5, -5, -999) 10.00 0.50 0.20 +shaft 158 159 160 161 162 163 +ground (Anchor-166) (0, 0, 0) 119 120 123 124 127 128 131 132 135 136 139 140 91 92 95 96 87 88 99 100 103 104 107 108 111 112 115 116 +thermo (Thermo-167) (153, 0, 51) 1 140 28 +thermo (Thermo-168) (153, 0, 51) 141 206 170 +stat (Stat-169) (0, 0, 153) (300) 1 140 49 +mol (InnerSleeve-copy33-frag) def +atom 207 (10) (25049, 1530, 3721) def +mol (InnerSleeve-copy33-frag) def +atom 208 (10) (49, 26530, 3721) def +mol (InnerSleeve-copy33-frag) def +atom 209 (10) (49, -23469, 3721) def +ground (Anchor-172) (0, 0, 0) 208 207 +mdistance (Distance-174) (0, 0, 0) (Helvetica) 10 208 164 +info leaf hidden = True +ground (Anchor-175) (0, 0, 0) 209 +mdistance (Distance-176) (0, 0, 0) (Helvetica) 10 164 209 +info leaf hidden = True +mangle (Angle-177) (0, 0, 0) (Helvetica) 10 208 209 164 +mdistance (Distance-178) (0, 0, 0) (Helvetica) 10 164 207 +info leaf hidden = True +egroup (rotary motor- small bearing test) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part rotary motor- small bearing test diff --git a/sim/src/tests/motors/023_rotarymotor_two_planet_gears.mmp b/sim/src/tests/motors/023_rotarymotor_two_planet_gears.mmp new file mode 100755 index 000000000..bca53876a --- /dev/null +++ b/sim/src/tests/motors/023_rotarymotor_two_planet_gears.mmp @@ -0,0 +1,138 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (13.875855) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (2 planet gears with motors) +info opengroup open = True +mol (Molecule.2-copy1) tub +atom 1 (6) (-561, 458, -1559) def +atom 2 (6) (-570, 461, 1565) def +atom 3 (6) (-578, 1812, -779) def +bond1 1 +atom 4 (6) (-583, 1813, 783) def +bond1 2 3 +atom 5 (6) (-552, -892, 786) def +bond1 2 +atom 6 (6) (-547, -894, -776) def +bond1 1 5 +atom 7 (8) (671, -1591, -1186) def +bond1 6 +atom 8 (8) (638, 476, 2392) def +bond1 2 +atom 9 (8) (624, 2538, -1188) def +bond1 3 +atom 10 (8) (651, 471, -2379) def +bond1 1 +atom 11 (8) (665, -1588, 1204) def +bond1 5 +atom 12 (8) (618, 2541, 1197) def +bond1 4 +atom 13 (1) (-1354, -1530, -1139) def +bond1 6 +atom 14 (1) (-1387, 452, 2286) def +bond1 2 +atom 15 (1) (-1400, 2428, -1143) def +bond1 3 +atom 16 (1) (-1375, 447, -2284) def +bond1 1 +atom 17 (1) (-1360, -1528, 1146) def +bond1 5 +atom 18 (1) (-1406, 2430, 1141) def +bond1 4 +atom 19 (6) (1860, 485, -1552) def +bond1 10 +atom 20 (6) (1851, 489, 1572) def +bond1 8 +atom 21 (6) (1842, 1839, -772) def +bond1 19 9 +atom 22 (6) (1838, 1841, 789) def +bond1 20 21 12 +atom 23 (6) (1868, -864, 792) def +bond1 20 11 +atom 24 (6) (1873, -866, -769) def +bond1 19 23 7 +atom 25 (1) (2695, -1484, -1128) def +bond1 24 +atom 26 (1) (2665, 499, 2297) def +bond1 20 +atom 27 (1) (2651, 2474, -1132) def +bond1 21 +atom 28 (1) (2677, 493, -2273) def +bond1 19 +atom 29 (1) (2689, -1482, 1157) def +bond1 23 +atom 30 (1) (2645, 2477, 1152) def +bond1 22 +rmotor (Rotary Motor-38) (127, 127, 127) 1.00 1.00 (-565, 459, 3) (999, 11, 2) 2.00 0.50 0.10 +shaft 1 2 3 4 5 6 +thermo (Thermo-39) (153, 0, 51) 1 30 12 +forward_ref (425120552) # ground (Anchor-40) +group (Untitled-copy4) +info opengroup open = True +mol (Molecule.2-copy1) tub +atom 31 (8) (664, -7655, -2072) def +atom 32 (8) (622, -7680, 2060) def +atom 33 (1) (-1382, -5337, -1991) def +atom 34 (1) (-1373, -8777, -32) def +atom 35 (1) (-1422, -5360, 1965) def +atom 36 (1) (-1411, -4206, -6) def +atom 37 (1) (-1363, -7623, -2005) def +atom 38 (1) (-1402, -7646, 1952) def +atom 39 (6) (1830, -4903, 22) def +atom 40 (6) (1857, -8027, 4) def +atom 41 (6) (1823, -5691, 1370) def +bond1 39 +atom 42 (6) (1837, -7253, 1361) def +bond1 32 40 41 +atom 43 (6) (1864, -7238, -1344) def +bond1 31 40 +atom 44 (6) (1851, -5675, -1335) def +bond1 39 43 +atom 45 (1) (2669, -5303, -1950) def +bond1 44 +atom 46 (1) (2679, -8742, 8) def +bond1 40 +atom 47 (1) (2629, -5326, 2006) def +bond1 41 +atom 48 (1) (2638, -4171, 34) def +bond1 39 +atom 49 (1) (2689, -7588, -1964) def +bond1 43 +atom 50 (1) (2649, -7611, 1994) def +bond1 42 +atom 51 (6) (-591, -4924, -2) def +bond1 36 +atom 52 (6) (-563, -8047, -20) def +bond1 34 +atom 53 (6) (-597, -5712, 1346) def +bond1 51 35 +atom 54 (6) (-584, -7274, 1337) def +bond1 52 53 32 38 +atom 55 (6) (-556, -7258, -1369) def +bond1 52 31 37 +atom 56 (6) (-570, -5696, -1360) def +bond1 51 55 33 +atom 57 (8) (643, -5269, -2058) def +bond1 56 44 +atom 58 (8) (653, -8861, -12) def +bond1 52 40 +atom 59 (8) (602, -5293, 2073) def +bond1 53 41 +atom 60 (8) (612, -4094, 14) def +bond1 51 39 +rmotor (Rotary Motor-38) (127, 127, 127) 1.00 1.00 (-577, -6485, -11) (999, 8, 10) 2.00 0.50 0.10 +shaft 51 52 53 54 55 56 +thermo (Thermo-39) (153, 0, 51) 31 60 32 +egroup (Untitled-copy4) +egroup (2 planet gears with motors) +end1 +group (Clipboard) +info opengroup open = False +ground (Anchor-40) (0, 0, 0) 22 19 20 21 23 24 +info leaf disabled = True +info leaf forwarded = 425120552 +egroup (Clipboard) +end molecular machine part 2 planet gears with motors diff --git a/sim/src/tests/motors/024_linearmotor_two_dodecahedranes.mmp b/sim/src/tests/motors/024_linearmotor_two_dodecahedranes.mmp new file mode 100755 index 000000000..4147657b9 --- /dev/null +++ b/sim/src/tests/motors/024_linearmotor_two_dodecahedranes.mmp @@ -0,0 +1,147 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.864164) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (024 linear motor two dodecahedranes) +info opengroup open = True +mol (Chunk-C747) tub +atom 1 (6) (187, 1541, 1421) def +atom 2 (6) (-1125, 2341, 1663) def +bond1 1 +atom 3 (0) (-984, 3061, 1905) def +bond1 2 +atom 4 (6) (201, 1073, -53) def +bond1 1 +atom 5 (6) (-1923, 2359, 329) def +bond1 2 +atom 6 (0) (-2055, 3083, 98) def +bond1 5 +atom 7 (6) (-1102, 1580, -735) def +bond1 4 5 +atom 8 (0) (-952, 2029, -1345) def +bond1 7 +atom 9 (6) (-2001, -947, 2697) def +atom 10 (0) (-2161, -1395, 3305) def +bond1 9 +atom 11 (6) (157, 283, 2322) def +bond1 1 +atom 12 (6) (153, -962, 1403) def +bond1 11 +atom 13 (6) (-1174, 295, 3128) def +bond1 9 11 +atom 14 (0) (-1049, 288, 3890) def +bond1 13 +atom 15 (6) (-1180, -1730, 1634) def +bond1 9 12 +atom 16 (0) (-1058, -2456, 1866) def +bond1 15 +atom 17 (6) (-1977, -1708, 300) def +bond1 15 +atom 18 (0) (-2129, -2425, 59) def +bond1 17 +atom 19 (6) (-1929, 335, -1162) def +bond1 7 +atom 20 (0) (-2064, 342, -1922) def +bond1 19 +atom 21 (6) (-3261, 347, -363) def +bond1 19 +atom 22 (0) (-3868, 359, -841) def +bond1 21 +atom 23 (6) (-1135, -936, -753) def +bond1 17 19 +atom 24 (0) (-997, -1380, -1369) def +bond1 23 +atom 25 (6) (-3291, -914, 540) def +bond1 17 21 +atom 26 (0) (-3908, -1351, 383) def +bond1 25 +atom 27 (6) (-3305, -445, 2020) def +bond1 9 25 +atom 28 (0) (-3928, -714, 2388) def +bond1 27 +atom 29 (6) (-3257, 1598, 557) def +bond1 5 21 +atom 30 (0) (-3863, 2052, 407) def +bond1 29 +atom 31 (6) (-3285, 1108, 2031) def +bond1 29 27 +atom 32 (0) (-3900, 1389, 2403) def +bond1 31 +atom 33 (6) (-1967, 1566, 2714) def +bond1 2 31 13 +atom 34 (0) (-2116, 2009, 3329) def +bond1 33 +atom 35 (6) (181, -473, -64) def +bond1 4 12 23 +atom 36 (6) (1504, -971, -716) def +bond1 35 +atom 37 (0) (1372, -1411, -1336) def +bond1 36 +atom 38 (6) (1459, -1766, 1671) def +bond1 12 +atom 39 (0) (1311, -2488, 1899) def +bond1 38 +atom 40 (6) (2295, -1765, 360) def +bond1 36 38 +atom 41 (0) (2434, -2486, 123) def +bond1 40 +atom 42 (6) (1465, 259, 3165) def +bond1 11 +atom 43 (0) (1319, 255, 3923) def +bond1 42 +atom 44 (6) (2271, -1005, 2757) def +bond1 38 42 +atom 45 (0) (2402, -1457, 3369) def +bond1 44 +atom 46 (6) (1514, 2306, 1701) def +bond1 1 +atom 47 (0) (1385, 3029, 1939) def +bond1 46 +atom 48 (6) (2304, 1508, 2775) def +bond1 42 46 +atom 49 (0) (2447, 1947, 3394) def +bond1 48 +atom 50 (6) (1537, 1545, -697) def +bond1 4 +atom 51 (0) (1417, 1998, -1311) def +bond1 50 +atom 52 (6) (2343, 279, -1101) def +bond1 36 50 +atom 53 (0) (2499, 282, -1857) def +bond1 52 +atom 54 (6) (2349, 2302, 390) def +bond1 46 50 +atom 55 (0) (2507, 3023, 163) def +bond1 54 +atom 56 (6) (3622, -1007, 637) def +bond1 40 +atom 57 (0) (4232, -1460, 498) def +bond1 56 +atom 58 (6) (3652, 255, -265) def +bond1 52 56 +atom 59 (0) (4272, 250, -725) def +bond1 58 +atom 60 (6) (3607, -538, 2118) def +bond1 56 44 +atom 61 (0) (4212, -824, 2503) def +bond1 60 +atom 62 (6) (3628, 1015, 2129) def +bond1 60 48 +atom 63 (0) (4240, 1279, 2519) def +bond1 62 +atom 64 (6) (3655, 1505, 656) def +bond1 54 58 62 +atom 65 (0) (4277, 1943, 523) def +bond1 64 +lmotor (Linear Motor-27) (127, 127, 127) 1.000000 0.100000 (176, 292, 1006) (-999, 13, -14) 10.00 1.00 0.10 +shaft 1 4 11 12 35 +thermo (Thermo-28) (153, 0, 51) 1 65 1 +egroup (024 linear motor two dodecahedranes) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 024 linear motor two dodecahedranes diff --git a/sim/src/tests/motors/025_two_linearmotors_applying_equal_forces_normal_to_each_other.mmp b/sim/src/tests/motors/025_two_linearmotors_applying_equal_forces_normal_to_each_other.mmp new file mode 100755 index 000000000..d3cd0383f --- /dev/null +++ b/sim/src/tests/motors/025_two_linearmotors_applying_equal_forces_normal_to_each_other.mmp @@ -0,0 +1,69 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.539646) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (025 linearmotors %28two%29 applying equal forces normal to each other) +info opengroup open = True +mol (Chunk-C1055) def +atom 1 (6) (12, -36, 0) def +atom 2 (1) (639, 591, 627) def +bond1 1 +atom 3 (1) (-615, 591, -627) def +bond1 1 +atom 4 (1) (-615, -664, 627) def +bond1 1 +atom 5 (1) (639, -664, -627) def +bond1 1 +lmotor (Linear Motor-1) (85, 170, 127) 1.000000 0.000000 (12, -36, 0) (0, 0, -1000) 3.00 0.50 0.10 +shaft 1 +lmotor (Linear Motor-2) (85, 85, 255) 1.000000 0.000000 (12, -36, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 1 +group (Clipboard item 1) +info opengroup open = True +mol (reference X) def +info leaf hidden = True +atom 6 (1) (20627, 627, 627) def +atom 7 (1) (19372, 627, -627) def +atom 8 (1) (19372, -627, 627) def +atom 9 (1) (20627, -627, -627) def +atom 10 (6) (20000, 0, 0) def +bond1 6 7 8 9 +ground (Anchor-X) (0, 0, 0) 6 7 8 9 10 +info leaf hidden = True +mol (reference Z) def +info leaf hidden = True +atom 11 (1) (627, 627, 20627) def +atom 12 (1) (-627, 627, 19372) def +atom 13 (1) (-627, -627, 20627) def +atom 14 (1) (627, -627, 19372) def +atom 15 (6) (0, 0, 20000) def +bond1 11 12 13 14 +ground (Anchor-Z) (0, 0, 0) 11 12 13 14 15 +info leaf hidden = True +mol (reference Y) def +info leaf hidden = True +atom 16 (1) (639, 20591, 627) def +atom 17 (1) (-615, 20591, -627) def +atom 18 (1) (-615, 19335, 627) def +atom 19 (1) (639, 19335, -627) def +atom 20 (6) (12, 19963, 0) def +bond1 16 17 18 19 +ground (Anchor-Y) (0, 0, 0) 16 17 18 19 20 +info leaf hidden = True +egroup (Clipboard item 1) +thermo (Thermo-33) (153, 0, 51) 1 5 2 +group (distance from reference) +info opengroup open = True +mdistance (Distance-X) (0, 0, 0) (Helvetica) 10 10 1 +mdistance (Distance-32) (0, 0, 0) (Helvetica) 10 15 1 +mdistance (Distance Y) (0, 0, 0) (Helvetica) 10 20 1 +egroup (distance from reference) +egroup (025 linearmotors %28two%29 applying equal forces normal to each other) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 025 linearmotors (two) applying equal forces normal to each other diff --git a/sim/src/tests/motors/026_two_linearmotors_applying_equal_and_opposite_forces.mmp b/sim/src/tests/motors/026_two_linearmotors_applying_equal_and_opposite_forces.mmp new file mode 100755 index 000000000..d15555c09 --- /dev/null +++ b/sim/src/tests/motors/026_two_linearmotors_applying_equal_and_opposite_forces.mmp @@ -0,0 +1,69 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.707107, 0.000000, -0.707107, 0.000000) (1.898190) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (026 linearmotors %28two%29 applying equal and opposite forces) +info opengroup open = True +mol (Chunk-C1055) def +atom 1 (6) (12, -36, 0) def +atom 2 (1) (639, 591, 627) def +bond1 1 +atom 3 (1) (-615, 591, -627) def +bond1 1 +atom 4 (1) (-615, -664, 627) def +bond1 1 +atom 5 (1) (639, -664, -627) def +bond1 1 +lmotor (Linear Motor-1) (85, 170, 127) 1.000000 0.000000 (12, -36, 0) (0, 0, -1000) 3.00 0.50 0.10 +shaft 1 +lmotor (Linear Motor-2) (85, 85, 255) -1.000000 0.000000 (12, -36, 0) (0, 0, -1000) 3.00 0.50 0.10 +shaft 1 +group (Clipboard item 1) +info opengroup open = True +mol (reference X) def +info leaf hidden = True +atom 6 (1) (20627, 627, 627) def +atom 7 (1) (19372, 627, -627) def +atom 8 (1) (19372, -627, 627) def +atom 9 (1) (20627, -627, -627) def +atom 10 (6) (20000, 0, 0) def +bond1 6 7 8 9 +ground (Anchor-X) (0, 0, 0) 6 7 8 9 10 +info leaf hidden = True +mol (reference Z) def +info leaf hidden = True +atom 11 (1) (627, 627, 20627) def +atom 12 (1) (-627, 627, 19372) def +atom 13 (1) (-627, -627, 20627) def +atom 14 (1) (627, -627, 19372) def +atom 15 (6) (0, 0, 20000) def +bond1 11 12 13 14 +ground (Anchor-Z) (0, 0, 0) 11 12 13 14 15 +info leaf hidden = True +mol (reference Y) def +info leaf hidden = True +atom 16 (1) (639, 20591, 627) def +atom 17 (1) (-615, 20591, -627) def +atom 18 (1) (-615, 19335, 627) def +atom 19 (1) (639, 19335, -627) def +atom 20 (6) (12, 19963, 0) def +bond1 16 17 18 19 +ground (Anchor-Y) (0, 0, 0) 16 17 18 19 20 +info leaf hidden = True +egroup (Clipboard item 1) +thermo (Thermo-33) (153, 0, 51) 1 5 2 +group (distance from reference) +info opengroup open = True +mdistance (Distance-X) (0, 0, 0) (Helvetica) 10 10 1 +mdistance (Distance-32) (0, 0, 0) (Helvetica) 10 15 1 +mdistance (Distance Y) (0, 0, 0) (Helvetica) 10 20 1 +egroup (distance from reference) +egroup (026 linearmotors %28two%29 applying equal and opposite forces) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 026 linearmotors (two) applying equal and opposite forces diff --git a/sim/src/tests/motors/027_two_rotarymotors_applying_equal_and_opposite_torque.mmp b/sim/src/tests/motors/027_two_rotarymotors_applying_equal_and_opposite_torque.mmp new file mode 100755 index 000000000..2160b3946 --- /dev/null +++ b/sim/src/tests/motors/027_two_rotarymotors_applying_equal_and_opposite_torque.mmp @@ -0,0 +1,148 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.707107, 0.000000, -0.707107, 0.000000) (5.762051) (2.091834, 0.288181, 0.099965) (1.000000) +egroup (View Data) +group (027 rotarymotors%28two%29 applying equal and opposite torque) +info opengroup open = True +mol (shaft) cpk +atom 1 (6) (-1290, 1212, -1723) def +atom 2 (7) (-1406, 718, -3118) def +bond1 1 +atom 3 (6) (-2592, -789, -1010) def +atom 4 (7) (-2615, 1472, -3480) def +bond1 2 +atom 5 (6) (-2602, 702, -1018) def +bond1 1 3 +atom 6 (6) (-2585, -1241, 411) def +bond1 3 +atom 7 (6) (-3925, 1195, -1715) def +bond1 5 +atom 8 (7) (-3811, 702, -3110) def +bond1 4 7 +atom 9 (6) (-2600, 1172, 396) def +bond1 5 +atom 10 (6) (-5217, -828, -1031) def +atom 11 (6) (-2590, -28, 1280) def +bond1 6 9 +atom 12 (6) (-1273, -1291, -1707) def +bond1 3 +atom 13 (6) (-5227, 706, -1041) def +bond1 7 10 +atom 14 (7) (-1379, -2771, -1669) def +bond1 12 +atom 15 (6) (-5209, -1293, 431) def +bond1 10 +atom 16 (6) (-5225, 1190, 415) def +bond1 13 +atom 17 (6) (-5214, -45, 1326) def +bond1 15 16 +atom 18 (6) (-3909, -1308, -1699) def +bond1 3 10 +atom 19 (7) (-3784, -2787, -1661) def +bond1 18 +atom 20 (6) (-3896, -2067, 687) def +bond1 6 15 +atom 21 (6) (-3922, 1984, 660) def +bond1 9 16 +atom 22 (6) (-3905, -31, 2145) def +bond1 11 17 +atom 23 (7) (-3806, 2424, 2073) def +bond1 21 +atom 24 (7) (-3818, 3159, -239) def +bond1 21 +atom 25 (7) (-3774, -2487, 2105) def +bond1 20 +atom 26 (7) (-3820, 2675, -1696) def +bond1 7 24 +atom 27 (7) (-3801, -832, -3101) def +bond1 8 18 +atom 28 (7) (-3795, 1187, 2984) def +bond1 22 23 +atom 29 (7) (-3777, -3252, -198) def +bond1 19 20 +atom 30 (7) (-3779, -1239, 2999) def +bond1 22 25 +atom 31 (6) (-1261, -2050, 678) def +bond1 6 +atom 32 (6) (-1287, 2001, 652) def +bond1 9 +atom 33 (6) (-1269, -14, 2137) def +bond1 11 +atom 34 (7) (-1400, 2439, 2066) def +bond1 32 +atom 35 (7) (-1413, 3174, -247) def +bond1 32 +atom 36 (7) (-1369, -2471, 2097) def +bond1 31 +atom 37 (7) (-1414, 2691, -1704) def +bond1 1 35 +atom 38 (7) (-1396, -817, -3108) def +bond1 2 12 +atom 39 (7) (-1389, 1203, 2976) def +bond1 33 34 +atom 40 (7) (-1371, -3236, -206) def +bond1 14 31 +atom 41 (7) (-1374, -1223, 2992) def +bond1 33 36 +atom 42 (7) (-2583, -2891, -2503) def +bond1 14 19 +atom 43 (7) (-2567, -3310, 1949) def +bond1 25 36 +atom 44 (7) (-2617, 3750, 368) def +bond1 24 35 +atom 45 (7) (-2587, 793, 3724) def +bond1 28 39 +atom 46 (7) (-2620, 2784, -2539) def +bond1 4 26 37 +atom 47 (7) (-2595, -1591, -3460) def +bond1 27 38 42 +atom 48 (7) (-2568, -3819, 417) def +bond1 29 40 43 +atom 49 (7) (-2609, 3261, 1906) def +bond1 23 34 44 +atom 50 (7) (-2577, -820, 3734) def +bond1 30 41 45 +atom 51 (1) (-6082, -1227, -1562) def +bond1 10 +atom 52 (1) (-6097, 1086, -1577) def +bond1 13 +atom 53 (1) (-6071, -1927, 643) def +bond1 15 +atom 54 (1) (-6095, 1816, 619) def +bond1 16 +atom 55 (1) (-6079, -47, 1991) def +bond1 17 +atom 56 (6) (23, 1224, 399) def +bond1 32 +atom 57 (1) (886, 1861, 596) def +bond1 56 +atom 58 (6) (34, -11, 1309) def +bond1 33 56 +atom 59 (1) (903, -2, 1968) def +bond1 58 +atom 60 (6) (40, -1259, 414) def +bond1 31 58 +atom 61 (1) (911, -1882, 620) def +bond1 60 +atom 62 (6) (32, -794, -1048) def +bond1 12 60 +atom 63 (1) (899, -1181, -1584) def +bond1 62 +atom 64 (6) (22, 740, -1058) def +bond1 1 56 62 +atom 65 (1) (884, 1132, -1599) def +bond1 64 +rmotor (Rotary Motor-34) (85, 170, 255) 1.00 1.50 (-2594, -37, 11) (999, 6, -3) 6.00 0.50 0.10 +shaft 5 9 11 6 3 +thermo (Thermo-36) (153, 0, 51) 1 65 49 +rmotor (Rotary Motor-37) (170, 0, 0) -1.00 1.50 (-2594, -37, 11) (999, 6, -3) 6.00 0.50 0.10 +shaft 9 11 6 3 5 +egroup (027 rotarymotors%28two%29 applying equal and opposite torque) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 027 rotarymotors(two) applying equal and opposite torque diff --git a/sim/src/tests/motors/028_bug1306_test2.mmp b/sim/src/tests/motors/028_bug1306_test2.mmp new file mode 100755 index 000000000..69f8d4a83 --- /dev/null +++ b/sim/src/tests/motors/028_bug1306_test2.mmp @@ -0,0 +1,39 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.278874) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (028 bug1306-test2) +info opengroup open = True +mol (Chunk-C11) def +atom 1 (6) (-1465, -273, 0) def +atom 2 (1) (-810, 343, 610) def +bond1 1 +atom 3 (1) (-2098, 366, -610) def +bond1 1 +atom 4 (1) (-2086, -890, 644) def +bond1 1 +atom 5 (1) (-866, -911, -644) def +bond1 1 +mol (Chunk-C16) def +atom 6 (6) (2397, -413, 0) def +atom 7 (1) (3019, 203, 644) def +bond1 6 +atom 8 (1) (1798, 225, -644) def +bond1 6 +atom 9 (1) (1742, -1030, 610) def +bond1 6 +atom 10 (1) (3030, -1052, -610) def +bond1 6 +rmotor (Rotary Motor-3) (127, 127, 127) 2.00 2.00 (466, -343, 0) (0, 0, -1000) 10.00 0.50 0.10 +shaft 1 6 +mdistance (Distance-6) (0, 0, 0) (Helvetica) 10 1 6 +thermo (Thermo-7) (153, 0, 51) 1 5 1 +egroup (028 bug1306-test2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 028 bug1306-test2 diff --git a/sim/src/tests/motors/029_bug_1331.mmp b/sim/src/tests/motors/029_bug_1331.mmp new file mode 100755 index 000000000..d3aa36563 --- /dev/null +++ b/sim/src/tests/motors/029_bug_1331.mmp @@ -0,0 +1,147 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (-0.057277, 0.001926, 0.995648, 0.073492) (11.015582) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (1331) +info opengroup open = True +mol (Planet Gear.1-copy1) tub +atom 1 (1) (-12733, -1326, 19) def +atom 2 (6) (-11649, -1329, 21) def +bond1 1 +atom 3 (7) (-11033, 15, -435) def +bond1 2 +atom 4 (7) (-11160, -1670, 1459) def +bond1 2 +atom 5 (7) (-11189, -2461, -897) def +bond1 2 +atom 6 (6) (-10167, -372, -1692) def +bond1 3 +atom 7 (6) (-10173, 547, 683) def +bond1 3 +atom 8 (6) (-10215, -491, 1830) def +bond1 4 7 +atom 9 (6) (-10352, -2914, 1439) def +bond1 4 +atom 10 (6) (-10381, -3448, 15) def +bond1 5 9 +atom 11 (6) (-10275, -1880, -1897) def +bond1 5 6 +atom 12 (6) (-8773, -486, -1149) def +bond1 6 +atom 13 (1) (-10211, 280, -2559) def +bond1 6 +atom 14 (6) (-8781, 34, 333) def +bond1 7 12 +atom 15 (1) (-10323, 1604, 898) def +bond1 7 +atom 16 (6) (-8818, -987, 1487) def +bond1 8 14 +atom 17 (1) (-10297, -93, 2853) def +bond1 8 +atom 18 (6) (-8896, -2453, 1273) def +bond1 9 16 +atom 19 (1) (-10549, -3600, 2262) def +bond1 9 +atom 20 (6) (-8892, -3005, -157) def +bond1 10 18 +atom 21 (1) (-10656, -4511, -81) def +bond1 10 +atom 22 (6) (-8843, -2001, -1357) def +bond1 11 12 20 +atom 23 (1) (-10392, -2192, -2933) def +bond1 11 +atom 24 (8) (-7581, -24, -1836) def +bond1 12 +atom 25 (8) (-7634, 973, 565) def +bond1 14 +atom 26 (8) (-7783, -735, 2449) def +bond1 16 +atom 27 (8) (-7844, -3077, 2075) def +bond1 18 +atom 28 (8) (-7892, -4011, -297) def +bond1 20 +atom 29 (8) (-7707, -2446, -2200) def +bond1 22 +atom 30 (6) (-6475, -618, -1080) def +bond1 24 +atom 31 (6) (-6518, -33, 404) def +bond1 25 30 +atom 32 (6) (-6555, -1044, 1644) def +bond1 26 31 +atom 33 (6) (-6627, -2605, 1357) def +bond1 27 32 +atom 34 (6) (-6622, -3203, -125) def +bond1 28 33 +atom 35 (6) (-6501, -2188, -1371) def +bond1 29 30 34 +atom 36 (8) (-5229, -73, -1670) def +bond1 30 +atom 37 (8) (-5336, 748, 596) def +bond1 31 +atom 38 (8) (-5407, -778, 2461) def +bond1 32 +atom 39 (8) (-5503, -3230, 2040) def +bond1 33 +atom 40 (8) (-5490, -4154, -256) def +bond1 34 +atom 41 (8) (-5327, -2558, -2126) def +bond1 35 +atom 42 (6) (-4114, -731, -998) def +bond1 36 +atom 43 (6) (-4160, -164, 484) def +bond1 37 42 +atom 44 (6) (-4235, -1159, 1703) def +bond1 38 43 +atom 45 (6) (-4319, -2718, 1387) def +bond1 39 44 +atom 46 (6) (-4242, -3293, -65) def +bond1 40 45 +atom 47 (6) (-4219, -2296, -1232) def +bond1 41 42 46 +atom 48 (8) (-2864, -254, -1672) def +bond1 42 +atom 49 (8) (-2979, 655, 582) def +bond1 43 +atom 50 (8) (-3048, -945, 2604) def +bond1 44 +atom 51 (8) (-3174, -3242, 2153) def +bond1 45 +atom 52 (8) (-3123, -4219, -72) def +bond1 46 +atom 53 (8) (-3019, -2621, -2037) def +bond1 47 +atom 54 (6) (-1747, -829, -912) def +bond1 48 +atom 55 (6) (-1823, -244, 583) def +bond1 49 54 +atom 56 (6) (-1867, -1243, 1817) def +bond1 50 55 +atom 57 (6) (-1908, -2802, 1503) def +bond1 51 56 +atom 58 (6) (-1923, -3364, 40) def +bond1 52 57 +atom 59 (6) (-1844, -2362, -1167) def +bond1 53 54 58 +atom 60 (1) (-868, -490, -1476) def +bond1 54 +atom 61 (1) (-878, 317, 590) def +bond1 55 +atom 62 (1) (-1048, -944, 2485) def +bond1 56 +atom 63 (1) (-1080, -3205, 2149) def +bond1 57 +atom 64 (1) (-1135, -4123, 43) def +bond1 58 +atom 65 (1) (-909, -2687, -1624) def +bond1 59 +lmotor (Linear Motor-5) (127, 127, 127) 0.000000 0.000000 (-1762, 1849, 720) (-998, 46, -30) 10.00 2.00 0.50 +shaft 54 55 56 57 58 59 +egroup (1331) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 1331 diff --git a/sim/src/tests/motors/030_rotarymotor_and_linear_motor_attached_to_same_atoms.mmp b/sim/src/tests/motors/030_rotarymotor_and_linear_motor_attached_to_same_atoms.mmp new file mode 100755 index 000000000..c5dd85f91 --- /dev/null +++ b/sim/src/tests/motors/030_rotarymotor_and_linear_motor_attached_to_same_atoms.mmp @@ -0,0 +1,81 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.755774) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (030- rotarymotor and linear motor attached to same atoms) +info opengroup open = True +mol (chunk1) tub +atom 1 (1) (-962, -1985, -1175) def +atom 2 (1) (-1007, 16, 2258) def +atom 3 (1) (-1050, 15, -2296) def +atom 4 (1) (-945, -1987, 1113) def +mol (chunk2) tub +atom 5 (1) (-1061, 1971, 1136) def +atom 6 (1) (-1083, 1989, -1151) def +forward_ref (242586488) # thermo (Thermo-85) +forward_ref (242587008) # ground (Anchor-86) +forward_ref (242586568) # stat (Stat-87) +mol (chunk1-frag178) tub +atom 7 (6) (-172, -1319, -815) def +bond1 1 +atom 8 (8) (1065, -1990, -1241) def +bond1 7 +atom 9 (8) (1026, 56, 2351) def +atom 10 (8) (981, 78, -2423) def +atom 11 (8) (1071, -1999, 1144) def +atom 12 (6) (-221, 36, -1587) def +bond1 7 10 3 +atom 13 (6) (-195, 18, 1536) def +bond1 9 2 +atom 14 (6) (-151, -1327, 746) def +bond1 13 7 11 4 +atom 15 (8) (922, 2137, -1215) def +atom 16 (8) (945, 2127, 1171) def +atom 17 (6) (-246, 1376, 762) def +bond1 13 16 5 +atom 18 (6) (-255, 1385, -799) def +bond1 17 15 12 6 +atom 19 (6) (2167, 1461, 740) def +bond1 16 +atom 20 (6) (2154, 1466, -815) def +bond1 19 15 +atom 21 (6) (2251, -1239, -834) def +bond1 8 +atom 22 (6) (2195, 116, -1601) def +bond1 21 20 10 +atom 23 (6) (2221, 96, 1511) def +bond1 19 9 +atom 24 (6) (2260, -1245, 729) def +bond1 21 23 11 +atom 25 (1) (2957, 2106, -1182) def +bond1 20 +atom 26 (1) (2984, 2102, 1107) def +bond1 19 +atom 27 (1) (3115, -1829, 1089) def +bond1 24 +atom 28 (1) (3080, -1846, -1211) def +bond1 21 +atom 29 (1) (3022, 118, 2227) def +bond1 23 +atom 30 (1) (2994, 167, -2336) def +bond1 22 +thermo (Thermo-85) (153, 0, 51) 7 30 17 +info leaf forwarded = 242586488 +stat (Stat-87) (0, 0, 153) (300) 7 30 12 +info leaf forwarded = 242586568 +lmotor (Linear Motor-181) (85, 170, 127) 0.800000 0.100000 (-208, 28, -26) (999, 33, -7) 4.00 0.80 0.10 +shaft 7 12 13 14 17 18 +rmotor (Rotary Motor-182) (85, 170, 255) -0.80 1.00 (-208, 28, -26) (-999, -33, 7) 5.00 0.50 0.10 +shaft 7 12 13 14 17 18 +egroup (030- rotarymotor and linear motor attached to same atoms) +end1 +group (Clipboard) +info opengroup open = False +ground (Anchor-86) (0, 0, 0) 14 +info leaf disabled = True +info leaf forwarded = 242587008 +egroup (Clipboard) +end molecular machine part 030- rotarymotor and linear motor attached to same atoms diff --git a/sim/src/tests/motors/test_001_linearmotor_0_force_and_0_stiffness.mmp b/sim/src/tests/motors/test_001_linearmotor_0_force_and_0_stiffness.mmp new file mode 100755 index 000000000..86c228fcf --- /dev/null +++ b/sim/src/tests/motors/test_001_linearmotor_0_force_and_0_stiffness.mmp @@ -0,0 +1,95 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (001 linearmotor-0 force and 0 Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) - +atom 2 (6) (-2395, -17, 1570) - +atom 3 (6) (-2396, 1360, -779) - +bond1 1 +atom 4 (6) (-2398, 1349, 793) - +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) - +bond1 2 +atom 6 (6) (-2389, -1363, -798) - +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) - +bond1 6 +atom 8 (8) (-1183, -20, 2400) - +bond1 2 +atom 9 (8) (-1185, 2085, -1187) - +bond1 3 +atom 10 (8) (-1178, 13, -2403) - +bond1 1 +atom 11 (8) (-1176, -2092, 1185) - +bond1 5 +atom 12 (8) (-1188, 2068, 1214) - +bond1 4 +atom 13 (1) (-3198, -1983, -1161) - +bond1 6 +atom 14 (1) (-3207, -25, 2285) - +bond1 2 +atom 15 (1) (-3209, 1980, -1133) - +bond1 3 +atom 16 (1) (-3203, 6, -2291) - +bond1 1 +atom 17 (1) (-3200, -1999, 1127) - +bond1 5 +atom 18 (1) (-3212, 1964, 1154) - +bond1 4 +atom 19 (6) (1, 10, -1545) - +bond1 10 +atom 20 (6) (-1, -10, 1545) - +bond1 8 +atom 21 (6) (-3, 1343, -763) - +bond1 19 9 +atom 22 (6) (-4, 1332, 781) - +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) - +bond1 20 11 +atom 24 (6) (4, -1332, -781) - +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) - +bond1 24 +atom 26 (8) (1178, -13, 2403) - +bond1 20 +atom 27 (8) (1176, 2092, -1185) - +bond1 21 +atom 28 (8) (1183, 20, -2400) - +bond1 19 +atom 29 (8) (1185, -2085, 1187) - +bond1 23 +atom 30 (8) (1173, 2075, 1216) - +bond1 22 +atom 31 (6) (2395, 17, -1570) - +bond1 28 +atom 32 (6) (2392, -4, 1575) - +bond1 26 +atom 33 (6) (2390, 1374, -774) - +bond1 31 27 +atom 34 (6) (2389, 1363, 798) - +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) - +bond1 32 29 +atom 36 (6) (2398, -1349, -793) - +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) - +bond1 36 +atom 38 (1) (3202, -6, 2291) - +bond1 32 +atom 39 (1) (3200, 1999, -1127) - +bond1 33 +atom 40 (1) (3207, 25, -2285) - +bond1 31 +atom 41 (1) (3209, -1980, 1133) - +bond1 35 +atom 42 (1) (3198, 1983, 1161) - +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) - +lmotor (Linear Motor-87) (127, 127, 127) 0.000000 0.000000 (0, 0, 0) (-999, -2, -1) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (001 linearmotor-0 force and 0 Stiffness) +end molecular machine part 001 linearmotor-0 force and 0 Stiffness diff --git a/sim/src/tests/motors/test_001_linearmotor_0_force_and_0_stiffness.trc b/sim/src/tests/motors/test_001_linearmotor_0_force_and_0_stiffness.trc new file mode 100755 index 000000000..eb997260a --- /dev/null +++ b/sim/src/tests/motors/test_001_linearmotor_0_force_and_0_stiffness.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_001_linearmotor_0_force_and_0_stiffness.trc test_001_linearmotor_0_force_and_0_stiffness.mmp +# Date and Time: Wed Apr 19 10:53:30 2006 +# Input File: test_001_linearmotor_0_force_and_0_stiffness.mmp +# Output File: test_001_linearmotor_0_force_and_0_stiffness.xyz +# Trace File: test_001_linearmotor_0_force_and_0_stiffness.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 43 +# +# 3 columns: +# Linear Motor-87: displacement (angstroms) +# Thermo-89: temperature (K) +# Distance-90: distance (angstroms) +# +# Time Lmotor T.meter Distance +# picosec Linear Motor-87 Thermo-89 Distance-90 +# + 0.0100 -0.0011 275.00 11.9524 +# Done: diff --git a/sim/src/tests/motors/test_001_linearmotor_0_force_and_0_stiffness.xyzcmp b/sim/src/tests/motors/test_001_linearmotor_0_force_and_0_stiffness.xyzcmp new file mode 100755 index 000000000..7a7aeb4b5 --- /dev/null +++ b/sim/src/tests/motors/test_001_linearmotor_0_force_and_0_stiffness.xyzcmp @@ -0,0 +1,45 @@ +43 +Frame 0, Iteration: 100 +C -2.384520 0.023659 -1.590936 +C -2.447225 -0.026425 1.533208 +C -2.382924 1.348362 -0.782164 +C -2.436116 1.348710 0.807685 +C -2.340149 -1.361579 0.743861 +C -2.392643 -1.365139 -0.832077 +O -1.182652 -2.096301 -1.191623 +O -1.202438 -0.059868 2.375353 +O -1.192253 2.086120 -1.183367 +O -1.184429 -0.005255 -2.371039 +O -1.165309 -2.086100 1.210826 +O -1.208841 2.040081 1.231401 +H -3.203631 -1.993944 -1.202253 +H -3.186326 -0.048005 2.338801 +H -3.152667 2.024918 -1.150846 +H -3.224255 0.108047 -2.282196 +H -3.172339 -1.967469 1.096543 +H -3.265490 1.966318 1.163569 +C -0.025847 0.009946 -1.545027 +C 0.012149 -0.009974 1.545013 +C -0.017888 1.342970 -0.763015 +C -0.004797 1.331998 0.780999 +C 0.041477 -1.342923 0.763039 +C 0.005668 -1.331997 -0.780998 +O 1.229277 -2.067242 -1.191253 +O 1.184379 0.022704 2.388404 +O 1.155272 2.065777 -1.180814 +O 1.130272 0.033435 -2.411249 +O 1.194073 -2.094054 1.148033 +O 1.181336 2.126834 1.210237 +C 2.390598 0.034884 -1.589298 +C 2.415908 -0.012748 1.613791 +C 2.413195 1.391699 -0.763885 +C 2.415675 1.378667 0.799644 +C 2.400851 -1.377538 0.817765 +C 2.426258 -1.330300 -0.793473 +H 3.248352 -1.985834 -1.086114 +H 3.195466 -0.040784 2.378300 +H 3.262477 1.985010 -1.117154 +H 3.184162 0.096065 -2.335681 +H 3.186217 -2.043156 1.181284 +H 3.286537 1.975972 1.096039 +Ne 11.986328 -0.028886 1.543347 diff --git a/sim/src/tests/motors/test_002_linearmotor_0_force_and_negative_stiffness.mmp b/sim/src/tests/motors/test_002_linearmotor_0_force_and_negative_stiffness.mmp new file mode 100755 index 000000000..23b597942 --- /dev/null +++ b/sim/src/tests/motors/test_002_linearmotor_0_force_and_negative_stiffness.mmp @@ -0,0 +1,95 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (002 linearmotor-0 force and negative Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) - +atom 2 (6) (-2395, -17, 1570) - +atom 3 (6) (-2396, 1360, -779) - +bond1 1 +atom 4 (6) (-2398, 1349, 793) - +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) - +bond1 2 +atom 6 (6) (-2389, -1363, -798) - +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) - +bond1 6 +atom 8 (8) (-1183, -20, 2400) - +bond1 2 +atom 9 (8) (-1185, 2085, -1187) - +bond1 3 +atom 10 (8) (-1178, 13, -2403) - +bond1 1 +atom 11 (8) (-1176, -2092, 1185) - +bond1 5 +atom 12 (8) (-1188, 2068, 1214) - +bond1 4 +atom 13 (1) (-3198, -1983, -1161) - +bond1 6 +atom 14 (1) (-3207, -25, 2285) - +bond1 2 +atom 15 (1) (-3209, 1980, -1133) - +bond1 3 +atom 16 (1) (-3203, 6, -2291) - +bond1 1 +atom 17 (1) (-3200, -1999, 1127) - +bond1 5 +atom 18 (1) (-3212, 1964, 1154) - +bond1 4 +atom 19 (6) (1, 10, -1545) - +bond1 10 +atom 20 (6) (-1, -10, 1545) - +bond1 8 +atom 21 (6) (-3, 1343, -763) - +bond1 19 9 +atom 22 (6) (-4, 1332, 781) - +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) - +bond1 20 11 +atom 24 (6) (4, -1332, -781) - +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) - +bond1 24 +atom 26 (8) (1178, -13, 2403) - +bond1 20 +atom 27 (8) (1176, 2092, -1185) - +bond1 21 +atom 28 (8) (1183, 20, -2400) - +bond1 19 +atom 29 (8) (1185, -2085, 1187) - +bond1 23 +atom 30 (8) (1173, 2075, 1216) - +bond1 22 +atom 31 (6) (2395, 17, -1570) - +bond1 28 +atom 32 (6) (2392, -4, 1575) - +bond1 26 +atom 33 (6) (2390, 1374, -774) - +bond1 31 27 +atom 34 (6) (2389, 1363, 798) - +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) - +bond1 32 29 +atom 36 (6) (2398, -1349, -793) - +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) - +bond1 36 +atom 38 (1) (3202, -6, 2291) - +bond1 32 +atom 39 (1) (3200, 1999, -1127) - +bond1 33 +atom 40 (1) (3207, 25, -2285) - +bond1 31 +atom 41 (1) (3209, -1980, 1133) - +bond1 35 +atom 42 (1) (3198, 1983, 1161) - +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) - +lmotor (Linear Motor-87) (127, 127, 127) 0.000000 -0.100000 (0, 0, 0) (-999, -2, -1) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (002 linearmotor-0 force and negative Stiffness) +end molecular machine part 002 linearmotor-0 force and negative Stiffness diff --git a/sim/src/tests/motors/test_002_linearmotor_0_force_and_negative_stiffness.trc b/sim/src/tests/motors/test_002_linearmotor_0_force_and_negative_stiffness.trc new file mode 100755 index 000000000..3490ebf23 --- /dev/null +++ b/sim/src/tests/motors/test_002_linearmotor_0_force_and_negative_stiffness.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_002_linearmotor_0_force_and_negative_stiffness.trc test_002_linearmotor_0_force_and_negative_stiffness.mmp +# Date and Time: Wed Apr 19 10:53:29 2006 +# Input File: test_002_linearmotor_0_force_and_negative_stiffness.mmp +# Output File: test_002_linearmotor_0_force_and_negative_stiffness.xyz +# Trace File: test_002_linearmotor_0_force_and_negative_stiffness.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 43 +# +# 3 columns: +# Linear Motor-87: displacement (angstroms) +# Thermo-89: temperature (K) +# Distance-90: distance (angstroms) +# +# Time Lmotor T.meter Distance +# picosec Linear Motor-87 Thermo-89 Distance-90 +# + 0.0100 -0.0011 275.00 11.9524 +# Done: diff --git a/sim/src/tests/motors/test_002_linearmotor_0_force_and_negative_stiffness.xyzcmp b/sim/src/tests/motors/test_002_linearmotor_0_force_and_negative_stiffness.xyzcmp new file mode 100755 index 000000000..7a7aeb4b5 --- /dev/null +++ b/sim/src/tests/motors/test_002_linearmotor_0_force_and_negative_stiffness.xyzcmp @@ -0,0 +1,45 @@ +43 +Frame 0, Iteration: 100 +C -2.384520 0.023659 -1.590936 +C -2.447225 -0.026425 1.533208 +C -2.382924 1.348362 -0.782164 +C -2.436116 1.348710 0.807685 +C -2.340149 -1.361579 0.743861 +C -2.392643 -1.365139 -0.832077 +O -1.182652 -2.096301 -1.191623 +O -1.202438 -0.059868 2.375353 +O -1.192253 2.086120 -1.183367 +O -1.184429 -0.005255 -2.371039 +O -1.165309 -2.086100 1.210826 +O -1.208841 2.040081 1.231401 +H -3.203631 -1.993944 -1.202253 +H -3.186326 -0.048005 2.338801 +H -3.152667 2.024918 -1.150846 +H -3.224255 0.108047 -2.282196 +H -3.172339 -1.967469 1.096543 +H -3.265490 1.966318 1.163569 +C -0.025847 0.009946 -1.545027 +C 0.012149 -0.009974 1.545013 +C -0.017888 1.342970 -0.763015 +C -0.004797 1.331998 0.780999 +C 0.041477 -1.342923 0.763039 +C 0.005668 -1.331997 -0.780998 +O 1.229277 -2.067242 -1.191253 +O 1.184379 0.022704 2.388404 +O 1.155272 2.065777 -1.180814 +O 1.130272 0.033435 -2.411249 +O 1.194073 -2.094054 1.148033 +O 1.181336 2.126834 1.210237 +C 2.390598 0.034884 -1.589298 +C 2.415908 -0.012748 1.613791 +C 2.413195 1.391699 -0.763885 +C 2.415675 1.378667 0.799644 +C 2.400851 -1.377538 0.817765 +C 2.426258 -1.330300 -0.793473 +H 3.248352 -1.985834 -1.086114 +H 3.195466 -0.040784 2.378300 +H 3.262477 1.985010 -1.117154 +H 3.184162 0.096065 -2.335681 +H 3.186217 -2.043156 1.181284 +H 3.286537 1.975972 1.096039 +Ne 11.986328 -0.028886 1.543347 diff --git a/sim/src/tests/motors/test_003_linearmotor_0_force_and_positive_stiffness.mmp b/sim/src/tests/motors/test_003_linearmotor_0_force_and_positive_stiffness.mmp new file mode 100755 index 000000000..9e286621e --- /dev/null +++ b/sim/src/tests/motors/test_003_linearmotor_0_force_and_positive_stiffness.mmp @@ -0,0 +1,95 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (003 linearmotor-0 force and positive Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) - +atom 2 (6) (-2395, -17, 1570) - +atom 3 (6) (-2396, 1360, -779) - +bond1 1 +atom 4 (6) (-2398, 1349, 793) - +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) - +bond1 2 +atom 6 (6) (-2389, -1363, -798) - +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) - +bond1 6 +atom 8 (8) (-1183, -20, 2400) - +bond1 2 +atom 9 (8) (-1185, 2085, -1187) - +bond1 3 +atom 10 (8) (-1178, 13, -2403) - +bond1 1 +atom 11 (8) (-1176, -2092, 1185) - +bond1 5 +atom 12 (8) (-1188, 2068, 1214) - +bond1 4 +atom 13 (1) (-3198, -1983, -1161) - +bond1 6 +atom 14 (1) (-3207, -25, 2285) - +bond1 2 +atom 15 (1) (-3209, 1980, -1133) - +bond1 3 +atom 16 (1) (-3203, 6, -2291) - +bond1 1 +atom 17 (1) (-3200, -1999, 1127) - +bond1 5 +atom 18 (1) (-3212, 1964, 1154) - +bond1 4 +atom 19 (6) (1, 10, -1545) - +bond1 10 +atom 20 (6) (-1, -10, 1545) - +bond1 8 +atom 21 (6) (-3, 1343, -763) - +bond1 19 9 +atom 22 (6) (-4, 1332, 781) - +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) - +bond1 20 11 +atom 24 (6) (4, -1332, -781) - +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) - +bond1 24 +atom 26 (8) (1178, -13, 2403) - +bond1 20 +atom 27 (8) (1176, 2092, -1185) - +bond1 21 +atom 28 (8) (1183, 20, -2400) - +bond1 19 +atom 29 (8) (1185, -2085, 1187) - +bond1 23 +atom 30 (8) (1173, 2075, 1216) - +bond1 22 +atom 31 (6) (2395, 17, -1570) - +bond1 28 +atom 32 (6) (2392, -4, 1575) - +bond1 26 +atom 33 (6) (2390, 1374, -774) - +bond1 31 27 +atom 34 (6) (2389, 1363, 798) - +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) - +bond1 32 29 +atom 36 (6) (2398, -1349, -793) - +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) - +bond1 36 +atom 38 (1) (3202, -6, 2291) - +bond1 32 +atom 39 (1) (3200, 1999, -1127) - +bond1 33 +atom 40 (1) (3207, 25, -2285) - +bond1 31 +atom 41 (1) (3209, -1980, 1133) - +bond1 35 +atom 42 (1) (3198, 1983, 1161) - +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) - +lmotor (Linear Motor-87) (127, 127, 127) 0.000000 0.100000 (0, 0, 0) (-999, -2, -1) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (003 linearmotor-0 force and positive Stiffness) +end molecular machine part 003 linearmotor-0 force and positive Stiffness diff --git a/sim/src/tests/motors/test_003_linearmotor_0_force_and_positive_stiffness.trc b/sim/src/tests/motors/test_003_linearmotor_0_force_and_positive_stiffness.trc new file mode 100755 index 000000000..d048dfc73 --- /dev/null +++ b/sim/src/tests/motors/test_003_linearmotor_0_force_and_positive_stiffness.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_003_linearmotor_0_force_and_positive_stiffness.trc test_003_linearmotor_0_force_and_positive_stiffness.mmp +# Date and Time: Wed Apr 19 10:53:29 2006 +# Input File: test_003_linearmotor_0_force_and_positive_stiffness.mmp +# Output File: test_003_linearmotor_0_force_and_positive_stiffness.xyz +# Trace File: test_003_linearmotor_0_force_and_positive_stiffness.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 43 +# +# 3 columns: +# Linear Motor-87: displacement (angstroms) +# Thermo-89: temperature (K) +# Distance-90: distance (angstroms) +# +# Time Lmotor T.meter Distance +# picosec Linear Motor-87 Thermo-89 Distance-90 +# + 0.0100 -0.0011 275.00 11.9524 +# Done: diff --git a/sim/src/tests/motors/test_003_linearmotor_0_force_and_positive_stiffness.xyzcmp b/sim/src/tests/motors/test_003_linearmotor_0_force_and_positive_stiffness.xyzcmp new file mode 100755 index 000000000..7a7aeb4b5 --- /dev/null +++ b/sim/src/tests/motors/test_003_linearmotor_0_force_and_positive_stiffness.xyzcmp @@ -0,0 +1,45 @@ +43 +Frame 0, Iteration: 100 +C -2.384520 0.023659 -1.590936 +C -2.447225 -0.026425 1.533208 +C -2.382924 1.348362 -0.782164 +C -2.436116 1.348710 0.807685 +C -2.340149 -1.361579 0.743861 +C -2.392643 -1.365139 -0.832077 +O -1.182652 -2.096301 -1.191623 +O -1.202438 -0.059868 2.375353 +O -1.192253 2.086120 -1.183367 +O -1.184429 -0.005255 -2.371039 +O -1.165309 -2.086100 1.210826 +O -1.208841 2.040081 1.231401 +H -3.203631 -1.993944 -1.202253 +H -3.186326 -0.048005 2.338801 +H -3.152667 2.024918 -1.150846 +H -3.224255 0.108047 -2.282196 +H -3.172339 -1.967469 1.096543 +H -3.265490 1.966318 1.163569 +C -0.025847 0.009946 -1.545027 +C 0.012149 -0.009974 1.545013 +C -0.017888 1.342970 -0.763015 +C -0.004797 1.331998 0.780999 +C 0.041477 -1.342923 0.763039 +C 0.005668 -1.331997 -0.780998 +O 1.229277 -2.067242 -1.191253 +O 1.184379 0.022704 2.388404 +O 1.155272 2.065777 -1.180814 +O 1.130272 0.033435 -2.411249 +O 1.194073 -2.094054 1.148033 +O 1.181336 2.126834 1.210237 +C 2.390598 0.034884 -1.589298 +C 2.415908 -0.012748 1.613791 +C 2.413195 1.391699 -0.763885 +C 2.415675 1.378667 0.799644 +C 2.400851 -1.377538 0.817765 +C 2.426258 -1.330300 -0.793473 +H 3.248352 -1.985834 -1.086114 +H 3.195466 -0.040784 2.378300 +H 3.262477 1.985010 -1.117154 +H 3.184162 0.096065 -2.335681 +H 3.186217 -2.043156 1.181284 +H 3.286537 1.975972 1.096039 +Ne 11.986328 -0.028886 1.543347 diff --git a/sim/src/tests/motors/test_004_linearmotor_negative_force_and_negative_stiffness.mmp b/sim/src/tests/motors/test_004_linearmotor_negative_force_and_negative_stiffness.mmp new file mode 100755 index 000000000..d72782e22 --- /dev/null +++ b/sim/src/tests/motors/test_004_linearmotor_negative_force_and_negative_stiffness.mmp @@ -0,0 +1,95 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (004 linearmotor-negative force and negative Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) - +atom 2 (6) (-2395, -17, 1570) - +atom 3 (6) (-2396, 1360, -779) - +bond1 1 +atom 4 (6) (-2398, 1349, 793) - +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) - +bond1 2 +atom 6 (6) (-2389, -1363, -798) - +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) - +bond1 6 +atom 8 (8) (-1183, -20, 2400) - +bond1 2 +atom 9 (8) (-1185, 2085, -1187) - +bond1 3 +atom 10 (8) (-1178, 13, -2403) - +bond1 1 +atom 11 (8) (-1176, -2092, 1185) - +bond1 5 +atom 12 (8) (-1188, 2068, 1214) - +bond1 4 +atom 13 (1) (-3198, -1983, -1161) - +bond1 6 +atom 14 (1) (-3207, -25, 2285) - +bond1 2 +atom 15 (1) (-3209, 1980, -1133) - +bond1 3 +atom 16 (1) (-3203, 6, -2291) - +bond1 1 +atom 17 (1) (-3200, -1999, 1127) - +bond1 5 +atom 18 (1) (-3212, 1964, 1154) - +bond1 4 +atom 19 (6) (1, 10, -1545) - +bond1 10 +atom 20 (6) (-1, -10, 1545) - +bond1 8 +atom 21 (6) (-3, 1343, -763) - +bond1 19 9 +atom 22 (6) (-4, 1332, 781) - +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) - +bond1 20 11 +atom 24 (6) (4, -1332, -781) - +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) - +bond1 24 +atom 26 (8) (1178, -13, 2403) - +bond1 20 +atom 27 (8) (1176, 2092, -1185) - +bond1 21 +atom 28 (8) (1183, 20, -2400) - +bond1 19 +atom 29 (8) (1185, -2085, 1187) - +bond1 23 +atom 30 (8) (1173, 2075, 1216) - +bond1 22 +atom 31 (6) (2395, 17, -1570) - +bond1 28 +atom 32 (6) (2392, -4, 1575) - +bond1 26 +atom 33 (6) (2390, 1374, -774) - +bond1 31 27 +atom 34 (6) (2389, 1363, 798) - +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) - +bond1 32 29 +atom 36 (6) (2398, -1349, -793) - +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) - +bond1 36 +atom 38 (1) (3202, -6, 2291) - +bond1 32 +atom 39 (1) (3200, 1999, -1127) - +bond1 33 +atom 40 (1) (3207, 25, -2285) - +bond1 31 +atom 41 (1) (3209, -1980, 1133) - +bond1 35 +atom 42 (1) (3198, 1983, 1161) - +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) - +lmotor (Linear Motor-87) (92, 127, 109) -1.500000 -0.100000 (0, 0, 0) (-999, -2, 0) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (004 linearmotor-negative force and negative Stiffness) +end molecular machine part 004 linearmotor-negative force and negative Stiffness diff --git a/sim/src/tests/motors/test_004_linearmotor_negative_force_and_negative_stiffness.trc b/sim/src/tests/motors/test_004_linearmotor_negative_force_and_negative_stiffness.trc new file mode 100755 index 000000000..62e8ce13d --- /dev/null +++ b/sim/src/tests/motors/test_004_linearmotor_negative_force_and_negative_stiffness.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_004_linearmotor_negative_force_and_negative_stiffness.trc test_004_linearmotor_negative_force_and_negative_stiffness.mmp +# Date and Time: Wed Apr 19 10:53:29 2006 +# Input File: test_004_linearmotor_negative_force_and_negative_stiffness.mmp +# Output File: test_004_linearmotor_negative_force_and_negative_stiffness.xyz +# Trace File: test_004_linearmotor_negative_force_and_negative_stiffness.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 43 +# +# 3 columns: +# Linear Motor-87: displacement (angstroms) +# Thermo-89: temperature (K) +# Distance-90: distance (angstroms) +# +# Time Lmotor T.meter Distance +# picosec Linear Motor-87 Thermo-89 Distance-90 +# + 0.0100 -0.0011 275.00 11.9525 +# Done: diff --git a/sim/src/tests/motors/test_004_linearmotor_negative_force_and_negative_stiffness.xyzcmp b/sim/src/tests/motors/test_004_linearmotor_negative_force_and_negative_stiffness.xyzcmp new file mode 100755 index 000000000..ba5322fbc --- /dev/null +++ b/sim/src/tests/motors/test_004_linearmotor_negative_force_and_negative_stiffness.xyzcmp @@ -0,0 +1,45 @@ +43 +Frame 0, Iteration: 100 +C -2.384520 0.023659 -1.590936 +C -2.447226 -0.026425 1.533208 +C -2.382924 1.348362 -0.782164 +C -2.436116 1.348709 0.807685 +C -2.340149 -1.361579 0.743861 +C -2.392643 -1.365139 -0.832077 +O -1.182652 -2.096300 -1.191623 +O -1.202440 -0.059868 2.375352 +O -1.192254 2.086119 -1.183366 +O -1.184424 -0.005255 -2.371035 +O -1.165309 -2.086099 1.210823 +O -1.208836 2.040080 1.231400 +H -3.203631 -1.993944 -1.202253 +H -3.186326 -0.048004 2.338801 +H -3.152667 2.024918 -1.150846 +H -3.224255 0.108047 -2.282197 +H -3.172339 -1.967469 1.096544 +H -3.265490 1.966318 1.163569 +C -0.025837 0.009946 -1.545000 +C 0.012136 -0.009974 1.545000 +C -0.017891 1.342970 -0.763000 +C -0.004764 1.331998 0.781000 +C 0.041470 -1.342923 0.763000 +C 0.005669 -1.331997 -0.781000 +O 1.229277 -2.067242 -1.191253 +O 1.184376 0.022702 2.388402 +O 1.155271 2.065776 -1.180814 +O 1.130272 0.033436 -2.411247 +O 1.194071 -2.094051 1.148031 +O 1.181342 2.126836 1.210238 +C 2.390598 0.034884 -1.589299 +C 2.415908 -0.012748 1.613791 +C 2.413195 1.391699 -0.763885 +C 2.415676 1.378667 0.799644 +C 2.400851 -1.377538 0.817765 +C 2.426258 -1.330300 -0.793473 +H 3.248352 -1.985834 -1.086114 +H 3.195466 -0.040784 2.378301 +H 3.262477 1.985010 -1.117154 +H 3.184162 0.096065 -2.335681 +H 3.186217 -2.043157 1.181284 +H 3.286538 1.975971 1.096039 +Ne 11.986328 -0.028886 1.543347 diff --git a/sim/src/tests/motors/test_005_linearmotor_negative_force_and_positive_stiffness.mmp b/sim/src/tests/motors/test_005_linearmotor_negative_force_and_positive_stiffness.mmp new file mode 100755 index 000000000..7c6033a70 --- /dev/null +++ b/sim/src/tests/motors/test_005_linearmotor_negative_force_and_positive_stiffness.mmp @@ -0,0 +1,95 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (005 linearmotor-negative force and positive Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) - +atom 2 (6) (-2395, -17, 1570) - +atom 3 (6) (-2396, 1360, -779) - +bond1 1 +atom 4 (6) (-2398, 1349, 793) - +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) - +bond1 2 +atom 6 (6) (-2389, -1363, -798) - +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) - +bond1 6 +atom 8 (8) (-1183, -20, 2400) - +bond1 2 +atom 9 (8) (-1185, 2085, -1187) - +bond1 3 +atom 10 (8) (-1178, 13, -2403) - +bond1 1 +atom 11 (8) (-1176, -2092, 1185) - +bond1 5 +atom 12 (8) (-1188, 2068, 1214) - +bond1 4 +atom 13 (1) (-3198, -1983, -1161) - +bond1 6 +atom 14 (1) (-3207, -25, 2285) - +bond1 2 +atom 15 (1) (-3209, 1980, -1133) - +bond1 3 +atom 16 (1) (-3203, 6, -2291) - +bond1 1 +atom 17 (1) (-3200, -1999, 1127) - +bond1 5 +atom 18 (1) (-3212, 1964, 1154) - +bond1 4 +atom 19 (6) (1, 10, -1545) - +bond1 10 +atom 20 (6) (-1, -10, 1545) - +bond1 8 +atom 21 (6) (-3, 1343, -763) - +bond1 19 9 +atom 22 (6) (-4, 1332, 781) - +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) - +bond1 20 11 +atom 24 (6) (4, -1332, -781) - +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) - +bond1 24 +atom 26 (8) (1178, -13, 2403) - +bond1 20 +atom 27 (8) (1176, 2092, -1185) - +bond1 21 +atom 28 (8) (1183, 20, -2400) - +bond1 19 +atom 29 (8) (1185, -2085, 1187) - +bond1 23 +atom 30 (8) (1173, 2075, 1216) - +bond1 22 +atom 31 (6) (2395, 17, -1570) - +bond1 28 +atom 32 (6) (2392, -4, 1575) - +bond1 26 +atom 33 (6) (2390, 1374, -774) - +bond1 31 27 +atom 34 (6) (2389, 1363, 798) - +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) - +bond1 32 29 +atom 36 (6) (2398, -1349, -793) - +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) - +bond1 36 +atom 38 (1) (3202, -6, 2291) - +bond1 32 +atom 39 (1) (3200, 1999, -1127) - +bond1 33 +atom 40 (1) (3207, 25, -2285) - +bond1 31 +atom 41 (1) (3209, -1980, 1133) - +bond1 35 +atom 42 (1) (3198, 1983, 1161) - +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) - +lmotor (Linear Motor-87) (92, 127, 109) -1.500000 0.100000 (0, 0, 0) (-999, -2, 0) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (005 linearmotor-negative force and positive Stiffness) +end molecular machine part 005 linearmotor-negative force and positive Stiffness diff --git a/sim/src/tests/motors/test_005_linearmotor_negative_force_and_positive_stiffness.trc b/sim/src/tests/motors/test_005_linearmotor_negative_force_and_positive_stiffness.trc new file mode 100755 index 000000000..55451978e --- /dev/null +++ b/sim/src/tests/motors/test_005_linearmotor_negative_force_and_positive_stiffness.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_005_linearmotor_negative_force_and_positive_stiffness.trc test_005_linearmotor_negative_force_and_positive_stiffness.mmp +# Date and Time: Wed Apr 19 10:53:29 2006 +# Input File: test_005_linearmotor_negative_force_and_positive_stiffness.mmp +# Output File: test_005_linearmotor_negative_force_and_positive_stiffness.xyz +# Trace File: test_005_linearmotor_negative_force_and_positive_stiffness.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 43 +# +# 3 columns: +# Linear Motor-87: displacement (angstroms) +# Thermo-89: temperature (K) +# Distance-90: distance (angstroms) +# +# Time Lmotor T.meter Distance +# picosec Linear Motor-87 Thermo-89 Distance-90 +# + 0.0100 -0.0011 275.00 11.9525 +# Done: diff --git a/sim/src/tests/motors/test_005_linearmotor_negative_force_and_positive_stiffness.xyzcmp b/sim/src/tests/motors/test_005_linearmotor_negative_force_and_positive_stiffness.xyzcmp new file mode 100755 index 000000000..eb7c4678b --- /dev/null +++ b/sim/src/tests/motors/test_005_linearmotor_negative_force_and_positive_stiffness.xyzcmp @@ -0,0 +1,45 @@ +43 +Frame 0, Iteration: 100 +C -2.384520 0.023659 -1.590936 +C -2.447226 -0.026425 1.533208 +C -2.382924 1.348362 -0.782164 +C -2.436116 1.348709 0.807685 +C -2.340149 -1.361579 0.743861 +C -2.392643 -1.365139 -0.832077 +O -1.182652 -2.096300 -1.191623 +O -1.202440 -0.059868 2.375352 +O -1.192254 2.086119 -1.183366 +O -1.184424 -0.005255 -2.371035 +O -1.165309 -2.086099 1.210823 +O -1.208836 2.040080 1.231400 +H -3.203631 -1.993944 -1.202253 +H -3.186326 -0.048004 2.338801 +H -3.152667 2.024918 -1.150846 +H -3.224255 0.108047 -2.282197 +H -3.172339 -1.967469 1.096544 +H -3.265490 1.966318 1.163569 +C -0.025837 0.009946 -1.545000 +C 0.012136 -0.009974 1.545000 +C -0.017891 1.342970 -0.763000 +C -0.004765 1.331998 0.781000 +C 0.041470 -1.342923 0.763000 +C 0.005669 -1.331997 -0.781000 +O 1.229277 -2.067242 -1.191253 +O 1.184376 0.022702 2.388402 +O 1.155271 2.065776 -1.180814 +O 1.130272 0.033436 -2.411247 +O 1.194071 -2.094051 1.148031 +O 1.181342 2.126836 1.210238 +C 2.390598 0.034884 -1.589299 +C 2.415908 -0.012748 1.613791 +C 2.413195 1.391699 -0.763885 +C 2.415676 1.378667 0.799644 +C 2.400851 -1.377538 0.817765 +C 2.426258 -1.330300 -0.793473 +H 3.248352 -1.985834 -1.086114 +H 3.195466 -0.040784 2.378301 +H 3.262477 1.985010 -1.117154 +H 3.184162 0.096065 -2.335681 +H 3.186217 -2.043157 1.181284 +H 3.286538 1.975971 1.096039 +Ne 11.986328 -0.028886 1.543347 diff --git a/sim/src/tests/motors/test_006_linearmotor_negative_force_and_0_stiffness.mmp b/sim/src/tests/motors/test_006_linearmotor_negative_force_and_0_stiffness.mmp new file mode 100755 index 000000000..55667d0a4 --- /dev/null +++ b/sim/src/tests/motors/test_006_linearmotor_negative_force_and_0_stiffness.mmp @@ -0,0 +1,95 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (006 linearmotor-negative force and 0 Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) - +atom 2 (6) (-2395, -17, 1570) - +atom 3 (6) (-2396, 1360, -779) - +bond1 1 +atom 4 (6) (-2398, 1349, 793) - +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) - +bond1 2 +atom 6 (6) (-2389, -1363, -798) - +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) - +bond1 6 +atom 8 (8) (-1183, -20, 2400) - +bond1 2 +atom 9 (8) (-1185, 2085, -1187) - +bond1 3 +atom 10 (8) (-1178, 13, -2403) - +bond1 1 +atom 11 (8) (-1176, -2092, 1185) - +bond1 5 +atom 12 (8) (-1188, 2068, 1214) - +bond1 4 +atom 13 (1) (-3198, -1983, -1161) - +bond1 6 +atom 14 (1) (-3207, -25, 2285) - +bond1 2 +atom 15 (1) (-3209, 1980, -1133) - +bond1 3 +atom 16 (1) (-3203, 6, -2291) - +bond1 1 +atom 17 (1) (-3200, -1999, 1127) - +bond1 5 +atom 18 (1) (-3212, 1964, 1154) - +bond1 4 +atom 19 (6) (1, 10, -1545) - +bond1 10 +atom 20 (6) (-1, -10, 1545) - +bond1 8 +atom 21 (6) (-3, 1343, -763) - +bond1 19 9 +atom 22 (6) (-4, 1332, 781) - +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) - +bond1 20 11 +atom 24 (6) (4, -1332, -781) - +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) - +bond1 24 +atom 26 (8) (1178, -13, 2403) - +bond1 20 +atom 27 (8) (1176, 2092, -1185) - +bond1 21 +atom 28 (8) (1183, 20, -2400) - +bond1 19 +atom 29 (8) (1185, -2085, 1187) - +bond1 23 +atom 30 (8) (1173, 2075, 1216) - +bond1 22 +atom 31 (6) (2395, 17, -1570) - +bond1 28 +atom 32 (6) (2392, -4, 1575) - +bond1 26 +atom 33 (6) (2390, 1374, -774) - +bond1 31 27 +atom 34 (6) (2389, 1363, 798) - +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) - +bond1 32 29 +atom 36 (6) (2398, -1349, -793) - +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) - +bond1 36 +atom 38 (1) (3202, -6, 2291) - +bond1 32 +atom 39 (1) (3200, 1999, -1127) - +bond1 33 +atom 40 (1) (3207, 25, -2285) - +bond1 31 +atom 41 (1) (3209, -1980, 1133) - +bond1 35 +atom 42 (1) (3198, 1983, 1161) - +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) - +lmotor (Linear Motor-87) (92, 127, 109) -1.500000 0.000000 (0, 0, 0) (-999, -2, 0) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (006 linearmotor-negative force and 0 Stiffness) +end molecular machine part 006 linearmotor-negative force and 0 Stiffness diff --git a/sim/src/tests/motors/test_006_linearmotor_negative_force_and_0_stiffness.trc b/sim/src/tests/motors/test_006_linearmotor_negative_force_and_0_stiffness.trc new file mode 100755 index 000000000..fef43fc73 --- /dev/null +++ b/sim/src/tests/motors/test_006_linearmotor_negative_force_and_0_stiffness.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_006_linearmotor_negative_force_and_0_stiffness.trc test_006_linearmotor_negative_force_and_0_stiffness.mmp +# Date and Time: Wed Apr 19 10:53:29 2006 +# Input File: test_006_linearmotor_negative_force_and_0_stiffness.mmp +# Output File: test_006_linearmotor_negative_force_and_0_stiffness.xyz +# Trace File: test_006_linearmotor_negative_force_and_0_stiffness.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 43 +# +# 3 columns: +# Linear Motor-87: displacement (angstroms) +# Thermo-89: temperature (K) +# Distance-90: distance (angstroms) +# +# Time Lmotor T.meter Distance +# picosec Linear Motor-87 Thermo-89 Distance-90 +# + 0.0100 -0.0011 275.00 11.9525 +# Done: diff --git a/sim/src/tests/motors/test_006_linearmotor_negative_force_and_0_stiffness.xyzcmp b/sim/src/tests/motors/test_006_linearmotor_negative_force_and_0_stiffness.xyzcmp new file mode 100755 index 000000000..eb7c4678b --- /dev/null +++ b/sim/src/tests/motors/test_006_linearmotor_negative_force_and_0_stiffness.xyzcmp @@ -0,0 +1,45 @@ +43 +Frame 0, Iteration: 100 +C -2.384520 0.023659 -1.590936 +C -2.447226 -0.026425 1.533208 +C -2.382924 1.348362 -0.782164 +C -2.436116 1.348709 0.807685 +C -2.340149 -1.361579 0.743861 +C -2.392643 -1.365139 -0.832077 +O -1.182652 -2.096300 -1.191623 +O -1.202440 -0.059868 2.375352 +O -1.192254 2.086119 -1.183366 +O -1.184424 -0.005255 -2.371035 +O -1.165309 -2.086099 1.210823 +O -1.208836 2.040080 1.231400 +H -3.203631 -1.993944 -1.202253 +H -3.186326 -0.048004 2.338801 +H -3.152667 2.024918 -1.150846 +H -3.224255 0.108047 -2.282197 +H -3.172339 -1.967469 1.096544 +H -3.265490 1.966318 1.163569 +C -0.025837 0.009946 -1.545000 +C 0.012136 -0.009974 1.545000 +C -0.017891 1.342970 -0.763000 +C -0.004765 1.331998 0.781000 +C 0.041470 -1.342923 0.763000 +C 0.005669 -1.331997 -0.781000 +O 1.229277 -2.067242 -1.191253 +O 1.184376 0.022702 2.388402 +O 1.155271 2.065776 -1.180814 +O 1.130272 0.033436 -2.411247 +O 1.194071 -2.094051 1.148031 +O 1.181342 2.126836 1.210238 +C 2.390598 0.034884 -1.589299 +C 2.415908 -0.012748 1.613791 +C 2.413195 1.391699 -0.763885 +C 2.415676 1.378667 0.799644 +C 2.400851 -1.377538 0.817765 +C 2.426258 -1.330300 -0.793473 +H 3.248352 -1.985834 -1.086114 +H 3.195466 -0.040784 2.378301 +H 3.262477 1.985010 -1.117154 +H 3.184162 0.096065 -2.335681 +H 3.186217 -2.043157 1.181284 +H 3.286538 1.975971 1.096039 +Ne 11.986328 -0.028886 1.543347 diff --git a/sim/src/tests/motors/test_007_linearmotor_positive_force_and_0_stiffness.mmp b/sim/src/tests/motors/test_007_linearmotor_positive_force_and_0_stiffness.mmp new file mode 100755 index 000000000..40aa5f6f0 --- /dev/null +++ b/sim/src/tests/motors/test_007_linearmotor_positive_force_and_0_stiffness.mmp @@ -0,0 +1,95 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (linearmotor-medium force and 0 Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) - +atom 2 (6) (-2395, -17, 1570) - +atom 3 (6) (-2396, 1360, -779) - +bond1 1 +atom 4 (6) (-2398, 1349, 793) - +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) - +bond1 2 +atom 6 (6) (-2389, -1363, -798) - +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) - +bond1 6 +atom 8 (8) (-1183, -20, 2400) - +bond1 2 +atom 9 (8) (-1185, 2085, -1187) - +bond1 3 +atom 10 (8) (-1178, 13, -2403) - +bond1 1 +atom 11 (8) (-1176, -2092, 1185) - +bond1 5 +atom 12 (8) (-1188, 2068, 1214) - +bond1 4 +atom 13 (1) (-3198, -1983, -1161) - +bond1 6 +atom 14 (1) (-3207, -25, 2285) - +bond1 2 +atom 15 (1) (-3209, 1980, -1133) - +bond1 3 +atom 16 (1) (-3203, 6, -2291) - +bond1 1 +atom 17 (1) (-3200, -1999, 1127) - +bond1 5 +atom 18 (1) (-3212, 1964, 1154) - +bond1 4 +atom 19 (6) (1, 10, -1545) - +bond1 10 +atom 20 (6) (-1, -10, 1545) - +bond1 8 +atom 21 (6) (-3, 1343, -763) - +bond1 19 9 +atom 22 (6) (-4, 1332, 781) - +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) - +bond1 20 11 +atom 24 (6) (4, -1332, -781) - +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) - +bond1 24 +atom 26 (8) (1178, -13, 2403) - +bond1 20 +atom 27 (8) (1176, 2092, -1185) - +bond1 21 +atom 28 (8) (1183, 20, -2400) - +bond1 19 +atom 29 (8) (1185, -2085, 1187) - +bond1 23 +atom 30 (8) (1173, 2075, 1216) - +bond1 22 +atom 31 (6) (2395, 17, -1570) - +bond1 28 +atom 32 (6) (2392, -4, 1575) - +bond1 26 +atom 33 (6) (2390, 1374, -774) - +bond1 31 27 +atom 34 (6) (2389, 1363, 798) - +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) - +bond1 32 29 +atom 36 (6) (2398, -1349, -793) - +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) - +bond1 36 +atom 38 (1) (3202, -6, 2291) - +bond1 32 +atom 39 (1) (3200, 1999, -1127) - +bond1 33 +atom 40 (1) (3207, 25, -2285) - +bond1 31 +atom 41 (1) (3209, -1980, 1133) - +bond1 35 +atom 42 (1) (3198, 1983, 1161) - +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) - +lmotor (Linear Motor-87) (92, 127, 109) 1.500000 0.000000 (0, 0, 0) (-999, -2, 0) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (linearmotor-medium force and 0 Stiffness) +end molecular machine part linearmotor-medium force and 0 Stiffness diff --git a/sim/src/tests/motors/test_007_linearmotor_positive_force_and_0_stiffness.trc b/sim/src/tests/motors/test_007_linearmotor_positive_force_and_0_stiffness.trc new file mode 100755 index 000000000..55df72629 --- /dev/null +++ b/sim/src/tests/motors/test_007_linearmotor_positive_force_and_0_stiffness.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_007_linearmotor_positive_force_and_0_stiffness.trc test_007_linearmotor_positive_force_and_0_stiffness.mmp +# Date and Time: Wed Apr 19 10:53:29 2006 +# Input File: test_007_linearmotor_positive_force_and_0_stiffness.mmp +# Output File: test_007_linearmotor_positive_force_and_0_stiffness.xyz +# Trace File: test_007_linearmotor_positive_force_and_0_stiffness.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 43 +# +# 3 columns: +# Linear Motor-87: displacement (angstroms) +# Thermo-89: temperature (K) +# Distance-90: distance (angstroms) +# +# Time Lmotor T.meter Distance +# picosec Linear Motor-87 Thermo-89 Distance-90 +# + 0.0100 -0.0011 275.00 11.9525 +# Done: diff --git a/sim/src/tests/motors/test_007_linearmotor_positive_force_and_0_stiffness.xyzcmp b/sim/src/tests/motors/test_007_linearmotor_positive_force_and_0_stiffness.xyzcmp new file mode 100755 index 000000000..0ba53888a --- /dev/null +++ b/sim/src/tests/motors/test_007_linearmotor_positive_force_and_0_stiffness.xyzcmp @@ -0,0 +1,45 @@ +43 +Frame 0, Iteration: 100 +C -2.384520 0.023659 -1.590936 +C -2.447226 -0.026425 1.533208 +C -2.382924 1.348362 -0.782164 +C -2.436116 1.348709 0.807685 +C -2.340149 -1.361579 0.743861 +C -2.392643 -1.365139 -0.832077 +O -1.182652 -2.096301 -1.191623 +O -1.202441 -0.059868 2.375352 +O -1.192255 2.086120 -1.183366 +O -1.184425 -0.005255 -2.371035 +O -1.165309 -2.086100 1.210823 +O -1.208836 2.040080 1.231400 +H -3.203631 -1.993944 -1.202253 +H -3.186326 -0.048004 2.338801 +H -3.152667 2.024918 -1.150846 +H -3.224255 0.108047 -2.282197 +H -3.172339 -1.967469 1.096544 +H -3.265490 1.966318 1.163569 +C -0.025840 0.009946 -1.545000 +C 0.012132 -0.009974 1.545000 +C -0.017895 1.342970 -0.763000 +C -0.004768 1.331998 0.781000 +C 0.041466 -1.342923 0.763000 +C 0.005666 -1.331997 -0.781000 +O 1.229276 -2.067242 -1.191252 +O 1.184375 0.022702 2.388402 +O 1.155270 2.065776 -1.180814 +O 1.130272 0.033436 -2.411246 +O 1.194070 -2.094051 1.148030 +O 1.181341 2.126836 1.210238 +C 2.390598 0.034884 -1.589299 +C 2.415908 -0.012748 1.613791 +C 2.413195 1.391699 -0.763885 +C 2.415676 1.378667 0.799644 +C 2.400851 -1.377538 0.817765 +C 2.426258 -1.330300 -0.793473 +H 3.248352 -1.985834 -1.086114 +H 3.195466 -0.040784 2.378301 +H 3.262477 1.985010 -1.117154 +H 3.184162 0.096065 -2.335681 +H 3.186217 -2.043157 1.181284 +H 3.286538 1.975971 1.096039 +Ne 11.986328 -0.028886 1.543347 diff --git a/sim/src/tests/motors/test_008_linearmotor_positive_force_and_positive_stiffness.mmp b/sim/src/tests/motors/test_008_linearmotor_positive_force_and_positive_stiffness.mmp new file mode 100755 index 000000000..2a8265c89 --- /dev/null +++ b/sim/src/tests/motors/test_008_linearmotor_positive_force_and_positive_stiffness.mmp @@ -0,0 +1,95 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (008 linearmotor-positive force and positive Stiffness) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) - +atom 2 (6) (-2395, -17, 1570) - +atom 3 (6) (-2396, 1360, -779) - +bond1 1 +atom 4 (6) (-2398, 1349, 793) - +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) - +bond1 2 +atom 6 (6) (-2389, -1363, -798) - +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) - +bond1 6 +atom 8 (8) (-1183, -20, 2400) - +bond1 2 +atom 9 (8) (-1185, 2085, -1187) - +bond1 3 +atom 10 (8) (-1178, 13, -2403) - +bond1 1 +atom 11 (8) (-1176, -2092, 1185) - +bond1 5 +atom 12 (8) (-1188, 2068, 1214) - +bond1 4 +atom 13 (1) (-3198, -1983, -1161) - +bond1 6 +atom 14 (1) (-3207, -25, 2285) - +bond1 2 +atom 15 (1) (-3209, 1980, -1133) - +bond1 3 +atom 16 (1) (-3203, 6, -2291) - +bond1 1 +atom 17 (1) (-3200, -1999, 1127) - +bond1 5 +atom 18 (1) (-3212, 1964, 1154) - +bond1 4 +atom 19 (6) (1, 10, -1545) - +bond1 10 +atom 20 (6) (-1, -10, 1545) - +bond1 8 +atom 21 (6) (-3, 1343, -763) - +bond1 19 9 +atom 22 (6) (-4, 1332, 781) - +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) - +bond1 20 11 +atom 24 (6) (4, -1332, -781) - +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) - +bond1 24 +atom 26 (8) (1178, -13, 2403) - +bond1 20 +atom 27 (8) (1176, 2092, -1185) - +bond1 21 +atom 28 (8) (1183, 20, -2400) - +bond1 19 +atom 29 (8) (1185, -2085, 1187) - +bond1 23 +atom 30 (8) (1173, 2075, 1216) - +bond1 22 +atom 31 (6) (2395, 17, -1570) - +bond1 28 +atom 32 (6) (2392, -4, 1575) - +bond1 26 +atom 33 (6) (2390, 1374, -774) - +bond1 31 27 +atom 34 (6) (2389, 1363, 798) - +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) - +bond1 32 29 +atom 36 (6) (2398, -1349, -793) - +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) - +bond1 36 +atom 38 (1) (3202, -6, 2291) - +bond1 32 +atom 39 (1) (3200, 1999, -1127) - +bond1 33 +atom 40 (1) (3207, 25, -2285) - +bond1 31 +atom 41 (1) (3209, -1980, 1133) - +bond1 35 +atom 42 (1) (3198, 1983, 1161) - +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) - +lmotor (Linear Motor-87) (92, 127, 109) 1.500000 0.100000 (0, 0, 0) (-999, -2, 0) 10.00 1.00 0.20 +shaft 19 20 21 22 23 24 +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +egroup (008 linearmotor-positive force and positive Stiffness) +end molecular machine part 008 linearmotor-positive force and positive Stiffness diff --git a/sim/src/tests/motors/test_008_linearmotor_positive_force_and_positive_stiffness.trc b/sim/src/tests/motors/test_008_linearmotor_positive_force_and_positive_stiffness.trc new file mode 100755 index 000000000..af979eb4f --- /dev/null +++ b/sim/src/tests/motors/test_008_linearmotor_positive_force_and_positive_stiffness.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_008_linearmotor_positive_force_and_positive_stiffness.trc test_008_linearmotor_positive_force_and_positive_stiffness.mmp +# Date and Time: Wed Apr 19 10:53:29 2006 +# Input File: test_008_linearmotor_positive_force_and_positive_stiffness.mmp +# Output File: test_008_linearmotor_positive_force_and_positive_stiffness.xyz +# Trace File: test_008_linearmotor_positive_force_and_positive_stiffness.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 43 +# +# 3 columns: +# Linear Motor-87: displacement (angstroms) +# Thermo-89: temperature (K) +# Distance-90: distance (angstroms) +# +# Time Lmotor T.meter Distance +# picosec Linear Motor-87 Thermo-89 Distance-90 +# + 0.0100 -0.0011 275.00 11.9525 +# Done: diff --git a/sim/src/tests/motors/test_008_linearmotor_positive_force_and_positive_stiffness.xyzcmp b/sim/src/tests/motors/test_008_linearmotor_positive_force_and_positive_stiffness.xyzcmp new file mode 100755 index 000000000..0ba53888a --- /dev/null +++ b/sim/src/tests/motors/test_008_linearmotor_positive_force_and_positive_stiffness.xyzcmp @@ -0,0 +1,45 @@ +43 +Frame 0, Iteration: 100 +C -2.384520 0.023659 -1.590936 +C -2.447226 -0.026425 1.533208 +C -2.382924 1.348362 -0.782164 +C -2.436116 1.348709 0.807685 +C -2.340149 -1.361579 0.743861 +C -2.392643 -1.365139 -0.832077 +O -1.182652 -2.096301 -1.191623 +O -1.202441 -0.059868 2.375352 +O -1.192255 2.086120 -1.183366 +O -1.184425 -0.005255 -2.371035 +O -1.165309 -2.086100 1.210823 +O -1.208836 2.040080 1.231400 +H -3.203631 -1.993944 -1.202253 +H -3.186326 -0.048004 2.338801 +H -3.152667 2.024918 -1.150846 +H -3.224255 0.108047 -2.282197 +H -3.172339 -1.967469 1.096544 +H -3.265490 1.966318 1.163569 +C -0.025840 0.009946 -1.545000 +C 0.012132 -0.009974 1.545000 +C -0.017895 1.342970 -0.763000 +C -0.004768 1.331998 0.781000 +C 0.041466 -1.342923 0.763000 +C 0.005666 -1.331997 -0.781000 +O 1.229276 -2.067242 -1.191252 +O 1.184375 0.022702 2.388402 +O 1.155270 2.065776 -1.180814 +O 1.130272 0.033436 -2.411246 +O 1.194070 -2.094051 1.148030 +O 1.181341 2.126836 1.210238 +C 2.390598 0.034884 -1.589299 +C 2.415908 -0.012748 1.613791 +C 2.413195 1.391699 -0.763885 +C 2.415676 1.378667 0.799644 +C 2.400851 -1.377538 0.817765 +C 2.426258 -1.330300 -0.793473 +H 3.248352 -1.985834 -1.086114 +H 3.195466 -0.040784 2.378301 +H 3.262477 1.985010 -1.117154 +H 3.184162 0.096065 -2.335681 +H 3.186217 -2.043157 1.181284 +H 3.286538 1.975971 1.096039 +Ne 11.986328 -0.028886 1.543347 diff --git a/sim/src/tests/motors/test_009_linearmotor_Methane_Molecule.mmp b/sim/src/tests/motors/test_009_linearmotor_Methane_Molecule.mmp new file mode 100755 index 000000000..dfcbff387 --- /dev/null +++ b/sim/src/tests/motors/test_009_linearmotor_Methane_Molecule.mmp @@ -0,0 +1,26 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (009 linearmotor-Methane Molecule) +info opengroup open = True +mol (Chunk-C41) - +atom 1 (6) (212, 48, 0) - +atom 2 (1) (839, 676, 627) - +bond1 1 +atom 3 (1) (-415, 676, -627) - +bond1 1 +atom 4 (1) (-415, -579, 627) - +bond1 1 +atom 5 (1) (839, -579, -627) - +bond1 1 +lmotor (Linear Motor-7) (127, 127, 127) 1.000000 0.100000 (212, 48, 0) (0, 0, -1000) 10.00 0.50 0.10 +shaft 1 +thermo (Thermo-11) (153, 0, 51) 1 5 1 +mol (ref-1) - +atom 6 (10) (212, 18048, 0) - +mdistance (Distance-14) (0, 0, 0) (Helvetica) 10 1 6 +mol (ref-2) - +atom 7 (10) (0, 0, -18000) - +mdistance (Distance-15) (0, 0, 0) (Helvetica) 10 1 7 +ground (Anchor-17) (0, 0, 0) 6 7 +egroup (009 linearmotor-Methane Molecule) +end molecular machine part 009 linearmotor-Methane Molecule diff --git a/sim/src/tests/motors/test_009_linearmotor_Methane_Molecule.trc b/sim/src/tests/motors/test_009_linearmotor_Methane_Molecule.trc new file mode 100755 index 000000000..419448f93 --- /dev/null +++ b/sim/src/tests/motors/test_009_linearmotor_Methane_Molecule.trc @@ -0,0 +1,32 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_009_linearmotor_Methane_Molecule.trc test_009_linearmotor_Methane_Molecule.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_009_linearmotor_Methane_Molecule.mmp +# Output File: test_009_linearmotor_Methane_Molecule.xyz +# Trace File: test_009_linearmotor_Methane_Molecule.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 7 +# +# 5 columns: +# Linear Motor-7: displacement (angstroms) +# Thermo-11: temperature (K) +# Distance-14: distance (angstroms) +# Distance-15: distance (angstroms) +# Anchor-17: torque (nn-nm) +# +# Time Lmotor T.meter Distance Distance Anchor +# picosec Linear Motor-7 Thermo-11 Distance-14 Distance-15 Anchor-17 +# + 0.0100 0.0414 390.22 18.0000 17.9595 0.00 +# Done: diff --git a/sim/src/tests/motors/test_009_linearmotor_Methane_Molecule.xyzcmp b/sim/src/tests/motors/test_009_linearmotor_Methane_Molecule.xyzcmp new file mode 100755 index 000000000..123612eab --- /dev/null +++ b/sim/src/tests/motors/test_009_linearmotor_Methane_Molecule.xyzcmp @@ -0,0 +1,9 @@ +7 +Frame 0, Iteration: 100 +C 0.212000 0.048000 -0.018978 +H 0.772826 0.789887 0.559954 +H -0.398274 0.612683 -0.719438 +H -0.438500 -0.526542 0.644361 +H 0.943303 -0.534939 -0.582969 +Ne 0.211999 18.048001 -0.000004 +Ne -0.000002 -0.000003 -17.999993 diff --git a/sim/src/tests/motors/test_010_linearmotor_box_of_helium.mmp b/sim/src/tests/motors/test_010_linearmotor_box_of_helium.mmp new file mode 100755 index 000000000..530d35384 --- /dev/null +++ b/sim/src/tests/motors/test_010_linearmotor_box_of_helium.mmp @@ -0,0 +1,106 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (010 linearmotor-box of helium) +info opengroup open = True +mol (Chunk-C41) - +atom 1 (6) (212, 48, 0) - +atom 2 (1) (839, 676, 627) - +bond1 1 +atom 3 (1) (-415, 676, -627) - +bond1 1 +atom 4 (1) (-415, -579, 627) - +bond1 1 +atom 5 (1) (839, -579, -627) - +bond1 1 +lmotor (Linear Motor-7) (127, 127, 127) 1.000000 0.100000 (212, 48, 0) (0, 0, -1000) 10.00 0.50 0.10 +shaft 1 +thermo (Thermo-11) (153, 0, 51) 1 5 1 +group (He walls) +info opengroup open = True +mol (Chunk-C41-copy3) - +atom 6 (2) (-12138, -3070, 6990) - +atom 7 (2) (-12108, -8440, 6990) - +atom 8 (2) (-12078, -13808, 6990) - +atom 9 (2) (-11998, 13708, 6990) - +atom 10 (2) (-11968, 8340, 6990) - +atom 11 (2) (-11938, 2969, 6990) - +atom 12 (2) (-12100, -3020, 0) - +atom 13 (2) (-12070, -8390, 0) - +atom 14 (2) (-12040, -13758, 0) - +atom 15 (2) (-11960, 13758, 0) - +atom 16 (2) (-11930, 8390, 0) - +atom 17 (2) (-11900, 3019, 0) - +atom 18 (2) (-12057, -2970, -6989) - +atom 19 (2) (-12028, -8340, -6989) - +atom 20 (2) (-11997, -13708, -6989) - +atom 21 (2) (-11917, 13808, -6989) - +atom 22 (2) (-11887, 8440, -6989) - +atom 23 (2) (-11857, 3069, -6989) - +mol (Chunk-C41-copy10) - +atom 24 (2) (-6990, -3180, -9998) - +atom 25 (2) (-6990, -8550, -9968) - +atom 26 (2) (-6990, -13918, -9938) - +atom 27 (2) (-6990, 13598, -9858) - +atom 28 (2) (-6990, 8230, -9828) - +atom 29 (2) (-6990, 2859, -9797) - +atom 30 (2) (0, -3020, -10099) - +atom 31 (2) (0, -8390, -10069) - +atom 32 (2) (0, -13758, -10039) - +atom 33 (2) (0, 13758, -9959) - +atom 34 (2) (0, 8390, -9929) - +atom 35 (2) (0, 3019, -9899) - +atom 36 (2) (6990, -2860, -10198) - +atom 37 (2) (6990, -8230, -10168) - +atom 38 (2) (6990, -13598, -10137) - +atom 39 (2) (6990, 13918, -10057) - +atom 40 (2) (6990, 8550, -10028) - +atom 41 (2) (6990, 3179, -9997) - +mol (Chunk-C41-copy3) - +atom 42 (2) (-6990, -3070, 9858) - +atom 43 (2) (-6990, -8440, 9887) - +atom 44 (2) (-6990, -13808, 9918) - +atom 45 (2) (-6990, 13708, 9998) - +atom 46 (2) (-6990, 8340, 10028) - +atom 47 (2) (-6990, 2969, 10058) - +atom 48 (2) (0, -3020, 9899) - +atom 49 (2) (0, -8390, 9929) - +atom 50 (2) (0, -13758, 9959) - +atom 51 (2) (0, 13758, 10040) - +atom 52 (2) (0, 8390, 10069) - +atom 53 (2) (0, 3019, 10100) - +atom 54 (2) (6990, -2970, 9938) - +atom 55 (2) (6990, -8340, 9967) - +atom 56 (2) (6990, -13708, 9998) - +atom 57 (2) (6990, 13808, 10078) - +atom 58 (2) (6990, 8440, 10108) - +atom 59 (2) (6990, 3069, 10138) - +mol (Chunk-C41-copy10) - +atom 60 (2) (12070, 8389, 0) - +atom 61 (2) (12100, 3019, 0) - +atom 62 (2) (11798, -2860, -6989) - +atom 63 (2) (11828, -8230, -6989) - +atom 64 (2) (11858, -13598, -6989) - +atom 65 (2) (11938, 13918, -6989) - +atom 66 (2) (11968, 8549, -6989) - +atom 67 (2) (11998, 3179, -6989) - +atom 68 (2) (11998, -3180, 6990) - +atom 69 (2) (12028, -8550, 6990) - +atom 70 (2) (12058, -13918, 6990) - +atom 71 (2) (12138, 13598, 6990) - +atom 72 (2) (12168, 8229, 6990) - +atom 73 (2) (12198, 2859, 6990) - +atom 74 (2) (11900, -3020, 0) - +atom 75 (2) (11930, -8390, 0) - +atom 76 (2) (11960, -13758, 0) - +atom 77 (2) (12040, 13758, 0) - +ground (Anchor-117) (0, 0, 0) 42 43 44 45 46 47 24 25 26 27 28 29 48 49 50 51 52 53 54 55 56 57 58 59 30 31 32 33 34 35 36 37 38 39 40 41 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 +info leaf hidden = True +thermo (Thermo-118) (153, 0, 51) 6 23 17 +mangle (Angle-121) (0, 0, 0) (Helvetica) 10 53 1 35 +egroup (He walls) +egroup (010 linearmotor-box of helium) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 010 linearmotor-box of helium diff --git a/sim/src/tests/motors/test_010_linearmotor_box_of_helium.trc b/sim/src/tests/motors/test_010_linearmotor_box_of_helium.trc new file mode 100755 index 000000000..925eb082b --- /dev/null +++ b/sim/src/tests/motors/test_010_linearmotor_box_of_helium.trc @@ -0,0 +1,32 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_010_linearmotor_box_of_helium.trc test_010_linearmotor_box_of_helium.mmp +# Date and Time: Wed Apr 19 10:53:27 2006 +# Input File: test_010_linearmotor_box_of_helium.mmp +# Output File: test_010_linearmotor_box_of_helium.xyz +# Trace File: test_010_linearmotor_box_of_helium.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 77 +# +# 5 columns: +# Linear Motor-7: displacement (angstroms) +# Thermo-11: temperature (K) +# Anchor-117: torque (nn-nm) +# Thermo-118: temperature (K) +# Angle-121: angle (degrees) +# +# Time Lmotor T.meter Anchor T.meter Angle +# picosec Linear Motor-7 Thermo-11 Anchor-117 Thermo-118 Angle-121 +# + 0.0100 0.0783 451.33 0.00 0.00 146.81624 +# Done: diff --git a/sim/src/tests/motors/test_010_linearmotor_box_of_helium.xyzcmp b/sim/src/tests/motors/test_010_linearmotor_box_of_helium.xyzcmp new file mode 100755 index 000000000..d540968ee --- /dev/null +++ b/sim/src/tests/motors/test_010_linearmotor_box_of_helium.xyzcmp @@ -0,0 +1,79 @@ +77 +Frame 0, Iteration: 100 +C 0.212000 0.048000 -0.037904 +H 0.772554 0.788539 0.544062 +H -0.401981 0.608045 -0.738929 +H -0.439505 -0.529058 0.622839 +H 0.939821 -0.539061 -0.602156 +He -12.138002 -3.070002 6.989984 +He -12.108003 -8.440012 6.990008 +He -12.078004 -13.808019 6.989992 +He -11.998001 13.708001 6.989998 +He -11.968000 8.339990 6.990014 +He -11.937998 2.968999 6.990010 +He -12.100006 -3.020012 0.000005 +He -12.069999 -8.390001 -0.000005 +He -12.040000 -13.758001 0.000021 +He -11.959994 13.758012 -0.000004 +He -11.930013 8.390016 -0.000001 +He -11.899986 3.019015 -0.000009 +He -12.056998 -2.970008 -6.989005 +He -12.028011 -8.340007 -6.989008 +He -11.996994 -13.707999 -6.988993 +He -11.917003 13.807999 -6.988996 +He -11.886999 8.439988 -6.989024 +He -11.856978 3.069004 -6.988999 +He -6.990001 -3.179985 -9.998000 +He -6.989980 -8.550004 -9.967992 +He -6.989996 -13.917987 -9.938009 +He -6.990010 13.597987 -9.858001 +He -6.990023 8.230004 -9.828009 +He -6.989996 2.858995 -9.797020 +He 0.000004 -3.019977 -10.099003 +He 0.000003 -8.389998 -10.069009 +He 0.000013 -13.758006 -10.038986 +He 0.000010 13.758008 -9.958995 +He 0.000006 8.390001 -9.929005 +He -0.000000 3.018991 -9.898984 +He 6.990008 -2.859989 -10.198007 +He 6.990008 -8.230014 -10.167989 +He 6.989989 -13.598006 -10.136996 +He 6.990013 13.917997 -10.057002 +He 6.989988 8.550013 -10.028002 +He 6.989996 3.178990 -9.996996 +He -6.989975 -3.069991 9.857992 +He -6.990003 -8.440010 9.886997 +He -6.989995 -13.807995 9.917999 +He -6.990015 13.708008 9.997990 +He -6.990013 8.339997 10.027998 +He -6.989997 2.969008 10.057999 +He 0.000007 -3.019999 9.899017 +He 0.000010 -8.390012 9.929014 +He 0.000005 -13.758004 9.959007 +He -0.000010 13.757984 10.039990 +He -0.000018 8.390003 10.068997 +He 0.000017 3.018990 10.100027 +He 6.990010 -2.970003 9.937998 +He 6.990023 -8.339981 9.966993 +He 6.989996 -13.707990 9.997996 +He 6.989991 13.808001 10.077991 +He 6.990001 8.439992 10.107985 +He 6.989989 3.069011 10.137985 +He 12.069976 8.388985 0.000000 +He 12.099997 3.018984 -0.000011 +He 11.797982 -2.859999 -6.988994 +He 11.828009 -8.229998 -6.988987 +He 11.858002 -13.598009 -6.988989 +He 11.937992 13.917987 -6.988981 +He 11.967987 8.549005 -6.989012 +He 11.998001 3.179012 -6.988999 +He 11.997983 -3.179989 6.989990 +He 12.028009 -8.549999 6.990000 +He 12.057993 -13.917986 6.990004 +He 12.138008 13.598008 6.990006 +He 12.167980 8.228999 6.990003 +He 12.198006 2.858985 6.990012 +He 11.899998 -3.019999 0.000020 +He 11.930011 -8.390011 -0.000001 +He 11.960010 -13.757976 -0.000013 +He 12.039980 13.758004 0.000023 diff --git a/sim/src/tests/motors/test_011_rotarymotor_0_torque_and_0_speed.mmp b/sim/src/tests/motors/test_011_rotarymotor_0_torque_and_0_speed.mmp new file mode 100755 index 000000000..765039dcb --- /dev/null +++ b/sim/src/tests/motors/test_011_rotarymotor_0_torque_and_0_speed.mmp @@ -0,0 +1,39 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (rotarymotor- high torque and speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) - +atom 2 (0) (-1756, 10, -550) - +bond1 1 +atom 3 (0) (-1697, -38, 690) - +bond1 1 +atom 4 (6) (-290, 1170, 48) - +bond1 1 +atom 5 (0) (-433, 1633, -551) - +bond1 4 +atom 6 (0) (-380, 1587, 690) - +bond1 4 +atom 7 (6) (1159, 611, -33) - +bond1 4 +atom 8 (0) (1569, 835, 580) - +bond1 7 +atom 9 (0) (1517, 883, -661) - +bond1 7 +atom 10 (6) (-427, -1343, -45) - +bond1 1 +atom 11 (0) (-617, -1740, -678) - +bond1 10 +atom 12 (0) (-565, -1796, 563) - +bond1 10 +atom 13 (6) (1075, -940, -89) - +bond1 7 10 +atom 14 (0) (1453, -1251, 506) - +bond1 13 +atom 15 (0) (1404, -1205, -736) - +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 0.00 0.00 (49, -108, -14) (-42, 39, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- high torque and speed) +end molecular machine part rotarymotor- high torque and speed diff --git a/sim/src/tests/motors/test_011_rotarymotor_0_torque_and_0_speed.trc b/sim/src/tests/motors/test_011_rotarymotor_0_torque_and_0_speed.trc new file mode 100755 index 000000000..ad8e7fcf2 --- /dev/null +++ b/sim/src/tests/motors/test_011_rotarymotor_0_torque_and_0_speed.trc @@ -0,0 +1,37 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Warning: Using a reduced quality parameter, see the trace output for details +# Info: Using quality 3 parameters for X-1-C stretch +# Info: Computed ks: 1.000000e+03, r0: 7.700000e+01, de: 5.800000e-01, beta: 3.198925e-02 +# Info: Using quality 1 parameters for X-1-C.sp3-1-X bend +# Info: Computed kb: 2.000000e+06, theta0: 1.910600e+00 +# Info: Using quality 1 parameters for X-1-C.sp3-1-C bend +# Info: Computed kb: 1.622653e+06, theta0: 1.910600e+00 +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_011_rotarymotor_0_torque_and_0_speed.trc test_011_rotarymotor_0_torque_and_0_speed.mmp +# Date and Time: Wed Apr 19 10:53:27 2006 +# Input File: test_011_rotarymotor_0_torque_and_0_speed.mmp +# Output File: test_011_rotarymotor_0_torque_and_0_speed.xyz +# Trace File: test_011_rotarymotor_0_torque_and_0_speed.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 15 +# +# 3 columns: +# Rotary Motor.45: speed (GHz) +# Rotary Motor.45: torque (nn-nm) +# Thermo-76: temperature (K) +# +# Time speed torque T.meter +# picosec Rotary Motor.45 Thermo-76 +# + 0.0100 -0.023 0.000 264.68 +# Done: diff --git a/sim/src/tests/motors/test_011_rotarymotor_0_torque_and_0_speed.xyzcmp b/sim/src/tests/motors/test_011_rotarymotor_0_torque_and_0_speed.xyzcmp new file mode 100755 index 000000000..86c2de538 --- /dev/null +++ b/sim/src/tests/motors/test_011_rotarymotor_0_torque_and_0_speed.xyzcmp @@ -0,0 +1,17 @@ +15 +Frame 0, Iteration: 100 +C -1.277361 -0.027412 0.020713 +X -1.793835 0.010256 -0.611727 +X -1.669358 -0.053890 0.680032 +C -0.301736 1.181585 0.045365 +X -0.376601 1.634841 -0.574913 +X -0.389948 1.596741 0.672105 +C 1.152693 0.599211 -0.027489 +X 1.558853 0.790706 0.581080 +X 1.504145 0.884834 -0.660696 +C -0.426947 -1.355284 -0.019858 +X -0.606615 -1.733048 -0.652327 +X -0.576893 -1.812344 0.591343 +C 1.082893 -0.938087 -0.081157 +X 1.449043 -1.236222 0.556985 +X 1.418880 -1.163179 -0.745007 diff --git a/sim/src/tests/motors/test_012_rotarymotor_0_torque_and_negative_speed.mmp b/sim/src/tests/motors/test_012_rotarymotor_0_torque_and_negative_speed.mmp new file mode 100755 index 000000000..38ce5331b --- /dev/null +++ b/sim/src/tests/motors/test_012_rotarymotor_0_torque_and_negative_speed.mmp @@ -0,0 +1,39 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (rotarymotor- 0 torque and negative speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) - +atom 2 (0) (-1756, 10, -550) - +bond1 1 +atom 3 (0) (-1697, -38, 690) - +bond1 1 +atom 4 (6) (-290, 1170, 48) - +bond1 1 +atom 5 (0) (-433, 1633, -551) - +bond1 4 +atom 6 (0) (-380, 1587, 690) - +bond1 4 +atom 7 (6) (1159, 611, -33) - +bond1 4 +atom 8 (0) (1569, 835, 580) - +bond1 7 +atom 9 (0) (1517, 883, -661) - +bond1 7 +atom 10 (6) (-427, -1343, -45) - +bond1 1 +atom 11 (0) (-617, -1740, -678) - +bond1 10 +atom 12 (0) (-565, -1796, 563) - +bond1 10 +atom 13 (6) (1075, -940, -89) - +bond1 7 10 +atom 14 (0) (1453, -1251, 506) - +bond1 13 +atom 15 (0) (1404, -1205, -736) - +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 0.00 -1.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- 0 torque and negative speed) +end molecular machine part rotarymotor- 0 torque and negative speed diff --git a/sim/src/tests/motors/test_012_rotarymotor_0_torque_and_negative_speed.trc b/sim/src/tests/motors/test_012_rotarymotor_0_torque_and_negative_speed.trc new file mode 100755 index 000000000..dd913d96b --- /dev/null +++ b/sim/src/tests/motors/test_012_rotarymotor_0_torque_and_negative_speed.trc @@ -0,0 +1,37 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Warning: Using a reduced quality parameter, see the trace output for details +# Info: Using quality 3 parameters for X-1-C stretch +# Info: Computed ks: 1.000000e+03, r0: 7.700000e+01, de: 5.800000e-01, beta: 3.198925e-02 +# Info: Using quality 1 parameters for X-1-C.sp3-1-X bend +# Info: Computed kb: 2.000000e+06, theta0: 1.910600e+00 +# Info: Using quality 1 parameters for X-1-C.sp3-1-C bend +# Info: Computed kb: 1.622653e+06, theta0: 1.910600e+00 +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_012_rotarymotor_0_torque_and_negative_speed.trc test_012_rotarymotor_0_torque_and_negative_speed.mmp +# Date and Time: Wed Apr 19 10:53:26 2006 +# Input File: test_012_rotarymotor_0_torque_and_negative_speed.mmp +# Output File: test_012_rotarymotor_0_torque_and_negative_speed.xyz +# Trace File: test_012_rotarymotor_0_torque_and_negative_speed.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 15 +# +# 3 columns: +# Rotary Motor.45: speed (GHz) +# Rotary Motor.45: torque (nn-nm) +# Thermo-76: temperature (K) +# +# Time speed torque T.meter +# picosec Rotary Motor.45 Thermo-76 +# + 0.0100 -0.018 0.000 264.68 +# Done: diff --git a/sim/src/tests/motors/test_012_rotarymotor_0_torque_and_negative_speed.xyzcmp b/sim/src/tests/motors/test_012_rotarymotor_0_torque_and_negative_speed.xyzcmp new file mode 100755 index 000000000..4b86b2f76 --- /dev/null +++ b/sim/src/tests/motors/test_012_rotarymotor_0_torque_and_negative_speed.xyzcmp @@ -0,0 +1,17 @@ +15 +Frame 0, Iteration: 100 +C -1.277361 -0.027412 0.020713 +X -1.793835 0.010256 -0.611727 +X -1.669358 -0.053890 0.680032 +C -0.301736 1.181585 0.045365 +X -0.376601 1.634841 -0.574913 +X -0.389948 1.596741 0.672105 +C 1.152693 0.599211 -0.027489 +X 1.558853 0.790706 0.581080 +X 1.504145 0.884834 -0.660696 +C -0.426948 -1.355284 -0.019858 +X -0.606615 -1.733048 -0.652327 +X -0.576893 -1.812344 0.591343 +C 1.082893 -0.938087 -0.081157 +X 1.449043 -1.236222 0.556985 +X 1.418880 -1.163179 -0.745007 diff --git a/sim/src/tests/motors/test_013_rotarymotor_0_torque_and_positive_speed.mmp b/sim/src/tests/motors/test_013_rotarymotor_0_torque_and_positive_speed.mmp new file mode 100755 index 000000000..3e7cc9178 --- /dev/null +++ b/sim/src/tests/motors/test_013_rotarymotor_0_torque_and_positive_speed.mmp @@ -0,0 +1,39 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (rotarymotor- 0 torque and positive speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) - +atom 2 (0) (-1756, 10, -550) - +bond1 1 +atom 3 (0) (-1697, -38, 690) - +bond1 1 +atom 4 (6) (-290, 1170, 48) - +bond1 1 +atom 5 (0) (-433, 1633, -551) - +bond1 4 +atom 6 (0) (-380, 1587, 690) - +bond1 4 +atom 7 (6) (1159, 611, -33) - +bond1 4 +atom 8 (0) (1569, 835, 580) - +bond1 7 +atom 9 (0) (1517, 883, -661) - +bond1 7 +atom 10 (6) (-427, -1343, -45) - +bond1 1 +atom 11 (0) (-617, -1740, -678) - +bond1 10 +atom 12 (0) (-565, -1796, 563) - +bond1 10 +atom 13 (6) (1075, -940, -89) - +bond1 7 10 +atom 14 (0) (1453, -1251, 506) - +bond1 13 +atom 15 (0) (1404, -1205, -736) - +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 0.00 1.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- 0 torque and positive speed) +end molecular machine part rotarymotor- 0 torque and positive speed diff --git a/sim/src/tests/motors/test_013_rotarymotor_0_torque_and_positive_speed.trc b/sim/src/tests/motors/test_013_rotarymotor_0_torque_and_positive_speed.trc new file mode 100755 index 000000000..e574eaa21 --- /dev/null +++ b/sim/src/tests/motors/test_013_rotarymotor_0_torque_and_positive_speed.trc @@ -0,0 +1,37 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Warning: Using a reduced quality parameter, see the trace output for details +# Info: Using quality 3 parameters for X-1-C stretch +# Info: Computed ks: 1.000000e+03, r0: 7.700000e+01, de: 5.800000e-01, beta: 3.198925e-02 +# Info: Using quality 1 parameters for X-1-C.sp3-1-X bend +# Info: Computed kb: 2.000000e+06, theta0: 1.910600e+00 +# Info: Using quality 1 parameters for X-1-C.sp3-1-C bend +# Info: Computed kb: 1.622653e+06, theta0: 1.910600e+00 +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_013_rotarymotor_0_torque_and_positive_speed.trc test_013_rotarymotor_0_torque_and_positive_speed.mmp +# Date and Time: Wed Apr 19 10:53:26 2006 +# Input File: test_013_rotarymotor_0_torque_and_positive_speed.mmp +# Output File: test_013_rotarymotor_0_torque_and_positive_speed.xyz +# Trace File: test_013_rotarymotor_0_torque_and_positive_speed.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 15 +# +# 3 columns: +# Rotary Motor.45: speed (GHz) +# Rotary Motor.45: torque (nn-nm) +# Thermo-76: temperature (K) +# +# Time speed torque T.meter +# picosec Rotary Motor.45 Thermo-76 +# + 0.0100 -0.018 0.000 264.68 +# Done: diff --git a/sim/src/tests/motors/test_013_rotarymotor_0_torque_and_positive_speed.xyzcmp b/sim/src/tests/motors/test_013_rotarymotor_0_torque_and_positive_speed.xyzcmp new file mode 100755 index 000000000..4b86b2f76 --- /dev/null +++ b/sim/src/tests/motors/test_013_rotarymotor_0_torque_and_positive_speed.xyzcmp @@ -0,0 +1,17 @@ +15 +Frame 0, Iteration: 100 +C -1.277361 -0.027412 0.020713 +X -1.793835 0.010256 -0.611727 +X -1.669358 -0.053890 0.680032 +C -0.301736 1.181585 0.045365 +X -0.376601 1.634841 -0.574913 +X -0.389948 1.596741 0.672105 +C 1.152693 0.599211 -0.027489 +X 1.558853 0.790706 0.581080 +X 1.504145 0.884834 -0.660696 +C -0.426948 -1.355284 -0.019858 +X -0.606615 -1.733048 -0.652327 +X -0.576893 -1.812344 0.591343 +C 1.082893 -0.938087 -0.081157 +X 1.449043 -1.236222 0.556985 +X 1.418880 -1.163179 -0.745007 diff --git a/sim/src/tests/motors/test_014_rotarymotor_negative_torque_and_negative_speed.mmp b/sim/src/tests/motors/test_014_rotarymotor_negative_torque_and_negative_speed.mmp new file mode 100755 index 000000000..31f39f223 --- /dev/null +++ b/sim/src/tests/motors/test_014_rotarymotor_negative_torque_and_negative_speed.mmp @@ -0,0 +1,39 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (rotarymotor- negative torque and negative speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) - +atom 2 (0) (-1756, 10, -550) - +bond1 1 +atom 3 (0) (-1697, -38, 690) - +bond1 1 +atom 4 (6) (-290, 1170, 48) - +bond1 1 +atom 5 (0) (-433, 1633, -551) - +bond1 4 +atom 6 (0) (-380, 1587, 690) - +bond1 4 +atom 7 (6) (1159, 611, -33) - +bond1 4 +atom 8 (0) (1569, 835, 580) - +bond1 7 +atom 9 (0) (1517, 883, -661) - +bond1 7 +atom 10 (6) (-427, -1343, -45) - +bond1 1 +atom 11 (0) (-617, -1740, -678) - +bond1 10 +atom 12 (0) (-565, -1796, 563) - +bond1 10 +atom 13 (6) (1075, -940, -89) - +bond1 7 10 +atom 14 (0) (1453, -1251, 506) - +bond1 13 +atom 15 (0) (1404, -1205, -736) - +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) -0.50 -1.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- negative torque and negative speed) +end molecular machine part rotarymotor- negative torque and negative speed diff --git a/sim/src/tests/motors/test_014_rotarymotor_negative_torque_and_negative_speed.trc b/sim/src/tests/motors/test_014_rotarymotor_negative_torque_and_negative_speed.trc new file mode 100755 index 000000000..a23cda17d --- /dev/null +++ b/sim/src/tests/motors/test_014_rotarymotor_negative_torque_and_negative_speed.trc @@ -0,0 +1,37 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Warning: Using a reduced quality parameter, see the trace output for details +# Info: Using quality 3 parameters for X-1-C stretch +# Info: Computed ks: 1.000000e+03, r0: 7.700000e+01, de: 5.800000e-01, beta: 3.198925e-02 +# Info: Using quality 1 parameters for X-1-C.sp3-1-X bend +# Info: Computed kb: 2.000000e+06, theta0: 1.910600e+00 +# Info: Using quality 1 parameters for X-1-C.sp3-1-C bend +# Info: Computed kb: 1.622653e+06, theta0: 1.910600e+00 +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_014_rotarymotor_negative_torque_and_negative_speed.trc test_014_rotarymotor_negative_torque_and_negative_speed.mmp +# Date and Time: Wed Apr 19 10:53:26 2006 +# Input File: test_014_rotarymotor_negative_torque_and_negative_speed.mmp +# Output File: test_014_rotarymotor_negative_torque_and_negative_speed.xyz +# Trace File: test_014_rotarymotor_negative_torque_and_negative_speed.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 15 +# +# 3 columns: +# Rotary Motor.45: speed (GHz) +# Rotary Motor.45: torque (nn-nm) +# Thermo-76: temperature (K) +# +# Time speed torque T.meter +# picosec Rotary Motor.45 Thermo-76 +# + 0.0100 31.063 1.000 264.68 +# Done: diff --git a/sim/src/tests/motors/test_014_rotarymotor_negative_torque_and_negative_speed.xyzcmp b/sim/src/tests/motors/test_014_rotarymotor_negative_torque_and_negative_speed.xyzcmp new file mode 100755 index 000000000..c49d691c1 --- /dev/null +++ b/sim/src/tests/motors/test_014_rotarymotor_negative_torque_and_negative_speed.xyzcmp @@ -0,0 +1,17 @@ +15 +Frame 0, Iteration: 100 +C -1.277360 -0.027373 0.020715 +X -1.793835 0.010261 -0.611727 +X -1.669358 -0.053886 0.680032 +C -0.301699 1.181594 0.045364 +X -0.376597 1.634842 -0.574912 +X -0.389944 1.596742 0.672105 +C 1.152714 0.599179 -0.027491 +X 1.558856 0.790703 0.581080 +X 1.504147 0.884830 -0.660697 +C -0.426983 -1.355270 -0.019856 +X -0.606619 -1.733047 -0.652326 +X -0.576898 -1.812342 0.591343 +C 1.082869 -0.938117 -0.081157 +X 1.449041 -1.236225 0.556985 +X 1.418877 -1.163182 -0.745007 diff --git a/sim/src/tests/motors/test_015_rotarymotor_negative_torque_and_positive_speed.mmp b/sim/src/tests/motors/test_015_rotarymotor_negative_torque_and_positive_speed.mmp new file mode 100755 index 000000000..d53a9ad0a --- /dev/null +++ b/sim/src/tests/motors/test_015_rotarymotor_negative_torque_and_positive_speed.mmp @@ -0,0 +1,39 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (rotarymotor- negative torque and positive speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) - +atom 2 (0) (-1756, 10, -550) - +bond1 1 +atom 3 (0) (-1697, -38, 690) - +bond1 1 +atom 4 (6) (-290, 1170, 48) - +bond1 1 +atom 5 (0) (-433, 1633, -551) - +bond1 4 +atom 6 (0) (-380, 1587, 690) - +bond1 4 +atom 7 (6) (1159, 611, -33) - +bond1 4 +atom 8 (0) (1569, 835, 580) - +bond1 7 +atom 9 (0) (1517, 883, -661) - +bond1 7 +atom 10 (6) (-427, -1343, -45) - +bond1 1 +atom 11 (0) (-617, -1740, -678) - +bond1 10 +atom 12 (0) (-565, -1796, 563) - +bond1 10 +atom 13 (6) (1075, -940, -89) - +bond1 7 10 +atom 14 (0) (1453, -1251, 506) - +bond1 13 +atom 15 (0) (1404, -1205, -736) - +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) -0.50 1.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- negative torque and positive speed) +end molecular machine part rotarymotor- negative torque and positive speed diff --git a/sim/src/tests/motors/test_015_rotarymotor_negative_torque_and_positive_speed.trc b/sim/src/tests/motors/test_015_rotarymotor_negative_torque_and_positive_speed.trc new file mode 100755 index 000000000..11a437691 --- /dev/null +++ b/sim/src/tests/motors/test_015_rotarymotor_negative_torque_and_positive_speed.trc @@ -0,0 +1,37 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Warning: Using a reduced quality parameter, see the trace output for details +# Info: Using quality 3 parameters for X-1-C stretch +# Info: Computed ks: 1.000000e+03, r0: 7.700000e+01, de: 5.800000e-01, beta: 3.198925e-02 +# Info: Using quality 1 parameters for X-1-C.sp3-1-X bend +# Info: Computed kb: 2.000000e+06, theta0: 1.910600e+00 +# Info: Using quality 1 parameters for X-1-C.sp3-1-C bend +# Info: Computed kb: 1.622653e+06, theta0: 1.910600e+00 +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_015_rotarymotor_negative_torque_and_positive_speed.trc test_015_rotarymotor_negative_torque_and_positive_speed.mmp +# Date and Time: Wed Apr 19 10:53:26 2006 +# Input File: test_015_rotarymotor_negative_torque_and_positive_speed.mmp +# Output File: test_015_rotarymotor_negative_torque_and_positive_speed.xyz +# Trace File: test_015_rotarymotor_negative_torque_and_positive_speed.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 15 +# +# 3 columns: +# Rotary Motor.45: speed (GHz) +# Rotary Motor.45: torque (nn-nm) +# Thermo-76: temperature (K) +# +# Time speed torque T.meter +# picosec Rotary Motor.45 Thermo-76 +# + 0.0100 1.045 -0.022 264.68 +# Done: diff --git a/sim/src/tests/motors/test_015_rotarymotor_negative_torque_and_positive_speed.xyzcmp b/sim/src/tests/motors/test_015_rotarymotor_negative_torque_and_positive_speed.xyzcmp new file mode 100755 index 000000000..c09e4b540 --- /dev/null +++ b/sim/src/tests/motors/test_015_rotarymotor_negative_torque_and_positive_speed.xyzcmp @@ -0,0 +1,17 @@ +15 +Frame 0, Iteration: 100 +C -1.277361 -0.027407 0.020714 +X -1.793835 0.010257 -0.611727 +X -1.669358 -0.053889 0.680032 +C -0.301732 1.181586 0.045365 +X -0.376600 1.634841 -0.574912 +X -0.389947 1.596741 0.672105 +C 1.152696 0.599208 -0.027490 +X 1.558853 0.790706 0.581080 +X 1.504145 0.884834 -0.660696 +C -0.426952 -1.355282 -0.019858 +X -0.606616 -1.733048 -0.652327 +X -0.576894 -1.812343 0.591343 +C 1.082890 -0.938090 -0.081157 +X 1.449043 -1.236223 0.556985 +X 1.418879 -1.163179 -0.745007 diff --git a/sim/src/tests/motors/test_016_rotarymotor_negative_torque_and_0_speed.mmp b/sim/src/tests/motors/test_016_rotarymotor_negative_torque_and_0_speed.mmp new file mode 100755 index 000000000..7056d2740 --- /dev/null +++ b/sim/src/tests/motors/test_016_rotarymotor_negative_torque_and_0_speed.mmp @@ -0,0 +1,39 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (rotarymotor-negative torque and 0 speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) - +atom 2 (0) (-1756, 10, -550) - +bond1 1 +atom 3 (0) (-1697, -38, 690) - +bond1 1 +atom 4 (6) (-290, 1170, 48) - +bond1 1 +atom 5 (0) (-433, 1633, -551) - +bond1 4 +atom 6 (0) (-380, 1587, 690) - +bond1 4 +atom 7 (6) (1159, 611, -33) - +bond1 4 +atom 8 (0) (1569, 835, 580) - +bond1 7 +atom 9 (0) (1517, 883, -661) - +bond1 7 +atom 10 (6) (-427, -1343, -45) - +bond1 1 +atom 11 (0) (-617, -1740, -678) - +bond1 10 +atom 12 (0) (-565, -1796, 563) - +bond1 10 +atom 13 (6) (1075, -940, -89) - +bond1 7 10 +atom 14 (0) (1453, -1251, 506) - +bond1 13 +atom 15 (0) (1404, -1205, -736) - +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) -0.50 0.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor-negative torque and 0 speed) +end molecular machine part rotarymotor-negative torque and 0 speed diff --git a/sim/src/tests/motors/test_016_rotarymotor_negative_torque_and_0_speed.trc b/sim/src/tests/motors/test_016_rotarymotor_negative_torque_and_0_speed.trc new file mode 100755 index 000000000..583d9f800 --- /dev/null +++ b/sim/src/tests/motors/test_016_rotarymotor_negative_torque_and_0_speed.trc @@ -0,0 +1,37 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Warning: Using a reduced quality parameter, see the trace output for details +# Info: Using quality 3 parameters for X-1-C stretch +# Info: Computed ks: 1.000000e+03, r0: 7.700000e+01, de: 5.800000e-01, beta: 3.198925e-02 +# Info: Using quality 1 parameters for X-1-C.sp3-1-X bend +# Info: Computed kb: 2.000000e+06, theta0: 1.910600e+00 +# Info: Using quality 1 parameters for X-1-C.sp3-1-C bend +# Info: Computed kb: 1.622653e+06, theta0: 1.910600e+00 +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_016_rotarymotor_negative_torque_and_0_speed.trc test_016_rotarymotor_negative_torque_and_0_speed.mmp +# Date and Time: Wed Apr 19 10:53:27 2006 +# Input File: test_016_rotarymotor_negative_torque_and_0_speed.mmp +# Output File: test_016_rotarymotor_negative_torque_and_0_speed.xyz +# Trace File: test_016_rotarymotor_negative_torque_and_0_speed.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 15 +# +# 3 columns: +# Rotary Motor.45: speed (GHz) +# Rotary Motor.45: torque (nn-nm) +# Thermo-76: temperature (K) +# +# Time speed torque T.meter +# picosec Rotary Motor.45 Thermo-76 +# + 0.0100 0.037 -0.023 264.68 +# Done: diff --git a/sim/src/tests/motors/test_016_rotarymotor_negative_torque_and_0_speed.xyzcmp b/sim/src/tests/motors/test_016_rotarymotor_negative_torque_and_0_speed.xyzcmp new file mode 100755 index 000000000..786cf02f6 --- /dev/null +++ b/sim/src/tests/motors/test_016_rotarymotor_negative_torque_and_0_speed.xyzcmp @@ -0,0 +1,17 @@ +15 +Frame 0, Iteration: 100 +C -1.277361 -0.027411 0.020714 +X -1.793835 0.010256 -0.611727 +X -1.669358 -0.053890 0.680032 +C -0.301736 1.181585 0.045365 +X -0.376601 1.634841 -0.574913 +X -0.389948 1.596741 0.672105 +C 1.152693 0.599211 -0.027490 +X 1.558853 0.790706 0.581080 +X 1.504145 0.884834 -0.660696 +C -0.426948 -1.355283 -0.019858 +X -0.606615 -1.733048 -0.652327 +X -0.576894 -1.812344 0.591343 +C 1.082893 -0.938087 -0.081157 +X 1.449043 -1.236222 0.556985 +X 1.418880 -1.163179 -0.745007 diff --git a/sim/src/tests/motors/test_017_rotarymotor_positive_torque_and_negative_speed.mmp b/sim/src/tests/motors/test_017_rotarymotor_positive_torque_and_negative_speed.mmp new file mode 100755 index 000000000..21da06f8d --- /dev/null +++ b/sim/src/tests/motors/test_017_rotarymotor_positive_torque_and_negative_speed.mmp @@ -0,0 +1,39 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (rotarymotor- positive torque and negative speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) - +atom 2 (0) (-1756, 10, -550) - +bond1 1 +atom 3 (0) (-1697, -38, 690) - +bond1 1 +atom 4 (6) (-290, 1170, 48) - +bond1 1 +atom 5 (0) (-433, 1633, -551) - +bond1 4 +atom 6 (0) (-380, 1587, 690) - +bond1 4 +atom 7 (6) (1159, 611, -33) - +bond1 4 +atom 8 (0) (1569, 835, 580) - +bond1 7 +atom 9 (0) (1517, 883, -661) - +bond1 7 +atom 10 (6) (-427, -1343, -45) - +bond1 1 +atom 11 (0) (-617, -1740, -678) - +bond1 10 +atom 12 (0) (-565, -1796, 563) - +bond1 10 +atom 13 (6) (1075, -940, -89) - +bond1 7 10 +atom 14 (0) (1453, -1251, 506) - +bond1 13 +atom 15 (0) (1404, -1205, -736) - +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 0.50 1.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- positive torque and negative speed) +end molecular machine part rotarymotor- positive torque and negative speed diff --git a/sim/src/tests/motors/test_017_rotarymotor_positive_torque_and_negative_speed.trc b/sim/src/tests/motors/test_017_rotarymotor_positive_torque_and_negative_speed.trc new file mode 100755 index 000000000..79e8266d5 --- /dev/null +++ b/sim/src/tests/motors/test_017_rotarymotor_positive_torque_and_negative_speed.trc @@ -0,0 +1,37 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Warning: Using a reduced quality parameter, see the trace output for details +# Info: Using quality 3 parameters for X-1-C stretch +# Info: Computed ks: 1.000000e+03, r0: 7.700000e+01, de: 5.800000e-01, beta: 3.198925e-02 +# Info: Using quality 1 parameters for X-1-C.sp3-1-X bend +# Info: Computed kb: 2.000000e+06, theta0: 1.910600e+00 +# Info: Using quality 1 parameters for X-1-C.sp3-1-C bend +# Info: Computed kb: 1.622653e+06, theta0: 1.910600e+00 +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_017_rotarymotor_positive_torque_and_negative_speed.trc test_017_rotarymotor_positive_torque_and_negative_speed.mmp +# Date and Time: Wed Apr 19 10:53:26 2006 +# Input File: test_017_rotarymotor_positive_torque_and_negative_speed.mmp +# Output File: test_017_rotarymotor_positive_torque_and_negative_speed.xyz +# Trace File: test_017_rotarymotor_positive_torque_and_negative_speed.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 15 +# +# 3 columns: +# Rotary Motor.45: speed (GHz) +# Rotary Motor.45: torque (nn-nm) +# Thermo-76: temperature (K) +# +# Time speed torque T.meter +# picosec Rotary Motor.45 Thermo-76 +# + 0.0100 1.045 -0.022 264.68 +# Done: diff --git a/sim/src/tests/motors/test_017_rotarymotor_positive_torque_and_negative_speed.xyzcmp b/sim/src/tests/motors/test_017_rotarymotor_positive_torque_and_negative_speed.xyzcmp new file mode 100755 index 000000000..c09e4b540 --- /dev/null +++ b/sim/src/tests/motors/test_017_rotarymotor_positive_torque_and_negative_speed.xyzcmp @@ -0,0 +1,17 @@ +15 +Frame 0, Iteration: 100 +C -1.277361 -0.027407 0.020714 +X -1.793835 0.010257 -0.611727 +X -1.669358 -0.053889 0.680032 +C -0.301732 1.181586 0.045365 +X -0.376600 1.634841 -0.574912 +X -0.389947 1.596741 0.672105 +C 1.152696 0.599208 -0.027490 +X 1.558853 0.790706 0.581080 +X 1.504145 0.884834 -0.660696 +C -0.426952 -1.355282 -0.019858 +X -0.606616 -1.733048 -0.652327 +X -0.576894 -1.812343 0.591343 +C 1.082890 -0.938090 -0.081157 +X 1.449043 -1.236223 0.556985 +X 1.418879 -1.163179 -0.745007 diff --git a/sim/src/tests/motors/test_018_rotarymotor_positive_torque_and_0_speed.mmp b/sim/src/tests/motors/test_018_rotarymotor_positive_torque_and_0_speed.mmp new file mode 100755 index 000000000..8dae4aaa8 --- /dev/null +++ b/sim/src/tests/motors/test_018_rotarymotor_positive_torque_and_0_speed.mmp @@ -0,0 +1,39 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (rotarymotor-positive torque and 0 speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) - +atom 2 (0) (-1756, 10, -550) - +bond1 1 +atom 3 (0) (-1697, -38, 690) - +bond1 1 +atom 4 (6) (-290, 1170, 48) - +bond1 1 +atom 5 (0) (-433, 1633, -551) - +bond1 4 +atom 6 (0) (-380, 1587, 690) - +bond1 4 +atom 7 (6) (1159, 611, -33) - +bond1 4 +atom 8 (0) (1569, 835, 580) - +bond1 7 +atom 9 (0) (1517, 883, -661) - +bond1 7 +atom 10 (6) (-427, -1343, -45) - +bond1 1 +atom 11 (0) (-617, -1740, -678) - +bond1 10 +atom 12 (0) (-565, -1796, 563) - +bond1 10 +atom 13 (6) (1075, -940, -89) - +bond1 7 10 +atom 14 (0) (1453, -1251, 506) - +bond1 13 +atom 15 (0) (1404, -1205, -736) - +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 0.50 0.00 (49, -107, -14) (-42, 38, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor-positive torque and 0 speed) +end molecular machine part rotarymotor-positive torque and 0 speed diff --git a/sim/src/tests/motors/test_018_rotarymotor_positive_torque_and_0_speed.trc b/sim/src/tests/motors/test_018_rotarymotor_positive_torque_and_0_speed.trc new file mode 100755 index 000000000..c7e57d559 --- /dev/null +++ b/sim/src/tests/motors/test_018_rotarymotor_positive_torque_and_0_speed.trc @@ -0,0 +1,37 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Warning: Using a reduced quality parameter, see the trace output for details +# Info: Using quality 3 parameters for X-1-C stretch +# Info: Computed ks: 1.000000e+03, r0: 7.700000e+01, de: 5.800000e-01, beta: 3.198925e-02 +# Info: Using quality 1 parameters for X-1-C.sp3-1-X bend +# Info: Computed kb: 2.000000e+06, theta0: 1.910600e+00 +# Info: Using quality 1 parameters for X-1-C.sp3-1-C bend +# Info: Computed kb: 1.622653e+06, theta0: 1.910600e+00 +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_018_rotarymotor_positive_torque_and_0_speed.trc test_018_rotarymotor_positive_torque_and_0_speed.mmp +# Date and Time: Wed Apr 19 10:53:26 2006 +# Input File: test_018_rotarymotor_positive_torque_and_0_speed.mmp +# Output File: test_018_rotarymotor_positive_torque_and_0_speed.xyz +# Trace File: test_018_rotarymotor_positive_torque_and_0_speed.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 15 +# +# 3 columns: +# Rotary Motor.45: speed (GHz) +# Rotary Motor.45: torque (nn-nm) +# Thermo-76: temperature (K) +# +# Time speed torque T.meter +# picosec Rotary Motor.45 Thermo-76 +# + 0.0100 0.037 -0.023 264.68 +# Done: diff --git a/sim/src/tests/motors/test_018_rotarymotor_positive_torque_and_0_speed.xyzcmp b/sim/src/tests/motors/test_018_rotarymotor_positive_torque_and_0_speed.xyzcmp new file mode 100755 index 000000000..786cf02f6 --- /dev/null +++ b/sim/src/tests/motors/test_018_rotarymotor_positive_torque_and_0_speed.xyzcmp @@ -0,0 +1,17 @@ +15 +Frame 0, Iteration: 100 +C -1.277361 -0.027411 0.020714 +X -1.793835 0.010256 -0.611727 +X -1.669358 -0.053890 0.680032 +C -0.301736 1.181585 0.045365 +X -0.376601 1.634841 -0.574913 +X -0.389948 1.596741 0.672105 +C 1.152693 0.599211 -0.027490 +X 1.558853 0.790706 0.581080 +X 1.504145 0.884834 -0.660696 +C -0.426948 -1.355283 -0.019858 +X -0.606615 -1.733048 -0.652327 +X -0.576894 -1.812344 0.591343 +C 1.082893 -0.938087 -0.081157 +X 1.449043 -1.236222 0.556985 +X 1.418880 -1.163179 -0.745007 diff --git a/sim/src/tests/motors/test_019_rotarymotor_medium_torque_and_speed.mmp b/sim/src/tests/motors/test_019_rotarymotor_medium_torque_and_speed.mmp new file mode 100755 index 000000000..3591782c0 --- /dev/null +++ b/sim/src/tests/motors/test_019_rotarymotor_medium_torque_and_speed.mmp @@ -0,0 +1,38 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (rotarymotor-medium torque and speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1268, -54, 99) - +atom 2 (0) (-1771, 102, -464) - +bond1 1 +atom 3 (0) (-1675, -175, 743) - +bond1 1 +atom 4 (6) (-285, 1135, 294) - +bond1 1 +atom 5 (0) (-445, 1700, -204) - +bond1 4 +atom 6 (0) (-354, 1426, 1004) - +bond1 4 +atom 7 (6) (1160, 605, 67) - +bond1 4 +atom 8 (0) (1588, 713, 698) - +bond1 7 +atom 9 (0) (1499, 991, -510) - +bond1 7 +atom 10 (6) (-431, -1317, -259) - +bond1 1 +atom 11 (0) (-641, -1591, -949) - +bond1 10 +atom 12 (0) (-552, -1875, 258) - +bond1 10 +atom 13 (6) (1070, -909, -273) - +bond1 7 10 +atom 14 (0) (1465, -1324, 242) - +bond1 13 +atom 15 (0) (1379, -1048, -967) - +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 0.30 0.40 (49, -108, -14) (-72, 223, -972) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +egroup (rotarymotor-medium torque and speed) +end molecular machine part rotarymotor-medium torque and speed diff --git a/sim/src/tests/motors/test_019_rotarymotor_medium_torque_and_speed.trc b/sim/src/tests/motors/test_019_rotarymotor_medium_torque_and_speed.trc new file mode 100755 index 000000000..11430bd10 --- /dev/null +++ b/sim/src/tests/motors/test_019_rotarymotor_medium_torque_and_speed.trc @@ -0,0 +1,36 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Warning: Using a reduced quality parameter, see the trace output for details +# Info: Using quality 3 parameters for X-1-C stretch +# Info: Computed ks: 1.000000e+03, r0: 7.700000e+01, de: 5.800000e-01, beta: 3.198925e-02 +# Info: Using quality 1 parameters for X-1-C.sp3-1-X bend +# Info: Computed kb: 2.000000e+06, theta0: 1.910600e+00 +# Info: Using quality 1 parameters for X-1-C.sp3-1-C bend +# Info: Computed kb: 1.622653e+06, theta0: 1.910600e+00 +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_019_rotarymotor_medium_torque_and_speed.trc test_019_rotarymotor_medium_torque_and_speed.mmp +# Date and Time: Wed Apr 19 10:53:27 2006 +# Input File: test_019_rotarymotor_medium_torque_and_speed.mmp +# Output File: test_019_rotarymotor_medium_torque_and_speed.xyz +# Trace File: test_019_rotarymotor_medium_torque_and_speed.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 15 +# +# 2 columns: +# Rotary Motor.45: speed (GHz) +# Rotary Motor.45: torque (nn-nm) +# +# Time speed torque +# picosec Rotary Motor.45 +# + 0.0100 0.409 -0.006 +# Done: diff --git a/sim/src/tests/motors/test_019_rotarymotor_medium_torque_and_speed.xyzcmp b/sim/src/tests/motors/test_019_rotarymotor_medium_torque_and_speed.xyzcmp new file mode 100755 index 000000000..3c0102011 --- /dev/null +++ b/sim/src/tests/motors/test_019_rotarymotor_medium_torque_and_speed.xyzcmp @@ -0,0 +1,17 @@ +15 +Frame 0, Iteration: 100 +C -1.274962 -0.042467 0.073610 +X -1.809106 0.100636 -0.526767 +X -1.646465 -0.191357 0.731743 +C -0.296838 1.146624 0.291324 +X -0.389056 1.704949 -0.229951 +X -0.364062 1.433261 0.987845 +C 1.153225 0.594212 0.072609 +X 1.578055 0.665915 0.697514 +X 1.486865 0.992633 -0.509218 +C -0.430554 -1.329678 -0.234433 +X -0.630806 -1.582310 -0.921268 +X -0.563639 -1.892533 0.287138 +C 1.077732 -0.906621 -0.267509 +X 1.461684 -1.309237 0.295007 +X 1.393478 -1.006317 -0.974502 diff --git a/sim/src/tests/motors/test_020_rotarymotor_high_torque_and_speed.mmp b/sim/src/tests/motors/test_020_rotarymotor_high_torque_and_speed.mmp new file mode 100755 index 000000000..c1261b48d --- /dev/null +++ b/sim/src/tests/motors/test_020_rotarymotor_high_torque_and_speed.mmp @@ -0,0 +1,39 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (rotarymotor- high torque and speed) +info opengroup open = True +mol (Chunk-C309) tub +atom 1 (6) (-1271, -37, 47) - +atom 2 (0) (-1756, 10, -550) - +bond1 1 +atom 3 (0) (-1697, -38, 690) - +bond1 1 +atom 4 (6) (-290, 1170, 48) - +bond1 1 +atom 5 (0) (-433, 1633, -551) - +bond1 4 +atom 6 (0) (-380, 1587, 690) - +bond1 4 +atom 7 (6) (1159, 611, -33) - +bond1 4 +atom 8 (0) (1569, 835, 580) - +bond1 7 +atom 9 (0) (1517, 883, -661) - +bond1 7 +atom 10 (6) (-427, -1343, -45) - +bond1 1 +atom 11 (0) (-617, -1740, -678) - +bond1 10 +atom 12 (0) (-565, -1796, 563) - +bond1 10 +atom 13 (6) (1075, -940, -89) - +bond1 7 10 +atom 14 (0) (1453, -1251, 506) - +bond1 13 +atom 15 (0) (1404, -1205, -736) - +bond1 13 +rmotor (Rotary Motor.45) (127, 127, 127) 3.00 4.50 (49, -108, -14) (-42, 39, -998) 4.00 0.50 0.10 +shaft 1 4 7 10 13 +thermo (Thermo-76) (153, 0, 51) 1 15 4 +egroup (rotarymotor- high torque and speed) +end molecular machine part rotarymotor- high torque and speed diff --git a/sim/src/tests/motors/test_020_rotarymotor_high_torque_and_speed.trc b/sim/src/tests/motors/test_020_rotarymotor_high_torque_and_speed.trc new file mode 100755 index 000000000..24191097e --- /dev/null +++ b/sim/src/tests/motors/test_020_rotarymotor_high_torque_and_speed.trc @@ -0,0 +1,37 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Warning: Using a reduced quality parameter, see the trace output for details +# Info: Using quality 3 parameters for X-1-C stretch +# Info: Computed ks: 1.000000e+03, r0: 7.700000e+01, de: 5.800000e-01, beta: 3.198925e-02 +# Info: Using quality 1 parameters for X-1-C.sp3-1-X bend +# Info: Computed kb: 2.000000e+06, theta0: 1.910600e+00 +# Info: Using quality 1 parameters for X-1-C.sp3-1-C bend +# Info: Computed kb: 1.622653e+06, theta0: 1.910600e+00 +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_020_rotarymotor_high_torque_and_speed.trc test_020_rotarymotor_high_torque_and_speed.mmp +# Date and Time: Wed Apr 19 10:53:26 2006 +# Input File: test_020_rotarymotor_high_torque_and_speed.mmp +# Output File: test_020_rotarymotor_high_torque_and_speed.xyz +# Trace File: test_020_rotarymotor_high_torque_and_speed.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 15 +# +# 3 columns: +# Rotary Motor.45: speed (GHz) +# Rotary Motor.45: torque (nn-nm) +# Thermo-76: temperature (K) +# +# Time speed torque T.meter +# picosec Rotary Motor.45 Thermo-76 +# + 0.0100 4.533 -0.021 264.68 +# Done: diff --git a/sim/src/tests/motors/test_020_rotarymotor_high_torque_and_speed.xyzcmp b/sim/src/tests/motors/test_020_rotarymotor_high_torque_and_speed.xyzcmp new file mode 100755 index 000000000..aab809958 --- /dev/null +++ b/sim/src/tests/motors/test_020_rotarymotor_high_torque_and_speed.xyzcmp @@ -0,0 +1,17 @@ +15 +Frame 0, Iteration: 100 +C -1.277360 -0.027393 0.020714 +X -1.793835 0.010260 -0.611727 +X -1.669358 -0.053887 0.680032 +C -0.301718 1.181589 0.045364 +X -0.376598 1.634842 -0.574912 +X -0.389945 1.596742 0.672105 +C 1.152703 0.599196 -0.027490 +X 1.558855 0.790704 0.581080 +X 1.504147 0.884831 -0.660697 +C -0.426965 -1.355277 -0.019857 +X -0.606618 -1.733047 -0.652326 +X -0.576896 -1.812343 0.591343 +C 1.082881 -0.938102 -0.081157 +X 1.449041 -1.236225 0.556985 +X 1.418878 -1.163181 -0.745007 diff --git a/sim/src/tests/motors/test_021_rotarymotor_dyno_jig_test_to_same_chunk.mmp b/sim/src/tests/motors/test_021_rotarymotor_dyno_jig_test_to_same_chunk.mmp new file mode 100755 index 000000000..d2ef25740 --- /dev/null +++ b/sim/src/tests/motors/test_021_rotarymotor_dyno_jig_test_to_same_chunk.mmp @@ -0,0 +1,97 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (rotarymotor- 2 motors to same chunk) +info opengroup open = True +mol (Molecule.2-copy28) tub +atom 1 (6) (-2392, 4, -1575) - +atom 2 (6) (-2395, -17, 1570) - +atom 3 (6) (-2396, 1360, -779) - +bond1 1 +atom 4 (6) (-2398, 1349, 793) - +bond1 2 3 +atom 5 (6) (-2390, -1374, 774) - +bond1 2 +atom 6 (6) (-2389, -1363, -798) - +bond1 1 5 +atom 7 (8) (-1173, -2075, -1216) - +bond1 6 +atom 8 (8) (-1183, -20, 2400) - +bond1 2 +atom 9 (8) (-1185, 2085, -1187) - +bond1 3 +atom 10 (8) (-1178, 13, -2403) - +bond1 1 +atom 11 (8) (-1176, -2092, 1185) - +bond1 5 +atom 12 (8) (-1188, 2068, 1214) - +bond1 4 +atom 13 (1) (-3198, -1983, -1161) - +bond1 6 +atom 14 (1) (-3207, -25, 2285) - +bond1 2 +atom 15 (1) (-3209, 1980, -1133) - +bond1 3 +atom 16 (1) (-3203, 6, -2291) - +bond1 1 +atom 17 (1) (-3200, -1999, 1127) - +bond1 5 +atom 18 (1) (-3212, 1964, 1154) - +bond1 4 +atom 19 (6) (1, 10, -1545) - +bond1 10 +atom 20 (6) (-1, -10, 1545) - +bond1 8 +atom 21 (6) (-3, 1343, -763) - +bond1 19 9 +atom 22 (6) (-4, 1332, 781) - +bond1 20 21 12 +atom 23 (6) (3, -1343, 763) - +bond1 20 11 +atom 24 (6) (4, -1332, -781) - +bond1 19 23 7 +atom 25 (8) (1188, -2068, -1214) - +bond1 24 +atom 26 (8) (1178, -13, 2403) - +bond1 20 +atom 27 (8) (1176, 2092, -1185) - +bond1 21 +atom 28 (8) (1183, 20, -2400) - +bond1 19 +atom 29 (8) (1185, -2085, 1187) - +bond1 23 +atom 30 (8) (1173, 2075, 1216) - +bond1 22 +atom 31 (6) (2395, 17, -1570) - +bond1 28 +atom 32 (6) (2392, -4, 1575) - +bond1 26 +atom 33 (6) (2390, 1374, -774) - +bond1 31 27 +atom 34 (6) (2389, 1363, 798) - +bond1 32 33 30 +atom 35 (6) (2396, -1360, 779) - +bond1 32 29 +atom 36 (6) (2398, -1349, -793) - +bond1 31 35 25 +atom 37 (1) (3212, -1964, -1155) - +bond1 36 +atom 38 (1) (3202, -6, 2291) - +bond1 32 +atom 39 (1) (3200, 1999, -1127) - +bond1 33 +atom 40 (1) (3207, 25, -2285) - +bond1 31 +atom 41 (1) (3209, -1980, 1133) - +bond1 35 +atom 42 (1) (3198, 1983, 1161) - +bond1 34 +mol (Molecule.2-copy28-frag) tub +atom 43 (10) (11999, -10, 1545) - +thermo (Thermo-89) (153, 0, 51) 1 42 22 +mdistance (Distance-90) (0, 0, 0) (Helvetica) 10 43 20 +rmotor (Rotary Motor--0 torque and speed) (85, 170, 127) 0.00 0.00 (-2393, -6, -2) (-999, -2, 0) 2.00 0.50 0.10 +shaft 1 2 3 4 5 6 +rmotor (Rotary Motor-187) (127, 127, 127) 0.50 0.40 (2393, 6, 2) (-999, -2, 0) 2.00 0.50 0.10 +shaft 31 32 33 34 35 36 +egroup (rotarymotor- 2 motors to same chunk) +end molecular machine part rotarymotor- 2 motors to same chunk diff --git a/sim/src/tests/motors/test_021_rotarymotor_dyno_jig_test_to_same_chunk.trc b/sim/src/tests/motors/test_021_rotarymotor_dyno_jig_test_to_same_chunk.trc new file mode 100755 index 000000000..ba25b9e7c --- /dev/null +++ b/sim/src/tests/motors/test_021_rotarymotor_dyno_jig_test_to_same_chunk.trc @@ -0,0 +1,33 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_021_rotarymotor_dyno_jig_test_to_same_chunk.trc test_021_rotarymotor_dyno_jig_test_to_same_chunk.mmp +# Date and Time: Wed Apr 19 10:53:30 2006 +# Input File: test_021_rotarymotor_dyno_jig_test_to_same_chunk.mmp +# Output File: test_021_rotarymotor_dyno_jig_test_to_same_chunk.xyz +# Trace File: test_021_rotarymotor_dyno_jig_test_to_same_chunk.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 43 +# +# 6 columns: +# Thermo-89: temperature (K) +# Distance-90: distance (angstroms) +# Rotary Motor--0 torque and speed: speed (GHz) +# Rotary Motor--0 torque and speed: torque (nn-nm) +# Rotary Motor-187: speed (GHz) +# Rotary Motor-187: torque (nn-nm) +# +# Time T.meter Distance speed torque speed torque +# picosec Thermo-89 Distance-90 Rotary Motor--0 Rotary Motor-18 +# + 0.0100 267.57 11.9535 -6.515 0.000 0.489 -0.054 +# Done: diff --git a/sim/src/tests/motors/test_021_rotarymotor_dyno_jig_test_to_same_chunk.xyzcmp b/sim/src/tests/motors/test_021_rotarymotor_dyno_jig_test_to_same_chunk.xyzcmp new file mode 100755 index 000000000..2c90d0011 --- /dev/null +++ b/sim/src/tests/motors/test_021_rotarymotor_dyno_jig_test_to_same_chunk.xyzcmp @@ -0,0 +1,45 @@ +43 +Frame 0, Iteration: 100 +C -2.385795 0.021303 -1.588301 +C -2.439907 -0.025173 1.538354 +C -2.384683 1.350134 -0.781820 +C -2.431316 1.348878 0.806065 +C -2.346807 -1.363157 0.748464 +C -2.392633 -1.365277 -0.827345 +O -1.181149 -2.093149 -1.190170 +O -1.202843 -0.059304 2.378163 +O -1.192153 2.086032 -1.182714 +O -1.185866 -0.005914 -2.372601 +O -1.165663 -2.085627 1.210805 +O -1.206459 2.037429 1.227750 +H -3.202411 -1.993785 -1.200900 +H -3.183544 -0.045895 2.340385 +H -3.154174 2.026814 -1.150675 +H -3.225104 0.106420 -2.280607 +H -3.177908 -1.969901 1.099684 +H -3.261731 1.965009 1.162626 +C -0.025668 0.004428 -1.556127 +C 0.011840 -0.006217 1.561015 +C -0.017986 1.340550 -0.763790 +C -0.004789 1.322307 0.751632 +C 0.041437 -1.333850 0.775184 +C 0.005472 -1.311088 -0.779616 +O 1.227490 -2.064534 -1.190082 +O 1.185680 0.023427 2.390564 +O 1.154891 2.065570 -1.180207 +O 1.131320 0.032830 -2.412887 +O 1.194076 -2.093311 1.147748 +O 1.179321 2.124086 1.206790 +C 2.390600 0.032407 -1.586918 +C 2.412465 -0.011463 1.608266 +C 2.410133 1.389089 -0.765198 +C 2.412645 1.377200 0.799315 +C 2.400144 -1.375445 0.812315 +C 2.423230 -1.333242 -0.793384 +H 3.246814 -1.987580 -1.085596 +H 3.192642 -0.040396 2.373207 +H 3.260232 1.982897 -1.117194 +H 3.183852 0.095240 -2.333727 +H 3.185294 -2.040648 1.178911 +H 3.284478 1.974666 1.095831 +Ne 11.986328 -0.028886 1.543347 diff --git a/sim/src/tests/motors/test_022_rotary_motor_small_bearing_test.mmp b/sim/src/tests/motors/test_022_rotary_motor_small_bearing_test.mmp new file mode 100755 index 000000000..e1ca85378 --- /dev/null +++ b/sim/src/tests/motors/test_022_rotary_motor_small_bearing_test.mmp @@ -0,0 +1,429 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (rotary motor- small bearing test) +info opengroup open = True +mol (OuterSleeve-copy32) - +atom 1 (6) (-2868, -5945, 1370) - +atom 2 (6) (-2484, -5150, 42) - +bond1 1 +atom 3 (6) (-2878, -5941, -1285) - +bond1 2 +atom 4 (14) (-4770, -5942, 1214) - +bond1 1 +atom 5 (14) (-4777, -5942, -1118) - +bond1 3 4 +atom 6 (8) (-3038, -3813, 49) - +bond1 2 +atom 7 (6) (-5134, -4073, 1385) - +bond1 4 +atom 8 (6) (-4455, -3540, 47) - +bond1 6 7 +atom 9 (6) (-5135, -4074, -1289) - +bond1 5 8 +atom 10 (14) (-6859, -3271, 1214) - +bond1 7 +atom 11 (14) (-6861, -3275, -1118) - +bond1 9 10 +atom 12 (8) (-4376, -2097, 46) - +bond1 8 +atom 13 (6) (-6395, -1427, 1375) - +bond1 10 +atom 14 (6) (-5541, -1241, 42) - +bond1 12 13 +atom 15 (6) (-6395, -1434, -1288) - +bond1 11 14 +atom 16 (14) (-7589, 53, 1205) - +bond1 13 +atom 17 (14) (-7592, 43, -1128) - +bond1 15 16 +atom 18 (8) (-4849, 27, 42) - +bond1 14 +atom 19 (6) (-6370, 1515, 1363) - +bond1 16 +atom 20 (6) (-5522, 1306, 31) - +bond1 18 19 +atom 21 (6) (-6372, 1500, -1302) - +bond1 17 20 +atom 22 (14) (-6808, 3364, 1186) - +bond1 19 +atom 23 (14) (-6812, 3350, -1148) - +bond1 21 22 +atom 24 (8) (-4345, 2147, 24) - +bond1 20 +atom 25 (6) (-5071, 4143, 1348) - +bond1 22 +atom 26 (6) (-4401, 3590, 14) - +bond1 24 25 +atom 27 (6) (-5076, 4125, -1325) - +bond1 23 26 +atom 28 (14) (-4676, 6004, 1165) - +bond1 25 +atom 29 (14) (-4683, 5989, -1168) - +bond1 27 28 +atom 30 (8) (-2980, 3842, 10) - +bond1 26 +atom 31 (6) (-2774, 5978, 1320) - +bond1 28 +atom 32 (6) (-2403, 5169, -3) - +bond1 30 31 +atom 33 (6) (-2783, 5960, -1335) - +bond1 29 32 +atom 34 (14) (-1590, 7463, 1144) - +bond1 31 +atom 35 (14) (-1600, 7447, -1187) - +bond1 33 34 +atom 36 (8) (-1012, 4769, -6) - +bond1 32 +atom 37 (6) (97, 6580, 1314) - +bond1 34 +atom 38 (6) (83, 5710, -18) - +bond1 36 37 +atom 39 (6) (83, 6563, -1361) - +bond1 35 38 +atom 40 (14) (1797, 7434, 1128) - +bond1 37 +atom 41 (14) (1784, 7421, -1203) - +bond1 39 40 +atom 42 (8) (1163, 4751, -17) - +bond1 38 +atom 43 (6) (2959, 5930, 1291) - +bond1 40 +atom 44 (6) (2560, 5128, -28) - +bond1 42 43 +atom 45 (6) (2942, 5914, -1363) - +bond1 41 44 +atom 46 (14) (4859, 5923, 1118) - +bond1 43 +atom 47 (14) (4844, 5911, -1214) - +bond1 45 46 +atom 48 (8) (3115, 3790, -22) - +bond1 44 +atom 49 (6) (5222, 4054, 1296) - +bond1 46 +atom 50 (6) (4532, 3515, -32) - +bond1 48 49 +atom 51 (6) (5201, 4041, -1378) - +bond1 47 50 +atom 52 (14) (6946, 3250, 1115) - +bond1 49 +atom 53 (14) (6927, 3239, -1217) - +bond1 51 52 +atom 54 (8) (4452, 2072, -23) - +bond1 50 +atom 55 (6) (6483, 1407, 1293) - +bond1 52 +atom 56 (6) (5616, 1214, -30) - +bond1 54 55 +atom 57 (6) (6458, 1397, -1371) - +bond1 53 56 +atom 58 (14) (7675, -74, 1121) - +bond1 55 +atom 59 (14) (7653, -82, -1212) - +bond1 57 58 +atom 60 (8) (4922, -54, -14) - +bond1 56 +atom 61 (6) (6456, -1534, 1303) - +bond1 58 +atom 62 (6) (5594, -1333, -21) - +bond1 60 61 +atom 63 (6) (6428, -1538, -1363) - +bond1 59 62 +atom 64 (14) (6893, -3384, 1133) - +bond1 61 +atom 65 (14) (6868, -3387, -1199) - +bond1 63 64 +atom 66 (8) (4416, -2170, -6) - +bond1 62 +atom 67 (6) (5158, -4161, 1322) - +bond1 64 +atom 68 (6) (4472, -3615, -6) - +bond1 66 67 +atom 69 (6) (5129, -4159, -1351) - +bond1 65 68 +atom 70 (14) (4760, -6023, 1155) - +bond1 67 +atom 71 (14) (4738, -6021, -1178) - +bond1 69 70 +atom 72 (8) (3051, -3864, 12) - +bond1 68 +atom 73 (6) (2860, -5992, 1335) - +bond1 70 +atom 74 (6) (2474, -5191, 11) - +bond1 72 73 +atom 75 (6) (2838, -5987, -1322) - +bond1 71 74 +atom 76 (14) (1676, -7480, 1177) - +bond1 73 +atom 77 (14) (1659, -7475, -1154) - +bond1 75 76 +atom 78 (8) (1084, -4789, 25) - +bond1 74 +atom 79 (6) (-8, -6597, 1364) - +bond1 76 +atom 80 (6) (-9, -5730, 28) - +bond1 78 79 +atom 81 (6) (-25, -6588, -1312) - +bond1 77 80 +atom 82 (14) (-1710, -7452, 1199) - +bond1 1 79 +atom 83 (14) (-1721, -7448, -1132) - +bond1 3 81 82 +atom 84 (8) (-1088, -4771, 40) - +bond1 2 80 +atom 85 (1) (-2607, -5439, 2320) - +bond1 1 +atom 86 (1) (-2626, -5436, -2238) - +bond1 3 +atom 87 (1) (-5548, -6894, 2030) - +bond1 4 +atom 88 (1) (-5558, -6892, -1935) - +bond1 5 +atom 89 (1) (-4645, -3686, 2305) - +bond1 7 +atom 90 (1) (-4648, -3687, -2210) - +bond1 9 +atom 91 (1) (-7969, -3797, 2032) - +bond1 10 +atom 92 (1) (-7969, -3804, -1937) - +bond1 11 +atom 93 (1) (-5811, -1308, 2311) - +bond1 13 +atom 94 (1) (-5815, -1322, -2226) - +bond1 15 +atom 95 (1) (-8820, 66, 2020) - +bond1 16 +atom 96 (1) (-8822, 47, -1944) - +bond1 17 +atom 97 (1) (-5784, 1393, 2297) - +bond1 19 +atom 98 (1) (-5788, 1370, -2237) - +bond1 21 +atom 99 (1) (-7910, 3913, 2001) - +bond1 22 +atom 100 (1) (-7915, 3886, -1967) - +bond1 23 +atom 101 (1) (-4590, 3755, 2272) - +bond1 25 +atom 102 (1) (-4599, 3726, -2245) - +bond1 27 +atom 103 (1) (-5439, 6974, 1975) - +bond1 28 +atom 104 (1) (-5452, 6947, -1989) - +bond1 29 +atom 105 (1) (-2520, 5473, 2273) - +bond1 31 +atom 106 (1) (-2536, 5445, -2284) - +bond1 33 +atom 107 (1) (-1843, 8670, 1955) - +bond1 34 +atom 108 (1) (-1861, 8645, -2012) - +bond1 35 +atom 109 (1) (96, 5957, 2234) - +bond1 37 +atom 110 (1) (73, 5929, -2274) - +bond1 39 +atom 111 (1) (2079, 8636, 1936) - +bond1 40 +atom 112 (1) (2057, 8613, -2030) - +bond1 41 +atom 113 (1) (2709, 5432, 2248) - +bond1 43 +atom 114 (1) (2681, 5406, -2311) - +bond1 45 +atom 115 (1) (5647, 6877, 1923) - +bond1 46 +atom 116 (1) (5620, 6855, -2041) - +bond1 47 +atom 117 (1) (4741, 3672, 2222) - +bond1 49 +atom 118 (1) (4706, 3649, -2292) - +bond1 51 +atom 119 (1) (8064, 3780, 1921) - +bond1 52 +atom 120 (1) (8031, 3760, -2048) - +bond1 53 +atom 121 (1) (5911, 1295, 2236) - +bond1 55 +atom 122 (1) (5868, 1279, -2303) - +bond1 57 +atom 123 (1) (8914, -84, 1923) - +bond1 58 +atom 124 (1) (8875, -97, -2041) - +bond1 59 +atom 125 (1) (5879, -1405, 2242) - +bond1 61 +atom 126 (1) (5833, -1412, -2291) - +bond1 63 +atom 127 (1) (8004, -3928, 1938) - +bond1 64 +atom 128 (1) (7959, -3932, -2031) - +bond1 65 +atom 129 (1) (4689, -3768, 2251) - +bond1 67 +atom 130 (1) (4640, -3765, -2268) - +bond1 69 +atom 131 (1) (5532, -6989, 1961) - +bond1 70 +atom 132 (1) (5493, -6983, -2004) - +bond1 71 +atom 133 (1) (2616, -5479, 2286) - +bond1 73 +atom 134 (1) (2579, -5475, -2269) - +bond1 75 +atom 135 (1) (1940, -8685, 1988) - +bond1 76 +atom 136 (1) (1909, -8673, -1979) - +bond1 77 +atom 137 (1) (3, -5972, 2283) - +bond1 79 +atom 138 (1) (-25, -5956, -2227) - +bond1 81 +atom 139 (1) (-1983, -8652, 2014) - +bond1 82 +atom 140 (1) (-2001, -8642, -1954) - +bond1 83 +mol (InnerSleeve-copy33) - +atom 141 (6) (-2044, -1223, -2399) - +atom 142 (6) (8, 2379, -2430) - +atom 143 (6) (2088, 1194, -2436) - +atom 144 (6) (2101, -1199, -2423) - +atom 145 (6) (35, -2408, -2403) - +atom 146 (6) (-1290, -784, -3673) - +bond1 141 +atom 147 (6) (-1298, 727, -3682) - +bond1 146 +atom 148 (6) (5, 1490, -3693) - +bond1 142 147 +atom 149 (6) (1319, 742, -3697) - +bond1 143 148 +atom 150 (6) (1327, -769, -3689) - +bond1 144 149 +atom 151 (6) (22, -1533, -3676) - +bond1 145 146 150 +atom 152 (16) (-3431, -34, -2604) - +bond1 141 +atom 153 (16) (-1721, 2963, -2625) - +bond1 142 +atom 154 (16) (1729, 2983, -2644) - +bond1 142 143 +atom 155 (16) (3472, 4, -2644) - +bond1 143 144 +atom 156 (16) (1763, -2994, -2612) - +bond1 144 145 +atom 157 (16) (-1687, -3013, -2591) - +bond1 141 145 +atom 158 (6) (-2031, 1196, 2468) - +atom 159 (6) (36, 2405, 2449) - +atom 160 (6) (-2016, -1197, 2481) - +atom 161 (6) (64, -2383, 2474) - +atom 162 (6) (2131, -1175, 2456) - +atom 163 (6) (2118, 1219, 2444) - +atom 164 (6) (49, 1530, 3721) - +bond1 159 +atom 165 (6) (-1255, 767, 3734) - +bond1 158 164 +atom 166 (6) (-1246, -745, 3742) - +bond1 160 165 +atom 167 (6) (66, -1494, 3737) - +bond1 161 166 +atom 168 (6) (1371, -730, 3726) - +bond1 162 167 +atom 169 (6) (1363, 781, 3718) - +bond1 163 164 168 +atom 170 (16) (-1691, 2993, 2653) - +bond1 158 159 +atom 171 (16) (-3402, -7, 2683) - +bond1 158 160 +atom 172 (16) (-1658, -2989, 2680) - +bond1 160 161 +atom 173 (16) (1795, -2970, 2660) - +bond1 161 162 +atom 174 (16) (3505, 30, 2642) - +bond1 162 163 +atom 175 (16) (1761, 3011, 2632) - +bond1 159 163 +atom 176 (6) (1354, 771, 1175) - +bond1 163 +atom 177 (6) (34, 1522, 1179) - +bond1 159 176 +atom 178 (6) (-1277, 756, 1191) - +bond1 158 177 +atom 179 (6) (-1268, -762, 1199) - +bond1 160 178 +atom 180 (6) (51, -1513, 1195) - +bond1 161 179 +atom 181 (6) (1363, -747, 1183) - +bond1 162 176 180 +atom 182 (8) (22, 2347, 9) - +bond1 177 +atom 183 (8) (2064, 1183, 4) - +bond1 176 +atom 184 (8) (2077, -1164, 17) - +bond1 181 +atom 185 (8) (-2005, 1161, 28) - +bond1 178 +atom 186 (8) (-1992, -1186, 41) - +bond1 179 +atom 187 (8) (49, -2350, 35) - +bond1 180 +atom 188 (6) (38, -1526, -1133) - +bond1 145 187 +atom 189 (6) (-1282, -774, -1130) - +bond1 141 186 188 +atom 190 (6) (-1291, 744, -1138) - +bond1 185 189 +atom 191 (6) (20, 1510, -1150) - +bond1 142 182 190 +atom 192 (6) (1340, 758, -1154) - +bond1 143 183 191 +atom 193 (6) (1349, -760, -1145) - +bond1 144 184 188 192 +atom 194 (1) (-1862, -1122, -4582) - +bond1 146 +atom 195 (1) (-1874, 1047, -4594) - +bond1 147 +atom 196 (1) (-3, 2143, -4610) - +bond1 148 +atom 197 (1) (1880, 1068, -4616) - +bond1 149 +atom 198 (1) (1892, -1100, -4604) - +bond1 150 +atom 199 (1) (21, -2196, -4585) - +bond1 151 +atom 200 (1) (51, 2194, 4630) - +bond1 164 +atom 201 (1) (-1821, 1098, 4649) - +bond1 165 +atom 202 (1) (-1809, -1072, 4660) - +bond1 166 +atom 203 (1) (75, -2148, 4653) - +bond1 167 +atom 204 (1) (1948, -1052, 4638) - +bond1 168 +atom 205 (1) (1936, 1119, 4626) - +bond1 169 +atom 206 (6) (-2058, 1170, -2412) - +bond1 147 152 153 190 +rmotor (Rotary Motor-165) (127, 127, 127) 1.50 3.00 (50, 11, 2462) (-5, -5, -999) 10.00 0.50 0.20 +shaft 158 159 160 161 162 163 +ground (Anchor-166) (0, 0, 0) 119 120 123 124 127 128 131 132 135 136 139 140 91 92 95 96 87 88 99 100 103 104 107 108 111 112 115 116 +thermo (Thermo-167) (153, 0, 51) 1 140 28 +thermo (Thermo-168) (153, 0, 51) 141 206 170 +stat (Stat-169) (0, 0, 153) (300) 1 140 49 +mol (InnerSleeve-copy33-frag) - +atom 207 (10) (25049, 1530, 3721) - +mol (InnerSleeve-copy33-frag) - +atom 208 (10) (49, 26530, 3721) - +mol (InnerSleeve-copy33-frag) - +atom 209 (10) (49, -23469, 3721) - +ground (Anchor-172) (0, 0, 0) 208 207 +mdistance (Distance-174) (0, 0, 0) (Helvetica) 10 208 164 +info leaf hidden = True +ground (Anchor-175) (0, 0, 0) 209 +mdistance (Distance-176) (0, 0, 0) (Helvetica) 10 164 209 +info leaf hidden = True +mangle (Angle-177) (0, 0, 0) (Helvetica) 10 208 209 164 +mdistance (Distance-178) (0, 0, 0) (Helvetica) 10 164 207 +info leaf hidden = True +egroup (rotary motor- small bearing test) +end molecular machine part rotary motor- small bearing test diff --git a/sim/src/tests/motors/test_022_rotary_motor_small_bearing_test.trc b/sim/src/tests/motors/test_022_rotary_motor_small_bearing_test.trc new file mode 100755 index 000000000..8010cf5fe --- /dev/null +++ b/sim/src/tests/motors/test_022_rotary_motor_small_bearing_test.trc @@ -0,0 +1,39 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_022_rotary_motor_small_bearing_test.trc test_022_rotary_motor_small_bearing_test.mmp +# Date and Time: Wed Apr 19 10:53:32 2006 +# Input File: test_022_rotary_motor_small_bearing_test.mmp +# Output File: test_022_rotary_motor_small_bearing_test.xyz +# Trace File: test_022_rotary_motor_small_bearing_test.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 209 +# +# 12 columns: +# Rotary Motor-165: speed (GHz) +# Rotary Motor-165: torque (nn-nm) +# Anchor-166: torque (nn-nm) +# Thermo-167: temperature (K) +# Thermo-168: temperature (K) +# Stat-169: energy added (zJ) +# Anchor-172: torque (nn-nm) +# Distance-174: distance (angstroms) +# Anchor-175: torque (nn-nm) +# Distance-176: distance (angstroms) +# Angle-177: angle (degrees) +# Distance-178: distance (angstroms) +# +# Time speed torque Anchor T.meter T.meter T.stat Anchor Distance Anchor Distance Angle Distance +# picosec Rotary Motor-16 Anchor-166 Thermo-167 Thermo-168 Stat-169 Anchor-172 Distance-174 Anchor-175 Distance-176 Angle-177 Distance-178 +# + 0.0100 3.646 -0.317 1.17 251.67 486.02 0.15 0.00 24.9645 0.00 25.0345 0.06433 24.9824 +# Done: diff --git a/sim/src/tests/motors/test_022_rotary_motor_small_bearing_test.xyzcmp b/sim/src/tests/motors/test_022_rotary_motor_small_bearing_test.xyzcmp new file mode 100755 index 000000000..43dedb535 --- /dev/null +++ b/sim/src/tests/motors/test_022_rotary_motor_small_bearing_test.xyzcmp @@ -0,0 +1,211 @@ +209 +Frame 0, Iteration: 100 +C -2.843790 -5.956283 1.343683 +C -2.527887 -5.150868 -0.009296 +C -2.870084 -5.982218 -1.294507 +Si -4.791480 -5.947603 1.235829 +Si -4.759104 -5.930960 -1.137196 +O -3.030620 -3.814769 0.017209 +C -5.126704 -4.096127 1.390424 +C -4.451038 -3.561085 0.033571 +C -5.150582 -4.071911 -1.309685 +Si -6.857387 -3.276659 1.237699 +Si -6.860670 -3.276115 -1.101252 +O -4.385877 -2.111853 0.060133 +C -6.400151 -1.430747 1.349802 +C -5.546951 -1.244753 0.069652 +C -6.383097 -1.415983 -1.294363 +Si -7.608108 0.063123 1.191871 +Si -7.568687 0.070216 -1.147665 +O -4.838874 0.012663 0.030787 +C -6.377948 1.486094 1.346050 +C -5.506655 1.314120 0.049093 +C -6.366013 1.509099 -1.309243 +Si -6.797971 3.351053 1.165452 +Si -6.783570 3.348105 -1.148927 +O -4.355144 2.159207 0.016521 +C -5.028872 4.143280 1.357230 +C -4.393033 3.599821 0.014053 +C -5.084452 4.096590 -1.335161 +Si -4.693938 5.999551 1.151025 +Si -4.686555 5.989739 -1.193445 +O -2.985167 3.864418 -0.004399 +C -2.764573 5.977167 1.299698 +C -2.369823 5.148953 0.032997 +C -2.766011 5.968090 -1.324744 +Si -1.571016 7.462148 1.137369 +Si -1.598099 7.438488 -1.166983 +O -0.989098 4.783106 -0.015313 +C 0.114557 6.544388 1.329376 +C 0.067229 5.693958 -0.008904 +C 0.093971 6.560634 -1.358029 +Si 1.787405 7.445980 1.119134 +Si 1.788947 7.416353 -1.209857 +O 1.198635 4.767924 -0.031283 +C 2.954760 5.912233 1.279550 +C 2.570197 5.152704 -0.038123 +C 2.931952 5.924779 -1.388002 +Si 4.847420 5.909926 1.118497 +Si 4.850651 5.911076 -1.207230 +O 3.132355 3.810377 -0.000122 +C 5.247052 4.044850 1.305720 +C 4.549278 3.516679 -0.028664 +C 5.173823 4.010923 -1.400843 +Si 6.929693 3.266932 1.120587 +Si 6.943914 3.229404 -1.183336 +O 4.464365 2.076304 -0.023871 +C 6.524239 1.426444 1.273616 +C 5.599051 1.221050 -0.031322 +C 6.439460 1.405531 -1.387021 +Si 7.673154 -0.077783 1.103175 +Si 7.634240 -0.066309 -1.239977 +O 4.880454 -0.064430 -0.028401 +C 6.445224 -1.567366 1.282086 +C 5.550418 -1.327992 -0.023569 +C 6.453615 -1.541852 -1.339611 +Si 6.889242 -3.392304 1.146238 +Si 6.849091 -3.405489 -1.181280 +O 4.379673 -2.173948 -0.035782 +C 5.162350 -4.158988 1.308033 +C 4.448991 -3.608008 -0.025237 +C 5.132405 -4.154699 -1.335780 +Si 4.760083 -6.012376 1.145959 +Si 4.744689 -6.014075 -1.173233 +O 3.025353 -3.882255 0.023113 +C 2.892482 -6.034539 1.360927 +C 2.474791 -5.194863 0.043934 +C 2.853380 -6.017108 -1.309059 +Si 1.684112 -7.440088 1.161449 +Si 1.630407 -7.460719 -1.113110 +O 1.075543 -4.769583 0.020707 +C 0.000121 -6.565470 1.351051 +C 0.000661 -5.740946 -0.005371 +C -0.020170 -6.616440 -1.286545 +Si -1.705971 -7.477842 1.218477 +Si -1.714407 -7.454115 -1.123038 +O -1.106816 -4.788919 0.079147 +H -2.533512 -5.458948 2.259640 +H -2.604813 -5.519880 -2.221067 +H -5.548041 -6.894066 2.030052 +H -5.557997 -6.892011 -1.934977 +H -4.624780 -3.676028 2.262633 +H -4.653533 -3.767465 -2.240751 +H -7.969035 -3.797070 2.032008 +H -7.969015 -3.803996 -1.937001 +H -5.775061 -1.350533 2.235253 +H -5.799229 -1.296488 -2.205478 +H -8.820023 0.066030 2.020021 +H -8.821981 0.047019 -1.943998 +H -5.862644 1.371546 2.302445 +H -5.723794 1.492644 -2.196853 +H -7.909975 3.912963 2.000976 +H -7.914978 3.885967 -1.967005 +H -4.542744 3.759723 2.257883 +H -4.637618 3.623532 -2.201666 +H -5.439044 6.974014 1.974982 +H -5.452044 6.947052 -1.989019 +H -2.639149 5.438438 2.208842 +H -2.475708 5.458392 -2.237120 +H -1.843006 8.670044 1.954998 +H -1.861004 8.645005 -2.011978 +H 0.089636 5.924051 2.228726 +H 0.098508 5.944689 -2.281486 +H 2.079028 8.636032 1.935990 +H 2.056982 8.613029 -2.029960 +H 2.675810 5.414316 2.188254 +H 2.701555 5.445933 -2.345933 +H 5.646970 6.877026 1.922992 +H 5.619980 6.855036 -2.040979 +H 4.748814 3.706326 2.208223 +H 4.692990 3.662048 -2.311789 +H 8.064040 3.780019 1.921001 +H 8.031041 3.759987 -2.047971 +H 5.923795 1.279143 2.157816 +H 5.862363 1.268410 -2.295049 +H 8.913990 -0.083985 1.922996 +H 8.875047 -0.096986 -2.040977 +H 5.872700 -1.384482 2.179068 +H 5.823819 -1.403743 -2.207607 +H 8.004031 -3.927997 1.937985 +H 7.958977 -3.932003 -2.030964 +H 4.676332 -3.872042 2.236275 +H 4.543348 -3.775658 -2.169546 +H 5.532008 -6.989011 1.960974 +H 5.493038 -6.983000 -2.004000 +H 2.590761 -5.570775 2.294256 +H 2.626078 -5.548484 -2.258950 +H 1.940026 -8.684967 1.987950 +H 1.909025 -8.673003 -1.978983 +H 0.015179 -5.943070 2.240628 +H -0.068552 -6.034267 -2.202292 +H -1.983021 -8.652070 2.014042 +H -2.001011 -8.642056 -1.954052 +C -2.043796 -1.230267 -2.360253 +C -0.017574 2.325890 -2.443051 +C 2.078705 1.217053 -2.459036 +C 2.084932 -1.200134 -2.447174 +C 0.036591 -2.369136 -2.400419 +C -1.294004 -0.781032 -3.617592 +C -1.306763 0.717161 -3.664643 +C -0.016432 1.486117 -3.717481 +C 1.322554 0.718904 -3.712915 +C 1.311059 -0.775388 -3.642672 +C 0.013743 -1.544584 -3.716072 +S -3.432063 -0.063009 -2.598134 +S -1.730871 2.985466 -2.624725 +S 1.703171 3.023376 -2.635632 +S 3.451145 0.014688 -2.666240 +S 1.737485 -2.993706 -2.580891 +S -1.691718 -3.047218 -2.620014 +C -1.986646 1.171465 2.488641 +C 0.018401 2.355470 2.412013 +C -1.994922 -1.185603 2.509154 +C 0.064621 -2.354499 2.503899 +C 2.117440 -1.159016 2.465872 +C 2.136185 1.219368 2.455556 +C 0.062544 1.561869 3.731586 +C -1.255069 0.770421 3.771539 +C -1.275997 -0.729262 3.727208 +C 0.064221 -1.516411 3.772238 +C 1.373946 -0.699261 3.766502 +C 1.336313 0.762420 3.697890 +S -1.693259 2.986968 2.651910 +S -3.428343 -0.028053 2.704893 +S -1.626005 -2.982570 2.702949 +S 1.803693 -2.952640 2.666161 +S 3.506398 -0.009544 2.643290 +S 1.747925 3.004823 2.619674 +C 1.407661 0.740153 1.202665 +C 0.079219 1.543494 1.136383 +C -1.256119 0.784020 1.176140 +C -1.277679 -0.739181 1.248660 +C 0.001157 -1.489734 1.234505 +C 1.363113 -0.747651 1.191206 +O 0.060948 2.358626 -0.039372 +O 2.089930 1.173638 -0.034090 +O 2.076435 -1.171228 0.025012 +O -1.986857 1.196236 -0.029061 +O -2.000287 -1.195887 0.078513 +O 0.046069 -2.354071 0.088855 +C -0.000126 -1.534628 -1.131238 +C -1.254843 -0.728021 -1.128988 +C -1.292937 0.768723 -1.154703 +C 0.020507 1.568740 -1.181055 +C 1.353193 0.781085 -1.183278 +C 1.361457 -0.803864 -1.179271 +H -1.946573 -1.115046 -4.430309 +H -1.860604 1.037230 -4.552256 +H -0.031865 2.124645 -4.615634 +H 1.850571 1.071834 -4.609740 +H 1.848427 -1.038582 -4.554832 +H -0.001199 -2.098483 -4.665370 +H 0.160385 2.188643 4.628312 +H -1.918496 1.157125 4.554322 +H -1.855036 -1.004269 4.615834 +H 0.026149 -2.087422 4.709840 +H 1.918713 -0.988030 4.673817 +H 1.970839 1.080161 4.533766 +C -2.045533 1.142390 -2.442340 +Ne 25.048996 1.530005 3.720990 +Ne 0.048999 26.530001 3.720995 +Ne 0.049006 -23.468997 3.720998 diff --git a/sim/src/tests/motors/test_023_rotarymotor_two_planet_gears.mmp b/sim/src/tests/motors/test_023_rotarymotor_two_planet_gears.mmp new file mode 100755 index 000000000..e6b5e1724 --- /dev/null +++ b/sim/src/tests/motors/test_023_rotarymotor_two_planet_gears.mmp @@ -0,0 +1,133 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (2 planet gears with motors) +info opengroup open = True +mol (Molecule.2-copy1) tub +atom 1 (6) (-561, 458, -1559) - +atom 2 (6) (-570, 461, 1565) - +atom 3 (6) (-578, 1812, -779) - +bond1 1 +atom 4 (6) (-583, 1813, 783) - +bond1 2 3 +atom 5 (6) (-552, -892, 786) - +bond1 2 +atom 6 (6) (-547, -894, -776) - +bond1 1 5 +atom 7 (8) (671, -1591, -1186) - +bond1 6 +atom 8 (8) (638, 476, 2392) - +bond1 2 +atom 9 (8) (624, 2538, -1188) - +bond1 3 +atom 10 (8) (651, 471, -2379) - +bond1 1 +atom 11 (8) (665, -1588, 1204) - +bond1 5 +atom 12 (8) (618, 2541, 1197) - +bond1 4 +atom 13 (1) (-1354, -1530, -1139) - +bond1 6 +atom 14 (1) (-1387, 452, 2286) - +bond1 2 +atom 15 (1) (-1400, 2428, -1143) - +bond1 3 +atom 16 (1) (-1375, 447, -2284) - +bond1 1 +atom 17 (1) (-1360, -1528, 1146) - +bond1 5 +atom 18 (1) (-1406, 2430, 1141) - +bond1 4 +atom 19 (6) (1860, 485, -1552) - +bond1 10 +atom 20 (6) (1851, 489, 1572) - +bond1 8 +atom 21 (6) (1842, 1839, -772) - +bond1 19 9 +atom 22 (6) (1838, 1841, 789) - +bond1 20 21 12 +atom 23 (6) (1868, -864, 792) - +bond1 20 11 +atom 24 (6) (1873, -866, -769) - +bond1 19 23 7 +atom 25 (1) (2695, -1484, -1128) - +bond1 24 +atom 26 (1) (2665, 499, 2297) - +bond1 20 +atom 27 (1) (2651, 2474, -1132) - +bond1 21 +atom 28 (1) (2677, 493, -2273) - +bond1 19 +atom 29 (1) (2689, -1482, 1157) - +bond1 23 +atom 30 (1) (2645, 2477, 1152) - +bond1 22 +rmotor (Rotary Motor-38) (127, 127, 127) 1.00 1.00 (-565, 459, 3) (999, 11, 2) 2.00 0.50 0.10 +shaft 1 2 3 4 5 6 +thermo (Thermo-39) (153, 0, 51) 1 30 12 +forward_ref (425120552) # ground (Anchor-40) +group (Untitled-copy4) +info opengroup open = True +mol (Molecule.2-copy1) tub +atom 31 (8) (664, -7655, -2072) - +atom 32 (8) (622, -7680, 2060) - +atom 33 (1) (-1382, -5337, -1991) - +atom 34 (1) (-1373, -8777, -32) - +atom 35 (1) (-1422, -5360, 1965) - +atom 36 (1) (-1411, -4206, -6) - +atom 37 (1) (-1363, -7623, -2005) - +atom 38 (1) (-1402, -7646, 1952) - +atom 39 (6) (1830, -4903, 22) - +atom 40 (6) (1857, -8027, 4) - +atom 41 (6) (1823, -5691, 1370) - +bond1 39 +atom 42 (6) (1837, -7253, 1361) - +bond1 32 40 41 +atom 43 (6) (1864, -7238, -1344) - +bond1 31 40 +atom 44 (6) (1851, -5675, -1335) - +bond1 39 43 +atom 45 (1) (2669, -5303, -1950) - +bond1 44 +atom 46 (1) (2679, -8742, 8) - +bond1 40 +atom 47 (1) (2629, -5326, 2006) - +bond1 41 +atom 48 (1) (2638, -4171, 34) - +bond1 39 +atom 49 (1) (2689, -7588, -1964) - +bond1 43 +atom 50 (1) (2649, -7611, 1994) - +bond1 42 +atom 51 (6) (-591, -4924, -2) - +bond1 36 +atom 52 (6) (-563, -8047, -20) - +bond1 34 +atom 53 (6) (-597, -5712, 1346) - +bond1 51 35 +atom 54 (6) (-584, -7274, 1337) - +bond1 52 53 32 38 +atom 55 (6) (-556, -7258, -1369) - +bond1 52 31 37 +atom 56 (6) (-570, -5696, -1360) - +bond1 51 55 33 +atom 57 (8) (643, -5269, -2058) - +bond1 56 44 +atom 58 (8) (653, -8861, -12) - +bond1 52 40 +atom 59 (8) (602, -5293, 2073) - +bond1 53 41 +atom 60 (8) (612, -4094, 14) - +bond1 51 39 +rmotor (Rotary Motor-38) (127, 127, 127) 1.00 1.00 (-577, -6485, -11) (999, 8, 10) 2.00 0.50 0.10 +shaft 51 52 53 54 55 56 +thermo (Thermo-39) (153, 0, 51) 31 60 32 +egroup (Untitled-copy4) +egroup (2 planet gears with motors) +end1 +group (Clipboard) +info opengroup open = False +ground (Anchor-40) (0, 0, 0) 22 19 20 21 23 24 +info leaf disabled = True +info leaf forwarded = 425120552 +egroup (Clipboard) +end molecular machine part 2 planet gears with motors diff --git a/sim/src/tests/motors/test_023_rotarymotor_two_planet_gears.trc b/sim/src/tests/motors/test_023_rotarymotor_two_planet_gears.trc new file mode 100755 index 000000000..07c8bea31 --- /dev/null +++ b/sim/src/tests/motors/test_023_rotarymotor_two_planet_gears.trc @@ -0,0 +1,34 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_023_rotarymotor_two_planet_gears.trc test_023_rotarymotor_two_planet_gears.mmp +# Date and Time: Wed Apr 19 10:53:30 2006 +# Input File: test_023_rotarymotor_two_planet_gears.mmp +# Output File: test_023_rotarymotor_two_planet_gears.xyz +# Trace File: test_023_rotarymotor_two_planet_gears.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 60 +# +# 7 columns: +# Rotary Motor-38: speed (GHz) +# Rotary Motor-38: torque (nn-nm) +# Thermo-39: temperature (K) +# Rotary Motor-38: speed (GHz) +# Rotary Motor-38: torque (nn-nm) +# Thermo-39: temperature (K) +# Anchor-40: torque (nn-nm) +# +# Time speed torque T.meter speed torque T.meter Anchor +# picosec Rotary Motor-38 Thermo-39 Rotary Motor-38 Thermo-39 Anchor-40 +# + 0.0100 1.226 -0.144 209.24 1.167 -0.108 264.37 0.46 +# Done: diff --git a/sim/src/tests/motors/test_023_rotarymotor_two_planet_gears.xyzcmp b/sim/src/tests/motors/test_023_rotarymotor_two_planet_gears.xyzcmp new file mode 100755 index 000000000..e0a2961d5 --- /dev/null +++ b/sim/src/tests/motors/test_023_rotarymotor_two_planet_gears.xyzcmp @@ -0,0 +1,62 @@ +60 +Frame 0, Iteration: 100 +C -0.554242 0.476195 -1.572160 +C -0.614679 0.454306 1.535161 +C -0.566074 1.803195 -0.781615 +C -0.615335 1.814127 0.796266 +C -0.508495 -0.881355 0.761109 +C -0.550343 -0.895326 -0.805452 +O 0.665849 -1.613096 -1.163258 +O 0.621155 0.437627 2.371071 +O 0.621447 2.540901 -1.184774 +O 0.650405 0.453678 -2.343884 +O 0.673063 -1.585333 1.232180 +O 0.599888 2.514879 1.214907 +H -1.351613 -1.535493 -1.176119 +H -1.356707 0.432310 2.337713 +H -1.338014 2.472431 -1.157894 +H -1.390506 0.549041 -2.268780 +H -1.331933 -1.495196 1.116947 +H -1.450116 2.427039 1.147046 +C 1.859990 0.484997 -1.552006 +C 1.851007 0.489004 1.572002 +C 1.841998 1.838999 -0.771999 +C 1.837994 1.840999 0.788987 +C 1.868017 -0.863998 0.791999 +C 1.873000 -0.865990 -0.768995 +H 2.754156 -1.447005 -1.064866 +H 2.696828 0.568984 2.253963 +H 2.666180 2.444651 -1.152313 +H 2.593788 0.513373 -2.358111 +H 2.720218 -1.488721 1.063410 +H 2.608275 2.548601 1.117068 +O 0.673820 -7.645682 -2.088897 +O 0.655642 -7.685039 2.091519 +H -1.373690 -5.273599 -1.997203 +H -1.384330 -8.785231 -0.058696 +H -1.376862 -5.427946 2.076383 +H -1.370625 -4.165729 -0.031804 +H -1.306583 -7.670094 -1.960802 +H -1.400546 -7.661068 1.945396 +C 1.855124 -4.900921 0.032650 +C 1.823861 -7.997753 0.002383 +C 1.819100 -5.699009 1.382661 +C 1.891141 -7.237622 1.363727 +C 1.864601 -7.254002 -1.345635 +C 1.857889 -5.659379 -1.342944 +H 2.613802 -5.247406 -2.009481 +H 2.612775 -8.745435 0.006569 +H 2.622542 -5.300761 2.002566 +H 2.668059 -4.175688 0.128854 +H 2.738366 -7.654544 -1.860882 +H 2.701049 -7.604382 1.997076 +C -0.616536 -4.950504 -0.007421 +C -0.587285 -8.036331 -0.026341 +C -0.579471 -5.733027 1.398797 +C -0.565873 -7.284419 1.351241 +C -0.513358 -7.221607 -1.373011 +C -0.577431 -5.671823 -1.367256 +O 0.622805 -5.260709 -2.067578 +O 0.646036 -8.864585 -0.039630 +O 0.584507 -5.263533 2.048140 +O 0.563388 -4.128556 0.019668 diff --git a/sim/src/tests/motors/test_024_linearmotor_two_dodecahedranes.mmp b/sim/src/tests/motors/test_024_linearmotor_two_dodecahedranes.mmp new file mode 100755 index 000000000..47740652b --- /dev/null +++ b/sim/src/tests/motors/test_024_linearmotor_two_dodecahedranes.mmp @@ -0,0 +1,138 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (024 linear motor two dodecahedranes) +info opengroup open = True +mol (Chunk-C747) tub +atom 1 (6) (187, 1541, 1421) - +atom 2 (6) (-1125, 2341, 1663) - +bond1 1 +atom 3 (0) (-984, 3061, 1905) - +bond1 2 +atom 4 (6) (201, 1073, -53) - +bond1 1 +atom 5 (6) (-1923, 2359, 329) - +bond1 2 +atom 6 (0) (-2055, 3083, 98) - +bond1 5 +atom 7 (6) (-1102, 1580, -735) - +bond1 4 5 +atom 8 (0) (-952, 2029, -1345) - +bond1 7 +atom 9 (6) (-2001, -947, 2697) - +atom 10 (0) (-2161, -1395, 3305) - +bond1 9 +atom 11 (6) (157, 283, 2322) - +bond1 1 +atom 12 (6) (153, -962, 1403) - +bond1 11 +atom 13 (6) (-1174, 295, 3128) - +bond1 9 11 +atom 14 (0) (-1049, 288, 3890) - +bond1 13 +atom 15 (6) (-1180, -1730, 1634) - +bond1 9 12 +atom 16 (0) (-1058, -2456, 1866) - +bond1 15 +atom 17 (6) (-1977, -1708, 300) - +bond1 15 +atom 18 (0) (-2129, -2425, 59) - +bond1 17 +atom 19 (6) (-1929, 335, -1162) - +bond1 7 +atom 20 (0) (-2064, 342, -1922) - +bond1 19 +atom 21 (6) (-3261, 347, -363) - +bond1 19 +atom 22 (0) (-3868, 359, -841) - +bond1 21 +atom 23 (6) (-1135, -936, -753) - +bond1 17 19 +atom 24 (0) (-997, -1380, -1369) - +bond1 23 +atom 25 (6) (-3291, -914, 540) - +bond1 17 21 +atom 26 (0) (-3908, -1351, 383) - +bond1 25 +atom 27 (6) (-3305, -445, 2020) - +bond1 9 25 +atom 28 (0) (-3928, -714, 2388) - +bond1 27 +atom 29 (6) (-3257, 1598, 557) - +bond1 5 21 +atom 30 (0) (-3863, 2052, 407) - +bond1 29 +atom 31 (6) (-3285, 1108, 2031) - +bond1 29 27 +atom 32 (0) (-3900, 1389, 2403) - +bond1 31 +atom 33 (6) (-1967, 1566, 2714) - +bond1 2 31 13 +atom 34 (0) (-2116, 2009, 3329) - +bond1 33 +atom 35 (6) (181, -473, -64) - +bond1 4 12 23 +atom 36 (6) (1504, -971, -716) - +bond1 35 +atom 37 (0) (1372, -1411, -1336) - +bond1 36 +atom 38 (6) (1459, -1766, 1671) - +bond1 12 +atom 39 (0) (1311, -2488, 1899) - +bond1 38 +atom 40 (6) (2295, -1765, 360) - +bond1 36 38 +atom 41 (0) (2434, -2486, 123) - +bond1 40 +atom 42 (6) (1465, 259, 3165) - +bond1 11 +atom 43 (0) (1319, 255, 3923) - +bond1 42 +atom 44 (6) (2271, -1005, 2757) - +bond1 38 42 +atom 45 (0) (2402, -1457, 3369) - +bond1 44 +atom 46 (6) (1514, 2306, 1701) - +bond1 1 +atom 47 (0) (1385, 3029, 1939) - +bond1 46 +atom 48 (6) (2304, 1508, 2775) - +bond1 42 46 +atom 49 (0) (2447, 1947, 3394) - +bond1 48 +atom 50 (6) (1537, 1545, -697) - +bond1 4 +atom 51 (0) (1417, 1998, -1311) - +bond1 50 +atom 52 (6) (2343, 279, -1101) - +bond1 36 50 +atom 53 (0) (2499, 282, -1857) - +bond1 52 +atom 54 (6) (2349, 2302, 390) - +bond1 46 50 +atom 55 (0) (2507, 3023, 163) - +bond1 54 +atom 56 (6) (3622, -1007, 637) - +bond1 40 +atom 57 (0) (4232, -1460, 498) - +bond1 56 +atom 58 (6) (3652, 255, -265) - +bond1 52 56 +atom 59 (0) (4272, 250, -725) - +bond1 58 +atom 60 (6) (3607, -538, 2118) - +bond1 56 44 +atom 61 (0) (4212, -824, 2503) - +bond1 60 +atom 62 (6) (3628, 1015, 2129) - +bond1 60 48 +atom 63 (0) (4240, 1279, 2519) - +bond1 62 +atom 64 (6) (3655, 1505, 656) - +bond1 54 58 62 +atom 65 (0) (4277, 1943, 523) - +bond1 64 +lmotor (Linear Motor-27) (127, 127, 127) 1.000000 0.100000 (176, 292, 1006) (-999, 13, -14) 10.00 1.00 0.10 +shaft 1 4 11 12 35 +thermo (Thermo-28) (153, 0, 51) 1 65 1 +egroup (024 linear motor two dodecahedranes) +end molecular machine part 024 linear motor two dodecahedranes diff --git a/sim/src/tests/motors/test_024_linearmotor_two_dodecahedranes.trc b/sim/src/tests/motors/test_024_linearmotor_two_dodecahedranes.trc new file mode 100755 index 000000000..6e52bfe48 --- /dev/null +++ b/sim/src/tests/motors/test_024_linearmotor_two_dodecahedranes.trc @@ -0,0 +1,34 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Warning: Using a reduced quality parameter, see the trace output for details +# Info: Using quality 3 parameters for X-1-C stretch +# Info: Computed ks: 1.000000e+03, r0: 7.700000e+01, de: 5.800000e-01, beta: 3.198925e-02 +# Info: Using quality 1 parameters for X-1-C.sp3-1-C bend +# Info: Computed kb: 1.622653e+06, theta0: 1.910600e+00 +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_024_linearmotor_two_dodecahedranes.trc test_024_linearmotor_two_dodecahedranes.mmp +# Date and Time: Wed Apr 19 10:53:30 2006 +# Input File: test_024_linearmotor_two_dodecahedranes.mmp +# Output File: test_024_linearmotor_two_dodecahedranes.xyz +# Trace File: test_024_linearmotor_two_dodecahedranes.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 65 +# +# 2 columns: +# Linear Motor-27: displacement (angstroms) +# Thermo-28: temperature (K) +# +# Time Lmotor T.meter +# picosec Linear Motor-27 Thermo-28 +# + 0.0100 0.0012 311.02 +# Done: diff --git a/sim/src/tests/motors/test_024_linearmotor_two_dodecahedranes.xyzcmp b/sim/src/tests/motors/test_024_linearmotor_two_dodecahedranes.xyzcmp new file mode 100755 index 000000000..a16276bc8 --- /dev/null +++ b/sim/src/tests/motors/test_024_linearmotor_two_dodecahedranes.xyzcmp @@ -0,0 +1,67 @@ +65 +Frame 0, Iteration: 100 +C 0.189059 1.540973 1.421029 +C -1.156055 2.332429 1.620013 +X -0.974369 3.030753 1.879247 +C 0.175537 1.073331 -0.053357 +C -1.894794 2.360599 0.296526 +X -2.047802 3.077301 0.052923 +C -1.114794 1.551196 -0.729352 +X -0.960173 1.973204 -1.357080 +C -2.011527 -0.948306 2.706224 +X -2.157424 -1.412227 3.333469 +C 0.169789 0.282834 2.322179 +C 0.142003 -0.961857 1.402846 +C -1.171773 0.297747 3.137377 +X -1.048357 0.288568 3.930052 +C -1.181743 -1.692430 1.626504 +X -1.084782 -2.409197 1.862420 +C -1.945391 -1.684482 0.280888 +X -2.113453 -2.424541 0.047941 +C -1.943712 0.322330 -1.157667 +X -2.054346 0.345397 -1.913577 +C -3.270032 0.340806 -0.372272 +X -3.862196 0.325975 -0.892354 +C -1.101565 -0.915173 -0.751521 +X -0.984109 -1.338706 -1.370527 +C -3.256011 -0.910848 0.549326 +X -3.884717 -1.315976 0.363476 +C -3.332186 -0.462542 2.019533 +X -3.990802 -0.705325 2.362150 +C -3.249859 1.609170 0.519210 +X -3.844811 2.109004 0.393375 +C -3.270912 1.107624 2.020054 +X -3.864237 1.379264 2.435711 +C -1.949250 1.576067 2.711999 +X -2.097423 2.022056 3.321232 +C 0.186558 -0.473072 -0.063922 +C 1.514534 -0.954927 -0.721995 +X 1.392507 -1.439632 -1.307999 +C 1.442332 -1.765857 1.677623 +X 1.334827 -2.496860 1.898293 +C 2.269981 -1.742456 0.360566 +X 2.417150 -2.492420 0.136538 +C 1.507866 0.273221 3.154961 +X 1.318579 0.233761 3.907537 +C 2.264826 -0.993239 2.745892 +X 2.364685 -1.435375 3.352492 +C 1.501235 2.312730 1.703671 +X 1.382070 3.047167 1.933686 +C 2.316795 1.514969 2.812407 +X 2.474961 1.919606 3.444188 +C 1.535202 1.539024 -0.691363 +X 1.389683 1.954409 -1.327875 +C 2.319003 0.281739 -1.085159 +X 2.537954 0.260913 -1.802239 +C 2.376263 2.312860 0.386501 +X 2.570780 3.060299 0.151179 +C 3.603418 -0.987569 0.622422 +X 4.201692 -1.449852 0.475860 +C 3.638897 0.252438 -0.290733 +X 4.243338 0.277498 -0.771074 +C 3.566904 -0.565788 2.114834 +X 4.187797 -0.868960 2.474164 +C 3.602275 1.015723 2.157044 +X 4.246634 1.278472 2.551891 +C 3.647363 1.478308 0.684251 +X 4.263109 1.910215 0.580563 diff --git a/sim/src/tests/motors/test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.mmp b/sim/src/tests/motors/test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.mmp new file mode 100755 index 000000000..1e0cef5df --- /dev/null +++ b/sim/src/tests/motors/test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.mmp @@ -0,0 +1,64 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (025 linearmotors %28two%29 applying equal forces normal to each other) +info opengroup open = True +mol (Chunk-C1055) - +atom 1 (6) (12, -36, 0) - +atom 2 (1) (639, 591, 627) - +bond1 1 +atom 3 (1) (-615, 591, -627) - +bond1 1 +atom 4 (1) (-615, -664, 627) - +bond1 1 +atom 5 (1) (639, -664, -627) - +bond1 1 +lmotor (Linear Motor-1) (85, 170, 127) 1.000000 0.000000 (12, -36, 0) (0, 0, -1000) 3.00 0.50 0.10 +shaft 1 +lmotor (Linear Motor-2) (85, 85, 255) 1.000000 0.000000 (12, -36, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 1 +group (Clipboard item 1) +info opengroup open = True +mol (reference X) - +info leaf hidden = True +atom 6 (1) (20627, 627, 627) - +atom 7 (1) (19372, 627, -627) - +atom 8 (1) (19372, -627, 627) - +atom 9 (1) (20627, -627, -627) - +atom 10 (6) (20000, 0, 0) - +bond1 6 7 8 9 +ground (Anchor-X) (0, 0, 0) 6 7 8 9 10 +info leaf hidden = True +mol (reference Z) - +info leaf hidden = True +atom 11 (1) (627, 627, 20627) - +atom 12 (1) (-627, 627, 19372) - +atom 13 (1) (-627, -627, 20627) - +atom 14 (1) (627, -627, 19372) - +atom 15 (6) (0, 0, 20000) - +bond1 11 12 13 14 +ground (Anchor-Z) (0, 0, 0) 11 12 13 14 15 +info leaf hidden = True +mol (reference Y) - +info leaf hidden = True +atom 16 (1) (639, 20591, 627) - +atom 17 (1) (-615, 20591, -627) - +atom 18 (1) (-615, 19335, 627) - +atom 19 (1) (639, 19335, -627) - +atom 20 (6) (12, 19963, 0) - +bond1 16 17 18 19 +ground (Anchor-Y) (0, 0, 0) 16 17 18 19 20 +info leaf hidden = True +egroup (Clipboard item 1) +thermo (Thermo-33) (153, 0, 51) 1 5 2 +group (distance from reference) +info opengroup open = True +mdistance (Distance-X) (0, 0, 0) (Helvetica) 10 10 1 +mdistance (Distance-32) (0, 0, 0) (Helvetica) 10 15 1 +mdistance (Distance Y) (0, 0, 0) (Helvetica) 10 20 1 +egroup (distance from reference) +egroup (025 linearmotors %28two%29 applying equal forces normal to each other) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 025 linearmotors (two) applying equal forces normal to each other diff --git a/sim/src/tests/motors/test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.trc b/sim/src/tests/motors/test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.trc new file mode 100755 index 000000000..0fe9a33f0 --- /dev/null +++ b/sim/src/tests/motors/test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.trc @@ -0,0 +1,36 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.trc test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.mmp +# Date and Time: Wed Apr 19 10:53:26 2006 +# Input File: test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.mmp +# Output File: test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.xyz +# Trace File: test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 20 +# +# 9 columns: +# Linear Motor-1: displacement (angstroms) +# Linear Motor-2: displacement (angstroms) +# Anchor-X: torque (nn-nm) +# Anchor-Z: torque (nn-nm) +# Anchor-Y: torque (nn-nm) +# Thermo-33: temperature (K) +# Distance-X: distance (angstroms) +# Distance-32: distance (angstroms) +# Distance Y: distance (angstroms) +# +# Time Lmotor Lmotor Anchor Anchor Anchor T.meter Distance Distance Distance +# picosec Linear Motor-1 Linear Motor-2 Anchor-X Anchor-Z Anchor-Y Thermo-33 Distance-X Distance-32 Distance Y +# + 0.0100 0.0000 0.0000 0.00 0.00 0.00 394.82 19.9880 20.0000 19.9990 +# Done: diff --git a/sim/src/tests/motors/test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.xyzcmp b/sim/src/tests/motors/test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.xyzcmp new file mode 100755 index 000000000..ab6dc3d63 --- /dev/null +++ b/sim/src/tests/motors/test_025_two_linearmotors_applying_equal_forces_normal_to_each_other.xyzcmp @@ -0,0 +1,22 @@ +20 +Frame 0, Iteration: 100 +C 0.012000 -0.036000 0.000000 +H 0.575728 0.714566 0.567426 +H -0.597113 0.514816 -0.712894 +H -0.649168 -0.616712 0.645483 +H 0.731165 -0.619787 -0.581060 +H 20.627002 0.626998 0.626973 +H 19.371996 0.626979 -0.626985 +H 19.371993 -0.627039 0.626987 +H 20.627002 -0.627001 -0.627006 +C 19.999997 -0.000005 0.000008 +H 0.627010 0.627000 20.627024 +H -0.627012 0.626979 19.372010 +H -0.626998 -0.627005 20.626994 +H 0.627004 -0.627003 19.372042 +C 0.000001 0.000007 19.999998 +H 0.638979 20.591033 0.627001 +H -0.614972 20.591031 -0.627019 +H -0.614995 19.334984 0.626994 +H 0.638982 19.334985 -0.627017 +C 0.012001 19.963001 0.000004 diff --git a/sim/src/tests/motors/test_026_two_linearmotors_applying_equal_and_opposite_forces.mmp b/sim/src/tests/motors/test_026_two_linearmotors_applying_equal_and_opposite_forces.mmp new file mode 100755 index 000000000..8abedef66 --- /dev/null +++ b/sim/src/tests/motors/test_026_two_linearmotors_applying_equal_and_opposite_forces.mmp @@ -0,0 +1,64 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (026 linearmotors %28two%29 applying equal and opposite forces) +info opengroup open = True +mol (Chunk-C1055) - +atom 1 (6) (12, -36, 0) - +atom 2 (1) (639, 591, 627) - +bond1 1 +atom 3 (1) (-615, 591, -627) - +bond1 1 +atom 4 (1) (-615, -664, 627) - +bond1 1 +atom 5 (1) (639, -664, -627) - +bond1 1 +lmotor (Linear Motor-1) (85, 170, 127) 1.000000 0.000000 (12, -36, 0) (0, 0, -1000) 3.00 0.50 0.10 +shaft 1 +lmotor (Linear Motor-2) (85, 85, 255) -1.000000 0.000000 (12, -36, 0) (0, 0, -1000) 3.00 0.50 0.10 +shaft 1 +group (Clipboard item 1) +info opengroup open = True +mol (reference X) - +info leaf hidden = True +atom 6 (1) (20627, 627, 627) - +atom 7 (1) (19372, 627, -627) - +atom 8 (1) (19372, -627, 627) - +atom 9 (1) (20627, -627, -627) - +atom 10 (6) (20000, 0, 0) - +bond1 6 7 8 9 +ground (Anchor-X) (0, 0, 0) 6 7 8 9 10 +info leaf hidden = True +mol (reference Z) - +info leaf hidden = True +atom 11 (1) (627, 627, 20627) - +atom 12 (1) (-627, 627, 19372) - +atom 13 (1) (-627, -627, 20627) - +atom 14 (1) (627, -627, 19372) - +atom 15 (6) (0, 0, 20000) - +bond1 11 12 13 14 +ground (Anchor-Z) (0, 0, 0) 11 12 13 14 15 +info leaf hidden = True +mol (reference Y) - +info leaf hidden = True +atom 16 (1) (639, 20591, 627) - +atom 17 (1) (-615, 20591, -627) - +atom 18 (1) (-615, 19335, 627) - +atom 19 (1) (639, 19335, -627) - +atom 20 (6) (12, 19963, 0) - +bond1 16 17 18 19 +ground (Anchor-Y) (0, 0, 0) 16 17 18 19 20 +info leaf hidden = True +egroup (Clipboard item 1) +thermo (Thermo-33) (153, 0, 51) 1 5 2 +group (distance from reference) +info opengroup open = True +mdistance (Distance-X) (0, 0, 0) (Helvetica) 10 10 1 +mdistance (Distance-32) (0, 0, 0) (Helvetica) 10 15 1 +mdistance (Distance Y) (0, 0, 0) (Helvetica) 10 20 1 +egroup (distance from reference) +egroup (026 linearmotors %28two%29 applying equal and opposite forces) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 026 linearmotors (two) applying equal and opposite forces diff --git a/sim/src/tests/motors/test_026_two_linearmotors_applying_equal_and_opposite_forces.trc b/sim/src/tests/motors/test_026_two_linearmotors_applying_equal_and_opposite_forces.trc new file mode 100755 index 000000000..66dafed7d --- /dev/null +++ b/sim/src/tests/motors/test_026_two_linearmotors_applying_equal_and_opposite_forces.trc @@ -0,0 +1,36 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_026_two_linearmotors_applying_equal_and_opposite_forces.trc test_026_two_linearmotors_applying_equal_and_opposite_forces.mmp +# Date and Time: Wed Apr 19 10:53:26 2006 +# Input File: test_026_two_linearmotors_applying_equal_and_opposite_forces.mmp +# Output File: test_026_two_linearmotors_applying_equal_and_opposite_forces.xyz +# Trace File: test_026_two_linearmotors_applying_equal_and_opposite_forces.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 20 +# +# 9 columns: +# Linear Motor-1: displacement (angstroms) +# Linear Motor-2: displacement (angstroms) +# Anchor-X: torque (nn-nm) +# Anchor-Z: torque (nn-nm) +# Anchor-Y: torque (nn-nm) +# Thermo-33: temperature (K) +# Distance-X: distance (angstroms) +# Distance-32: distance (angstroms) +# Distance Y: distance (angstroms) +# +# Time Lmotor Lmotor Anchor Anchor Anchor T.meter Distance Distance Distance +# picosec Linear Motor-1 Linear Motor-2 Anchor-X Anchor-Z Anchor-Y Thermo-33 Distance-X Distance-32 Distance Y +# + 0.0100 0.0732 0.0732 0.00 0.00 0.00 441.71 19.9882 20.0739 19.9991 +# Done: diff --git a/sim/src/tests/motors/test_026_two_linearmotors_applying_equal_and_opposite_forces.xyzcmp b/sim/src/tests/motors/test_026_two_linearmotors_applying_equal_and_opposite_forces.xyzcmp new file mode 100755 index 000000000..904c974d3 --- /dev/null +++ b/sim/src/tests/motors/test_026_two_linearmotors_applying_equal_and_opposite_forces.xyzcmp @@ -0,0 +1,22 @@ +20 +Frame 0, Iteration: 100 +C 0.012000 -0.036000 -0.035349 +H 0.569985 0.706192 0.547369 +H -0.604035 0.523285 -0.735169 +H -0.641783 -0.611857 0.624304 +H 0.738002 -0.623473 -0.600969 +H 20.627002 0.626998 0.626973 +H 19.371996 0.626979 -0.626985 +H 19.371993 -0.627039 0.626987 +H 20.627002 -0.627001 -0.627006 +C 19.999997 -0.000005 0.000008 +H 0.627010 0.627000 20.627024 +H -0.627012 0.626979 19.372010 +H -0.626998 -0.627005 20.626994 +H 0.627004 -0.627003 19.372042 +C 0.000001 0.000007 19.999998 +H 0.638979 20.591033 0.627001 +H -0.614972 20.591031 -0.627019 +H -0.614995 19.334984 0.626994 +H 0.638982 19.334985 -0.627017 +C 0.012001 19.963001 0.000004 diff --git a/sim/src/tests/motors/test_027_two_rotarymotors_applying_equal_and_opposite_torque.mmp b/sim/src/tests/motors/test_027_two_rotarymotors_applying_equal_and_opposite_torque.mmp new file mode 100755 index 000000000..efa9fd98d --- /dev/null +++ b/sim/src/tests/motors/test_027_two_rotarymotors_applying_equal_and_opposite_torque.mmp @@ -0,0 +1,139 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (027 rotarymotors%28two%29 applying equal and opposite torque) +info opengroup open = True +mol (shaft) cpk +atom 1 (6) (-1290, 1212, -1723) - +atom 2 (7) (-1406, 718, -3118) - +bond1 1 +atom 3 (6) (-2592, -789, -1010) - +atom 4 (7) (-2615, 1472, -3480) - +bond1 2 +atom 5 (6) (-2602, 702, -1018) - +bond1 1 3 +atom 6 (6) (-2585, -1241, 411) - +bond1 3 +atom 7 (6) (-3925, 1195, -1715) - +bond1 5 +atom 8 (7) (-3811, 702, -3110) - +bond1 4 7 +atom 9 (6) (-2600, 1172, 396) - +bond1 5 +atom 10 (6) (-5217, -828, -1031) - +atom 11 (6) (-2590, -28, 1280) - +bond1 6 9 +atom 12 (6) (-1273, -1291, -1707) - +bond1 3 +atom 13 (6) (-5227, 706, -1041) - +bond1 7 10 +atom 14 (7) (-1379, -2771, -1669) - +bond1 12 +atom 15 (6) (-5209, -1293, 431) - +bond1 10 +atom 16 (6) (-5225, 1190, 415) - +bond1 13 +atom 17 (6) (-5214, -45, 1326) - +bond1 15 16 +atom 18 (6) (-3909, -1308, -1699) - +bond1 3 10 +atom 19 (7) (-3784, -2787, -1661) - +bond1 18 +atom 20 (6) (-3896, -2067, 687) - +bond1 6 15 +atom 21 (6) (-3922, 1984, 660) - +bond1 9 16 +atom 22 (6) (-3905, -31, 2145) - +bond1 11 17 +atom 23 (7) (-3806, 2424, 2073) - +bond1 21 +atom 24 (7) (-3818, 3159, -239) - +bond1 21 +atom 25 (7) (-3774, -2487, 2105) - +bond1 20 +atom 26 (7) (-3820, 2675, -1696) - +bond1 7 24 +atom 27 (7) (-3801, -832, -3101) - +bond1 8 18 +atom 28 (7) (-3795, 1187, 2984) - +bond1 22 23 +atom 29 (7) (-3777, -3252, -198) - +bond1 19 20 +atom 30 (7) (-3779, -1239, 2999) - +bond1 22 25 +atom 31 (6) (-1261, -2050, 678) - +bond1 6 +atom 32 (6) (-1287, 2001, 652) - +bond1 9 +atom 33 (6) (-1269, -14, 2137) - +bond1 11 +atom 34 (7) (-1400, 2439, 2066) - +bond1 32 +atom 35 (7) (-1413, 3174, -247) - +bond1 32 +atom 36 (7) (-1369, -2471, 2097) - +bond1 31 +atom 37 (7) (-1414, 2691, -1704) - +bond1 1 35 +atom 38 (7) (-1396, -817, -3108) - +bond1 2 12 +atom 39 (7) (-1389, 1203, 2976) - +bond1 33 34 +atom 40 (7) (-1371, -3236, -206) - +bond1 14 31 +atom 41 (7) (-1374, -1223, 2992) - +bond1 33 36 +atom 42 (7) (-2583, -2891, -2503) - +bond1 14 19 +atom 43 (7) (-2567, -3310, 1949) - +bond1 25 36 +atom 44 (7) (-2617, 3750, 368) - +bond1 24 35 +atom 45 (7) (-2587, 793, 3724) - +bond1 28 39 +atom 46 (7) (-2620, 2784, -2539) - +bond1 4 26 37 +atom 47 (7) (-2595, -1591, -3460) - +bond1 27 38 42 +atom 48 (7) (-2568, -3819, 417) - +bond1 29 40 43 +atom 49 (7) (-2609, 3261, 1906) - +bond1 23 34 44 +atom 50 (7) (-2577, -820, 3734) - +bond1 30 41 45 +atom 51 (1) (-6082, -1227, -1562) - +bond1 10 +atom 52 (1) (-6097, 1086, -1577) - +bond1 13 +atom 53 (1) (-6071, -1927, 643) - +bond1 15 +atom 54 (1) (-6095, 1816, 619) - +bond1 16 +atom 55 (1) (-6079, -47, 1991) - +bond1 17 +atom 56 (6) (23, 1224, 399) - +bond1 32 +atom 57 (1) (886, 1861, 596) - +bond1 56 +atom 58 (6) (34, -11, 1309) - +bond1 33 56 +atom 59 (1) (903, -2, 1968) - +bond1 58 +atom 60 (6) (40, -1259, 414) - +bond1 31 58 +atom 61 (1) (911, -1882, 620) - +bond1 60 +atom 62 (6) (32, -794, -1048) - +bond1 12 60 +atom 63 (1) (899, -1181, -1584) - +bond1 62 +atom 64 (6) (22, 740, -1058) - +bond1 1 56 62 +atom 65 (1) (884, 1132, -1599) - +bond1 64 +rmotor (Rotary Motor-34) (85, 170, 255) 1.00 1.50 (-2594, -37, 11) (999, 6, -3) 6.00 0.50 0.10 +shaft 5 9 11 6 3 +thermo (Thermo-36) (153, 0, 51) 1 65 49 +rmotor (Rotary Motor-37) (170, 0, 0) -1.00 1.50 (-2594, -37, 11) (999, 6, -3) 6.00 0.50 0.10 +shaft 9 11 6 3 5 +egroup (027 rotarymotors%28two%29 applying equal and opposite torque) +end molecular machine part 027 rotarymotors(two) applying equal and opposite torque diff --git a/sim/src/tests/motors/test_027_two_rotarymotors_applying_equal_and_opposite_torque.trc b/sim/src/tests/motors/test_027_two_rotarymotors_applying_equal_and_opposite_torque.trc new file mode 100755 index 000000000..60d6e6173 --- /dev/null +++ b/sim/src/tests/motors/test_027_two_rotarymotors_applying_equal_and_opposite_torque.trc @@ -0,0 +1,32 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_027_two_rotarymotors_applying_equal_and_opposite_torque.trc test_027_two_rotarymotors_applying_equal_and_opposite_torque.mmp +# Date and Time: Wed Apr 19 10:53:30 2006 +# Input File: test_027_two_rotarymotors_applying_equal_and_opposite_torque.mmp +# Output File: test_027_two_rotarymotors_applying_equal_and_opposite_torque.xyz +# Trace File: test_027_two_rotarymotors_applying_equal_and_opposite_torque.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 65 +# +# 5 columns: +# Rotary Motor-34: speed (GHz) +# Rotary Motor-34: torque (nn-nm) +# Thermo-36: temperature (K) +# Rotary Motor-37: speed (GHz) +# Rotary Motor-37: torque (nn-nm) +# +# Time speed torque T.meter speed torque +# picosec Rotary Motor-34 Thermo-36 Rotary Motor-37 +# + 0.0100 1.445 0.033 331.73 1.445 0.033 +# Done: diff --git a/sim/src/tests/motors/test_027_two_rotarymotors_applying_equal_and_opposite_torque.xyzcmp b/sim/src/tests/motors/test_027_two_rotarymotors_applying_equal_and_opposite_torque.xyzcmp new file mode 100755 index 000000000..6bdfb593b --- /dev/null +++ b/sim/src/tests/motors/test_027_two_rotarymotors_applying_equal_and_opposite_torque.xyzcmp @@ -0,0 +1,67 @@ +65 +Frame 0, Iteration: 100 +C -1.258963 1.228884 -1.763973 +N -1.460784 0.702611 -3.174183 +C -2.582797 -0.803645 -1.019755 +N -2.660930 1.480890 -3.454572 +C -2.567471 0.699765 -1.030338 +C -2.584447 -1.239855 0.392016 +C -3.932756 1.186512 -1.719330 +N -3.824702 0.652326 -3.121328 +C -2.598094 1.171478 0.395602 +C -5.222797 -0.854272 -1.010035 +C -2.582193 -0.030012 1.287907 +C -1.281058 -1.322737 -1.708317 +C -5.237257 0.704494 -1.048023 +N -1.384667 -2.775746 -1.616401 +C -5.186550 -1.268950 0.444147 +C -5.240649 1.227545 0.407489 +C -5.170966 -0.001127 1.292371 +C -3.915681 -1.337873 -1.717634 +N -3.793764 -2.810108 -1.679624 +C -3.886181 -2.080477 0.700127 +C -3.932794 2.011360 0.671949 +C -3.904192 -0.039096 2.114314 +N -3.759610 2.423613 2.085680 +N -3.814444 3.196134 -0.248171 +N -3.728983 -2.481224 2.132765 +N -3.815059 2.707293 -1.701103 +N -3.818716 -0.852104 -3.106636 +N -3.838987 1.205267 2.954313 +N -3.763872 -3.259600 -0.239988 +N -3.761901 -1.205194 2.988962 +C -1.261783 -2.058056 0.667688 +C -1.261915 2.008252 0.688015 +C -1.239547 -0.005417 2.168766 +N -1.386707 2.431958 2.074685 +N -1.416735 3.152105 -0.219531 +N -1.364177 -2.443990 2.088707 +N -1.409499 2.673426 -1.670126 +N -1.431610 -0.815399 -3.101012 +N -1.371654 1.215523 2.974370 +N -1.403827 -3.207973 -0.210563 +N -1.383964 -1.247286 2.998868 +N -2.536241 -2.858815 -2.521109 +N -2.562909 -3.328617 1.936855 +N -2.604539 3.756932 0.386004 +N -2.621115 0.798384 3.701314 +N -2.642991 2.768183 -2.544219 +N -2.590525 -1.584185 -3.453216 +N -2.558963 -3.808292 0.458754 +N -2.582229 3.241938 1.925816 +N -2.574888 -0.807254 3.748932 +H -6.067707 -1.302046 -1.541003 +H -6.126253 1.071660 -1.569030 +H -5.948413 -1.958061 0.806335 +H -6.108269 1.861413 0.628906 +H -5.986915 0.077747 2.013848 +C 0.010010 1.239180 0.390632 +H 0.869805 1.894096 0.550478 +C 0.027613 -0.021868 1.270806 +H 0.917417 0.043632 1.896277 +C -0.010090 -1.293058 0.409311 +H 0.841115 -1.961640 0.556162 +C -0.009755 -0.796098 -1.024248 +H 0.914951 -1.159253 -1.476218 +C 0.012543 0.718591 -1.027103 +H 0.929110 1.062988 -1.510947 diff --git a/sim/src/tests/motors/test_028_bug1306_test2.mmp b/sim/src/tests/motors/test_028_bug1306_test2.mmp new file mode 100755 index 000000000..7238cc17b --- /dev/null +++ b/sim/src/tests/motors/test_028_bug1306_test2.mmp @@ -0,0 +1,30 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (028 bug1306-test2) +info opengroup open = True +mol (Chunk-C11) - +atom 1 (6) (-1465, -273, 0) - +atom 2 (1) (-810, 343, 610) - +bond1 1 +atom 3 (1) (-2098, 366, -610) - +bond1 1 +atom 4 (1) (-2086, -890, 644) - +bond1 1 +atom 5 (1) (-866, -911, -644) - +bond1 1 +mol (Chunk-C16) - +atom 6 (6) (2397, -413, 0) - +atom 7 (1) (3019, 203, 644) - +bond1 6 +atom 8 (1) (1798, 225, -644) - +bond1 6 +atom 9 (1) (1742, -1030, 610) - +bond1 6 +atom 10 (1) (3030, -1052, -610) - +bond1 6 +rmotor (Rotary Motor-3) (127, 127, 127) 2.00 2.00 (466, -343, 0) (0, 0, -1000) 10.00 0.50 0.10 +shaft 1 6 +mdistance (Distance-6) (0, 0, 0) (Helvetica) 10 1 6 +thermo (Thermo-7) (153, 0, 51) 1 5 1 +egroup (028 bug1306-test2) +end molecular machine part 028 bug1306-test2 diff --git a/sim/src/tests/motors/test_028_bug1306_test2.trc b/sim/src/tests/motors/test_028_bug1306_test2.trc new file mode 100755 index 000000000..acb07cdd9 --- /dev/null +++ b/sim/src/tests/motors/test_028_bug1306_test2.trc @@ -0,0 +1,31 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_028_bug1306_test2.trc test_028_bug1306_test2.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_028_bug1306_test2.mmp +# Output File: test_028_bug1306_test2.xyz +# Trace File: test_028_bug1306_test2.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 10 +# +# 4 columns: +# Rotary Motor-3: speed (GHz) +# Rotary Motor-3: torque (nn-nm) +# Distance-6: distance (angstroms) +# Thermo-7: temperature (K) +# +# Time speed torque Distance T.meter +# picosec Rotary Motor-3 Distance-6 Thermo-7 +# + 0.0100 2.563 -0.350 3.8354 407.70 +# Done: diff --git a/sim/src/tests/motors/test_028_bug1306_test2.xyzcmp b/sim/src/tests/motors/test_028_bug1306_test2.xyzcmp new file mode 100755 index 000000000..dd3f92e19 --- /dev/null +++ b/sim/src/tests/motors/test_028_bug1306_test2.xyzcmp @@ -0,0 +1,12 @@ +10 +Frame 0, Iteration: 100 +C -1.456431 -0.265218 -0.004251 +H -0.867360 0.465983 0.560940 +H -2.079062 0.308778 -0.685100 +H -2.106072 -0.828243 0.671072 +H -0.756442 -0.863725 -0.590784 +C 2.388919 -0.420632 -0.000356 +H 2.977120 0.167906 0.700575 +H 1.781320 0.131497 -0.719014 +H 1.719994 -1.011947 0.615681 +H 3.052350 -1.130417 -0.485955 diff --git a/sim/src/tests/motors/test_029_bug_1331.mmp b/sim/src/tests/motors/test_029_bug_1331.mmp new file mode 100755 index 000000000..3698d38f9 --- /dev/null +++ b/sim/src/tests/motors/test_029_bug_1331.mmp @@ -0,0 +1,138 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (1331) +info opengroup open = True +mol (Planet Gear.1-copy1) tub +atom 1 (1) (-12733, -1326, 19) - +atom 2 (6) (-11649, -1329, 21) - +bond1 1 +atom 3 (7) (-11033, 15, -435) - +bond1 2 +atom 4 (7) (-11160, -1670, 1459) - +bond1 2 +atom 5 (7) (-11189, -2461, -897) - +bond1 2 +atom 6 (6) (-10167, -372, -1692) - +bond1 3 +atom 7 (6) (-10173, 547, 683) - +bond1 3 +atom 8 (6) (-10215, -491, 1830) - +bond1 4 7 +atom 9 (6) (-10352, -2914, 1439) - +bond1 4 +atom 10 (6) (-10381, -3448, 15) - +bond1 5 9 +atom 11 (6) (-10275, -1880, -1897) - +bond1 5 6 +atom 12 (6) (-8773, -486, -1149) - +bond1 6 +atom 13 (1) (-10211, 280, -2559) - +bond1 6 +atom 14 (6) (-8781, 34, 333) - +bond1 7 12 +atom 15 (1) (-10323, 1604, 898) - +bond1 7 +atom 16 (6) (-8818, -987, 1487) - +bond1 8 14 +atom 17 (1) (-10297, -93, 2853) - +bond1 8 +atom 18 (6) (-8896, -2453, 1273) - +bond1 9 16 +atom 19 (1) (-10549, -3600, 2262) - +bond1 9 +atom 20 (6) (-8892, -3005, -157) - +bond1 10 18 +atom 21 (1) (-10656, -4511, -81) - +bond1 10 +atom 22 (6) (-8843, -2001, -1357) - +bond1 11 12 20 +atom 23 (1) (-10392, -2192, -2933) - +bond1 11 +atom 24 (8) (-7581, -24, -1836) - +bond1 12 +atom 25 (8) (-7634, 973, 565) - +bond1 14 +atom 26 (8) (-7783, -735, 2449) - +bond1 16 +atom 27 (8) (-7844, -3077, 2075) - +bond1 18 +atom 28 (8) (-7892, -4011, -297) - +bond1 20 +atom 29 (8) (-7707, -2446, -2200) - +bond1 22 +atom 30 (6) (-6475, -618, -1080) - +bond1 24 +atom 31 (6) (-6518, -33, 404) - +bond1 25 30 +atom 32 (6) (-6555, -1044, 1644) - +bond1 26 31 +atom 33 (6) (-6627, -2605, 1357) - +bond1 27 32 +atom 34 (6) (-6622, -3203, -125) - +bond1 28 33 +atom 35 (6) (-6501, -2188, -1371) - +bond1 29 30 34 +atom 36 (8) (-5229, -73, -1670) - +bond1 30 +atom 37 (8) (-5336, 748, 596) - +bond1 31 +atom 38 (8) (-5407, -778, 2461) - +bond1 32 +atom 39 (8) (-5503, -3230, 2040) - +bond1 33 +atom 40 (8) (-5490, -4154, -256) - +bond1 34 +atom 41 (8) (-5327, -2558, -2126) - +bond1 35 +atom 42 (6) (-4114, -731, -998) - +bond1 36 +atom 43 (6) (-4160, -164, 484) - +bond1 37 42 +atom 44 (6) (-4235, -1159, 1703) - +bond1 38 43 +atom 45 (6) (-4319, -2718, 1387) - +bond1 39 44 +atom 46 (6) (-4242, -3293, -65) - +bond1 40 45 +atom 47 (6) (-4219, -2296, -1232) - +bond1 41 42 46 +atom 48 (8) (-2864, -254, -1672) - +bond1 42 +atom 49 (8) (-2979, 655, 582) - +bond1 43 +atom 50 (8) (-3048, -945, 2604) - +bond1 44 +atom 51 (8) (-3174, -3242, 2153) - +bond1 45 +atom 52 (8) (-3123, -4219, -72) - +bond1 46 +atom 53 (8) (-3019, -2621, -2037) - +bond1 47 +atom 54 (6) (-1747, -829, -912) - +bond1 48 +atom 55 (6) (-1823, -244, 583) - +bond1 49 54 +atom 56 (6) (-1867, -1243, 1817) - +bond1 50 55 +atom 57 (6) (-1908, -2802, 1503) - +bond1 51 56 +atom 58 (6) (-1923, -3364, 40) - +bond1 52 57 +atom 59 (6) (-1844, -2362, -1167) - +bond1 53 54 58 +atom 60 (1) (-868, -490, -1476) - +bond1 54 +atom 61 (1) (-878, 317, 590) - +bond1 55 +atom 62 (1) (-1048, -944, 2485) - +bond1 56 +atom 63 (1) (-1080, -3205, 2149) - +bond1 57 +atom 64 (1) (-1135, -4123, 43) - +bond1 58 +atom 65 (1) (-909, -2687, -1624) - +bond1 59 +lmotor (Linear Motor-5) (127, 127, 127) 0.000000 0.000000 (-1762, 1849, 720) (-998, 46, -30) 10.00 2.00 0.50 +shaft 54 55 56 57 58 59 +egroup (1331) +end molecular machine part 1331 diff --git a/sim/src/tests/motors/test_029_bug_1331.trc b/sim/src/tests/motors/test_029_bug_1331.trc new file mode 100755 index 000000000..45d4f7dba --- /dev/null +++ b/sim/src/tests/motors/test_029_bug_1331.trc @@ -0,0 +1,28 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_029_bug_1331.trc test_029_bug_1331.mmp +# Date and Time: Wed Apr 19 10:53:31 2006 +# Input File: test_029_bug_1331.mmp +# Output File: test_029_bug_1331.xyz +# Trace File: test_029_bug_1331.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 65 +# +# 1 columns: +# Linear Motor-5: displacement (angstroms) +# +# Time Lmotor +# picosec Linear Motor-5 +# + 0.0100 -0.0143 +# Done: diff --git a/sim/src/tests/motors/test_029_bug_1331.xyzcmp b/sim/src/tests/motors/test_029_bug_1331.xyzcmp new file mode 100755 index 000000000..3a406d4aa --- /dev/null +++ b/sim/src/tests/motors/test_029_bug_1331.xyzcmp @@ -0,0 +1,67 @@ +65 +Frame 0, Iteration: 100 +H -12.763775 -1.239629 -0.087115 +C -11.673114 -1.343743 -0.023953 +N -11.034874 -0.012028 -0.468221 +N -11.216452 -1.645260 1.477107 +N -11.156183 -2.482472 -0.900860 +C -10.181445 -0.353643 -1.703468 +C -10.185499 0.512766 0.686803 +C -10.240606 -0.530667 1.825594 +C -10.365555 -2.904475 1.447597 +C -10.380635 -3.451652 0.023871 +C -10.243201 -1.879494 -1.900920 +C -8.769121 -0.519978 -1.112950 +H -10.221779 0.249831 -2.614169 +C -8.764283 0.047026 0.370109 +H -10.208882 1.577679 0.935206 +C -8.847178 -0.949253 1.491798 +H -10.241958 -0.014036 2.779505 +C -8.894152 -2.470343 1.264158 +H -10.573550 -3.684631 2.177043 +C -8.903415 -2.990841 -0.151329 +H -10.582686 -4.523748 -0.032935 +C -8.830376 -2.045851 -1.388406 +H -10.258658 -2.198976 -2.935715 +O -7.595124 0.016988 -1.830270 +O -7.598849 0.938000 0.577539 +O -7.766760 -0.694633 2.422370 +O -7.864169 -3.104471 2.057562 +O -7.923096 -3.992581 -0.312675 +O -7.700279 -2.445695 -2.239756 +C -6.457954 -0.555886 -1.094514 +C -6.510399 -0.019745 0.403913 +C -6.555152 -1.049614 1.665356 +C -6.612170 -2.605849 1.387669 +C -6.630899 -3.207299 -0.134183 +C -6.522996 -2.201459 -1.337187 +O -5.212344 -0.053834 -1.684424 +O -5.303792 0.712250 0.618149 +O -5.423311 -0.791112 2.477991 +O -5.482271 -3.228050 2.035328 +O -5.511691 -4.104372 -0.254746 +O -5.339015 -2.573585 -2.106108 +C -4.071429 -0.703452 -1.011696 +C -4.160735 -0.178135 0.473928 +C -4.221045 -1.148249 1.706300 +C -4.333382 -2.695465 1.388877 +C -4.305874 -3.305693 -0.058662 +C -4.188447 -2.273023 -1.257591 +O -2.851104 -0.248132 -1.618086 +O -2.950358 0.623918 0.629823 +O -3.054306 -0.949292 2.601988 +O -3.197394 -3.278630 2.114523 +O -3.158995 -4.191509 -0.086253 +O -2.984888 -2.644388 -1.967360 +C -1.737319 -0.829446 -0.911709 +C -1.760718 -0.246871 0.584872 +C -1.876448 -1.242564 1.816716 +C -1.931737 -2.800906 1.502286 +C -1.921260 -3.364080 0.040052 +C -1.855718 -2.361460 -1.167352 +H -0.871591 -0.490753 -1.490719 +H -0.855797 0.358486 0.648680 +H -1.106461 -1.004510 2.546571 +H -1.130414 -3.238722 2.104459 +H -1.118134 -4.106057 0.026934 +H -0.983470 -2.752678 -1.676997 diff --git a/sim/src/tests/motors/test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.mmp b/sim/src/tests/motors/test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.mmp new file mode 100755 index 000000000..1a57eee18 --- /dev/null +++ b/sim/src/tests/motors/test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.mmp @@ -0,0 +1,69 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (030- rotarymotor and linear motor attached to same atoms) +info opengroup open = True +mol (chunk1) tub +atom 1 (1) (-962, -1985, -1175) - +atom 2 (1) (-1007, 16, 2258) - +atom 3 (1) (-1050, 15, -2296) - +atom 4 (1) (-945, -1987, 1113) - +mol (chunk2) tub +atom 5 (1) (-1061, 1971, 1136) - +atom 6 (1) (-1083, 1989, -1151) - +forward_ref (242586488) # thermo (Thermo-85) +forward_ref (242587008) # ground (Anchor-86) +forward_ref (242586568) # stat (Stat-87) +mol (chunk1-frag178) tub +atom 7 (6) (-172, -1319, -815) - +bond1 1 +atom 8 (8) (1065, -1990, -1241) - +bond1 7 +atom 9 (8) (1026, 56, 2351) - +atom 10 (8) (981, 78, -2423) - +atom 11 (8) (1071, -1999, 1144) - +atom 12 (6) (-221, 36, -1587) - +bond1 7 10 3 +atom 13 (6) (-195, 18, 1536) - +bond1 9 2 +atom 14 (6) (-151, -1327, 746) - +bond1 13 7 11 4 +atom 15 (8) (922, 2137, -1215) - +atom 16 (8) (945, 2127, 1171) - +atom 17 (6) (-246, 1376, 762) - +bond1 13 16 5 +atom 18 (6) (-255, 1385, -799) - +bond1 17 15 12 6 +atom 19 (6) (2167, 1461, 740) - +bond1 16 +atom 20 (6) (2154, 1466, -815) - +bond1 19 15 +atom 21 (6) (2251, -1239, -834) - +bond1 8 +atom 22 (6) (2195, 116, -1601) - +bond1 21 20 10 +atom 23 (6) (2221, 96, 1511) - +bond1 19 9 +atom 24 (6) (2260, -1245, 729) - +bond1 21 23 11 +atom 25 (1) (2957, 2106, -1182) - +bond1 20 +atom 26 (1) (2984, 2102, 1107) - +bond1 19 +atom 27 (1) (3115, -1829, 1089) - +bond1 24 +atom 28 (1) (3080, -1846, -1211) - +bond1 21 +atom 29 (1) (3022, 118, 2227) - +bond1 23 +atom 30 (1) (2994, 167, -2336) - +bond1 22 +thermo (Thermo-85) (153, 0, 51) 7 30 17 +info leaf forwarded = 242586488 +stat (Stat-87) (0, 0, 153) (300) 7 30 12 +info leaf forwarded = 242586568 +lmotor (Linear Motor-181) (85, 170, 127) 0.800000 0.100000 (-208, 28, -26) (999, 33, -7) 4.00 0.80 0.10 +shaft 7 12 13 14 17 18 +rmotor (Rotary Motor-182) (85, 170, 255) -0.80 1.00 (-208, 28, -26) (-999, -33, 7) 5.00 0.50 0.10 +shaft 7 12 13 14 17 18 +egroup (030- rotarymotor and linear motor attached to same atoms) +end molecular machine part 030- rotarymotor and linear motor attached to same atoms diff --git a/sim/src/tests/motors/test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.trc b/sim/src/tests/motors/test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.trc new file mode 100755 index 000000000..1cec5e09a --- /dev/null +++ b/sim/src/tests/motors/test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.trc @@ -0,0 +1,32 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.trc test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.mmp +# Date and Time: Wed Apr 19 10:53:29 2006 +# Input File: test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.mmp +# Output File: test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.xyz +# Trace File: test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 30 +# +# 5 columns: +# Thermo-85: temperature (K) +# Stat-87: energy added (zJ) +# Linear Motor-181: displacement (angstroms) +# Rotary Motor-182: speed (GHz) +# Rotary Motor-182: torque (nn-nm) +# +# Time T.meter T.stat Lmotor speed torque +# picosec Thermo-85 Stat-87 Linear Motor-18 Rotary Motor-18 +# + 0.0100 253.68 0.10 -0.0001 0.985 0.012 +# Done: diff --git a/sim/src/tests/motors/test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.xyzcmp b/sim/src/tests/motors/test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.xyzcmp new file mode 100755 index 000000000..e9c150894 --- /dev/null +++ b/sim/src/tests/motors/test_030_rotarymotor_and_linear_motor_attached_to_same_atoms.xyzcmp @@ -0,0 +1,32 @@ +30 +Frame 0, Iteration: 100 +H -0.953600 -1.967021 -1.224426 +H -1.102179 -0.020370 2.118454 +H -1.024564 -0.039180 -2.343404 +H -0.977750 -1.941493 1.133136 +H -1.017414 2.025686 1.117061 +H -1.072423 1.966164 -1.213212 +C -0.177808 -1.319642 -0.815679 +O 1.055540 -2.020258 -1.232259 +O 1.028444 0.047378 2.339249 +O 0.978045 0.074264 -2.396323 +O 1.066936 -1.995774 1.156563 +C -0.238347 0.036230 -1.586507 +C -0.179932 0.018407 1.535991 +C -0.163179 -1.328074 0.745791 +O 0.953194 2.145304 -1.220408 +O 0.929226 2.143277 1.181464 +C -0.218093 1.376696 0.761838 +C -0.247090 1.385215 -0.799415 +C 2.147928 1.448441 0.736399 +C 2.158542 1.467102 -0.814614 +C 2.239066 -1.226574 -0.830909 +C 2.199914 0.107777 -1.634027 +C 2.271744 0.111670 1.519692 +C 2.266219 -1.218190 0.744582 +H 3.030255 2.070089 -1.125065 +H 2.918767 2.161654 1.036340 +H 3.079380 -1.870671 1.064414 +H 3.034968 -1.857035 -1.244633 +H 3.143731 0.097578 2.182498 +H 2.966859 0.272825 -2.410586 diff --git a/sim/src/tests/motors_and_anchors/001_linearmotor_pulling_against_anchor_1.mmp b/sim/src/tests/motors_and_anchors/001_linearmotor_pulling_against_anchor_1.mmp new file mode 100755 index 000000000..82f6153ff --- /dev/null +++ b/sim/src/tests/motors_and_anchors/001_linearmotor_pulling_against_anchor_1.mmp @@ -0,0 +1,148 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (10.049823) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (024 linearmotor against anchors) +info opengroup open = True +mol (Chunk-C747) tub +atom 1 (6) (187, 1541, 1421) def +atom 2 (6) (-1125, 2341, 1663) def +bond1 1 +atom 3 (0) (-984, 3061, 1905) def +bond1 2 +atom 4 (6) (201, 1073, -53) def +bond1 1 +atom 5 (6) (-1923, 2359, 329) def +bond1 2 +atom 6 (0) (-2055, 3083, 98) def +bond1 5 +atom 7 (6) (-1102, 1580, -735) def +bond1 4 5 +atom 8 (0) (-952, 2029, -1345) def +bond1 7 +atom 9 (6) (-2001, -947, 2697) def +atom 10 (0) (-2161, -1395, 3305) def +bond1 9 +atom 11 (6) (157, 283, 2322) def +bond1 1 +atom 12 (6) (153, -962, 1403) def +bond1 11 +atom 13 (6) (-1174, 295, 3128) def +bond1 9 11 +atom 14 (0) (-1049, 288, 3890) def +bond1 13 +atom 15 (6) (-1180, -1730, 1634) def +bond1 9 12 +atom 16 (0) (-1058, -2456, 1866) def +bond1 15 +atom 17 (6) (-1977, -1708, 300) def +bond1 15 +atom 18 (0) (-2129, -2425, 59) def +bond1 17 +atom 19 (6) (-1929, 335, -1162) def +bond1 7 +atom 20 (0) (-2064, 342, -1922) def +bond1 19 +atom 21 (6) (-3261, 347, -363) def +bond1 19 +atom 22 (0) (-3868, 359, -841) def +bond1 21 +atom 23 (6) (-1135, -936, -753) def +bond1 17 19 +atom 24 (0) (-997, -1380, -1369) def +bond1 23 +atom 25 (6) (-3291, -914, 540) def +bond1 17 21 +atom 26 (0) (-3908, -1351, 383) def +bond1 25 +atom 27 (6) (-3305, -445, 2020) def +bond1 9 25 +atom 28 (0) (-3928, -714, 2388) def +bond1 27 +atom 29 (6) (-3257, 1598, 557) def +bond1 5 21 +atom 30 (0) (-3863, 2052, 407) def +bond1 29 +atom 31 (6) (-3285, 1108, 2031) def +bond1 29 27 +atom 32 (0) (-3900, 1389, 2403) def +bond1 31 +atom 33 (6) (-1967, 1566, 2714) def +bond1 2 31 13 +atom 34 (0) (-2116, 2009, 3329) def +bond1 33 +atom 35 (6) (181, -473, -64) def +bond1 4 12 23 +atom 36 (6) (1504, -971, -716) def +bond1 35 +atom 37 (0) (1372, -1411, -1336) def +bond1 36 +atom 38 (6) (1459, -1766, 1671) def +bond1 12 +atom 39 (0) (1311, -2488, 1899) def +bond1 38 +atom 40 (6) (2295, -1765, 360) def +bond1 36 38 +atom 41 (0) (2434, -2486, 123) def +bond1 40 +atom 42 (6) (1465, 259, 3165) def +bond1 11 +atom 43 (0) (1319, 255, 3923) def +bond1 42 +atom 44 (6) (2271, -1005, 2757) def +bond1 38 42 +atom 45 (0) (2402, -1457, 3369) def +bond1 44 +atom 46 (6) (1514, 2306, 1701) def +bond1 1 +atom 47 (0) (1385, 3029, 1939) def +bond1 46 +atom 48 (6) (2304, 1508, 2775) def +bond1 42 46 +atom 49 (0) (2447, 1947, 3394) def +bond1 48 +atom 50 (6) (1537, 1545, -697) def +bond1 4 +atom 51 (0) (1417, 1998, -1311) def +bond1 50 +atom 52 (6) (2343, 279, -1101) def +bond1 36 50 +atom 53 (0) (2499, 282, -1857) def +bond1 52 +atom 54 (6) (2349, 2302, 390) def +bond1 46 50 +atom 55 (0) (2507, 3023, 163) def +bond1 54 +atom 56 (6) (3622, -1007, 637) def +bond1 40 +atom 57 (0) (4232, -1460, 498) def +bond1 56 +atom 58 (6) (3652, 255, -265) def +bond1 52 56 +atom 59 (0) (4272, 250, -725) def +bond1 58 +atom 60 (6) (3607, -538, 2118) def +bond1 56 44 +atom 61 (0) (4212, -824, 2503) def +bond1 60 +atom 62 (6) (3628, 1015, 2129) def +bond1 60 48 +atom 63 (0) (4240, 1279, 2519) def +bond1 62 +atom 64 (6) (3655, 1505, 656) def +bond1 54 58 62 +atom 65 (0) (4277, 1943, 523) def +bond1 64 +lmotor (Linear Motor-27) (127, 127, 127) 1.500000 0.000000 (176, 292, 1006) (-999, 13, -14) 10.00 1.00 0.10 +shaft 1 4 11 12 35 +thermo (Thermo-28) (153, 0, 51) 1 65 1 +ground (Anchor-29) (0, 0, 0) 56 58 60 62 64 +egroup (024 linearmotor against anchors) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 024 linearmotor against anchors diff --git a/sim/src/tests/motors_and_anchors/002_linearmotor_pulling_against_anchor_2.mmp b/sim/src/tests/motors_and_anchors/002_linearmotor_pulling_against_anchor_2.mmp new file mode 100755 index 000000000..a052084f5 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/002_linearmotor_pulling_against_anchor_2.mmp @@ -0,0 +1,148 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (10.513010) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (001 linearmotor pulling against anchor 2) +info opengroup open = True +mol (Chunk-C747) tub +atom 1 (6) (187, 1541, 1421) def +atom 2 (6) (-1125, 2341, 1663) def +bond1 1 +atom 3 (0) (-984, 3061, 1905) def +bond1 2 +atom 4 (6) (201, 1073, -53) def +bond1 1 +atom 5 (6) (-1923, 2359, 329) def +bond1 2 +atom 6 (0) (-2055, 3083, 98) def +bond1 5 +atom 7 (6) (-1102, 1580, -735) def +bond1 4 5 +atom 8 (0) (-952, 2029, -1345) def +bond1 7 +atom 9 (6) (-2001, -947, 2697) def +atom 10 (0) (-2161, -1395, 3305) def +bond1 9 +atom 11 (6) (157, 283, 2322) def +bond1 1 +atom 12 (6) (153, -962, 1403) def +bond1 11 +atom 13 (6) (-1174, 295, 3128) def +bond1 9 11 +atom 14 (0) (-1049, 288, 3890) def +bond1 13 +atom 15 (6) (-1180, -1730, 1634) def +bond1 9 12 +atom 16 (0) (-1058, -2456, 1866) def +bond1 15 +atom 17 (6) (-1977, -1708, 300) def +bond1 15 +atom 18 (0) (-2129, -2425, 59) def +bond1 17 +atom 19 (6) (-1929, 335, -1162) def +bond1 7 +atom 20 (0) (-2064, 342, -1922) def +bond1 19 +atom 21 (6) (-3261, 347, -363) def +bond1 19 +atom 22 (0) (-3868, 359, -841) def +bond1 21 +atom 23 (6) (-1135, -936, -753) def +bond1 17 19 +atom 24 (0) (-997, -1380, -1369) def +bond1 23 +atom 25 (6) (-3291, -914, 540) def +bond1 17 21 +atom 26 (0) (-3908, -1351, 383) def +bond1 25 +atom 27 (6) (-3305, -445, 2020) def +bond1 9 25 +atom 28 (0) (-3928, -714, 2388) def +bond1 27 +atom 29 (6) (-3257, 1598, 557) def +bond1 5 21 +atom 30 (0) (-3863, 2052, 407) def +bond1 29 +atom 31 (6) (-3285, 1108, 2031) def +bond1 29 27 +atom 32 (0) (-3900, 1389, 2403) def +bond1 31 +atom 33 (6) (-1967, 1566, 2714) def +bond1 2 31 13 +atom 34 (0) (-2116, 2009, 3329) def +bond1 33 +atom 35 (6) (181, -473, -64) def +bond1 4 12 23 +atom 36 (6) (1504, -971, -716) def +bond1 35 +atom 37 (0) (1372, -1411, -1336) def +bond1 36 +atom 38 (6) (1459, -1766, 1671) def +bond1 12 +atom 39 (0) (1311, -2488, 1899) def +bond1 38 +atom 40 (6) (2295, -1765, 360) def +bond1 36 38 +atom 41 (0) (2434, -2486, 123) def +bond1 40 +atom 42 (6) (1465, 259, 3165) def +bond1 11 +atom 43 (0) (1319, 255, 3923) def +bond1 42 +atom 44 (6) (2271, -1004, 2757) def +bond1 38 42 +atom 45 (0) (2402, -1457, 3369) def +bond1 44 +atom 46 (6) (1514, 2306, 1701) def +bond1 1 +atom 47 (0) (1385, 3029, 1939) def +bond1 46 +atom 48 (6) (2304, 1508, 2775) def +bond1 42 46 +atom 49 (0) (2447, 1947, 3394) def +bond1 48 +atom 50 (6) (1537, 1545, -697) def +bond1 4 +atom 51 (0) (1417, 1998, -1311) def +bond1 50 +atom 52 (6) (2343, 279, -1101) def +bond1 36 50 +atom 53 (0) (2499, 282, -1857) def +bond1 52 +atom 54 (6) (2349, 2302, 390) def +bond1 46 50 +atom 55 (0) (2507, 3023, 163) def +bond1 54 +atom 56 (6) (3622, -1006, 637) def +bond1 40 +atom 57 (0) (4232, -1460, 498) def +bond1 56 +atom 58 (6) (3652, 255, -265) def +bond1 52 56 +atom 59 (0) (4272, 250, -725) def +bond1 58 +atom 60 (6) (3607, -538, 2118) def +bond1 56 44 +atom 61 (0) (4212, -824, 2503) def +bond1 60 +atom 62 (6) (3628, 1014, 2129) def +bond1 60 48 +atom 63 (0) (4240, 1279, 2519) def +bond1 62 +atom 64 (6) (3655, 1505, 656) def +bond1 54 58 62 +atom 65 (0) (4277, 1943, 523) def +bond1 64 +lmotor (Linear Motor-27) (127, 127, 127) 1.500000 0.000000 (176, 292, 1006) (-999, 13, -14) 10.00 1.00 0.10 +shaft 1 4 11 12 35 +thermo (Thermo-28) (153, 0, 51) 1 65 1 +ground (Anchor-21) (0, 0, 0) 1 4 11 12 35 +egroup (001 linearmotor pulling against anchor 2) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 001 linearmotor pulling against anchor 2 diff --git a/sim/src/tests/motors_and_anchors/003_rotorymotor_against_anchor_1.mmp b/sim/src/tests/motors_and_anchors/003_rotorymotor_against_anchor_1.mmp new file mode 100755 index 000000000..7fe49d67c --- /dev/null +++ b/sim/src/tests/motors_and_anchors/003_rotorymotor_against_anchor_1.mmp @@ -0,0 +1,116 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.707107, 0.000000, -0.707107, 0.000000) (6.676110) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (002 rotorymotor against anchor) +info opengroup open = True +mol (InnerSleeve-copy2-frag6) def +atom 1 (6) (-2155, 1078, -96) def +atom 2 (6) (-2142, -1258, -73) def +atom 3 (6) (-138, 2257, -125) def +atom 4 (6) (1891, 1100, -131) def +atom 5 (6) (1904, -1235, -107) def +atom 6 (6) (-112, -2415, -78) def +atom 7 (6) (-1426, -846, -1357) def +bond1 2 +atom 8 (6) (-1435, 648, -1372) def +bond1 1 7 +atom 9 (6) (-144, 1403, -1391) def +bond1 3 8 +atom 10 (6) (1153, 663, -1394) def +bond1 4 9 +atom 11 (6) (1162, -831, -1379) def +bond1 5 10 +atom 12 (6) (-127, -1586, -1361) def +bond1 6 7 11 +atom 13 (8) (-3037, -99, -523) def +bond1 1 2 +atom 14 (8) (-1597, 2426, -561) def +bond1 1 3 +atom 15 (8) (1310, 2443, -585) def +bond1 3 4 +atom 16 (8) (2778, -66, -573) def +bond1 4 5 +atom 17 (8) (1338, -2593, -535) def +bond1 5 6 +atom 18 (8) (-1568, -2609, -510) def +bond1 2 6 +atom 19 (6) (-2133, 1104, 2487) def +atom 20 (6) (-116, 2284, 2458) def +atom 21 (6) (-2120, -1232, 2510) def +atom 22 (6) (-90, -2389, 2505) def +atom 23 (6) (1926, -1209, 2476) def +atom 24 (6) (1913, 1127, 2452) def +atom 25 (6) (-101, 1455, 3740) def +bond1 20 +atom 26 (6) (-1391, 700, 3759) def +bond1 19 25 +atom 27 (6) (-1383, -794, 3774) def +bond1 21 26 +atom 28 (6) (-84, -1534, 3770) def +bond1 22 27 +atom 29 (6) (1206, -779, 3752) def +bond1 23 28 +atom 30 (6) (1197, 715, 3736) def +bond1 24 25 29 +atom 31 (8) (-1567, 2461, 2914) def +bond1 19 20 +atom 32 (8) (-3007, -64, 2952) def +bond1 19 21 +atom 33 (8) (-1539, -2574, 2965) def +bond1 21 22 +atom 34 (8) (1368, -2558, 2940) def +bond1 22 23 +atom 35 (8) (2807, -31, 2902) def +bond1 23 24 +atom 36 (8) (1339, 2478, 2889) def +bond1 20 24 +atom 37 (6) (-106, -1567, 1204) def +bond1 6 22 +atom 38 (6) (-1411, -824, 1208) def +bond1 2 37 21 +atom 39 (6) (-1420, 678, 1193) def +bond1 1 38 19 +atom 40 (6) (-123, 1436, 1174) def +bond1 3 39 20 +atom 41 (6) (1182, 692, 1171) def +bond1 4 40 24 +atom 42 (6) (1190, -809, 1186) def +bond1 5 37 41 23 +atom 43 (1) (-2003, -1188, -2228) def +bond1 7 +atom 44 (1) (-2016, 966, -2250) def +bond1 8 +atom 45 (1) (-156, 2054, -2277) def +bond1 9 +atom 46 (1) (1716, 987, -2282) def +bond1 10 +atom 47 (1) (1728, -1167, -2260) def +bond1 11 +atom 48 (1) (-131, -2255, -2233) def +bond1 12 +atom 49 (1) (-97, 2123, 4613) def +bond1 25 +atom 50 (1) (-1957, 1036, 4640) def +bond1 26 +atom 51 (1) (-1945, -1118, 4661) def +bond1 27 +atom 52 (1) (-73, -2185, 4656) def +bond1 28 +atom 53 (1) (1786, -1097, 4629) def +bond1 29 +atom 54 (1) (1774, 1057, 4608) def +bond1 30 +rmotor (Rotary Motor-7) (127, 127, 127) 1.00 1.00 (-114, -65, 1189) (8, 10, 999) 5.00 1.00 0.10 +shaft 37 38 39 40 41 42 +ground (Anchor-8) (0, 0, 0) 37 38 39 40 41 42 +thermo (Thermo-15) (153, 0, 51) 1 54 15 +egroup (002 rotorymotor against anchor) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 002 rotorymotor against anchor diff --git a/sim/src/tests/motors_and_anchors/004_rotorymotor_against_anchor_2.mmp b/sim/src/tests/motors_and_anchors/004_rotorymotor_against_anchor_2.mmp new file mode 100755 index 000000000..0713b6f66 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/004_rotorymotor_against_anchor_2.mmp @@ -0,0 +1,120 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (0.707107, 0.000000, -0.707107, 0.000000) (6.676110) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.707107, 0.000000, -0.707107, 0.000000) (6.676110) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (003 rotorymotor against anchor-2) +info opengroup open = True +mol (InnerSleeve-copy2-frag6) def +atom 1 (6) (-2155, 1078, -96) def +atom 2 (6) (-2142, -1258, -73) def +atom 3 (6) (-138, 2257, -125) def +atom 4 (6) (1891, 1100, -131) def +atom 5 (6) (1904, -1235, -107) def +atom 6 (6) (-112, -2415, -78) def +atom 7 (6) (-1426, -846, -1357) def +bond1 2 +atom 8 (6) (-1435, 648, -1372) def +bond1 1 7 +atom 9 (6) (-144, 1403, -1391) def +bond1 3 8 +atom 10 (6) (1153, 663, -1394) def +bond1 4 9 +atom 11 (6) (1162, -831, -1379) def +bond1 5 10 +atom 12 (6) (-127, -1586, -1361) def +bond1 6 7 11 +atom 13 (8) (-3037, -99, -523) def +bond1 1 2 +atom 14 (8) (-1597, 2426, -561) def +bond1 1 3 +atom 15 (8) (1310, 2443, -585) def +bond1 3 4 +atom 16 (8) (2778, -66, -573) def +bond1 4 5 +atom 17 (8) (1338, -2593, -535) def +bond1 5 6 +atom 18 (8) (-1568, -2609, -510) def +bond1 2 6 +atom 19 (6) (-2133, 1104, 2487) def +atom 20 (6) (-116, 2284, 2458) def +atom 21 (6) (-2120, -1232, 2510) def +atom 22 (6) (-90, -2389, 2505) def +atom 23 (6) (1926, -1209, 2476) def +atom 24 (6) (1913, 1127, 2452) def +atom 25 (6) (-101, 1455, 3740) def +bond1 20 +atom 26 (6) (-1391, 700, 3759) def +bond1 19 25 +atom 27 (6) (-1383, -794, 3774) def +bond1 21 26 +atom 28 (6) (-84, -1534, 3770) def +bond1 22 27 +atom 29 (6) (1206, -779, 3752) def +bond1 23 28 +atom 30 (6) (1197, 715, 3736) def +bond1 24 25 29 +atom 31 (8) (-1567, 2461, 2914) def +bond1 19 20 +atom 32 (8) (-3007, -64, 2952) def +bond1 19 21 +atom 33 (8) (-1539, -2574, 2965) def +bond1 21 22 +atom 34 (8) (1368, -2558, 2940) def +bond1 22 23 +atom 35 (8) (2807, -31, 2902) def +bond1 23 24 +atom 36 (8) (1339, 2478, 2889) def +bond1 20 24 +atom 37 (6) (-106, -1567, 1204) def +bond1 6 22 +atom 38 (6) (-1411, -824, 1208) def +bond1 2 37 21 +atom 39 (6) (-1420, 678, 1193) def +bond1 1 38 19 +atom 40 (6) (-123, 1436, 1174) def +bond1 3 39 20 +atom 41 (6) (1182, 692, 1171) def +bond1 4 40 24 +atom 42 (6) (1190, -809, 1186) def +bond1 5 37 41 23 +atom 43 (1) (-2003, -1188, -2228) def +bond1 7 +atom 44 (1) (-2016, 966, -2250) def +bond1 8 +atom 45 (1) (-156, 2054, -2277) def +bond1 9 +atom 46 (1) (1716, 987, -2282) def +bond1 10 +atom 47 (1) (1728, -1167, -2260) def +bond1 11 +atom 48 (1) (-131, -2255, -2233) def +bond1 12 +atom 49 (1) (-97, 2123, 4613) def +bond1 25 +atom 50 (1) (-1957, 1036, 4640) def +bond1 26 +atom 51 (1) (-1945, -1118, 4661) def +bond1 27 +atom 52 (1) (-73, -2185, 4656) def +bond1 28 +atom 53 (1) (1786, -1097, 4629) def +bond1 29 +atom 54 (1) (1774, 1057, 4608) def +bond1 30 +rmotor (Rotary Motor-7) (127, 127, 127) 1.00 1.00 (-114, -65, 1189) (8, 10, 999) 5.00 1.00 0.10 +shaft 37 38 39 40 41 42 +forward_ref (406380216) # ground (Anchor-8) +ground (Anchor-9) (0, 0, 0) 9 +thermo (Thermo-10) (153, 0, 51) 1 54 15 +egroup (003 rotorymotor against anchor-2) +end1 +group (Clipboard) +info opengroup open = False +ground (Anchor-8) (0, 0, 0) 37 38 39 40 41 42 +info leaf disabled = True +info leaf forwarded = 406380216 +egroup (Clipboard) +end molecular machine part 003 rotorymotor against anchor-2 diff --git a/sim/src/tests/motors_and_anchors/005_rotorymotor_against_anchor_3.mmp b/sim/src/tests/motors_and_anchors/005_rotorymotor_against_anchor_3.mmp new file mode 100755 index 000000000..f54a28174 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/005_rotorymotor_against_anchor_3.mmp @@ -0,0 +1,59 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (10.618005) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (005 rotorymotor against anchor 3) +info opengroup open = True +mol (Chunk-Si131) def +atom 1 (14) (-50, 6016, 0) def +atom 2 (1) (808, 6875, 858) def +bond1 1 +atom 3 (1) (-909, 6875, -858) def +bond1 1 +atom 4 (1) (-909, 5157, 858) def +bond1 1 +atom 5 (1) (808, 5157, -858) def +bond1 1 +mol (Chunk-Si131-copy1) def +atom 6 (14) (-50, -5948, 0) def +atom 7 (1) (808, -5090, 858) def +bond1 6 +atom 8 (1) (-909, -5090, -858) def +bond1 6 +atom 9 (1) (-909, -6807, 858) def +bond1 6 +atom 10 (1) (808, -6807, -858) def +bond1 6 +mol (Chunk-C151) def +atom 11 (6) (5999, 0, 0) def +atom 12 (1) (6627, 627, 627) def +bond1 11 +atom 13 (1) (5371, 627, -627) def +bond1 11 +atom 14 (1) (5371, -627, 627) def +bond1 11 +atom 15 (1) (6627, -627, -627) def +bond1 11 +mol (Chunk-C151-copy2) def +atom 16 (1) (-5371, 627, 627) def +atom 17 (1) (-6627, 627, -627) def +atom 18 (1) (-6627, -627, 627) def +atom 19 (1) (-5371, -627, -627) def +atom 20 (6) (-5999, 0, 0) def +bond1 16 17 18 19 +rmotor (Rotary Motor-37) (127, 127, 127) 0.50 1.00 (-25, 16, 0) (0, 0, -1000) 10.00 2.00 0.50 +shaft 1 6 11 20 +mdistance (Distance-40) (0, 0, 0) (Helvetica) 10 1 6 +mdistance (Distance-41) (0, 0, 0) (Helvetica) 10 20 11 +mangle (Angle-42) (0, 0, 0) (Helvetica) 10 1 20 6 +thermo (Thermo-43) (153, 0, 51) 1 5 1 +ground (Anchor-15) (0, 0, 0) 20 1 11 6 +egroup (005 rotorymotor against anchor 3) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 005 rotorymotor against anchor 3 diff --git a/sim/src/tests/motors_and_anchors/test_001_linearmotor_pulling_against_anchor_1.mmp b/sim/src/tests/motors_and_anchors/test_001_linearmotor_pulling_against_anchor_1.mmp new file mode 100755 index 000000000..cb1c3adb7 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_001_linearmotor_pulling_against_anchor_1.mmp @@ -0,0 +1,139 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (024 linearmotor against anchors) +info opengroup open = True +mol (Chunk-C747) tub +atom 1 (6) (187, 1541, 1421) - +atom 2 (6) (-1125, 2341, 1663) - +bond1 1 +atom 3 (0) (-984, 3061, 1905) - +bond1 2 +atom 4 (6) (201, 1073, -53) - +bond1 1 +atom 5 (6) (-1923, 2359, 329) - +bond1 2 +atom 6 (0) (-2055, 3083, 98) - +bond1 5 +atom 7 (6) (-1102, 1580, -735) - +bond1 4 5 +atom 8 (0) (-952, 2029, -1345) - +bond1 7 +atom 9 (6) (-2001, -947, 2697) - +atom 10 (0) (-2161, -1395, 3305) - +bond1 9 +atom 11 (6) (157, 283, 2322) - +bond1 1 +atom 12 (6) (153, -962, 1403) - +bond1 11 +atom 13 (6) (-1174, 295, 3128) - +bond1 9 11 +atom 14 (0) (-1049, 288, 3890) - +bond1 13 +atom 15 (6) (-1180, -1730, 1634) - +bond1 9 12 +atom 16 (0) (-1058, -2456, 1866) - +bond1 15 +atom 17 (6) (-1977, -1708, 300) - +bond1 15 +atom 18 (0) (-2129, -2425, 59) - +bond1 17 +atom 19 (6) (-1929, 335, -1162) - +bond1 7 +atom 20 (0) (-2064, 342, -1922) - +bond1 19 +atom 21 (6) (-3261, 347, -363) - +bond1 19 +atom 22 (0) (-3868, 359, -841) - +bond1 21 +atom 23 (6) (-1135, -936, -753) - +bond1 17 19 +atom 24 (0) (-997, -1380, -1369) - +bond1 23 +atom 25 (6) (-3291, -914, 540) - +bond1 17 21 +atom 26 (0) (-3908, -1351, 383) - +bond1 25 +atom 27 (6) (-3305, -445, 2020) - +bond1 9 25 +atom 28 (0) (-3928, -714, 2388) - +bond1 27 +atom 29 (6) (-3257, 1598, 557) - +bond1 5 21 +atom 30 (0) (-3863, 2052, 407) - +bond1 29 +atom 31 (6) (-3285, 1108, 2031) - +bond1 29 27 +atom 32 (0) (-3900, 1389, 2403) - +bond1 31 +atom 33 (6) (-1967, 1566, 2714) - +bond1 2 31 13 +atom 34 (0) (-2116, 2009, 3329) - +bond1 33 +atom 35 (6) (181, -473, -64) - +bond1 4 12 23 +atom 36 (6) (1504, -971, -716) - +bond1 35 +atom 37 (0) (1372, -1411, -1336) - +bond1 36 +atom 38 (6) (1459, -1766, 1671) - +bond1 12 +atom 39 (0) (1311, -2488, 1899) - +bond1 38 +atom 40 (6) (2295, -1765, 360) - +bond1 36 38 +atom 41 (0) (2434, -2486, 123) - +bond1 40 +atom 42 (6) (1465, 259, 3165) - +bond1 11 +atom 43 (0) (1319, 255, 3923) - +bond1 42 +atom 44 (6) (2271, -1005, 2757) - +bond1 38 42 +atom 45 (0) (2402, -1457, 3369) - +bond1 44 +atom 46 (6) (1514, 2306, 1701) - +bond1 1 +atom 47 (0) (1385, 3029, 1939) - +bond1 46 +atom 48 (6) (2304, 1508, 2775) - +bond1 42 46 +atom 49 (0) (2447, 1947, 3394) - +bond1 48 +atom 50 (6) (1537, 1545, -697) - +bond1 4 +atom 51 (0) (1417, 1998, -1311) - +bond1 50 +atom 52 (6) (2343, 279, -1101) - +bond1 36 50 +atom 53 (0) (2499, 282, -1857) - +bond1 52 +atom 54 (6) (2349, 2302, 390) - +bond1 46 50 +atom 55 (0) (2507, 3023, 163) - +bond1 54 +atom 56 (6) (3622, -1007, 637) - +bond1 40 +atom 57 (0) (4232, -1460, 498) - +bond1 56 +atom 58 (6) (3652, 255, -265) - +bond1 52 56 +atom 59 (0) (4272, 250, -725) - +bond1 58 +atom 60 (6) (3607, -538, 2118) - +bond1 56 44 +atom 61 (0) (4212, -824, 2503) - +bond1 60 +atom 62 (6) (3628, 1015, 2129) - +bond1 60 48 +atom 63 (0) (4240, 1279, 2519) - +bond1 62 +atom 64 (6) (3655, 1505, 656) - +bond1 54 58 62 +atom 65 (0) (4277, 1943, 523) - +bond1 64 +lmotor (Linear Motor-27) (127, 127, 127) 1.500000 0.000000 (176, 292, 1006) (-999, 13, -14) 10.00 1.00 0.10 +shaft 1 4 11 12 35 +thermo (Thermo-28) (153, 0, 51) 1 65 1 +ground (Anchor-29) (0, 0, 0) 56 58 60 62 64 +egroup (024 linearmotor against anchors) +end molecular machine part 024 linearmotor against anchors diff --git a/sim/src/tests/motors_and_anchors/test_001_linearmotor_pulling_against_anchor_1.trc b/sim/src/tests/motors_and_anchors/test_001_linearmotor_pulling_against_anchor_1.trc new file mode 100755 index 000000000..055ace304 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_001_linearmotor_pulling_against_anchor_1.trc @@ -0,0 +1,35 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Warning: Using a reduced quality parameter, see the trace output for details +# Info: Using quality 3 parameters for X-1-C stretch +# Info: Computed ks: 1.000000e+03, r0: 7.700000e+01, de: 5.800000e-01, beta: 3.198925e-02 +# Info: Using quality 1 parameters for X-1-C.sp3-1-C bend +# Info: Computed kb: 1.622653e+06, theta0: 1.910600e+00 +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_001_linearmotor_pulling_against_anchor_1.trc test_001_linearmotor_pulling_against_anchor_1.mmp +# Date and Time: Wed Apr 19 10:53:31 2006 +# Input File: test_001_linearmotor_pulling_against_anchor_1.mmp +# Output File: test_001_linearmotor_pulling_against_anchor_1.xyz +# Trace File: test_001_linearmotor_pulling_against_anchor_1.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 65 +# +# 3 columns: +# Linear Motor-27: displacement (angstroms) +# Thermo-28: temperature (K) +# Anchor-29: torque (nn-nm) +# +# Time Lmotor T.meter Anchor +# picosec Linear Motor-27 Thermo-28 Anchor-29 +# + 0.0100 0.0011 275.12 1.34 +# Done: diff --git a/sim/src/tests/motors_and_anchors/test_001_linearmotor_pulling_against_anchor_1.xyzcmp b/sim/src/tests/motors_and_anchors/test_001_linearmotor_pulling_against_anchor_1.xyzcmp new file mode 100755 index 000000000..fc453eddf --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_001_linearmotor_pulling_against_anchor_1.xyzcmp @@ -0,0 +1,67 @@ +65 +Frame 0, Iteration: 100 +C 0.189101 1.540973 1.421029 +C -1.156051 2.332432 1.620014 +X -0.974369 3.030753 1.879247 +C 0.175511 1.073332 -0.053357 +C -1.894794 2.360599 0.296526 +X -2.047802 3.077301 0.052923 +C -1.114797 1.551195 -0.729350 +X -0.960174 1.973204 -1.357079 +C -2.011527 -0.948306 2.706224 +X -2.157425 -1.412227 3.333469 +C 0.169822 0.282833 2.322180 +C 0.142057 -0.961858 1.402847 +C -1.171771 0.297747 3.137379 +X -1.048357 0.288568 3.930052 +C -1.181738 -1.692433 1.626505 +X -1.084782 -2.409197 1.862420 +C -1.945391 -1.684482 0.280888 +X -2.113453 -2.424541 0.047941 +C -1.943712 0.322329 -1.157667 +X -2.054346 0.345397 -1.913577 +C -3.270032 0.340806 -0.372272 +X -3.862196 0.325975 -0.892354 +C -1.101563 -0.915175 -0.751523 +X -0.984109 -1.338706 -1.370527 +C -3.256011 -0.910848 0.549326 +X -3.884717 -1.315976 0.363476 +C -3.332186 -0.462542 2.019533 +X -3.990802 -0.705325 2.362150 +C -3.249859 1.609170 0.519210 +X -3.844811 2.109004 0.393375 +C -3.270912 1.107624 2.020054 +X -3.864237 1.379264 2.435711 +C -1.949250 1.576067 2.711999 +X -2.097423 2.022056 3.321232 +C 0.186582 -0.473073 -0.063922 +C 1.514938 -0.954744 -0.721712 +X 1.392606 -1.439496 -1.308035 +C 1.443027 -1.765519 1.677185 +X 1.334954 -2.496738 1.898423 +C 2.271846 -1.743972 0.361945 +X 2.415815 -2.492976 0.136529 +C 1.508203 0.273107 3.154526 +X 1.318750 0.233698 3.907515 +C 2.272908 -0.988532 2.743088 +X 2.364857 -1.434368 3.351702 +C 1.501707 2.312366 1.703713 +X 1.382137 3.047051 1.933857 +C 2.321952 1.512337 2.808935 +X 2.475301 1.919066 3.443483 +C 1.534875 1.539194 -0.691437 +X 1.389634 1.954273 -1.328016 +C 2.319825 0.281989 -1.081476 +X 2.539365 0.260869 -1.800700 +C 2.376162 2.315983 0.384524 +X 2.569114 3.061194 0.150759 +C 3.621987 -1.006988 0.636993 +X 4.210245 -1.458705 0.475208 +C 3.651989 0.255005 -0.265011 +X 4.240426 0.279316 -0.762645 +C 3.606988 -0.538018 2.117993 +X 4.203381 -0.863723 2.477601 +C 3.627999 1.015004 2.129019 +X 4.256254 1.280680 2.547729 +C 3.654993 1.504984 0.656020 +X 4.269006 1.919671 0.571455 diff --git a/sim/src/tests/motors_and_anchors/test_002_linearmotor_pulling_against_anchor_2.mmp b/sim/src/tests/motors_and_anchors/test_002_linearmotor_pulling_against_anchor_2.mmp new file mode 100755 index 000000000..86dcaaeec --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_002_linearmotor_pulling_against_anchor_2.mmp @@ -0,0 +1,139 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (001 linearmotor pulling against anchor 2) +info opengroup open = True +mol (Chunk-C747) tub +atom 1 (6) (187, 1541, 1421) - +atom 2 (6) (-1125, 2341, 1663) - +bond1 1 +atom 3 (0) (-984, 3061, 1905) - +bond1 2 +atom 4 (6) (201, 1073, -53) - +bond1 1 +atom 5 (6) (-1923, 2359, 329) - +bond1 2 +atom 6 (0) (-2055, 3083, 98) - +bond1 5 +atom 7 (6) (-1102, 1580, -735) - +bond1 4 5 +atom 8 (0) (-952, 2029, -1345) - +bond1 7 +atom 9 (6) (-2001, -947, 2697) - +atom 10 (0) (-2161, -1395, 3305) - +bond1 9 +atom 11 (6) (157, 283, 2322) - +bond1 1 +atom 12 (6) (153, -962, 1403) - +bond1 11 +atom 13 (6) (-1174, 295, 3128) - +bond1 9 11 +atom 14 (0) (-1049, 288, 3890) - +bond1 13 +atom 15 (6) (-1180, -1730, 1634) - +bond1 9 12 +atom 16 (0) (-1058, -2456, 1866) - +bond1 15 +atom 17 (6) (-1977, -1708, 300) - +bond1 15 +atom 18 (0) (-2129, -2425, 59) - +bond1 17 +atom 19 (6) (-1929, 335, -1162) - +bond1 7 +atom 20 (0) (-2064, 342, -1922) - +bond1 19 +atom 21 (6) (-3261, 347, -363) - +bond1 19 +atom 22 (0) (-3868, 359, -841) - +bond1 21 +atom 23 (6) (-1135, -936, -753) - +bond1 17 19 +atom 24 (0) (-997, -1380, -1369) - +bond1 23 +atom 25 (6) (-3291, -914, 540) - +bond1 17 21 +atom 26 (0) (-3908, -1351, 383) - +bond1 25 +atom 27 (6) (-3305, -445, 2020) - +bond1 9 25 +atom 28 (0) (-3928, -714, 2388) - +bond1 27 +atom 29 (6) (-3257, 1598, 557) - +bond1 5 21 +atom 30 (0) (-3863, 2052, 407) - +bond1 29 +atom 31 (6) (-3285, 1108, 2031) - +bond1 29 27 +atom 32 (0) (-3900, 1389, 2403) - +bond1 31 +atom 33 (6) (-1967, 1566, 2714) - +bond1 2 31 13 +atom 34 (0) (-2116, 2009, 3329) - +bond1 33 +atom 35 (6) (181, -473, -64) - +bond1 4 12 23 +atom 36 (6) (1504, -971, -716) - +bond1 35 +atom 37 (0) (1372, -1411, -1336) - +bond1 36 +atom 38 (6) (1459, -1766, 1671) - +bond1 12 +atom 39 (0) (1311, -2488, 1899) - +bond1 38 +atom 40 (6) (2295, -1765, 360) - +bond1 36 38 +atom 41 (0) (2434, -2486, 123) - +bond1 40 +atom 42 (6) (1465, 259, 3165) - +bond1 11 +atom 43 (0) (1319, 255, 3923) - +bond1 42 +atom 44 (6) (2271, -1004, 2757) - +bond1 38 42 +atom 45 (0) (2402, -1457, 3369) - +bond1 44 +atom 46 (6) (1514, 2306, 1701) - +bond1 1 +atom 47 (0) (1385, 3029, 1939) - +bond1 46 +atom 48 (6) (2304, 1508, 2775) - +bond1 42 46 +atom 49 (0) (2447, 1947, 3394) - +bond1 48 +atom 50 (6) (1537, 1545, -697) - +bond1 4 +atom 51 (0) (1417, 1998, -1311) - +bond1 50 +atom 52 (6) (2343, 279, -1101) - +bond1 36 50 +atom 53 (0) (2499, 282, -1857) - +bond1 52 +atom 54 (6) (2349, 2302, 390) - +bond1 46 50 +atom 55 (0) (2507, 3023, 163) - +bond1 54 +atom 56 (6) (3622, -1006, 637) - +bond1 40 +atom 57 (0) (4232, -1460, 498) - +bond1 56 +atom 58 (6) (3652, 255, -265) - +bond1 52 56 +atom 59 (0) (4272, 250, -725) - +bond1 58 +atom 60 (6) (3607, -538, 2118) - +bond1 56 44 +atom 61 (0) (4212, -824, 2503) - +bond1 60 +atom 62 (6) (3628, 1014, 2129) - +bond1 60 48 +atom 63 (0) (4240, 1279, 2519) - +bond1 62 +atom 64 (6) (3655, 1505, 656) - +bond1 54 58 62 +atom 65 (0) (4277, 1943, 523) - +bond1 64 +lmotor (Linear Motor-27) (127, 127, 127) 1.500000 0.000000 (176, 292, 1006) (-999, 13, -14) 10.00 1.00 0.10 +shaft 1 4 11 12 35 +thermo (Thermo-28) (153, 0, 51) 1 65 1 +ground (Anchor-21) (0, 0, 0) 1 4 11 12 35 +egroup (001 linearmotor pulling against anchor 2) +end molecular machine part 001 linearmotor pulling against anchor 2 diff --git a/sim/src/tests/motors_and_anchors/test_002_linearmotor_pulling_against_anchor_2.trc b/sim/src/tests/motors_and_anchors/test_002_linearmotor_pulling_against_anchor_2.trc new file mode 100755 index 000000000..4e198f484 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_002_linearmotor_pulling_against_anchor_2.trc @@ -0,0 +1,35 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Warning: Using a reduced quality parameter, see the trace output for details +# Info: Using quality 3 parameters for X-1-C stretch +# Info: Computed ks: 1.000000e+03, r0: 7.700000e+01, de: 5.800000e-01, beta: 3.198925e-02 +# Info: Using quality 1 parameters for X-1-C.sp3-1-C bend +# Info: Computed kb: 1.622653e+06, theta0: 1.910600e+00 +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_002_linearmotor_pulling_against_anchor_2.trc test_002_linearmotor_pulling_against_anchor_2.mmp +# Date and Time: Wed Apr 19 10:53:30 2006 +# Input File: test_002_linearmotor_pulling_against_anchor_2.mmp +# Output File: test_002_linearmotor_pulling_against_anchor_2.xyz +# Trace File: test_002_linearmotor_pulling_against_anchor_2.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 65 +# +# 3 columns: +# Linear Motor-27: displacement (angstroms) +# Thermo-28: temperature (K) +# Anchor-21: torque (nn-nm) +# +# Time Lmotor T.meter Anchor +# picosec Linear Motor-27 Thermo-28 Anchor-21 +# + 0.0100 0.0000 305.19 0.33 +# Done: diff --git a/sim/src/tests/motors_and_anchors/test_002_linearmotor_pulling_against_anchor_2.xyzcmp b/sim/src/tests/motors_and_anchors/test_002_linearmotor_pulling_against_anchor_2.xyzcmp new file mode 100755 index 000000000..5fee4adc7 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_002_linearmotor_pulling_against_anchor_2.xyzcmp @@ -0,0 +1,67 @@ +65 +Frame 0, Iteration: 100 +C 0.186995 1.541000 1.421000 +C -1.157866 2.332806 1.619618 +X -0.974206 3.030687 1.879154 +C 0.200993 1.073000 -0.053000 +C -1.894595 2.360469 0.296529 +X -2.047769 3.077269 0.052892 +C -1.109493 1.550395 -0.728415 +X -0.960723 1.973238 -1.357160 +C -2.011464 -0.948281 2.706221 +X -2.157416 -1.412235 3.333458 +C 0.157010 0.283000 2.322000 +C 0.152995 -0.962000 1.403000 +C -1.173193 0.297464 3.137624 +X -1.048176 0.288525 3.930030 +C -1.179471 -1.692090 1.626329 +X -1.085011 -2.409206 1.862411 +C -1.945276 -1.684389 0.280892 +X -2.113430 -2.424530 0.047944 +C -1.943407 0.322294 -1.157503 +X -2.054299 0.345410 -1.913541 +C -3.270006 0.340833 -0.372253 +X -3.862189 0.325977 -0.892357 +C -1.102242 -0.914867 -0.751534 +X -0.984082 -1.338627 -1.370461 +C -3.256003 -0.910847 0.549344 +X -3.884714 -1.315977 0.363476 +C -3.332180 -0.462552 2.019523 +X -3.990800 -0.705326 2.362150 +C -3.249843 1.609147 0.519177 +X -3.844807 2.109005 0.393371 +C -3.270929 1.107624 2.020066 +X -3.864242 1.379263 2.435710 +C -1.949440 1.576103 2.712056 +X -2.097448 2.022068 3.321245 +C 0.181009 -0.473000 -0.064000 +C 1.513917 -0.955218 -0.722037 +X 1.392534 -1.439718 -1.308053 +C 1.444479 -1.766054 1.677840 +X 1.334629 -2.496774 1.898333 +C 2.270105 -1.742424 0.360578 +X 2.417225 -2.492383 0.136555 +C 1.506455 0.273665 3.154709 +X 1.318769 0.233815 3.907605 +C 2.264886 -0.993025 2.745922 +X 2.364664 -1.435018 3.352416 +C 1.499254 2.312331 1.704056 +X 1.382207 3.047182 1.933757 +C 2.316614 1.514858 2.812333 +X 2.474967 1.919564 3.444151 +C 1.540260 1.539615 -0.692003 +X 1.389112 1.954373 -1.327748 +C 2.319280 0.281752 -1.085321 +X 2.538017 0.260890 -1.802276 +C 2.376420 2.312935 0.386456 +X 2.570808 3.060314 0.151205 +C 3.603441 -0.987342 0.622404 +X 4.201604 -1.449498 0.475873 +C 3.638922 0.252551 -0.290819 +X 4.243365 0.277511 -0.771083 +C 3.566950 -0.565770 2.114865 +X 4.187799 -0.868994 2.474166 +C 3.602277 1.015490 2.157046 +X 4.246591 1.278168 2.551867 +C 3.647366 1.478258 0.684284 +X 4.263104 1.910186 0.580610 diff --git a/sim/src/tests/motors_and_anchors/test_003_rotorymotor_against_anchor_1.mmp b/sim/src/tests/motors_and_anchors/test_003_rotorymotor_against_anchor_1.mmp new file mode 100755 index 000000000..17d321530 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_003_rotorymotor_against_anchor_1.mmp @@ -0,0 +1,107 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (002 rotorymotor against anchor) +info opengroup open = True +mol (InnerSleeve-copy2-frag6) - +atom 1 (6) (-2155, 1078, -96) - +atom 2 (6) (-2142, -1258, -73) - +atom 3 (6) (-138, 2257, -125) - +atom 4 (6) (1891, 1100, -131) - +atom 5 (6) (1904, -1235, -107) - +atom 6 (6) (-112, -2415, -78) - +atom 7 (6) (-1426, -846, -1357) - +bond1 2 +atom 8 (6) (-1435, 648, -1372) - +bond1 1 7 +atom 9 (6) (-144, 1403, -1391) - +bond1 3 8 +atom 10 (6) (1153, 663, -1394) - +bond1 4 9 +atom 11 (6) (1162, -831, -1379) - +bond1 5 10 +atom 12 (6) (-127, -1586, -1361) - +bond1 6 7 11 +atom 13 (8) (-3037, -99, -523) - +bond1 1 2 +atom 14 (8) (-1597, 2426, -561) - +bond1 1 3 +atom 15 (8) (1310, 2443, -585) - +bond1 3 4 +atom 16 (8) (2778, -66, -573) - +bond1 4 5 +atom 17 (8) (1338, -2593, -535) - +bond1 5 6 +atom 18 (8) (-1568, -2609, -510) - +bond1 2 6 +atom 19 (6) (-2133, 1104, 2487) - +atom 20 (6) (-116, 2284, 2458) - +atom 21 (6) (-2120, -1232, 2510) - +atom 22 (6) (-90, -2389, 2505) - +atom 23 (6) (1926, -1209, 2476) - +atom 24 (6) (1913, 1127, 2452) - +atom 25 (6) (-101, 1455, 3740) - +bond1 20 +atom 26 (6) (-1391, 700, 3759) - +bond1 19 25 +atom 27 (6) (-1383, -794, 3774) - +bond1 21 26 +atom 28 (6) (-84, -1534, 3770) - +bond1 22 27 +atom 29 (6) (1206, -779, 3752) - +bond1 23 28 +atom 30 (6) (1197, 715, 3736) - +bond1 24 25 29 +atom 31 (8) (-1567, 2461, 2914) - +bond1 19 20 +atom 32 (8) (-3007, -64, 2952) - +bond1 19 21 +atom 33 (8) (-1539, -2574, 2965) - +bond1 21 22 +atom 34 (8) (1368, -2558, 2940) - +bond1 22 23 +atom 35 (8) (2807, -31, 2902) - +bond1 23 24 +atom 36 (8) (1339, 2478, 2889) - +bond1 20 24 +atom 37 (6) (-106, -1567, 1204) - +bond1 6 22 +atom 38 (6) (-1411, -824, 1208) - +bond1 2 37 21 +atom 39 (6) (-1420, 678, 1193) - +bond1 1 38 19 +atom 40 (6) (-123, 1436, 1174) - +bond1 3 39 20 +atom 41 (6) (1182, 692, 1171) - +bond1 4 40 24 +atom 42 (6) (1190, -809, 1186) - +bond1 5 37 41 23 +atom 43 (1) (-2003, -1188, -2228) - +bond1 7 +atom 44 (1) (-2016, 966, -2250) - +bond1 8 +atom 45 (1) (-156, 2054, -2277) - +bond1 9 +atom 46 (1) (1716, 987, -2282) - +bond1 10 +atom 47 (1) (1728, -1167, -2260) - +bond1 11 +atom 48 (1) (-131, -2255, -2233) - +bond1 12 +atom 49 (1) (-97, 2123, 4613) - +bond1 25 +atom 50 (1) (-1957, 1036, 4640) - +bond1 26 +atom 51 (1) (-1945, -1118, 4661) - +bond1 27 +atom 52 (1) (-73, -2185, 4656) - +bond1 28 +atom 53 (1) (1786, -1097, 4629) - +bond1 29 +atom 54 (1) (1774, 1057, 4608) - +bond1 30 +rmotor (Rotary Motor-7) (127, 127, 127) 1.00 1.00 (-114, -65, 1189) (8, 10, 999) 5.00 1.00 0.10 +shaft 37 38 39 40 41 42 +ground (Anchor-8) (0, 0, 0) 37 38 39 40 41 42 +thermo (Thermo-15) (153, 0, 51) 1 54 15 +egroup (002 rotorymotor against anchor) +end molecular machine part 002 rotorymotor against anchor diff --git a/sim/src/tests/motors_and_anchors/test_003_rotorymotor_against_anchor_1.trc b/sim/src/tests/motors_and_anchors/test_003_rotorymotor_against_anchor_1.trc new file mode 100755 index 000000000..547c48451 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_003_rotorymotor_against_anchor_1.trc @@ -0,0 +1,31 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_003_rotorymotor_against_anchor_1.trc test_003_rotorymotor_against_anchor_1.mmp +# Date and Time: Wed Apr 19 10:53:30 2006 +# Input File: test_003_rotorymotor_against_anchor_1.mmp +# Output File: test_003_rotorymotor_against_anchor_1.xyz +# Trace File: test_003_rotorymotor_against_anchor_1.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 54 +# +# 4 columns: +# Rotary Motor-7: speed (GHz) +# Rotary Motor-7: torque (nn-nm) +# Anchor-8: torque (nn-nm) +# Thermo-15: temperature (K) +# +# Time speed torque Anchor T.meter +# picosec Rotary Motor-7 Anchor-8 Thermo-15 +# + 0.0100 0.999 0.001 0.79 275.68 +# Done: diff --git a/sim/src/tests/motors_and_anchors/test_003_rotorymotor_against_anchor_1.xyzcmp b/sim/src/tests/motors_and_anchors/test_003_rotorymotor_against_anchor_1.xyzcmp new file mode 100755 index 000000000..f8709adb4 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_003_rotorymotor_against_anchor_1.xyzcmp @@ -0,0 +1,56 @@ +54 +Frame 0, Iteration: 100 +C -2.127097 1.076416 -0.102331 +C -2.183797 -1.267187 -0.100733 +C -0.129961 2.219580 -0.125181 +C 1.843317 1.103362 -0.107240 +C 1.942319 -1.226355 -0.104658 +C -0.114502 -2.407459 -0.091654 +C -1.441441 -0.881282 -1.347149 +C -1.440910 0.612029 -1.387234 +C -0.158564 1.397556 -1.399466 +C 1.136832 0.645117 -1.358378 +C 1.163867 -0.836938 -1.351645 +C -0.137912 -1.605864 -1.340289 +O -3.048662 -0.093973 -0.548414 +O -1.603811 2.435908 -0.520163 +O 1.317750 2.474781 -0.595581 +O 2.750304 -0.023221 -0.582256 +O 1.366946 -2.561629 -0.567810 +O -1.574699 -2.630926 -0.534058 +C -2.153162 1.093050 2.462618 +C -0.103761 2.272841 2.466730 +C -2.122644 -1.232604 2.508547 +C -0.093087 -2.410300 2.450736 +C 1.961213 -1.202597 2.465472 +C 1.905013 1.155825 2.444094 +C -0.063253 1.453506 3.766135 +C -1.384299 0.719615 3.745126 +C -1.420353 -0.813869 3.771605 +C -0.132844 -1.530520 3.738619 +C 1.215940 -0.785808 3.728279 +C 1.218135 0.753005 3.731618 +O -1.567310 2.469463 2.905445 +O -2.987969 -0.076345 2.998218 +O -1.523274 -2.559883 2.984666 +O 1.378678 -2.554420 2.938973 +O 2.805982 -0.042445 2.952086 +O 1.352939 2.514425 2.884807 +C -0.105998 -1.567009 1.203996 +C -1.411016 -0.824005 1.207997 +C -1.419993 0.677995 1.192997 +C -0.123004 1.436002 1.174005 +C 1.181988 0.691996 1.171011 +C 1.190024 -0.808994 1.185996 +H -1.996089 -1.247236 -2.220599 +H -1.997325 0.957676 -2.269989 +H -0.214181 2.066979 -2.276478 +H 1.651809 0.967133 -2.273988 +H 1.739130 -1.119073 -2.247090 +H -0.091957 -2.305175 -2.190858 +H -0.020170 2.037780 4.695167 +H -1.908846 1.024549 4.661671 +H -2.019537 -1.207385 4.614451 +H -0.162286 -2.165785 4.636985 +H 1.791577 -1.119147 4.632040 +H 1.842010 1.057706 4.587200 diff --git a/sim/src/tests/motors_and_anchors/test_004_rotorymotor_against_anchor_2.mmp b/sim/src/tests/motors_and_anchors/test_004_rotorymotor_against_anchor_2.mmp new file mode 100755 index 000000000..e1f675fd8 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_004_rotorymotor_against_anchor_2.mmp @@ -0,0 +1,108 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (003 rotorymotor against anchor-2) +info opengroup open = True +mol (InnerSleeve-copy2-frag6) - +atom 1 (6) (-2155, 1078, -96) - +atom 2 (6) (-2142, -1258, -73) - +atom 3 (6) (-138, 2257, -125) - +atom 4 (6) (1891, 1100, -131) - +atom 5 (6) (1904, -1235, -107) - +atom 6 (6) (-112, -2415, -78) - +atom 7 (6) (-1426, -846, -1357) - +bond1 2 +atom 8 (6) (-1435, 648, -1372) - +bond1 1 7 +atom 9 (6) (-144, 1403, -1391) - +bond1 3 8 +atom 10 (6) (1153, 663, -1394) - +bond1 4 9 +atom 11 (6) (1162, -831, -1379) - +bond1 5 10 +atom 12 (6) (-127, -1586, -1361) - +bond1 6 7 11 +atom 13 (8) (-3037, -99, -523) - +bond1 1 2 +atom 14 (8) (-1597, 2426, -561) - +bond1 1 3 +atom 15 (8) (1310, 2443, -585) - +bond1 3 4 +atom 16 (8) (2778, -66, -573) - +bond1 4 5 +atom 17 (8) (1338, -2593, -535) - +bond1 5 6 +atom 18 (8) (-1568, -2609, -510) - +bond1 2 6 +atom 19 (6) (-2133, 1104, 2487) - +atom 20 (6) (-116, 2284, 2458) - +atom 21 (6) (-2120, -1232, 2510) - +atom 22 (6) (-90, -2389, 2505) - +atom 23 (6) (1926, -1209, 2476) - +atom 24 (6) (1913, 1127, 2452) - +atom 25 (6) (-101, 1455, 3740) - +bond1 20 +atom 26 (6) (-1391, 700, 3759) - +bond1 19 25 +atom 27 (6) (-1383, -794, 3774) - +bond1 21 26 +atom 28 (6) (-84, -1534, 3770) - +bond1 22 27 +atom 29 (6) (1206, -779, 3752) - +bond1 23 28 +atom 30 (6) (1197, 715, 3736) - +bond1 24 25 29 +atom 31 (8) (-1567, 2461, 2914) - +bond1 19 20 +atom 32 (8) (-3007, -64, 2952) - +bond1 19 21 +atom 33 (8) (-1539, -2574, 2965) - +bond1 21 22 +atom 34 (8) (1368, -2558, 2940) - +bond1 22 23 +atom 35 (8) (2807, -31, 2902) - +bond1 23 24 +atom 36 (8) (1339, 2478, 2889) - +bond1 20 24 +atom 37 (6) (-106, -1567, 1204) - +bond1 6 22 +atom 38 (6) (-1411, -824, 1208) - +bond1 2 37 21 +atom 39 (6) (-1420, 678, 1193) - +bond1 1 38 19 +atom 40 (6) (-123, 1436, 1174) - +bond1 3 39 20 +atom 41 (6) (1182, 692, 1171) - +bond1 4 40 24 +atom 42 (6) (1190, -809, 1186) - +bond1 5 37 41 23 +atom 43 (1) (-2003, -1188, -2228) - +bond1 7 +atom 44 (1) (-2016, 966, -2250) - +bond1 8 +atom 45 (1) (-156, 2054, -2277) - +bond1 9 +atom 46 (1) (1716, 987, -2282) - +bond1 10 +atom 47 (1) (1728, -1167, -2260) - +bond1 11 +atom 48 (1) (-131, -2255, -2233) - +bond1 12 +atom 49 (1) (-97, 2123, 4613) - +bond1 25 +atom 50 (1) (-1957, 1036, 4640) - +bond1 26 +atom 51 (1) (-1945, -1118, 4661) - +bond1 27 +atom 52 (1) (-73, -2185, 4656) - +bond1 28 +atom 53 (1) (1786, -1097, 4629) - +bond1 29 +atom 54 (1) (1774, 1057, 4608) - +bond1 30 +rmotor (Rotary Motor-7) (127, 127, 127) 1.00 1.00 (-114, -65, 1189) (8, 10, 999) 5.00 1.00 0.10 +shaft 37 38 39 40 41 42 +forward_ref (406380216) # ground (Anchor-8) +ground (Anchor-9) (0, 0, 0) 9 +thermo (Thermo-10) (153, 0, 51) 1 54 15 +egroup (003 rotorymotor against anchor-2) +end molecular machine part 003 rotorymotor against anchor-2 diff --git a/sim/src/tests/motors_and_anchors/test_004_rotorymotor_against_anchor_2.trc b/sim/src/tests/motors_and_anchors/test_004_rotorymotor_against_anchor_2.trc new file mode 100755 index 000000000..41fc7811f --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_004_rotorymotor_against_anchor_2.trc @@ -0,0 +1,31 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_004_rotorymotor_against_anchor_2.trc test_004_rotorymotor_against_anchor_2.mmp +# Date and Time: Wed Apr 19 10:53:30 2006 +# Input File: test_004_rotorymotor_against_anchor_2.mmp +# Output File: test_004_rotorymotor_against_anchor_2.xyz +# Trace File: test_004_rotorymotor_against_anchor_2.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 54 +# +# 4 columns: +# Rotary Motor-7: speed (GHz) +# Rotary Motor-7: torque (nn-nm) +# Anchor-9: torque (nn-nm) +# Thermo-10: temperature (K) +# +# Time speed torque Anchor T.meter +# picosec Rotary Motor-7 Anchor-9 Thermo-10 +# + 0.0100 1.067 -0.044 0.00 298.21 +# Done: diff --git a/sim/src/tests/motors_and_anchors/test_004_rotorymotor_against_anchor_2.xyzcmp b/sim/src/tests/motors_and_anchors/test_004_rotorymotor_against_anchor_2.xyzcmp new file mode 100755 index 000000000..008205c6b --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_004_rotorymotor_against_anchor_2.xyzcmp @@ -0,0 +1,56 @@ +54 +Frame 0, Iteration: 100 +C -2.125093 1.075570 -0.101451 +C -2.186661 -1.268620 -0.101540 +C -0.131059 2.222792 -0.125880 +C 1.841068 1.101769 -0.103839 +C 1.948276 -1.225396 -0.108549 +C -0.113440 -2.409886 -0.090781 +C -1.441224 -0.881069 -1.346698 +C -1.439115 0.612686 -1.387077 +C -0.144011 1.402987 -1.391002 +C 1.138932 0.644622 -1.357910 +C 1.163651 -0.836742 -1.351446 +C -0.137867 -1.605491 -1.339592 +O -3.048603 -0.093947 -0.548366 +O -1.603807 2.436015 -0.520844 +O 1.317783 2.474683 -0.594919 +O 2.750629 -0.023279 -0.583003 +O 1.366624 -2.561640 -0.567609 +O -1.574704 -2.630806 -0.533890 +C -2.150960 1.092293 2.461065 +C -0.106023 2.275811 2.468221 +C -2.126559 -1.234026 2.511328 +C -0.091414 -2.414979 2.455584 +C 1.966709 -1.201144 2.465997 +C 1.903723 1.154592 2.444460 +C -0.063345 1.453300 3.765990 +C -1.384424 0.719691 3.745223 +C -1.420188 -0.813723 3.771437 +C -0.132756 -1.530451 3.738556 +C 1.215673 -0.785474 3.727828 +C 1.218339 0.753160 3.731867 +O -1.567379 2.469711 2.905930 +O -2.988004 -0.076268 2.998275 +O -1.523383 -2.559898 2.984907 +O 1.378428 -2.554509 2.938942 +O 2.806393 -0.042500 2.952836 +O 1.352954 2.514196 2.884433 +C -0.094103 -1.588393 1.213133 +C -1.435078 -0.839456 1.210942 +C -1.407469 0.670648 1.190632 +C -0.138026 1.453405 1.177162 +C 1.165598 0.685414 1.184473 +C 1.235553 -0.802865 1.177105 +H -1.995643 -1.246921 -2.220520 +H -1.995608 0.958914 -2.270012 +H -0.207357 2.064790 -2.271501 +H 1.652362 0.967222 -2.274120 +H 1.738422 -1.118907 -2.247283 +H -0.091993 -2.304693 -2.190573 +H -0.020220 2.037363 4.695175 +H -1.909144 1.024703 4.661643 +H -2.019068 -1.207122 4.614646 +H -0.162254 -2.165124 4.637323 +H 1.791066 -1.118907 4.631927 +H 1.842230 1.057834 4.587319 diff --git a/sim/src/tests/motors_and_anchors/test_005_rotorymotor_against_anchor_3.mmp b/sim/src/tests/motors_and_anchors/test_005_rotorymotor_against_anchor_3.mmp new file mode 100755 index 000000000..6d2138121 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_005_rotorymotor_against_anchor_3.mmp @@ -0,0 +1,50 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (005 rotorymotor against anchor 3) +info opengroup open = True +mol (Chunk-Si131) - +atom 1 (14) (-50, 6016, 0) - +atom 2 (1) (808, 6875, 858) - +bond1 1 +atom 3 (1) (-909, 6875, -858) - +bond1 1 +atom 4 (1) (-909, 5157, 858) - +bond1 1 +atom 5 (1) (808, 5157, -858) - +bond1 1 +mol (Chunk-Si131-copy1) - +atom 6 (14) (-50, -5948, 0) - +atom 7 (1) (808, -5090, 858) - +bond1 6 +atom 8 (1) (-909, -5090, -858) - +bond1 6 +atom 9 (1) (-909, -6807, 858) - +bond1 6 +atom 10 (1) (808, -6807, -858) - +bond1 6 +mol (Chunk-C151) - +atom 11 (6) (5999, 0, 0) - +atom 12 (1) (6627, 627, 627) - +bond1 11 +atom 13 (1) (5371, 627, -627) - +bond1 11 +atom 14 (1) (5371, -627, 627) - +bond1 11 +atom 15 (1) (6627, -627, -627) - +bond1 11 +mol (Chunk-C151-copy2) - +atom 16 (1) (-5371, 627, 627) - +atom 17 (1) (-6627, 627, -627) - +atom 18 (1) (-6627, -627, 627) - +atom 19 (1) (-5371, -627, -627) - +atom 20 (6) (-5999, 0, 0) - +bond1 16 17 18 19 +rmotor (Rotary Motor-37) (127, 127, 127) 0.50 1.00 (-25, 16, 0) (0, 0, -1000) 10.00 2.00 0.50 +shaft 1 6 11 20 +mdistance (Distance-40) (0, 0, 0) (Helvetica) 10 1 6 +mdistance (Distance-41) (0, 0, 0) (Helvetica) 10 20 11 +mangle (Angle-42) (0, 0, 0) (Helvetica) 10 1 20 6 +thermo (Thermo-43) (153, 0, 51) 1 5 1 +ground (Anchor-15) (0, 0, 0) 20 1 11 6 +egroup (005 rotorymotor against anchor 3) +end molecular machine part 005 rotorymotor against anchor 3 diff --git a/sim/src/tests/motors_and_anchors/test_005_rotorymotor_against_anchor_3.trc b/sim/src/tests/motors_and_anchors/test_005_rotorymotor_against_anchor_3.trc new file mode 100755 index 000000000..aaa2c7a19 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_005_rotorymotor_against_anchor_3.trc @@ -0,0 +1,34 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_005_rotorymotor_against_anchor_3.trc test_005_rotorymotor_against_anchor_3.mmp +# Date and Time: Wed Apr 19 10:53:26 2006 +# Input File: test_005_rotorymotor_against_anchor_3.mmp +# Output File: test_005_rotorymotor_against_anchor_3.xyz +# Trace File: test_005_rotorymotor_against_anchor_3.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 20 +# +# 7 columns: +# Rotary Motor-37: speed (GHz) +# Rotary Motor-37: torque (nn-nm) +# Distance-40: distance (angstroms) +# Distance-41: distance (angstroms) +# Angle-42: angle (degrees) +# Thermo-43: temperature (K) +# Anchor-15: torque (nn-nm) +# +# Time speed torque Distance Distance Angle T.meter Anchor +# picosec Rotary Motor-37 Distance-40 Distance-41 Angle-42 Thermo-43 Anchor-15 +# + 0.0100 0.775 0.114 11.9640 11.9980 90.31602 423.25 1.57 +# Done: diff --git a/sim/src/tests/motors_and_anchors/test_005_rotorymotor_against_anchor_3.xyzcmp b/sim/src/tests/motors_and_anchors/test_005_rotorymotor_against_anchor_3.xyzcmp new file mode 100755 index 000000000..1ce069fa5 --- /dev/null +++ b/sim/src/tests/motors_and_anchors/test_005_rotorymotor_against_anchor_3.xyzcmp @@ -0,0 +1,22 @@ +20 +Frame 0, Iteration: 100 +Si -0.049999 6.016001 -0.000004 +H 0.733395 6.984142 0.767736 +H -0.877034 6.799436 -0.936550 +H -0.967154 5.208033 0.894819 +H 0.936810 5.209438 -0.839580 +Si -0.050002 -5.948004 -0.000003 +H 0.792117 -5.159645 0.937238 +H -0.935119 -5.224247 -0.941596 +H -0.917515 -6.799209 0.855134 +H 0.833812 -6.898848 -0.723884 +C 5.999005 0.000002 0.000013 +H 6.614684 0.592162 0.673428 +H 5.377102 0.631559 -0.630312 +H 5.422159 -0.612006 0.695885 +H 6.680320 -0.563695 -0.633485 +H -5.433439 0.685090 0.629464 +H -6.526854 0.684666 -0.662559 +H -6.636337 -0.648669 0.596742 +H -5.409794 -0.645911 -0.648109 +C -5.998998 0.000005 0.000001 diff --git a/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_1.mmp b/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_1.mmp new file mode 100755 index 000000000..eb5ed0fe3 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_1.mmp @@ -0,0 +1,26 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (03-thermo-anchor-reordering) +info opengroup open = True +forward_ref (773509488) # ground (Anchor.19) +forward_ref (773509728) # thermo (Thermo.21) +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) def +ground (Anchor.19) (0, 0, 0) 1 +info leaf forwarded = 773509488 +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) def +bond1 1 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +info leaf forwarded = 773509728 +egroup (03-thermo-anchor-reordering) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 03-thermo-anchor-reordering diff --git a/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_2.mmp b/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_2.mmp new file mode 100755 index 000000000..0d4560760 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_2.mmp @@ -0,0 +1,26 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (01-thermo-anchor-reordering-1) +info opengroup open = True +forward_ref (773509728) # thermo (Thermo.21) +forward_ref (773509488) # ground (Anchor.19) +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) def +ground (Anchor.19) (0, 0, 0) 1 +info leaf forwarded = 773509488 +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) def +bond1 1 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +info leaf forwarded = 773509728 +egroup (01-thermo-anchor-reordering-1) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 01-thermo-anchor-reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_3.mmp b/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_3.mmp new file mode 100755 index 000000000..a47561eaf --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_3.mmp @@ -0,0 +1,26 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (01-thermo-anchor-reordering-2) +info opengroup open = True +forward_ref (773509488) # ground (Anchor.19) +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) def +ground (Anchor.19) (0, 0, 0) 1 +info leaf forwarded = 773509488 +forward_ref (773509728) # thermo (Thermo.21) +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) def +bond1 1 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +info leaf forwarded = 773509728 +egroup (01-thermo-anchor-reordering-2) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 01-thermo-anchor-reordering-2 diff --git a/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_4.mmp b/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_4.mmp new file mode 100755 index 000000000..e45fe68f8 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_4.mmp @@ -0,0 +1,22 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (01-thermo-anchor-reordering-3) +info opengroup open = True +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) def +ground (Anchor.19) (0, 0, 0) 1 +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) def +bond1 1 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +egroup (01-thermo-anchor-reordering-3) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 01-thermo-anchor-reordering-3 diff --git a/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_5.mmp b/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_5.mmp new file mode 100755 index 000000000..53ae92ed1 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/01_thermo_anchor_reordering_5.mmp @@ -0,0 +1,22 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (01-thermo-anchor-reordering-4) +info opengroup open = True +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) def +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) def +bond1 1 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +ground (Anchor.19) (0, 0, 0) 1 +egroup (01-thermo-anchor-reordering-4) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 01-thermo-anchor-reordering-4 diff --git a/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_1.mmp b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_1.mmp new file mode 100755 index 000000000..dc5b6aa14 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_1.mmp @@ -0,0 +1,23 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (02-thermo-anchor-stat-reordering-1) +info opengroup open = True +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) def +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) def +bond1 1 +thermo (Thermo.21) (153, 0, 51) 1 1 1 +ground (Anchor.19) (0, 0, 0) 2 +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +egroup (02-thermo-anchor-stat-reordering-1) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 02-thermo-anchor-stat-reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_2.mmp b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_2.mmp new file mode 100755 index 000000000..847d0e958 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_2.mmp @@ -0,0 +1,29 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (02-thermo-anchor-stat-reordering-1) +info opengroup open = True +forward_ref (773509728) # thermo (Thermo.21) +forward_ref (773509488) # ground (Anchor.19) +forward_ref (773598424) # stat (Stat-33) +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) def +thermo (Thermo.21) (153, 0, 51) 1 1 1 +info leaf forwarded = 773509728 +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +info leaf forwarded = 773598424 +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) def +bond1 1 +ground (Anchor.19) (0, 0, 0) 2 +info leaf forwarded = 773509488 +egroup (02-thermo-anchor-stat-reordering-1) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 02-thermo-anchor-stat-reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_3.mmp b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_3.mmp new file mode 100755 index 000000000..fe48279b7 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_3.mmp @@ -0,0 +1,27 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (02-thermo-anchor-stat-reordering-3) +info opengroup open = True +forward_ref (773509728) # thermo (Thermo.21) +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) def +thermo (Thermo.21) (153, 0, 51) 1 1 1 +info leaf forwarded = 773509728 +forward_ref (773509488) # ground (Anchor.19) +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) def +bond1 1 +ground (Anchor.19) (0, 0, 0) 2 +info leaf forwarded = 773509488 +egroup (02-thermo-anchor-stat-reordering-3) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 02-thermo-anchor-stat-reordering-3 diff --git a/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_4.mmp b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_4.mmp new file mode 100755 index 000000000..8a85780be --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_4.mmp @@ -0,0 +1,29 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (02-thermo-anchor-stat-reordering-3) +info opengroup open = True +forward_ref (773598424) # stat (Stat-33) +forward_ref (773509728) # thermo (Thermo.21) +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) def +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +info leaf forwarded = 773598424 +thermo (Thermo.21) (153, 0, 51) 1 1 1 +info leaf forwarded = 773509728 +forward_ref (773509488) # ground (Anchor.19) +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) def +bond1 1 +ground (Anchor.19) (0, 0, 0) 2 +info leaf forwarded = 773509488 +egroup (02-thermo-anchor-stat-reordering-3) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 02-thermo-anchor-stat-reordering-3 diff --git a/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_5.mmp b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_5.mmp new file mode 100755 index 000000000..7f14ddce0 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_5.mmp @@ -0,0 +1,25 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (02-thermo-anchor-stat-reordering-4) +info opengroup open = True +forward_ref (773598424) # stat (Stat-33) +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) def +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +info leaf forwarded = 773598424 +thermo (Thermo.21) (153, 0, 51) 1 1 1 +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) def +bond1 1 +ground (Anchor.19) (0, 0, 0) 2 +egroup (02-thermo-anchor-stat-reordering-4) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 02-thermo-anchor-stat-reordering-4 diff --git a/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_6.mmp b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_6.mmp new file mode 100755 index 000000000..96de9a1e2 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_6.mmp @@ -0,0 +1,23 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (02-thermo-anchor-stat-reordering-5) +info opengroup open = True +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) def +thermo (Thermo.21) (153, 0, 51) 1 1 1 +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) def +bond1 1 +ground (Anchor.19) (0, 0, 0) 2 +egroup (02-thermo-anchor-stat-reordering-5) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 02-thermo-anchor-stat-reordering-5 diff --git a/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_7.mmp b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_7.mmp new file mode 100755 index 000000000..bed990c45 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_7.mmp @@ -0,0 +1,23 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (02-thermo-anchor-stat-reordering-6) +info opengroup open = True +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) def +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +thermo (Thermo.21) (153, 0, 51) 1 1 1 +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) def +bond1 1 +ground (Anchor.19) (0, 0, 0) 2 +egroup (02-thermo-anchor-stat-reordering-6) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 02-thermo-anchor-stat-reordering-6 diff --git a/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_8.mmp b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_8.mmp new file mode 100755 index 000000000..516352abd --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/02_thermo_anchor_stat_reordering_8.mmp @@ -0,0 +1,30 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (02-thermo-anchor-stat-reordering-8) +info opengroup open = True +group (Group34) +info opengroup open = True +forward_ref (773598424) # stat (Stat-33) +forward_ref (773509728) # thermo (Thermo.21) +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) def +egroup (Group34) +ground (Anchor.19) (0, 0, 0) 1 +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) def +bond1 1 +stat (Stat-33) (0, 0, 153) (100) 2 2 2 +info leaf forwarded = 773598424 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +info leaf forwarded = 773509728 +egroup (02-thermo-anchor-stat-reordering-8) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 02-thermo-anchor-stat-reordering-8 diff --git a/sim/src/tests/reordering_jigs_or_chunks/03_thermo_anchor_reordering.mmp b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_anchor_reordering.mmp new file mode 100755 index 000000000..eb5ed0fe3 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_anchor_reordering.mmp @@ -0,0 +1,26 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (2.153805) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (03-thermo-anchor-reordering) +info opengroup open = True +forward_ref (773509488) # ground (Anchor.19) +forward_ref (773509728) # thermo (Thermo.21) +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) def +ground (Anchor.19) (0, 0, 0) 1 +info leaf forwarded = 773509488 +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) def +bond1 1 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +info leaf forwarded = 773509728 +egroup (03-thermo-anchor-reordering) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 03-thermo-anchor-reordering diff --git a/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_1.mmp b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_1.mmp new file mode 100755 index 000000000..4e15c0072 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_1.mmp @@ -0,0 +1,92 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.878578, 0.218473, -0.416544, -0.082829) (7.240438) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (03-thermo-rmotor-anchor-stat reordering-1) +info opengroup open = True +mol (chunk 1) def +atom 1 (6) (-1, 1519, 1246) def +atom 2 (6) (-1307, 756, 1259) def +bond1 1 +atom 3 (6) (-1297, -756, 1267) def +bond1 2 +atom 4 (6) (15, -1505, 1262) def +bond1 3 +atom 5 (6) (1320, -741, 1251) def +bond1 4 +atom 6 (6) (1312, 770, 1243) def +bond1 1 5 +atom 7 (6) (1303, 760, -1299) def +atom 8 (6) (-16, 1511, -1295) def +bond1 7 +atom 9 (6) (-1328, 745, -1283) def +bond1 8 +atom 10 (6) (-1319, -773, -1275) def +bond1 9 +atom 11 (6) (0, -1524, -1279) def +bond1 10 +atom 12 (6) (1312, -758, -1291) def +bond1 7 11 +atom 13 (1) (0, 2183, 2155) def +bond1 1 +atom 14 (1) (-1872, 1087, 2174) def +bond1 2 +atom 15 (1) (-1860, -1083, 2185) def +bond1 3 +atom 16 (1) (24, -2159, 2178) def +bond1 4 +atom 17 (1) (1897, -1063, 2163) def +bond1 5 +atom 18 (1) (1885, 1108, 2151) def +bond1 6 +atom 19 (1) (-26, 2135, -2179) def +bond1 8 +atom 20 (1) (1840, 1072, -2185) def +bond1 7 +atom 21 (1) (1852, -1074, -2174) def +bond1 12 +atom 22 (1) (-1879, 1051, -2163) def +bond1 9 +atom 23 (1) (-1867, -1094, -2151) def +bond1 10 +atom 24 (1) (-1, -2157, -2156) def +bond1 11 +mol (chunk 2) def +atom 25 (6) (-2082, 1185, -6) def +bond1 2 9 +atom 26 (6) (-14, 2394, -25) def +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) def +bond1 3 10 +atom 28 (6) (13, -2394, 0) def +bond1 4 11 +atom 29 (6) (2080, -1186, -18) def +bond1 5 12 +atom 30 (6) (2067, 1208, -30) def +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) def +bond1 25 26 +atom 32 (16) (-3453, -18, 208) def +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) def +bond1 27 28 +atom 34 (16) (1744, -2981, 185) def +bond1 28 29 +atom 35 (16) (3454, 19, 167) def +bond1 29 30 +atom 36 (16) (1710, 3000, 157) def +bond1 26 30 +thermo (Thermo-42) (153, 0, 51) 1 24 6 +ground (Anchor-44) (0, 0, 0) 8 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +egroup (03-thermo-rmotor-anchor-stat reordering-1) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_2.mmp b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_2.mmp new file mode 100755 index 000000000..c0b0fdef5 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_2.mmp @@ -0,0 +1,92 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.878578, 0.218473, -0.416544, -0.082829) (7.240438) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (03-thermo-rmotor-anchor-stat reordering-1) +info opengroup open = True +mol (chunk 1) def +atom 1 (6) (-1, 1519, 1246) def +atom 2 (6) (-1307, 756, 1259) def +bond1 1 +atom 3 (6) (-1297, -756, 1267) def +bond1 2 +atom 4 (6) (15, -1505, 1262) def +bond1 3 +atom 5 (6) (1320, -741, 1251) def +bond1 4 +atom 6 (6) (1312, 770, 1243) def +bond1 1 5 +atom 7 (6) (1303, 760, -1299) def +atom 8 (6) (-16, 1511, -1295) def +bond1 7 +atom 9 (6) (-1328, 745, -1283) def +bond1 8 +atom 10 (6) (-1319, -773, -1275) def +bond1 9 +atom 11 (6) (0, -1524, -1279) def +bond1 10 +atom 12 (6) (1312, -758, -1291) def +bond1 7 11 +atom 13 (1) (0, 2183, 2155) def +bond1 1 +atom 14 (1) (-1872, 1087, 2174) def +bond1 2 +atom 15 (1) (-1860, -1083, 2185) def +bond1 3 +atom 16 (1) (24, -2159, 2178) def +bond1 4 +atom 17 (1) (1897, -1063, 2163) def +bond1 5 +atom 18 (1) (1885, 1108, 2151) def +bond1 6 +atom 19 (1) (-26, 2135, -2179) def +bond1 8 +atom 20 (1) (1840, 1072, -2185) def +bond1 7 +atom 21 (1) (1852, -1074, -2174) def +bond1 12 +atom 22 (1) (-1879, 1051, -2163) def +bond1 9 +atom 23 (1) (-1867, -1094, -2151) def +bond1 10 +atom 24 (1) (-1, -2157, -2156) def +bond1 11 +mol (chunk 2) def +atom 25 (6) (-2082, 1185, -6) def +bond1 2 9 +atom 26 (6) (-14, 2394, -25) def +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) def +bond1 3 10 +atom 28 (6) (13, -2394, 0) def +bond1 4 11 +atom 29 (6) (2080, -1186, -18) def +bond1 5 12 +atom 30 (6) (2067, 1208, -30) def +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) def +bond1 25 26 +atom 32 (16) (-3453, -18, 208) def +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) def +bond1 27 28 +atom 34 (16) (1744, -2981, 185) def +bond1 28 29 +atom 35 (16) (3454, 19, 167) def +bond1 29 30 +atom 36 (16) (1710, 3000, 157) def +bond1 26 30 +thermo (Thermo-42) (153, 0, 51) 1 24 6 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +ground (Anchor-44) (0, 0, 0) 8 +egroup (03-thermo-rmotor-anchor-stat reordering-1) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_3.mmp b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_3.mmp new file mode 100755 index 000000000..195082e4a --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_3.mmp @@ -0,0 +1,92 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.240438) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (03-thermo-rmotor-anchor-stat reordering-1) +info opengroup open = True +mol (chunk 1) def +atom 1 (6) (-1, 1519, 1246) def +atom 2 (6) (-1307, 756, 1259) def +bond1 1 +atom 3 (6) (-1297, -756, 1267) def +bond1 2 +atom 4 (6) (15, -1505, 1262) def +bond1 3 +atom 5 (6) (1320, -741, 1251) def +bond1 4 +atom 6 (6) (1312, 770, 1243) def +bond1 1 5 +atom 7 (6) (1303, 760, -1299) def +atom 8 (6) (-16, 1511, -1295) def +bond1 7 +atom 9 (6) (-1328, 745, -1283) def +bond1 8 +atom 10 (6) (-1319, -773, -1275) def +bond1 9 +atom 11 (6) (0, -1524, -1279) def +bond1 10 +atom 12 (6) (1312, -758, -1291) def +bond1 7 11 +atom 13 (1) (0, 2183, 2155) def +bond1 1 +atom 14 (1) (-1872, 1087, 2174) def +bond1 2 +atom 15 (1) (-1860, -1083, 2185) def +bond1 3 +atom 16 (1) (24, -2159, 2178) def +bond1 4 +atom 17 (1) (1897, -1063, 2163) def +bond1 5 +atom 18 (1) (1885, 1108, 2151) def +bond1 6 +atom 19 (1) (-26, 2135, -2179) def +bond1 8 +atom 20 (1) (1840, 1072, -2185) def +bond1 7 +atom 21 (1) (1852, -1074, -2174) def +bond1 12 +atom 22 (1) (-1879, 1051, -2163) def +bond1 9 +atom 23 (1) (-1867, -1094, -2151) def +bond1 10 +atom 24 (1) (-1, -2157, -2156) def +bond1 11 +mol (chunk 2) def +atom 25 (6) (-2082, 1185, -6) def +bond1 2 9 +atom 26 (6) (-14, 2394, -25) def +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) def +bond1 3 10 +atom 28 (6) (13, -2394, 0) def +bond1 4 11 +atom 29 (6) (2080, -1186, -18) def +bond1 5 12 +atom 30 (6) (2067, 1208, -30) def +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) def +bond1 25 26 +atom 32 (16) (-3453, -18, 208) def +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) def +bond1 27 28 +atom 34 (16) (1744, -2981, 185) def +bond1 28 29 +atom 35 (16) (3454, 19, 167) def +bond1 29 30 +atom 36 (16) (1710, 3000, 157) def +bond1 26 30 +ground (Anchor-44) (0, 0, 0) 8 +thermo (Thermo-42) (153, 0, 51) 1 24 6 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +egroup (03-thermo-rmotor-anchor-stat reordering-1) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_4.mmp b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_4.mmp new file mode 100755 index 000000000..8ed418c35 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_4.mmp @@ -0,0 +1,92 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.240438) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (03-thermo-rmotor-anchor-stat reordering-3) +info opengroup open = True +mol (chunk 1) def +atom 1 (6) (-1, 1519, 1246) def +atom 2 (6) (-1307, 756, 1259) def +bond1 1 +atom 3 (6) (-1297, -756, 1267) def +bond1 2 +atom 4 (6) (15, -1505, 1262) def +bond1 3 +atom 5 (6) (1320, -741, 1251) def +bond1 4 +atom 6 (6) (1312, 770, 1243) def +bond1 1 5 +atom 7 (6) (1303, 760, -1299) def +atom 8 (6) (-16, 1511, -1295) def +bond1 7 +atom 9 (6) (-1328, 745, -1283) def +bond1 8 +atom 10 (6) (-1319, -773, -1275) def +bond1 9 +atom 11 (6) (0, -1524, -1279) def +bond1 10 +atom 12 (6) (1312, -758, -1291) def +bond1 7 11 +atom 13 (1) (0, 2183, 2155) def +bond1 1 +atom 14 (1) (-1872, 1087, 2174) def +bond1 2 +atom 15 (1) (-1860, -1083, 2185) def +bond1 3 +atom 16 (1) (24, -2159, 2178) def +bond1 4 +atom 17 (1) (1897, -1063, 2163) def +bond1 5 +atom 18 (1) (1885, 1108, 2151) def +bond1 6 +atom 19 (1) (-26, 2135, -2179) def +bond1 8 +atom 20 (1) (1840, 1072, -2185) def +bond1 7 +atom 21 (1) (1852, -1074, -2174) def +bond1 12 +atom 22 (1) (-1879, 1051, -2163) def +bond1 9 +atom 23 (1) (-1867, -1094, -2151) def +bond1 10 +atom 24 (1) (-1, -2157, -2156) def +bond1 11 +mol (chunk 2) def +atom 25 (6) (-2082, 1185, -6) def +bond1 2 9 +atom 26 (6) (-14, 2394, -25) def +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) def +bond1 3 10 +atom 28 (6) (13, -2394, 0) def +bond1 4 11 +atom 29 (6) (2080, -1186, -18) def +bond1 5 12 +atom 30 (6) (2067, 1208, -30) def +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) def +bond1 25 26 +atom 32 (16) (-3453, -18, 208) def +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) def +bond1 27 28 +atom 34 (16) (1744, -2981, 185) def +bond1 28 29 +atom 35 (16) (3454, 19, 167) def +bond1 29 30 +atom 36 (16) (1710, 3000, 157) def +bond1 26 30 +ground (Anchor-44) (0, 0, 0) 8 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +thermo (Thermo-42) (153, 0, 51) 1 24 6 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +egroup (03-thermo-rmotor-anchor-stat reordering-3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-3 diff --git a/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_5.mmp b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_5.mmp new file mode 100755 index 000000000..d460b9005 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_5.mmp @@ -0,0 +1,100 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.240438) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (03-thermo-rmotor-anchor-stat reordering-4) +info opengroup open = True +forward_ref (786022768) # ground (Anchor-44) +forward_ref (786022688) # rmotor (Rotary Motor--chunk2) +forward_ref (786022928) # stat (Stat- -chunk 2) +forward_ref (786022728) # thermo (Thermo-42) +mol (chunk 1) def +atom 1 (6) (-1, 1519, 1246) def +atom 2 (6) (-1307, 756, 1259) def +bond1 1 +atom 3 (6) (-1297, -756, 1267) def +bond1 2 +atom 4 (6) (15, -1505, 1262) def +bond1 3 +atom 5 (6) (1320, -741, 1251) def +bond1 4 +atom 6 (6) (1312, 770, 1243) def +bond1 1 5 +atom 7 (6) (1303, 760, -1299) def +atom 8 (6) (-16, 1511, -1295) def +bond1 7 +atom 9 (6) (-1328, 745, -1283) def +bond1 8 +atom 10 (6) (-1319, -773, -1275) def +bond1 9 +atom 11 (6) (0, -1524, -1279) def +bond1 10 +atom 12 (6) (1312, -758, -1291) def +bond1 7 11 +atom 13 (1) (0, 2183, 2155) def +bond1 1 +atom 14 (1) (-1872, 1087, 2174) def +bond1 2 +atom 15 (1) (-1860, -1083, 2185) def +bond1 3 +atom 16 (1) (24, -2159, 2178) def +bond1 4 +atom 17 (1) (1897, -1063, 2163) def +bond1 5 +atom 18 (1) (1885, 1108, 2151) def +bond1 6 +atom 19 (1) (-26, 2135, -2179) def +bond1 8 +atom 20 (1) (1840, 1072, -2185) def +bond1 7 +atom 21 (1) (1852, -1074, -2174) def +bond1 12 +atom 22 (1) (-1879, 1051, -2163) def +bond1 9 +atom 23 (1) (-1867, -1094, -2151) def +bond1 10 +atom 24 (1) (-1, -2157, -2156) def +bond1 11 +ground (Anchor-44) (0, 0, 0) 8 +info leaf forwarded = 786022768 +thermo (Thermo-42) (153, 0, 51) 1 24 6 +info leaf forwarded = 786022728 +mol (chunk 2) def +atom 25 (6) (-2082, 1185, -6) def +bond1 2 9 +atom 26 (6) (-14, 2394, -25) def +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) def +bond1 3 10 +atom 28 (6) (13, -2394, 0) def +bond1 4 11 +atom 29 (6) (2080, -1186, -18) def +bond1 5 12 +atom 30 (6) (2067, 1208, -30) def +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) def +bond1 25 26 +atom 32 (16) (-3453, -18, 208) def +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) def +bond1 27 28 +atom 34 (16) (1744, -2981, 185) def +bond1 28 29 +atom 35 (16) (3454, 19, 167) def +bond1 29 30 +atom 36 (16) (1710, 3000, 157) def +bond1 26 30 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +info leaf forwarded = 786022688 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +info leaf forwarded = 786022928 +egroup (03-thermo-rmotor-anchor-stat reordering-4) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-4 diff --git a/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_6.mmp b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_6.mmp new file mode 100755 index 000000000..c0903f32f --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_6.mmp @@ -0,0 +1,98 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.240438) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (03-thermo-rmotor-anchor-stat reordering-5) +info opengroup open = True +forward_ref (786022768) # ground (Anchor-44) +forward_ref (786022928) # stat (Stat- -chunk 2) +mol (chunk 1) def +atom 1 (6) (-1, 1519, 1246) def +atom 2 (6) (-1307, 756, 1259) def +bond1 1 +atom 3 (6) (-1297, -756, 1267) def +bond1 2 +atom 4 (6) (15, -1505, 1262) def +bond1 3 +atom 5 (6) (1320, -741, 1251) def +bond1 4 +atom 6 (6) (1312, 770, 1243) def +bond1 1 5 +atom 7 (6) (1303, 760, -1299) def +atom 8 (6) (-16, 1511, -1295) def +bond1 7 +atom 9 (6) (-1328, 745, -1283) def +bond1 8 +atom 10 (6) (-1319, -773, -1275) def +bond1 9 +atom 11 (6) (0, -1524, -1279) def +bond1 10 +atom 12 (6) (1312, -758, -1291) def +bond1 7 11 +atom 13 (1) (0, 2183, 2155) def +bond1 1 +atom 14 (1) (-1872, 1087, 2174) def +bond1 2 +atom 15 (1) (-1860, -1083, 2185) def +bond1 3 +atom 16 (1) (24, -2159, 2178) def +bond1 4 +atom 17 (1) (1897, -1063, 2163) def +bond1 5 +atom 18 (1) (1885, 1108, 2151) def +bond1 6 +atom 19 (1) (-26, 2135, -2179) def +bond1 8 +atom 20 (1) (1840, 1072, -2185) def +bond1 7 +atom 21 (1) (1852, -1074, -2174) def +bond1 12 +atom 22 (1) (-1879, 1051, -2163) def +bond1 9 +atom 23 (1) (-1867, -1094, -2151) def +bond1 10 +atom 24 (1) (-1, -2157, -2156) def +bond1 11 +ground (Anchor-44) (0, 0, 0) 8 +info leaf forwarded = 786022768 +forward_ref (786022688) # rmotor (Rotary Motor--chunk2) +thermo (Thermo-42) (153, 0, 51) 1 24 6 +mol (chunk 2) def +atom 25 (6) (-2082, 1185, -6) def +bond1 2 9 +atom 26 (6) (-14, 2394, -25) def +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) def +bond1 3 10 +atom 28 (6) (13, -2394, 0) def +bond1 4 11 +atom 29 (6) (2080, -1186, -18) def +bond1 5 12 +atom 30 (6) (2067, 1208, -30) def +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) def +bond1 25 26 +atom 32 (16) (-3453, -18, 208) def +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) def +bond1 27 28 +atom 34 (16) (1744, -2981, 185) def +bond1 28 29 +atom 35 (16) (3454, 19, 167) def +bond1 29 30 +atom 36 (16) (1710, 3000, 157) def +bond1 26 30 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +info leaf forwarded = 786022928 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +info leaf forwarded = 786022688 +egroup (03-thermo-rmotor-anchor-stat reordering-5) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-5 diff --git a/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_7.mmp b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_7.mmp new file mode 100755 index 000000000..9f5d867ce --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_7.mmp @@ -0,0 +1,104 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.240438) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (03-thermo-rmotor-anchor-stat reordering-6) +info opengroup open = True +group (Group52) +info opengroup open = True +forward_ref (786022768) # ground (Anchor-44) +group (Group53) +info opengroup open = True +forward_ref (786022928) # stat (Stat- -chunk 2) +mol (chunk 1) def +atom 1 (6) (-1, 1519, 1246) def +atom 2 (6) (-1307, 756, 1259) def +bond1 1 +atom 3 (6) (-1297, -756, 1267) def +bond1 2 +atom 4 (6) (15, -1505, 1262) def +bond1 3 +atom 5 (6) (1320, -741, 1251) def +bond1 4 +atom 6 (6) (1312, 770, 1243) def +bond1 1 5 +atom 7 (6) (1303, 760, -1299) def +atom 8 (6) (-16, 1511, -1295) def +bond1 7 +atom 9 (6) (-1328, 745, -1283) def +bond1 8 +atom 10 (6) (-1319, -773, -1275) def +bond1 9 +atom 11 (6) (0, -1524, -1279) def +bond1 10 +atom 12 (6) (1312, -758, -1291) def +bond1 7 11 +atom 13 (1) (0, 2183, 2155) def +bond1 1 +atom 14 (1) (-1872, 1087, 2174) def +bond1 2 +atom 15 (1) (-1860, -1083, 2185) def +bond1 3 +atom 16 (1) (24, -2159, 2178) def +bond1 4 +atom 17 (1) (1897, -1063, 2163) def +bond1 5 +atom 18 (1) (1885, 1108, 2151) def +bond1 6 +atom 19 (1) (-26, 2135, -2179) def +bond1 8 +atom 20 (1) (1840, 1072, -2185) def +bond1 7 +atom 21 (1) (1852, -1074, -2174) def +bond1 12 +atom 22 (1) (-1879, 1051, -2163) def +bond1 9 +atom 23 (1) (-1867, -1094, -2151) def +bond1 10 +atom 24 (1) (-1, -2157, -2156) def +bond1 11 +ground (Anchor-44) (0, 0, 0) 8 +info leaf forwarded = 786022768 +egroup (Group53) +egroup (Group52) +forward_ref (786022688) # rmotor (Rotary Motor--chunk2) +thermo (Thermo-42) (153, 0, 51) 1 24 6 +mol (chunk 2) def +atom 25 (6) (-2082, 1185, -6) def +bond1 2 9 +atom 26 (6) (-14, 2394, -25) def +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) def +bond1 3 10 +atom 28 (6) (13, -2394, 0) def +bond1 4 11 +atom 29 (6) (2080, -1186, -18) def +bond1 5 12 +atom 30 (6) (2067, 1208, -30) def +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) def +bond1 25 26 +atom 32 (16) (-3453, -18, 208) def +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) def +bond1 27 28 +atom 34 (16) (1744, -2981, 185) def +bond1 28 29 +atom 35 (16) (3454, 19, 167) def +bond1 29 30 +atom 36 (16) (1710, 3000, 157) def +bond1 26 30 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +info leaf forwarded = 786022928 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +info leaf forwarded = 786022688 +egroup (03-thermo-rmotor-anchor-stat reordering-6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-6 diff --git a/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_8.mmp b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_8.mmp new file mode 100755 index 000000000..cf35b240b --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/03_thermo_rmotor_anchor_stat_reordering_8.mmp @@ -0,0 +1,102 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.240438) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (03-thermo-rmotor-anchor-stat reordering-7) +info opengroup open = True +group (Group52) +info opengroup open = True +forward_ref (786022768) # ground (Anchor-44) +group (Group53) +info opengroup open = True +forward_ref (786022928) # stat (Stat- -chunk 2) +forward_ref (786022728) # thermo (Thermo-42) +egroup (Group53) +egroup (Group52) +forward_ref (786022688) # rmotor (Rotary Motor--chunk2) +mol (chunk 2) def +atom 1 (6) (-2082, 1185, -6) def +atom 2 (6) (-14, 2394, -25) def +atom 3 (6) (-2067, -1208, 6) def +atom 4 (6) (13, -2394, 0) def +atom 5 (6) (2080, -1186, -18) def +atom 6 (6) (2067, 1208, -30) def +atom 7 (16) (-1742, 2982, 178) def +bond1 1 2 +atom 8 (16) (-3453, -18, 208) def +bond1 1 3 +atom 9 (16) (-1710, -3000, 205) def +bond1 3 4 +atom 10 (16) (1744, -2981, 185) def +bond1 4 5 +atom 11 (16) (3454, 19, 167) def +bond1 5 6 +atom 12 (16) (1710, 3000, 157) def +bond1 2 6 +stat (Stat- -chunk 2) (0, 0, 153) (240) 1 12 2 +info leaf forwarded = 786022928 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 1 2 3 4 5 6 +info leaf forwarded = 786022688 +mol (chunk 1) def +atom 13 (6) (-1, 1519, 1246) def +bond1 2 +atom 14 (6) (-1307, 756, 1259) def +bond1 13 1 +atom 15 (6) (-1297, -756, 1267) def +bond1 14 3 +atom 16 (6) (15, -1505, 1262) def +bond1 15 4 +atom 17 (6) (1320, -741, 1251) def +bond1 16 5 +atom 18 (6) (1312, 770, 1243) def +bond1 13 17 6 +atom 19 (6) (1303, 760, -1299) def +bond1 6 +atom 20 (6) (-16, 1511, -1295) def +bond1 19 2 +atom 21 (6) (-1328, 745, -1283) def +bond1 20 1 +atom 22 (6) (-1319, -773, -1275) def +bond1 21 3 +atom 23 (6) (0, -1524, -1279) def +bond1 22 4 +atom 24 (6) (1312, -758, -1291) def +bond1 19 23 5 +atom 25 (1) (0, 2183, 2155) def +bond1 13 +atom 26 (1) (-1872, 1087, 2174) def +bond1 14 +atom 27 (1) (-1860, -1083, 2185) def +bond1 15 +atom 28 (1) (24, -2159, 2178) def +bond1 16 +atom 29 (1) (1897, -1063, 2163) def +bond1 17 +atom 30 (1) (1885, 1108, 2151) def +bond1 18 +atom 31 (1) (-26, 2135, -2179) def +bond1 20 +atom 32 (1) (1840, 1072, -2185) def +bond1 19 +atom 33 (1) (1852, -1074, -2174) def +bond1 24 +atom 34 (1) (-1879, 1051, -2163) def +bond1 21 +atom 35 (1) (-1867, -1094, -2151) def +bond1 22 +atom 36 (1) (-1, -2157, -2156) def +bond1 23 +ground (Anchor-44) (0, 0, 0) 20 +info leaf forwarded = 786022768 +thermo (Thermo-42) (153, 0, 51) 13 36 18 +info leaf forwarded = 786022728 +egroup (03-thermo-rmotor-anchor-stat reordering-7) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-7 diff --git a/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_1.mmp b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_1.mmp new file mode 100755 index 000000000..ad1297bb3 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_1.mmp @@ -0,0 +1,73 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (8.766819) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (04-thermo-lmotor-anchor-stat reordering-1) +info opengroup open = True +mol (chunk1) tub +atom 1 (1) (-773, -1934, -1202) def +atom 2 (1) (-797, 16, 2241) def +atom 3 (1) (-815, 53, -2329) def +atom 4 (1) (-764, -1953, 1082) def +mol (chunk2) tub +atom 5 (1) (-848, 2022, -1170) def +atom 6 (1) (-839, 2004, 1114) def +forward_ref (163006384) # lmotor (Linear Motor-83) +forward_ref (163006704) # ground (Anchor-86) +forward_ref (163006744) # stat (Stat-87) +mol (chunk1-frag22) tub +atom 7 (6) (31, -1296, -839) def +bond1 1 +atom 8 (8) (1253, -1983, -1261) def +bond1 7 +atom 9 (8) (1229, 53, 2334) def +atom 10 (8) (1209, 92, -2437) def +atom 11 (8) (1263, -2002, 1124) def +atom 12 (6) (2, 62, -1609) def +bond1 7 10 3 +atom 13 (6) (15, 37, 1515) def +bond1 9 2 +atom 14 (6) (38, -1309, 723) def +bond1 13 7 11 4 +atom 15 (8) (1175, 2148, -1227) def +atom 16 (8) (1185, 2129, 1158) def +atom 17 (6) (-19, 1409, -817) def +bond1 12 15 5 +atom 18 (6) (-13, 1396, 745) def +bond1 13 17 16 6 +atom 19 (6) (2452, -1250, -848) def +bond1 8 +atom 20 (1) (3278, -1858, -1218) def +bond1 19 +atom 21 (1) (3254, 92, 2225) def +atom 22 (1) (3236, 129, -2344) def +atom 23 (1) (3287, -1876, 1066) def +atom 24 (6) (2423, 108, -1619) def +bond1 19 22 10 +atom 25 (6) (2436, 83, 1506) def +bond1 21 9 +atom 26 (6) (2458, -1263, 713) def +bond1 19 23 25 11 +atom 27 (1) (3203, 2098, -1186) def +atom 28 (1) (3212, 2080, 1099) def +atom 29 (6) (2401, 1454, -826) def +bond1 24 27 15 +atom 30 (6) (2407, 1442, 735) def +bond1 25 28 29 16 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 7 12 13 17 18 14 +info leaf forwarded = 163006384 +ground (Anchor-86) (0, 0, 0) 14 +info leaf forwarded = 163006704 +stat (Stat-87) (0, 0, 153) (300) 7 30 12 +info leaf forwarded = 163006744 +thermo (Thermo-25) (153, 0, 51) 7 30 16 +egroup (04-thermo-lmotor-anchor-stat reordering-1) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_2.mmp b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_2.mmp new file mode 100755 index 000000000..9bbc8b2ad --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_2.mmp @@ -0,0 +1,67 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (8.766819) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (04-thermo-lmotor-anchor-stat reordering-1) +info opengroup open = True +mol (chunk1) tub +atom 1 (1) (-773, -1934, -1202) def +atom 2 (1) (-797, 16, 2241) def +atom 3 (1) (-815, 53, -2329) def +atom 4 (1) (-764, -1953, 1082) def +mol (chunk2) tub +atom 5 (1) (-848, 2022, -1170) def +atom 6 (1) (-839, 2004, 1114) def +mol (chunk1-frag22) tub +atom 7 (6) (31, -1296, -839) def +bond1 1 +atom 8 (8) (1253, -1983, -1261) def +bond1 7 +atom 9 (8) (1229, 53, 2334) def +atom 10 (8) (1209, 92, -2437) def +atom 11 (8) (1263, -2002, 1124) def +atom 12 (6) (2, 62, -1609) def +bond1 7 10 3 +atom 13 (6) (15, 37, 1515) def +bond1 9 2 +atom 14 (6) (38, -1309, 723) def +bond1 13 7 11 4 +atom 15 (8) (1175, 2148, -1227) def +atom 16 (8) (1185, 2129, 1158) def +atom 17 (6) (-19, 1409, -817) def +bond1 12 15 5 +atom 18 (6) (-13, 1396, 745) def +bond1 13 17 16 6 +atom 19 (6) (2452, -1250, -848) def +bond1 8 +atom 20 (1) (3278, -1858, -1218) def +bond1 19 +atom 21 (1) (3254, 92, 2225) def +atom 22 (1) (3236, 129, -2344) def +atom 23 (1) (3287, -1876, 1066) def +atom 24 (6) (2423, 108, -1619) def +bond1 19 22 10 +atom 25 (6) (2436, 83, 1506) def +bond1 21 9 +atom 26 (6) (2458, -1263, 713) def +bond1 19 23 25 11 +atom 27 (1) (3203, 2098, -1186) def +atom 28 (1) (3212, 2080, 1099) def +atom 29 (6) (2401, 1454, -826) def +bond1 24 27 15 +atom 30 (6) (2407, 1442, 735) def +bond1 25 28 29 16 +thermo (Thermo-25) (153, 0, 51) 7 30 16 +stat (Stat-87) (0, 0, 153) (300) 7 30 12 +ground (Anchor-86) (0, 0, 0) 14 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 7 12 13 17 18 14 +egroup (04-thermo-lmotor-anchor-stat reordering-1) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_3.mmp b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_3.mmp new file mode 100755 index 000000000..c824a7755 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_3.mmp @@ -0,0 +1,78 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (8.766819) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (04-thermo-lmotor-anchor-stat reordering-2) +info opengroup open = True +forward_ref (163006744) # stat (Stat-87) +forward_ref (163006704) # ground (Anchor-86) +forward_ref (163006384) # lmotor (Linear Motor-83) +mol (chunk1-frag22) tub +atom 1 (6) (31, -1296, -839) def +atom 2 (8) (1253, -1983, -1261) def +bond1 1 +atom 3 (8) (1229, 53, 2334) def +atom 4 (8) (1209, 92, -2437) def +atom 5 (8) (1263, -2002, 1124) def +atom 6 (6) (2, 62, -1609) def +bond1 1 4 +atom 7 (6) (15, 37, 1515) def +bond1 3 +atom 8 (6) (38, -1309, 723) def +bond1 7 1 5 +atom 9 (8) (1175, 2148, -1227) def +atom 10 (8) (1185, 2129, 1158) def +atom 11 (6) (-19, 1409, -817) def +bond1 6 9 +atom 12 (6) (-13, 1396, 745) def +bond1 7 11 10 +atom 13 (6) (2452, -1250, -848) def +bond1 2 +atom 14 (1) (3278, -1858, -1218) def +bond1 13 +atom 15 (1) (3254, 92, 2225) def +atom 16 (1) (3236, 129, -2344) def +atom 17 (1) (3287, -1876, 1066) def +atom 18 (6) (2423, 108, -1619) def +bond1 13 16 4 +atom 19 (6) (2436, 83, 1506) def +bond1 15 3 +atom 20 (6) (2458, -1263, 713) def +bond1 13 17 19 5 +atom 21 (1) (3203, 2098, -1186) def +atom 22 (1) (3212, 2080, 1099) def +atom 23 (6) (2401, 1454, -826) def +bond1 18 21 9 +atom 24 (6) (2407, 1442, 735) def +bond1 19 22 23 10 +stat (Stat-87) (0, 0, 153) (300) 1 24 6 +info leaf forwarded = 163006744 +ground (Anchor-86) (0, 0, 0) 8 +info leaf forwarded = 163006704 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 1 6 7 11 12 8 +info leaf forwarded = 163006384 +thermo (Thermo-25) (153, 0, 51) 1 24 10 +mol (chunk1) tub +atom 25 (1) (-773, -1934, -1202) def +bond1 1 +atom 26 (1) (-797, 16, 2241) def +bond1 7 +atom 27 (1) (-815, 53, -2329) def +bond1 6 +atom 28 (1) (-764, -1953, 1082) def +bond1 8 +mol (chunk2) tub +atom 29 (1) (-848, 2022, -1170) def +bond1 11 +atom 30 (1) (-839, 2004, 1114) def +bond1 12 +egroup (04-thermo-lmotor-anchor-stat reordering-2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-2 diff --git a/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_4.mmp b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_4.mmp new file mode 100755 index 000000000..5c1c1e8d5 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_4.mmp @@ -0,0 +1,76 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.601528) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (04-thermo-lmotor-anchor-stat reordering-4) +info opengroup open = True +forward_ref (166344944) # lmotor (Linear Motor-83) +forward_ref (166329160) # thermo (Thermo-25) +mol (chunk1-frag22) tub +atom 1 (6) (31, -1296, -839) def +atom 2 (8) (1253, -1983, -1261) def +bond1 1 +atom 3 (8) (1229, 53, 2334) def +atom 4 (8) (1209, 92, -2437) def +atom 5 (8) (1263, -2001, 1124) def +atom 6 (6) (2, 62, -1609) def +bond1 1 4 +atom 7 (6) (15, 37, 1515) def +bond1 3 +atom 8 (6) (38, -1309, 723) def +bond1 7 1 5 +atom 9 (8) (1175, 2148, -1227) def +atom 10 (8) (1185, 2129, 1158) def +atom 11 (6) (-19, 1409, -817) def +bond1 6 9 +atom 12 (6) (-13, 1396, 745) def +bond1 7 11 10 +atom 13 (6) (2452, -1250, -848) def +bond1 2 +atom 14 (1) (3278, -1858, -1218) def +bond1 13 +atom 15 (1) (3254, 92, 2225) def +atom 16 (1) (3236, 129, -2344) def +atom 17 (1) (3287, -1876, 1066) def +atom 18 (6) (2423, 108, -1619) def +bond1 13 16 4 +atom 19 (6) (2436, 83, 1506) def +bond1 15 3 +atom 20 (6) (2458, -1263, 713) def +bond1 13 17 19 5 +atom 21 (1) (3203, 2098, -1186) def +atom 22 (1) (3212, 2080, 1099) def +atom 23 (6) (2401, 1454, -826) def +bond1 18 21 9 +atom 24 (6) (2407, 1442, 735) def +bond1 19 22 23 10 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 1 6 7 11 12 8 +info leaf forwarded = 166344944 +thermo (Thermo-25) (153, 0, 51) 1 24 10 +info leaf forwarded = 166329160 +ground (Anchor-86) (0, 0, 0) 8 +mol (chunk1) tub +atom 25 (1) (-773, -1934, -1202) def +bond1 1 +atom 26 (1) (-797, 16, 2241) def +bond1 7 +atom 27 (1) (-815, 53, -2329) def +bond1 6 +atom 28 (1) (-764, -1953, 1082) def +bond1 8 +stat (Stat-87) (0, 0, 153) (300) 1 24 6 +mol (chunk2) tub +atom 29 (1) (-848, 2021, -1170) def +bond1 11 +atom 30 (1) (-839, 2004, 1114) def +bond1 12 +egroup (04-thermo-lmotor-anchor-stat reordering-4) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-4 diff --git a/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_5.mmp b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_5.mmp new file mode 100755 index 000000000..55b59ab85 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_5.mmp @@ -0,0 +1,83 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.601528) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (04-thermo-lmotor-anchor-stat reordering-4) +info opengroup open = True +group (Group34) +info opengroup open = True +forward_ref (165422184) # lmotor (Linear Motor-83) +forward_ref (165422344) # ground (Anchor-86) +group (Group35) +info opengroup open = True +forward_ref (165406440) # thermo (Thermo-25) +mol (chunk1) tub +atom 1 (1) (-773, -1934, -1202) def +atom 2 (1) (-797, 16, 2241) def +atom 3 (1) (-815, 53, -2329) def +atom 4 (1) (-764, -1953, 1082) def +egroup (Group35) +forward_ref (165423144) # stat (Stat-87) +egroup (Group34) +mol (chunk3) tub +atom 5 (6) (31, -1296, -839) def +bond1 1 +atom 6 (8) (1253, -1983, -1261) def +bond1 5 +atom 7 (8) (1229, 53, 2334) def +atom 8 (8) (1209, 92, -2437) def +atom 9 (8) (1263, -2001, 1124) def +atom 10 (6) (2, 62, -1609) def +bond1 5 8 3 +atom 11 (6) (15, 37, 1515) def +bond1 7 2 +atom 12 (6) (38, -1309, 723) def +bond1 11 5 9 4 +atom 13 (8) (1175, 2148, -1227) def +atom 14 (8) (1185, 2129, 1158) def +atom 15 (6) (-19, 1409, -817) def +bond1 10 13 +atom 16 (6) (-13, 1396, 745) def +bond1 11 15 14 +atom 17 (6) (2452, -1250, -848) def +bond1 6 +atom 18 (1) (3278, -1858, -1218) def +bond1 17 +atom 19 (1) (3254, 92, 2225) def +atom 20 (1) (3236, 129, -2344) def +atom 21 (1) (3287, -1876, 1066) def +atom 22 (6) (2423, 108, -1619) def +bond1 17 20 8 +atom 23 (6) (2436, 83, 1506) def +bond1 19 7 +atom 24 (6) (2458, -1263, 713) def +bond1 17 21 23 9 +atom 25 (1) (3203, 2098, -1186) def +atom 26 (1) (3212, 2080, 1099) def +atom 27 (6) (2401, 1454, -826) def +bond1 22 25 13 +atom 28 (6) (2407, 1442, 735) def +bond1 23 26 27 14 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 5 10 11 15 16 12 +info leaf forwarded = 165422184 +ground (Anchor-86) (0, 0, 0) 12 +info leaf forwarded = 165422344 +thermo (Thermo-25) (153, 0, 51) 5 28 14 +info leaf forwarded = 165406440 +stat (Stat-87) (0, 0, 153) (300) 5 28 10 +info leaf forwarded = 165423144 +mol (chunk2) tub +atom 29 (1) (-848, 2021, -1170) def +bond1 15 +atom 30 (1) (-839, 2004, 1114) def +bond1 16 +egroup (04-thermo-lmotor-anchor-stat reordering-4) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-4 diff --git a/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_6.mmp b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_6.mmp new file mode 100755 index 000000000..8d33e925b --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_6.mmp @@ -0,0 +1,82 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.601528) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (04-thermo-lmotor-anchor-stat reordering-6) +info opengroup open = True +group (Group34) +info opengroup open = True +forward_ref (165422184) # lmotor (Linear Motor-83) +forward_ref (165422344) # ground (Anchor-86) +mol (chunk3) tub +atom 1 (6) (31, -1296, -839) def +atom 2 (8) (1253, -1983, -1261) def +bond1 1 +atom 3 (8) (1229, 53, 2334) def +atom 4 (8) (1209, 92, -2437) def +atom 5 (8) (1263, -2001, 1124) def +atom 6 (6) (2, 62, -1609) def +bond1 1 4 +atom 7 (6) (15, 37, 1515) def +bond1 3 +atom 8 (6) (38, -1309, 723) def +bond1 7 1 5 +atom 9 (8) (1175, 2148, -1227) def +atom 10 (8) (1185, 2129, 1158) def +atom 11 (6) (-19, 1409, -817) def +bond1 6 9 +atom 12 (6) (-13, 1396, 745) def +bond1 7 11 10 +atom 13 (6) (2452, -1250, -848) def +bond1 2 +atom 14 (1) (3278, -1858, -1218) def +bond1 13 +atom 15 (1) (3254, 92, 2225) def +atom 16 (1) (3236, 129, -2344) def +atom 17 (1) (3287, -1876, 1066) def +atom 18 (6) (2423, 108, -1619) def +bond1 13 16 4 +atom 19 (6) (2436, 83, 1506) def +bond1 15 3 +atom 20 (6) (2458, -1263, 713) def +bond1 13 17 19 5 +atom 21 (1) (3203, 2098, -1186) def +atom 22 (1) (3212, 2080, 1099) def +atom 23 (6) (2401, 1454, -826) def +bond1 18 21 9 +atom 24 (6) (2407, 1442, 735) def +bond1 19 22 23 10 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 1 6 7 11 12 8 +info leaf forwarded = 165422184 +ground (Anchor-86) (0, 0, 0) 8 +info leaf forwarded = 165422344 +mol (chunk2) tub +atom 25 (1) (-848, 2021, -1170) def +bond1 11 +atom 26 (1) (-839, 2004, 1114) def +bond1 12 +egroup (Group34) +stat (Stat-87) (0, 0, 153) (300) 1 24 6 +mol (chunk1) tub +atom 27 (1) (-773, -1934, -1202) def +bond1 1 +atom 28 (1) (-797, 16, 2241) def +bond1 7 +atom 29 (1) (-815, 53, -2329) def +bond1 6 +atom 30 (1) (-764, -1953, 1082) def +bond1 8 +group (Group35) +info opengroup open = True +thermo (Thermo-25) (153, 0, 51) 1 24 10 +egroup (Group35) +egroup (04-thermo-lmotor-anchor-stat reordering-6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-6 diff --git a/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_7.mmp b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_7.mmp new file mode 100755 index 000000000..22192963b --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_7.mmp @@ -0,0 +1,83 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.601528) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (04-thermo-lmotor-anchor-stat reordering-6) +info opengroup open = True +forward_ref (240190288) # stat (Stat-87) +mol (chunk1) tub +atom 1 (1) (-773, -1934, -1202) def +atom 2 (1) (-797, 16, 2241) def +atom 3 (1) (-815, 53, -2329) def +atom 4 (1) (-764, -1953, 1082) def +group (Group35) +info opengroup open = True +forward_ref (240191048) # thermo (Thermo-25) +forward_ref (240189648) # lmotor (Linear Motor-83) +forward_ref (240189808) # ground (Anchor-86) +group (Group34) +info opengroup open = True +mol (chunk3) tub +atom 5 (6) (31, -1296, -839) def +bond1 1 +atom 6 (8) (1253, -1983, -1261) def +bond1 5 +atom 7 (8) (1229, 53, 2334) def +atom 8 (8) (1209, 92, -2437) def +atom 9 (8) (1263, -2001, 1124) def +atom 10 (6) (2, 62, -1609) def +bond1 5 8 3 +atom 11 (6) (15, 37, 1515) def +bond1 7 2 +atom 12 (6) (38, -1309, 723) def +bond1 11 5 9 4 +atom 13 (8) (1175, 2148, -1227) def +atom 14 (8) (1185, 2129, 1158) def +atom 15 (6) (-19, 1409, -817) def +bond1 10 13 +atom 16 (6) (-13, 1396, 745) def +bond1 11 15 14 +atom 17 (6) (2452, -1250, -848) def +bond1 6 +atom 18 (1) (3278, -1858, -1218) def +bond1 17 +atom 19 (1) (3254, 92, 2225) def +atom 20 (1) (3236, 129, -2344) def +atom 21 (1) (3287, -1876, 1066) def +atom 22 (6) (2423, 108, -1619) def +bond1 17 20 8 +atom 23 (6) (2436, 83, 1506) def +bond1 19 7 +atom 24 (6) (2458, -1263, 713) def +bond1 17 21 23 9 +atom 25 (1) (3203, 2098, -1186) def +atom 26 (1) (3212, 2080, 1099) def +atom 27 (6) (2401, 1454, -826) def +bond1 22 25 13 +atom 28 (6) (2407, 1442, 735) def +bond1 23 26 27 14 +stat (Stat-87) (0, 0, 153) (300) 5 28 10 +info leaf forwarded = 240190288 +thermo (Thermo-25) (153, 0, 51) 5 28 14 +info leaf forwarded = 240191048 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 5 10 11 15 16 12 +info leaf forwarded = 240189648 +ground (Anchor-86) (0, 0, 0) 12 +info leaf forwarded = 240189808 +mol (chunk2) tub +atom 29 (1) (-848, 2021, -1170) def +bond1 15 +atom 30 (1) (-839, 2004, 1114) def +bond1 16 +egroup (Group34) +egroup (Group35) +egroup (04-thermo-lmotor-anchor-stat reordering-6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-6 diff --git a/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_8.mmp b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_8.mmp new file mode 100755 index 000000000..3c021b55c --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/04_thermo_lmotor_anchor_stat_reordering_8.mmp @@ -0,0 +1,83 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.601528) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (04-thermo-lmotor-anchor-stat reordering-8) +info opengroup open = True +forward_ref (240190288) # stat (Stat-87) +mol (chunk1) tub +atom 1 (1) (-773, -1934, -1202) def +atom 2 (1) (-797, 16, 2241) def +atom 3 (1) (-815, 53, -2329) def +atom 4 (1) (-764, -1953, 1082) def +group (Group35) +info opengroup open = True +forward_ref (240189648) # lmotor (Linear Motor-83) +forward_ref (240191048) # thermo (Thermo-25) +forward_ref (240189808) # ground (Anchor-86) +group (Group34) +info opengroup open = True +mol (chunk3) tub +atom 5 (6) (31, -1296, -839) def +bond1 1 +atom 6 (8) (1253, -1983, -1261) def +bond1 5 +atom 7 (8) (1229, 53, 2334) def +atom 8 (8) (1209, 92, -2437) def +atom 9 (8) (1263, -2001, 1124) def +atom 10 (6) (2, 62, -1609) def +bond1 5 8 3 +atom 11 (6) (15, 37, 1515) def +bond1 7 2 +atom 12 (6) (38, -1309, 723) def +bond1 11 5 9 4 +atom 13 (8) (1175, 2148, -1227) def +atom 14 (8) (1185, 2129, 1158) def +atom 15 (6) (-19, 1409, -817) def +bond1 10 13 +atom 16 (6) (-13, 1396, 745) def +bond1 11 15 14 +atom 17 (6) (2452, -1250, -848) def +bond1 6 +atom 18 (1) (3278, -1858, -1218) def +bond1 17 +atom 19 (1) (3254, 92, 2225) def +atom 20 (1) (3236, 129, -2344) def +atom 21 (1) (3287, -1876, 1066) def +atom 22 (6) (2423, 108, -1619) def +bond1 17 20 8 +atom 23 (6) (2436, 83, 1506) def +bond1 19 7 +atom 24 (6) (2458, -1263, 713) def +bond1 17 21 23 9 +atom 25 (1) (3203, 2098, -1186) def +atom 26 (1) (3212, 2080, 1099) def +atom 27 (6) (2401, 1454, -826) def +bond1 22 25 13 +atom 28 (6) (2407, 1442, 735) def +bond1 23 26 27 14 +stat (Stat-87) (0, 0, 153) (300) 5 28 10 +info leaf forwarded = 240190288 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 5 10 11 15 16 12 +info leaf forwarded = 240189648 +thermo (Thermo-25) (153, 0, 51) 5 28 14 +info leaf forwarded = 240191048 +ground (Anchor-86) (0, 0, 0) 12 +info leaf forwarded = 240189808 +mol (chunk2) tub +atom 29 (1) (-848, 2021, -1170) def +bond1 15 +atom 30 (1) (-839, 2004, 1114) def +bond1 16 +egroup (Group34) +egroup (Group35) +egroup (04-thermo-lmotor-anchor-stat reordering-8) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-8 diff --git a/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_1.mmp b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_1.mmp new file mode 100755 index 000000000..fc84a0bad --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_1.mmp @@ -0,0 +1,69 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (11.391910) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (05-thermo-lmotor-anchor-measurement jigs reordering-1) +info opengroup open = True +mol (1) tub +atom 1 (6) (-4035, -61, 0) def +atom 2 (1) (-3412, 563, 624) def +bond1 1 +atom 3 (1) (-4661, 563, -624) def +bond1 1 +atom 4 (1) (-3412, -686, -624) def +bond1 1 +atom 5 (7) (-4903, -928, 867) def +bond1 1 +atom 6 (1) (-4303, -1528, 1467) def +bond1 5 +atom 7 (1) (-5504, -328, 1467) def +bond1 5 +mol (2) tub +atom 8 (6) (527, 5239, 0) def +atom 9 (1) (-97, 5863, -624) def +bond1 8 +atom 10 (1) (-97, 4614, 624) def +bond1 8 +atom 11 (1) (1152, 4614, -624) def +bond1 8 +atom 12 (8) (1371, 6083, 844) def +bond1 8 +atom 13 (1) (1915, 6627, 204) def +bond1 12 +mol (3) tub +atom 14 (6) (5901, -159, 0) def +atom 15 (1) (6526, 465, 624) def +bond1 14 +atom 16 (1) (5277, 465, -624) def +bond1 14 +atom 17 (1) (5277, -784, 624) def +bond1 14 +atom 18 (1) (6526, -784, -624) def +bond1 14 +mol (4) tub +atom 19 (6) (1288, -5705, 0) def +atom 20 (17) (2322, -4670, 1034) def +bond1 19 +atom 21 (17) (253, -6740, 1034) def +bond1 19 +atom 22 (17) (2322, -6740, -1034) def +bond1 19 +atom 23 (17) (253, -4670, -1034) def +bond1 19 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 14 +thermo (Thermo-2) (153, 0, 51) 1 7 5 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 1 8 +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 1 14 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 5 12 14 23 +ground (Anchor-4) (0, 0, 0) 20 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-1) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_2.mmp b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_2.mmp new file mode 100755 index 000000000..420767f04 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_2.mmp @@ -0,0 +1,77 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (11.391910) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (05-thermo-lmotor-anchor-measurement jigs reordering-1) +info opengroup open = True +mol (1) tub +atom 1 (6) (-4035, -61, 0) def +atom 2 (1) (-3412, 563, 624) def +bond1 1 +atom 3 (1) (-4661, 563, -624) def +bond1 1 +atom 4 (1) (-3412, -686, -624) def +bond1 1 +atom 5 (7) (-4903, -928, 867) def +bond1 1 +atom 6 (1) (-4303, -1528, 1467) def +bond1 5 +atom 7 (1) (-5504, -328, 1467) def +bond1 5 +mol (2) tub +atom 8 (6) (527, 5239, 0) def +atom 9 (1) (-97, 5863, -624) def +bond1 8 +atom 10 (1) (-97, 4614, 624) def +bond1 8 +atom 11 (1) (1152, 4614, -624) def +bond1 8 +atom 12 (8) (1371, 6083, 844) def +bond1 8 +atom 13 (1) (1915, 6627, 204) def +bond1 12 +mol (3) tub +atom 14 (6) (5901, -159, 0) def +atom 15 (1) (6526, 465, 624) def +bond1 14 +atom 16 (1) (5277, 465, -624) def +bond1 14 +atom 17 (1) (5277, -784, 624) def +bond1 14 +atom 18 (1) (6526, -784, -624) def +bond1 14 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 14 +thermo (Thermo-2) (153, 0, 51) 1 7 5 +forward_ref (241879240) # mangle (Angle-4-1-2) +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 1 14 +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +forward_ref (241672880) # ground (Anchor-4) +forward_ref (241879280) # thermo (Thermo-4) +mol (4) tub +atom 19 (6) (1288, -5705, 0) def +atom 20 (17) (2322, -4670, 1034) def +bond1 19 +atom 21 (17) (253, -6740, 1034) def +bond1 19 +atom 22 (17) (2322, -6740, -1034) def +bond1 19 +atom 23 (17) (253, -4670, -1034) def +bond1 19 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 1 8 +info leaf forwarded = 241879240 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 5 12 14 23 +info leaf forwarded = 241879560 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +info leaf forwarded = 241879280 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-1) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_3.mmp b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_3.mmp new file mode 100755 index 000000000..13ffa7de1 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_3.mmp @@ -0,0 +1,83 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (11.391910) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (05-thermo-lmotor-anchor-measurement jigs reordering-2) +info opengroup open = True +forward_ref (241878960) # lmotor (Linear Motor-3) +forward_ref (241879000) # thermo (Thermo-2) +forward_ref (241879240) # mangle (Angle-4-1-2) +forward_ref (241879400) # mdistance (Distance-1-3) +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +forward_ref (241672880) # ground (Anchor-4) +forward_ref (241879280) # thermo (Thermo-4) +mol (1) tub +atom 1 (6) (-4035, -61, 0) def +atom 2 (1) (-3412, 563, 624) def +bond1 1 +atom 3 (1) (-4661, 563, -624) def +bond1 1 +atom 4 (1) (-3412, -686, -624) def +bond1 1 +atom 5 (7) (-4903, -928, 867) def +bond1 1 +atom 6 (1) (-4303, -1528, 1467) def +bond1 5 +atom 7 (1) (-5504, -328, 1467) def +bond1 5 +thermo (Thermo-2) (153, 0, 51) 1 7 5 +info leaf forwarded = 241879000 +mol (2) tub +atom 8 (6) (527, 5239, 0) def +atom 9 (1) (-97, 5863, -624) def +bond1 8 +atom 10 (1) (-97, 4614, 624) def +bond1 8 +atom 11 (1) (1152, 4614, -624) def +bond1 8 +atom 12 (8) (1371, 6083, 844) def +bond1 8 +atom 13 (1) (1915, 6627, 204) def +bond1 12 +mol (3) tub +atom 14 (6) (5901, -159, 0) def +atom 15 (1) (6526, 465, 624) def +bond1 14 +atom 16 (1) (5277, 465, -624) def +bond1 14 +atom 17 (1) (5277, -784, 624) def +bond1 14 +atom 18 (1) (6526, -784, -624) def +bond1 14 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 14 +info leaf forwarded = 241878960 +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 1 14 +info leaf forwarded = 241879400 +mol (4) tub +atom 19 (6) (1288, -5705, 0) def +atom 20 (17) (2322, -4670, 1034) def +bond1 19 +atom 21 (17) (253, -6740, 1034) def +bond1 19 +atom 22 (17) (2322, -6740, -1034) def +bond1 19 +atom 23 (17) (253, -4670, -1034) def +bond1 19 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 1 8 +info leaf forwarded = 241879240 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 5 12 14 23 +info leaf forwarded = 241879560 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +info leaf forwarded = 241879280 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-2 diff --git a/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_4.mmp b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_4.mmp new file mode 100755 index 000000000..c35f78f16 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_4.mmp @@ -0,0 +1,83 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (11.391910) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (05-thermo-lmotor-anchor-measurement jigs reordering-3) +info opengroup open = True +forward_ref (241878960) # lmotor (Linear Motor-3) +forward_ref (241672880) # ground (Anchor-4) +forward_ref (241879000) # thermo (Thermo-2) +forward_ref (241879240) # mangle (Angle-4-1-2) +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +forward_ref (241879280) # thermo (Thermo-4) +mol (1) tub +atom 1 (6) (-4035, -61, 0) def +atom 2 (1) (-3412, 563, 624) def +bond1 1 +atom 3 (1) (-4661, 563, -624) def +bond1 1 +atom 4 (1) (-3412, -686, -624) def +bond1 1 +atom 5 (7) (-4903, -928, 867) def +bond1 1 +atom 6 (1) (-4303, -1528, 1467) def +bond1 5 +atom 7 (1) (-5504, -328, 1467) def +bond1 5 +thermo (Thermo-2) (153, 0, 51) 1 7 5 +info leaf forwarded = 241879000 +mol (2) tub +atom 8 (6) (527, 5239, 0) def +atom 9 (1) (-97, 5863, -624) def +bond1 8 +atom 10 (1) (-97, 4614, 624) def +bond1 8 +atom 11 (1) (1152, 4614, -624) def +bond1 8 +atom 12 (8) (1371, 6083, 844) def +bond1 8 +atom 13 (1) (1915, 6627, 204) def +bond1 12 +forward_ref (241879400) # mdistance (Distance-1-3) +mol (3) tub +atom 14 (6) (5901, -159, 0) def +atom 15 (1) (6526, 465, 624) def +bond1 14 +atom 16 (1) (5277, 465, -624) def +bond1 14 +atom 17 (1) (5277, -784, 624) def +bond1 14 +atom 18 (1) (6526, -784, -624) def +bond1 14 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 14 +info leaf forwarded = 241878960 +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 1 14 +info leaf forwarded = 241879400 +mol (4) tub +atom 19 (6) (1288, -5705, 0) def +atom 20 (17) (2322, -4670, 1034) def +bond1 19 +atom 21 (17) (253, -6740, 1034) def +bond1 19 +atom 22 (17) (2322, -6740, -1034) def +bond1 19 +atom 23 (17) (253, -4670, -1034) def +bond1 19 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 1 8 +info leaf forwarded = 241879240 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 5 12 14 23 +info leaf forwarded = 241879560 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +info leaf forwarded = 241879280 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-3 diff --git a/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_5.mmp b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_5.mmp new file mode 100755 index 000000000..78569cbc1 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_5.mmp @@ -0,0 +1,81 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (11.391910) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (05-thermo-lmotor-anchor-measurement jigs reordering-4) +info opengroup open = True +forward_ref (241672880) # ground (Anchor-4) +forward_ref (241878960) # lmotor (Linear Motor-3) +forward_ref (241879280) # thermo (Thermo-4) +forward_ref (241879240) # mangle (Angle-4-1-2) +mol (1) tub +atom 1 (6) (-4035, -61, 0) def +atom 2 (1) (-3412, 563, 624) def +bond1 1 +atom 3 (1) (-4661, 563, -624) def +bond1 1 +atom 4 (1) (-3412, -686, -624) def +bond1 1 +atom 5 (7) (-4903, -928, 867) def +bond1 1 +atom 6 (1) (-4303, -1528, 1467) def +bond1 5 +atom 7 (1) (-5504, -328, 1467) def +bond1 5 +mol (2) tub +atom 8 (6) (527, 5239, 0) def +atom 9 (1) (-97, 5863, -624) def +bond1 8 +atom 10 (1) (-97, 4614, 624) def +bond1 8 +atom 11 (1) (1152, 4614, -624) def +bond1 8 +atom 12 (8) (1371, 6083, 844) def +bond1 8 +atom 13 (1) (1915, 6627, 204) def +bond1 12 +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +forward_ref (241879400) # mdistance (Distance-1-3) +mol (3) tub +atom 14 (6) (5901, -159, 0) def +atom 15 (1) (6526, 465, 624) def +bond1 14 +atom 16 (1) (5277, 465, -624) def +bond1 14 +atom 17 (1) (5277, -784, 624) def +bond1 14 +atom 18 (1) (6526, -784, -624) def +bond1 14 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 14 +info leaf forwarded = 241878960 +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 1 14 +info leaf forwarded = 241879400 +mol (4) tub +atom 19 (6) (1288, -5705, 0) def +atom 20 (17) (2322, -4670, 1034) def +bond1 19 +atom 21 (17) (253, -6740, 1034) def +bond1 19 +atom 22 (17) (2322, -6740, -1034) def +bond1 19 +atom 23 (17) (253, -4670, -1034) def +bond1 19 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +info leaf forwarded = 241879280 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 1 8 +info leaf forwarded = 241879240 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 5 12 14 23 +info leaf forwarded = 241879560 +thermo (Thermo-2) (153, 0, 51) 1 7 5 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-4) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-4 diff --git a/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_6.mmp b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_6.mmp new file mode 100755 index 000000000..f94e796db --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_6.mmp @@ -0,0 +1,85 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (11.391910) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (05-thermo-lmotor-anchor-measurement jigs reordering-5) +info opengroup open = True +group (Group163) +info opengroup open = True +forward_ref (241672880) # ground (Anchor-4) +forward_ref (241878960) # lmotor (Linear Motor-3) +mol (3) tub +atom 1 (6) (5901, -159, 0) def +atom 2 (1) (6526, 465, 624) def +bond1 1 +atom 3 (1) (5277, 465, -624) def +bond1 1 +atom 4 (1) (5277, -784, 624) def +bond1 1 +atom 5 (1) (6526, -784, -624) def +bond1 1 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 1 +info leaf forwarded = 241878960 +egroup (Group163) +forward_ref (241879280) # thermo (Thermo-4) +forward_ref (241879240) # mangle (Angle-4-1-2) +mol (1) tub +atom 6 (6) (-4035, -61, 0) def +atom 7 (1) (-3412, 563, 624) def +bond1 6 +atom 8 (1) (-4661, 563, -624) def +bond1 6 +atom 9 (1) (-3412, -686, -624) def +bond1 6 +atom 10 (7) (-4903, -928, 867) def +bond1 6 +atom 11 (1) (-4303, -1528, 1467) def +bond1 10 +atom 12 (1) (-5504, -328, 1467) def +bond1 10 +group (Group164) +info opengroup open = True +mol (2) tub +atom 13 (6) (527, 5239, 0) def +atom 14 (1) (-97, 5863, -624) def +bond1 13 +atom 15 (1) (-97, 4614, 624) def +bond1 13 +atom 16 (1) (1152, 4614, -624) def +bond1 13 +atom 17 (8) (1371, 6083, 844) def +bond1 13 +atom 18 (1) (1915, 6627, 204) def +bond1 17 +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +egroup (Group164) +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 6 1 +mol (4) tub +atom 19 (6) (1288, -5705, 0) def +atom 20 (17) (2322, -4670, 1034) def +bond1 19 +atom 21 (17) (253, -6740, 1034) def +bond1 19 +atom 22 (17) (2322, -6740, -1034) def +bond1 19 +atom 23 (17) (253, -4670, -1034) def +bond1 19 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +info leaf forwarded = 241879280 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 6 13 +info leaf forwarded = 241879240 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 10 17 1 23 +info leaf forwarded = 241879560 +thermo (Thermo-2) (153, 0, 51) 6 12 10 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-5) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-5 diff --git a/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_7.mmp b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_7.mmp new file mode 100755 index 000000000..316488479 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_7.mmp @@ -0,0 +1,86 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (9.227447) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (05-thermo-lmotor-anchor-measurement jigs reordering-6) +info opengroup open = True +group (Group165) +info opengroup open = True +mol (3) tub +atom 1 (6) (5901, -159, 0) def +atom 2 (1) (6526, 465, 624) def +bond1 1 +atom 3 (1) (5277, 465, -624) def +bond1 1 +atom 4 (1) (5277, -784, 624) def +bond1 1 +atom 5 (1) (6526, -784, -624) def +bond1 1 +forward_ref (241879000) # thermo (Thermo-2) +forward_ref (241879240) # mangle (Angle-4-1-2) +egroup (Group165) +group (Group163) +info opengroup open = True +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 1 +egroup (Group163) +mol (1) tub +atom 6 (6) (-4035, -61, 0) def +atom 7 (1) (-3412, 563, 624) def +bond1 6 +atom 8 (1) (-4661, 563, -624) def +bond1 6 +atom 9 (1) (-3412, -686, -624) def +bond1 6 +atom 10 (7) (-4903, -928, 867) def +bond1 6 +atom 11 (1) (-4303, -1528, 1467) def +bond1 10 +atom 12 (1) (-5504, -328, 1467) def +bond1 10 +thermo (Thermo-2) (153, 0, 51) 6 12 10 +info leaf forwarded = 241879000 +group (Group164) +info opengroup open = True +mol (2) tub +atom 13 (6) (527, 5239, 0) def +atom 14 (1) (-97, 5863, -624) def +bond1 13 +atom 15 (1) (-97, 4614, 624) def +bond1 13 +atom 16 (1) (1152, 4614, -624) def +bond1 13 +atom 17 (8) (1371, 6083, 844) def +bond1 13 +atom 18 (1) (1915, 6627, 204) def +bond1 17 +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +egroup (Group164) +forward_ref (241672880) # ground (Anchor-4) +mol (4) tub +atom 19 (6) (1288, -5705, 0) def +atom 20 (17) (2322, -4670, 1034) def +bond1 19 +atom 21 (17) (253, -6740, 1034) def +bond1 19 +atom 22 (17) (2322, -6740, -1034) def +bond1 19 +atom 23 (17) (253, -4670, -1034) def +bond1 19 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 6 13 +info leaf forwarded = 241879240 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 10 17 1 23 +info leaf forwarded = 241879560 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 6 1 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-6 diff --git a/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_8.mmp b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_8.mmp new file mode 100755 index 000000000..1422d3f98 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/05_thermo_lmotor_anchor_measurement_jigs_reordering_8.mmp @@ -0,0 +1,91 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (9.227447) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (05-thermo-lmotor-anchor-measurement jigs reordering-7) +info opengroup open = True +group (Group163) +info opengroup open = True +forward_ref (241878960) # lmotor (Linear Motor-3) +egroup (Group163) +mol (1) tub +atom 1 (6) (-4035, -61, 0) def +atom 2 (1) (-3412, 563, 624) def +bond1 1 +atom 3 (1) (-4661, 563, -624) def +bond1 1 +atom 4 (1) (-3412, -686, -624) def +bond1 1 +atom 5 (7) (-4903, -928, 867) def +bond1 1 +atom 6 (1) (-4303, -1528, 1467) def +bond1 5 +atom 7 (1) (-5504, -328, 1467) def +bond1 5 +group (Group166) +info opengroup open = True +mol (2) tub +atom 8 (6) (527, 5239, 0) def +atom 9 (1) (-97, 5863, -624) def +bond1 8 +atom 10 (1) (-97, 4614, 624) def +bond1 8 +atom 11 (1) (1152, 4614, -624) def +bond1 8 +atom 12 (8) (1371, 6083, 844) def +bond1 8 +atom 13 (1) (1915, 6627, 204) def +bond1 12 +forward_ref (241672880) # ground (Anchor-4) +forward_ref (241879280) # thermo (Thermo-4) +egroup (Group166) +group (Group164) +info opengroup open = True +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +egroup (Group164) +mol (3) tub +atom 14 (6) (5901, -159, 0) def +atom 15 (1) (6526, 465, 624) def +bond1 14 +atom 16 (1) (5277, 465, -624) def +bond1 14 +atom 17 (1) (5277, -784, 624) def +bond1 14 +atom 18 (1) (6526, -784, -624) def +bond1 14 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 14 +info leaf forwarded = 241878960 +forward_ref (241879240) # mangle (Angle-4-1-2) +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 1 14 +group (Group165) +info opengroup open = True +mol (4) tub +atom 19 (6) (1288, -5705, 0) def +atom 20 (17) (2322, -4670, 1034) def +bond1 19 +atom 21 (17) (253, -6740, 1034) def +bond1 19 +atom 22 (17) (2322, -6740, -1034) def +bond1 19 +atom 23 (17) (253, -4670, -1034) def +bond1 19 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +info leaf forwarded = 241879280 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 5 12 14 23 +info leaf forwarded = 241879560 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 1 8 +info leaf forwarded = 241879240 +thermo (Thermo-2) (153, 0, 51) 1 7 5 +egroup (Group165) +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-7) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-7 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_1.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_1.mmp new file mode 100755 index 000000000..3d285b63d --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_1.mmp @@ -0,0 +1,17 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (03-thermo-anchor-reordering) +info opengroup open = True +forward_ref (773509488) # ground (Anchor.19) +forward_ref (773509728) # thermo (Thermo.21) +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) - +ground (Anchor.19) (0, 0, 0) 1 +info leaf forwarded = 773509488 +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) - +bond1 1 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +info leaf forwarded = 773509728 +egroup (03-thermo-anchor-reordering) +end molecular machine part 03-thermo-anchor-reordering diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_1.trc b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_1.trc new file mode 100755 index 000000000..dcc89caec --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_1.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_01_thermo_anchor_reordering_1.trc test_01_thermo_anchor_reordering_1.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_01_thermo_anchor_reordering_1.mmp +# Output File: test_01_thermo_anchor_reordering_1.xyz +# Trace File: test_01_thermo_anchor_reordering_1.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Anchor.19: torque (nn-nm) +# Thermo.21: temperature (K) +# +# Time Anchor T.meter +# picosec Anchor.19 Thermo.21 +# + 0.0100 0.00 363.32 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_1.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_1.xyzcmp new file mode 100755 index 000000000..f0106b78d --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_1.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.737023 0.071015 0.000024 +H 0.997023 0.017033 -0.081026 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_2.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_2.mmp new file mode 100755 index 000000000..6e890cf7b --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_2.mmp @@ -0,0 +1,17 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (01-thermo-anchor-reordering-1) +info opengroup open = True +forward_ref (773509728) # thermo (Thermo.21) +forward_ref (773509488) # ground (Anchor.19) +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) - +ground (Anchor.19) (0, 0, 0) 1 +info leaf forwarded = 773509488 +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) - +bond1 1 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +info leaf forwarded = 773509728 +egroup (01-thermo-anchor-reordering-1) +end molecular machine part 01-thermo-anchor-reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_2.trc b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_2.trc new file mode 100755 index 000000000..6eefa3139 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_2.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_01_thermo_anchor_reordering_2.trc test_01_thermo_anchor_reordering_2.mmp +# Date and Time: Wed Apr 19 10:53:24 2006 +# Input File: test_01_thermo_anchor_reordering_2.mmp +# Output File: test_01_thermo_anchor_reordering_2.xyz +# Trace File: test_01_thermo_anchor_reordering_2.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Anchor.19: torque (nn-nm) +# Thermo.21: temperature (K) +# +# Time Anchor T.meter +# picosec Anchor.19 Thermo.21 +# + 0.0100 0.00 363.32 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_2.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_2.xyzcmp new file mode 100755 index 000000000..f0106b78d --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_2.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.737023 0.071015 0.000024 +H 0.997023 0.017033 -0.081026 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_3.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_3.mmp new file mode 100755 index 000000000..d8fed8562 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_3.mmp @@ -0,0 +1,17 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (01-thermo-anchor-reordering-2) +info opengroup open = True +forward_ref (773509488) # ground (Anchor.19) +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) - +ground (Anchor.19) (0, 0, 0) 1 +info leaf forwarded = 773509488 +forward_ref (773509728) # thermo (Thermo.21) +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) - +bond1 1 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +info leaf forwarded = 773509728 +egroup (01-thermo-anchor-reordering-2) +end molecular machine part 01-thermo-anchor-reordering-2 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_3.trc b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_3.trc new file mode 100755 index 000000000..8f148f061 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_3.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_01_thermo_anchor_reordering_3.trc test_01_thermo_anchor_reordering_3.mmp +# Date and Time: Wed Apr 19 10:53:24 2006 +# Input File: test_01_thermo_anchor_reordering_3.mmp +# Output File: test_01_thermo_anchor_reordering_3.xyz +# Trace File: test_01_thermo_anchor_reordering_3.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Anchor.19: torque (nn-nm) +# Thermo.21: temperature (K) +# +# Time Anchor T.meter +# picosec Anchor.19 Thermo.21 +# + 0.0100 0.00 363.32 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_3.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_3.xyzcmp new file mode 100755 index 000000000..f0106b78d --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_3.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.737023 0.071015 0.000024 +H 0.997023 0.017033 -0.081026 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_4.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_4.mmp new file mode 100755 index 000000000..5542a1a0a --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_4.mmp @@ -0,0 +1,13 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (01-thermo-anchor-reordering-3) +info opengroup open = True +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) - +ground (Anchor.19) (0, 0, 0) 1 +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) - +bond1 1 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +egroup (01-thermo-anchor-reordering-3) +end molecular machine part 01-thermo-anchor-reordering-3 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_4.trc b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_4.trc new file mode 100755 index 000000000..a0b28d4ce --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_4.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_01_thermo_anchor_reordering_4.trc test_01_thermo_anchor_reordering_4.mmp +# Date and Time: Wed Apr 19 10:53:24 2006 +# Input File: test_01_thermo_anchor_reordering_4.mmp +# Output File: test_01_thermo_anchor_reordering_4.xyz +# Trace File: test_01_thermo_anchor_reordering_4.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Anchor.19: torque (nn-nm) +# Thermo.21: temperature (K) +# +# Time Anchor T.meter +# picosec Anchor.19 Thermo.21 +# + 0.0100 0.00 363.32 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_4.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_4.xyzcmp new file mode 100755 index 000000000..f0106b78d --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_4.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.737023 0.071015 0.000024 +H 0.997023 0.017033 -0.081026 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_5.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_5.mmp new file mode 100755 index 000000000..5cbe9ece6 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_5.mmp @@ -0,0 +1,13 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (01-thermo-anchor-reordering-4) +info opengroup open = True +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) - +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) - +bond1 1 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +ground (Anchor.19) (0, 0, 0) 1 +egroup (01-thermo-anchor-reordering-4) +end molecular machine part 01-thermo-anchor-reordering-4 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_5.trc b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_5.trc new file mode 100755 index 000000000..242715b6b --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_5.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_01_thermo_anchor_reordering_5.trc test_01_thermo_anchor_reordering_5.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_01_thermo_anchor_reordering_5.mmp +# Output File: test_01_thermo_anchor_reordering_5.xyz +# Trace File: test_01_thermo_anchor_reordering_5.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Thermo.21: temperature (K) +# Anchor.19: torque (nn-nm) +# +# Time T.meter Anchor +# picosec Thermo.21 Anchor.19 +# + 0.0100 363.32 0.00 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_5.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_5.xyzcmp new file mode 100755 index 000000000..f0106b78d --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_01_thermo_anchor_reordering_5.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.737023 0.071015 0.000024 +H 0.997023 0.017033 -0.081026 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_1.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_1.mmp new file mode 100755 index 000000000..94975aa87 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_1.mmp @@ -0,0 +1,14 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (02-thermo-anchor-stat-reordering-1) +info opengroup open = True +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) - +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) - +bond1 1 +thermo (Thermo.21) (153, 0, 51) 1 1 1 +ground (Anchor.19) (0, 0, 0) 2 +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +egroup (02-thermo-anchor-stat-reordering-1) +end molecular machine part 02-thermo-anchor-stat-reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_1.trc b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_1.trc new file mode 100755 index 000000000..1f6c98e97 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_1.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_02_thermo_anchor_stat_reordering_1.trc test_02_thermo_anchor_stat_reordering_1.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_02_thermo_anchor_stat_reordering_1.mmp +# Output File: test_02_thermo_anchor_stat_reordering_1.xyz +# Trace File: test_02_thermo_anchor_stat_reordering_1.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 3 columns: +# Thermo.21: temperature (K) +# Anchor.19: torque (nn-nm) +# Stat-33: energy added (zJ) +# +# Time T.meter Anchor T.stat +# picosec Thermo.21 Anchor.19 Stat-33 +# + 0.0100 260.64 0.00 -0.00 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_1.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_1.xyzcmp new file mode 100755 index 000000000..b9b2970de --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_1.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.008721 0.094421 0.079265 +H 1.737014 0.070989 -0.000016 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_2.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_2.mmp new file mode 100755 index 000000000..757048216 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_2.mmp @@ -0,0 +1,20 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (02-thermo-anchor-stat-reordering-1) +info opengroup open = True +forward_ref (773509728) # thermo (Thermo.21) +forward_ref (773509488) # ground (Anchor.19) +forward_ref (773598424) # stat (Stat-33) +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) - +thermo (Thermo.21) (153, 0, 51) 1 1 1 +info leaf forwarded = 773509728 +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +info leaf forwarded = 773598424 +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) - +bond1 1 +ground (Anchor.19) (0, 0, 0) 2 +info leaf forwarded = 773509488 +egroup (02-thermo-anchor-stat-reordering-1) +end molecular machine part 02-thermo-anchor-stat-reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_2.trc b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_2.trc new file mode 100755 index 000000000..108db4c7f --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_2.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_02_thermo_anchor_stat_reordering_2.trc test_02_thermo_anchor_stat_reordering_2.mmp +# Date and Time: Wed Apr 19 10:53:24 2006 +# Input File: test_02_thermo_anchor_stat_reordering_2.mmp +# Output File: test_02_thermo_anchor_stat_reordering_2.xyz +# Trace File: test_02_thermo_anchor_stat_reordering_2.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 3 columns: +# Thermo.21: temperature (K) +# Stat-33: energy added (zJ) +# Anchor.19: torque (nn-nm) +# +# Time T.meter T.stat Anchor +# picosec Thermo.21 Stat-33 Anchor.19 +# + 0.0100 260.64 -0.00 0.00 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_2.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_2.xyzcmp new file mode 100755 index 000000000..b9b2970de --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_2.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.008721 0.094421 0.079265 +H 1.737014 0.070989 -0.000016 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_3.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_3.mmp new file mode 100755 index 000000000..5d25b3305 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_3.mmp @@ -0,0 +1,18 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (02-thermo-anchor-stat-reordering-3) +info opengroup open = True +forward_ref (773509728) # thermo (Thermo.21) +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) - +thermo (Thermo.21) (153, 0, 51) 1 1 1 +info leaf forwarded = 773509728 +forward_ref (773509488) # ground (Anchor.19) +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) - +bond1 1 +ground (Anchor.19) (0, 0, 0) 2 +info leaf forwarded = 773509488 +egroup (02-thermo-anchor-stat-reordering-3) +end molecular machine part 02-thermo-anchor-stat-reordering-3 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_3.trc b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_3.trc new file mode 100755 index 000000000..30a953396 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_3.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_02_thermo_anchor_stat_reordering_3.trc test_02_thermo_anchor_stat_reordering_3.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_02_thermo_anchor_stat_reordering_3.mmp +# Output File: test_02_thermo_anchor_stat_reordering_3.xyz +# Trace File: test_02_thermo_anchor_stat_reordering_3.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 3 columns: +# Thermo.21: temperature (K) +# Stat-33: energy added (zJ) +# Anchor.19: torque (nn-nm) +# +# Time T.meter T.stat Anchor +# picosec Thermo.21 Stat-33 Anchor.19 +# + 0.0100 260.64 -0.00 0.00 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_3.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_3.xyzcmp new file mode 100755 index 000000000..b9b2970de --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_3.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.008721 0.094421 0.079265 +H 1.737014 0.070989 -0.000016 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_4.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_4.mmp new file mode 100755 index 000000000..95bd6537c --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_4.mmp @@ -0,0 +1,20 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (02-thermo-anchor-stat-reordering-3) +info opengroup open = True +forward_ref (773598424) # stat (Stat-33) +forward_ref (773509728) # thermo (Thermo.21) +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) - +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +info leaf forwarded = 773598424 +thermo (Thermo.21) (153, 0, 51) 1 1 1 +info leaf forwarded = 773509728 +forward_ref (773509488) # ground (Anchor.19) +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) - +bond1 1 +ground (Anchor.19) (0, 0, 0) 2 +info leaf forwarded = 773509488 +egroup (02-thermo-anchor-stat-reordering-3) +end molecular machine part 02-thermo-anchor-stat-reordering-3 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_4.trc b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_4.trc new file mode 100755 index 000000000..a7685dc0c --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_4.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_02_thermo_anchor_stat_reordering_4.trc test_02_thermo_anchor_stat_reordering_4.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_02_thermo_anchor_stat_reordering_4.mmp +# Output File: test_02_thermo_anchor_stat_reordering_4.xyz +# Trace File: test_02_thermo_anchor_stat_reordering_4.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 3 columns: +# Stat-33: energy added (zJ) +# Thermo.21: temperature (K) +# Anchor.19: torque (nn-nm) +# +# Time T.stat T.meter Anchor +# picosec Stat-33 Thermo.21 Anchor.19 +# + 0.0100 -0.00 260.64 0.00 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_4.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_4.xyzcmp new file mode 100755 index 000000000..b9b2970de --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_4.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.008721 0.094421 0.079265 +H 1.737014 0.070989 -0.000016 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_5.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_5.mmp new file mode 100755 index 000000000..0de60b0eb --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_5.mmp @@ -0,0 +1,16 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (02-thermo-anchor-stat-reordering-4) +info opengroup open = True +forward_ref (773598424) # stat (Stat-33) +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) - +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +info leaf forwarded = 773598424 +thermo (Thermo.21) (153, 0, 51) 1 1 1 +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) - +bond1 1 +ground (Anchor.19) (0, 0, 0) 2 +egroup (02-thermo-anchor-stat-reordering-4) +end molecular machine part 02-thermo-anchor-stat-reordering-4 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_5.trc b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_5.trc new file mode 100755 index 000000000..2db2f27e3 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_5.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_02_thermo_anchor_stat_reordering_5.trc test_02_thermo_anchor_stat_reordering_5.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_02_thermo_anchor_stat_reordering_5.mmp +# Output File: test_02_thermo_anchor_stat_reordering_5.xyz +# Trace File: test_02_thermo_anchor_stat_reordering_5.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 3 columns: +# Stat-33: energy added (zJ) +# Thermo.21: temperature (K) +# Anchor.19: torque (nn-nm) +# +# Time T.stat T.meter Anchor +# picosec Stat-33 Thermo.21 Anchor.19 +# + 0.0100 -0.00 260.64 0.00 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_5.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_5.xyzcmp new file mode 100755 index 000000000..b9b2970de --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_5.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.008721 0.094421 0.079265 +H 1.737014 0.070989 -0.000016 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_6.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_6.mmp new file mode 100755 index 000000000..447ec9c19 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_6.mmp @@ -0,0 +1,14 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (02-thermo-anchor-stat-reordering-5) +info opengroup open = True +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) - +thermo (Thermo.21) (153, 0, 51) 1 1 1 +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) - +bond1 1 +ground (Anchor.19) (0, 0, 0) 2 +egroup (02-thermo-anchor-stat-reordering-5) +end molecular machine part 02-thermo-anchor-stat-reordering-5 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_6.trc b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_6.trc new file mode 100755 index 000000000..2b0929074 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_6.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_02_thermo_anchor_stat_reordering_6.trc test_02_thermo_anchor_stat_reordering_6.mmp +# Date and Time: Wed Apr 19 10:53:24 2006 +# Input File: test_02_thermo_anchor_stat_reordering_6.mmp +# Output File: test_02_thermo_anchor_stat_reordering_6.xyz +# Trace File: test_02_thermo_anchor_stat_reordering_6.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 3 columns: +# Thermo.21: temperature (K) +# Stat-33: energy added (zJ) +# Anchor.19: torque (nn-nm) +# +# Time T.meter T.stat Anchor +# picosec Thermo.21 Stat-33 Anchor.19 +# + 0.0100 260.64 -0.00 0.00 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_6.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_6.xyzcmp new file mode 100755 index 000000000..b9b2970de --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_6.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.008721 0.094421 0.079265 +H 1.737014 0.070989 -0.000016 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_7.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_7.mmp new file mode 100755 index 000000000..e34f7b7fd --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_7.mmp @@ -0,0 +1,14 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (02-thermo-anchor-stat-reordering-6) +info opengroup open = True +mol (1-Thermo) tub +atom 1 (1) (993, 69, 0) - +stat (Stat-33) (0, 0, 153) (100) 1 1 1 +thermo (Thermo.21) (153, 0, 51) 1 1 1 +mol (2-anchor) tub +atom 2 (1) (1737, 71, 0) - +bond1 1 +ground (Anchor.19) (0, 0, 0) 2 +egroup (02-thermo-anchor-stat-reordering-6) +end molecular machine part 02-thermo-anchor-stat-reordering-6 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_7.trc b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_7.trc new file mode 100755 index 000000000..0a1cf5280 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_7.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_02_thermo_anchor_stat_reordering_7.trc test_02_thermo_anchor_stat_reordering_7.mmp +# Date and Time: Wed Apr 19 10:53:24 2006 +# Input File: test_02_thermo_anchor_stat_reordering_7.mmp +# Output File: test_02_thermo_anchor_stat_reordering_7.xyz +# Trace File: test_02_thermo_anchor_stat_reordering_7.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 3 columns: +# Stat-33: energy added (zJ) +# Thermo.21: temperature (K) +# Anchor.19: torque (nn-nm) +# +# Time T.stat T.meter Anchor +# picosec Stat-33 Thermo.21 Anchor.19 +# + 0.0100 -0.00 260.64 0.00 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_7.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_7.xyzcmp new file mode 100755 index 000000000..b9b2970de --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_7.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.008721 0.094421 0.079265 +H 1.737014 0.070989 -0.000016 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_8.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_8.mmp new file mode 100755 index 000000000..002c6669b --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_8.mmp @@ -0,0 +1,25 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (02-thermo-anchor-stat-reordering-8) +info opengroup open = True +group (Group34) +info opengroup open = True +forward_ref (773598424) # stat (Stat-33) +forward_ref (773509728) # thermo (Thermo.21) +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) - +egroup (Group34) +ground (Anchor.19) (0, 0, 0) 1 +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) def +bond1 1 +stat (Stat-33) (0, 0, 153) (100) 2 2 2 +info leaf forwarded = 773598424 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +info leaf forwarded = 773509728 +egroup (02-thermo-anchor-stat-reordering-8) +end1 +group (Clipboard) +info opengroup open = True +egroup (Clipboard) +end molecular machine part 02-thermo-anchor-stat-reordering-8 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_8.trc b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_8.trc new file mode 100755 index 000000000..e6f14ac9d --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_8.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_02_thermo_anchor_stat_reordering_8.trc test_02_thermo_anchor_stat_reordering_8.mmp +# Date and Time: Wed Apr 19 10:53:24 2006 +# Input File: test_02_thermo_anchor_stat_reordering_8.mmp +# Output File: test_02_thermo_anchor_stat_reordering_8.xyz +# Trace File: test_02_thermo_anchor_stat_reordering_8.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 3 columns: +# Anchor.19: torque (nn-nm) +# Stat-33: energy added (zJ) +# Thermo.21: temperature (K) +# +# Time Anchor T.stat T.meter +# picosec Anchor.19 Stat-33 Thermo.21 +# + 0.0100 0.00 -0.01 249.12 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_8.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_8.xyzcmp new file mode 100755 index 000000000..9473a6ee9 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_02_thermo_anchor_stat_reordering_8.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.737051 0.071016 0.000022 +H 1.003067 0.009395 -0.056669 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_anchor_reordering.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_anchor_reordering.mmp new file mode 100755 index 000000000..3d285b63d --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_anchor_reordering.mmp @@ -0,0 +1,17 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (03-thermo-anchor-reordering) +info opengroup open = True +forward_ref (773509488) # ground (Anchor.19) +forward_ref (773509728) # thermo (Thermo.21) +mol (2-anchor) tub +atom 1 (1) (1737, 71, 0) - +ground (Anchor.19) (0, 0, 0) 1 +info leaf forwarded = 773509488 +mol (1-Thermo) tub +atom 2 (1) (993, 69, 0) - +bond1 1 +thermo (Thermo.21) (153, 0, 51) 2 2 2 +info leaf forwarded = 773509728 +egroup (03-thermo-anchor-reordering) +end molecular machine part 03-thermo-anchor-reordering diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_anchor_reordering.trc b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_anchor_reordering.trc new file mode 100755 index 000000000..6170fddfa --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_anchor_reordering.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_03_thermo_anchor_reordering.trc test_03_thermo_anchor_reordering.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_03_thermo_anchor_reordering.mmp +# Output File: test_03_thermo_anchor_reordering.xyz +# Trace File: test_03_thermo_anchor_reordering.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Anchor.19: torque (nn-nm) +# Thermo.21: temperature (K) +# +# Time Anchor T.meter +# picosec Anchor.19 Thermo.21 +# + 0.0100 0.00 363.32 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_anchor_reordering.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_anchor_reordering.xyzcmp new file mode 100755 index 000000000..f0106b78d --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_anchor_reordering.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H 1.737023 0.071015 0.000024 +H 0.997023 0.017033 -0.081026 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_1.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_1.mmp new file mode 100755 index 000000000..c26daf17d --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_1.mmp @@ -0,0 +1,83 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (03-thermo-rmotor-anchor-stat reordering-1) +info opengroup open = True +mol (chunk 1) - +atom 1 (6) (-1, 1519, 1246) - +atom 2 (6) (-1307, 756, 1259) - +bond1 1 +atom 3 (6) (-1297, -756, 1267) - +bond1 2 +atom 4 (6) (15, -1505, 1262) - +bond1 3 +atom 5 (6) (1320, -741, 1251) - +bond1 4 +atom 6 (6) (1312, 770, 1243) - +bond1 1 5 +atom 7 (6) (1303, 760, -1299) - +atom 8 (6) (-16, 1511, -1295) - +bond1 7 +atom 9 (6) (-1328, 745, -1283) - +bond1 8 +atom 10 (6) (-1319, -773, -1275) - +bond1 9 +atom 11 (6) (0, -1524, -1279) - +bond1 10 +atom 12 (6) (1312, -758, -1291) - +bond1 7 11 +atom 13 (1) (0, 2183, 2155) - +bond1 1 +atom 14 (1) (-1872, 1087, 2174) - +bond1 2 +atom 15 (1) (-1860, -1083, 2185) - +bond1 3 +atom 16 (1) (24, -2159, 2178) - +bond1 4 +atom 17 (1) (1897, -1063, 2163) - +bond1 5 +atom 18 (1) (1885, 1108, 2151) - +bond1 6 +atom 19 (1) (-26, 2135, -2179) - +bond1 8 +atom 20 (1) (1840, 1072, -2185) - +bond1 7 +atom 21 (1) (1852, -1074, -2174) - +bond1 12 +atom 22 (1) (-1879, 1051, -2163) - +bond1 9 +atom 23 (1) (-1867, -1094, -2151) - +bond1 10 +atom 24 (1) (-1, -2157, -2156) - +bond1 11 +mol (chunk 2) - +atom 25 (6) (-2082, 1185, -6) - +bond1 2 9 +atom 26 (6) (-14, 2394, -25) - +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) - +bond1 3 10 +atom 28 (6) (13, -2394, 0) - +bond1 4 11 +atom 29 (6) (2080, -1186, -18) - +bond1 5 12 +atom 30 (6) (2067, 1208, -30) - +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) - +bond1 25 26 +atom 32 (16) (-3453, -18, 208) - +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) - +bond1 27 28 +atom 34 (16) (1744, -2981, 185) - +bond1 28 29 +atom 35 (16) (3454, 19, 167) - +bond1 29 30 +atom 36 (16) (1710, 3000, 157) - +bond1 26 30 +thermo (Thermo-42) (153, 0, 51) 1 24 6 +ground (Anchor-44) (0, 0, 0) 8 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +egroup (03-thermo-rmotor-anchor-stat reordering-1) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_1.trc b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_1.trc new file mode 100755 index 000000000..15d795092 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_1.trc @@ -0,0 +1,32 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_03_thermo_rmotor_anchor_stat_reordering_1.trc test_03_thermo_rmotor_anchor_stat_reordering_1.mmp +# Date and Time: Wed Apr 19 10:53:28 2006 +# Input File: test_03_thermo_rmotor_anchor_stat_reordering_1.mmp +# Output File: test_03_thermo_rmotor_anchor_stat_reordering_1.xyz +# Trace File: test_03_thermo_rmotor_anchor_stat_reordering_1.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 36 +# +# 5 columns: +# Thermo-42: temperature (K) +# Anchor-44: torque (nn-nm) +# Rotary Motor--chunk2: speed (GHz) +# Rotary Motor--chunk2: torque (nn-nm) +# Stat- -chunk 2: energy added (zJ) +# +# Time T.meter Anchor speed torque T.stat +# picosec Thermo-42 Anchor-44 Rotary Motor--c Stat- -chunk 2 +# + 0.0100 254.47 0.00 0.908 0.369 -0.02 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_1.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_1.xyzcmp new file mode 100755 index 000000000..f5330d027 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_1.xyzcmp @@ -0,0 +1,38 @@ +36 +Frame 0, Iteration: 100 +C 0.006117 1.537654 1.225730 +C -1.345322 0.748929 1.228597 +C -1.300491 -0.772777 1.254978 +C -0.009133 -1.503234 1.285428 +C 1.366948 -0.743100 1.230227 +C 1.317206 0.771384 1.207537 +C 1.303087 0.741041 -1.277168 +C -0.016005 1.510991 -1.295010 +C -1.337456 0.741537 -1.295035 +C -1.316232 -0.791547 -1.238016 +C -0.002012 -1.529211 -1.250162 +C 1.303437 -0.785666 -1.275440 +H 0.025887 2.173581 2.119457 +H -1.835145 1.055147 2.166863 +H -1.825669 -1.030467 2.182147 +H -0.035106 -2.078639 2.218288 +H 1.993164 -0.991188 2.099780 +H 1.882247 1.072559 2.095953 +H -0.058921 2.114237 -2.207234 +H 1.907739 1.078112 -2.120112 +H 1.874179 -1.113567 -2.147026 +H -1.872648 0.983573 -2.224297 +H -1.794001 -1.123746 -2.163811 +H 0.007307 -2.131542 -2.162506 +C -2.041386 1.166265 0.001611 +C -0.008228 2.407278 -0.038607 +C -2.060771 -1.235188 0.011255 +C -0.015564 -2.386711 0.008068 +C 2.082524 -1.200968 -0.044758 +C 2.062902 1.236215 -0.039488 +S -1.747351 2.989145 0.157210 +S -3.457618 -0.024533 0.228590 +S -1.703077 -2.993831 0.204851 +S 1.751497 -2.981721 0.182774 +S 3.463722 0.015652 0.187192 +S 1.716084 3.036423 0.165511 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_2.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_2.mmp new file mode 100755 index 000000000..36a49cede --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_2.mmp @@ -0,0 +1,83 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (03-thermo-rmotor-anchor-stat reordering-1) +info opengroup open = True +mol (chunk 1) - +atom 1 (6) (-1, 1519, 1246) - +atom 2 (6) (-1307, 756, 1259) - +bond1 1 +atom 3 (6) (-1297, -756, 1267) - +bond1 2 +atom 4 (6) (15, -1505, 1262) - +bond1 3 +atom 5 (6) (1320, -741, 1251) - +bond1 4 +atom 6 (6) (1312, 770, 1243) - +bond1 1 5 +atom 7 (6) (1303, 760, -1299) - +atom 8 (6) (-16, 1511, -1295) - +bond1 7 +atom 9 (6) (-1328, 745, -1283) - +bond1 8 +atom 10 (6) (-1319, -773, -1275) - +bond1 9 +atom 11 (6) (0, -1524, -1279) - +bond1 10 +atom 12 (6) (1312, -758, -1291) - +bond1 7 11 +atom 13 (1) (0, 2183, 2155) - +bond1 1 +atom 14 (1) (-1872, 1087, 2174) - +bond1 2 +atom 15 (1) (-1860, -1083, 2185) - +bond1 3 +atom 16 (1) (24, -2159, 2178) - +bond1 4 +atom 17 (1) (1897, -1063, 2163) - +bond1 5 +atom 18 (1) (1885, 1108, 2151) - +bond1 6 +atom 19 (1) (-26, 2135, -2179) - +bond1 8 +atom 20 (1) (1840, 1072, -2185) - +bond1 7 +atom 21 (1) (1852, -1074, -2174) - +bond1 12 +atom 22 (1) (-1879, 1051, -2163) - +bond1 9 +atom 23 (1) (-1867, -1094, -2151) - +bond1 10 +atom 24 (1) (-1, -2157, -2156) - +bond1 11 +mol (chunk 2) - +atom 25 (6) (-2082, 1185, -6) - +bond1 2 9 +atom 26 (6) (-14, 2394, -25) - +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) - +bond1 3 10 +atom 28 (6) (13, -2394, 0) - +bond1 4 11 +atom 29 (6) (2080, -1186, -18) - +bond1 5 12 +atom 30 (6) (2067, 1208, -30) - +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) - +bond1 25 26 +atom 32 (16) (-3453, -18, 208) - +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) - +bond1 27 28 +atom 34 (16) (1744, -2981, 185) - +bond1 28 29 +atom 35 (16) (3454, 19, 167) - +bond1 29 30 +atom 36 (16) (1710, 3000, 157) - +bond1 26 30 +thermo (Thermo-42) (153, 0, 51) 1 24 6 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +ground (Anchor-44) (0, 0, 0) 8 +egroup (03-thermo-rmotor-anchor-stat reordering-1) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_2.trc b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_2.trc new file mode 100755 index 000000000..27d418cfc --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_2.trc @@ -0,0 +1,32 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_03_thermo_rmotor_anchor_stat_reordering_2.trc test_03_thermo_rmotor_anchor_stat_reordering_2.mmp +# Date and Time: Wed Apr 19 10:53:28 2006 +# Input File: test_03_thermo_rmotor_anchor_stat_reordering_2.mmp +# Output File: test_03_thermo_rmotor_anchor_stat_reordering_2.xyz +# Trace File: test_03_thermo_rmotor_anchor_stat_reordering_2.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 36 +# +# 5 columns: +# Thermo-42: temperature (K) +# Stat- -chunk 2: energy added (zJ) +# Rotary Motor--chunk2: speed (GHz) +# Rotary Motor--chunk2: torque (nn-nm) +# Anchor-44: torque (nn-nm) +# +# Time T.meter T.stat speed torque Anchor +# picosec Thermo-42 Stat- -chunk 2 Rotary Motor--c Anchor-44 +# + 0.0100 254.47 -0.02 0.908 0.369 0.00 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_2.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_2.xyzcmp new file mode 100755 index 000000000..f5330d027 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_2.xyzcmp @@ -0,0 +1,38 @@ +36 +Frame 0, Iteration: 100 +C 0.006117 1.537654 1.225730 +C -1.345322 0.748929 1.228597 +C -1.300491 -0.772777 1.254978 +C -0.009133 -1.503234 1.285428 +C 1.366948 -0.743100 1.230227 +C 1.317206 0.771384 1.207537 +C 1.303087 0.741041 -1.277168 +C -0.016005 1.510991 -1.295010 +C -1.337456 0.741537 -1.295035 +C -1.316232 -0.791547 -1.238016 +C -0.002012 -1.529211 -1.250162 +C 1.303437 -0.785666 -1.275440 +H 0.025887 2.173581 2.119457 +H -1.835145 1.055147 2.166863 +H -1.825669 -1.030467 2.182147 +H -0.035106 -2.078639 2.218288 +H 1.993164 -0.991188 2.099780 +H 1.882247 1.072559 2.095953 +H -0.058921 2.114237 -2.207234 +H 1.907739 1.078112 -2.120112 +H 1.874179 -1.113567 -2.147026 +H -1.872648 0.983573 -2.224297 +H -1.794001 -1.123746 -2.163811 +H 0.007307 -2.131542 -2.162506 +C -2.041386 1.166265 0.001611 +C -0.008228 2.407278 -0.038607 +C -2.060771 -1.235188 0.011255 +C -0.015564 -2.386711 0.008068 +C 2.082524 -1.200968 -0.044758 +C 2.062902 1.236215 -0.039488 +S -1.747351 2.989145 0.157210 +S -3.457618 -0.024533 0.228590 +S -1.703077 -2.993831 0.204851 +S 1.751497 -2.981721 0.182774 +S 3.463722 0.015652 0.187192 +S 1.716084 3.036423 0.165511 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_3.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_3.mmp new file mode 100755 index 000000000..d45e0a134 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_3.mmp @@ -0,0 +1,83 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (03-thermo-rmotor-anchor-stat reordering-1) +info opengroup open = True +mol (chunk 1) - +atom 1 (6) (-1, 1519, 1246) - +atom 2 (6) (-1307, 756, 1259) - +bond1 1 +atom 3 (6) (-1297, -756, 1267) - +bond1 2 +atom 4 (6) (15, -1505, 1262) - +bond1 3 +atom 5 (6) (1320, -741, 1251) - +bond1 4 +atom 6 (6) (1312, 770, 1243) - +bond1 1 5 +atom 7 (6) (1303, 760, -1299) - +atom 8 (6) (-16, 1511, -1295) - +bond1 7 +atom 9 (6) (-1328, 745, -1283) - +bond1 8 +atom 10 (6) (-1319, -773, -1275) - +bond1 9 +atom 11 (6) (0, -1524, -1279) - +bond1 10 +atom 12 (6) (1312, -758, -1291) - +bond1 7 11 +atom 13 (1) (0, 2183, 2155) - +bond1 1 +atom 14 (1) (-1872, 1087, 2174) - +bond1 2 +atom 15 (1) (-1860, -1083, 2185) - +bond1 3 +atom 16 (1) (24, -2159, 2178) - +bond1 4 +atom 17 (1) (1897, -1063, 2163) - +bond1 5 +atom 18 (1) (1885, 1108, 2151) - +bond1 6 +atom 19 (1) (-26, 2135, -2179) - +bond1 8 +atom 20 (1) (1840, 1072, -2185) - +bond1 7 +atom 21 (1) (1852, -1074, -2174) - +bond1 12 +atom 22 (1) (-1879, 1051, -2163) - +bond1 9 +atom 23 (1) (-1867, -1094, -2151) - +bond1 10 +atom 24 (1) (-1, -2157, -2156) - +bond1 11 +mol (chunk 2) - +atom 25 (6) (-2082, 1185, -6) - +bond1 2 9 +atom 26 (6) (-14, 2394, -25) - +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) - +bond1 3 10 +atom 28 (6) (13, -2394, 0) - +bond1 4 11 +atom 29 (6) (2080, -1186, -18) - +bond1 5 12 +atom 30 (6) (2067, 1208, -30) - +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) - +bond1 25 26 +atom 32 (16) (-3453, -18, 208) - +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) - +bond1 27 28 +atom 34 (16) (1744, -2981, 185) - +bond1 28 29 +atom 35 (16) (3454, 19, 167) - +bond1 29 30 +atom 36 (16) (1710, 3000, 157) - +bond1 26 30 +ground (Anchor-44) (0, 0, 0) 8 +thermo (Thermo-42) (153, 0, 51) 1 24 6 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +egroup (03-thermo-rmotor-anchor-stat reordering-1) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_3.trc b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_3.trc new file mode 100755 index 000000000..71cad88ce --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_3.trc @@ -0,0 +1,32 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_03_thermo_rmotor_anchor_stat_reordering_3.trc test_03_thermo_rmotor_anchor_stat_reordering_3.mmp +# Date and Time: Wed Apr 19 10:53:28 2006 +# Input File: test_03_thermo_rmotor_anchor_stat_reordering_3.mmp +# Output File: test_03_thermo_rmotor_anchor_stat_reordering_3.xyz +# Trace File: test_03_thermo_rmotor_anchor_stat_reordering_3.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 36 +# +# 5 columns: +# Anchor-44: torque (nn-nm) +# Thermo-42: temperature (K) +# Rotary Motor--chunk2: speed (GHz) +# Rotary Motor--chunk2: torque (nn-nm) +# Stat- -chunk 2: energy added (zJ) +# +# Time Anchor T.meter speed torque T.stat +# picosec Anchor-44 Thermo-42 Rotary Motor--c Stat- -chunk 2 +# + 0.0100 0.00 254.47 0.908 0.369 -0.02 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_3.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_3.xyzcmp new file mode 100755 index 000000000..f5330d027 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_3.xyzcmp @@ -0,0 +1,38 @@ +36 +Frame 0, Iteration: 100 +C 0.006117 1.537654 1.225730 +C -1.345322 0.748929 1.228597 +C -1.300491 -0.772777 1.254978 +C -0.009133 -1.503234 1.285428 +C 1.366948 -0.743100 1.230227 +C 1.317206 0.771384 1.207537 +C 1.303087 0.741041 -1.277168 +C -0.016005 1.510991 -1.295010 +C -1.337456 0.741537 -1.295035 +C -1.316232 -0.791547 -1.238016 +C -0.002012 -1.529211 -1.250162 +C 1.303437 -0.785666 -1.275440 +H 0.025887 2.173581 2.119457 +H -1.835145 1.055147 2.166863 +H -1.825669 -1.030467 2.182147 +H -0.035106 -2.078639 2.218288 +H 1.993164 -0.991188 2.099780 +H 1.882247 1.072559 2.095953 +H -0.058921 2.114237 -2.207234 +H 1.907739 1.078112 -2.120112 +H 1.874179 -1.113567 -2.147026 +H -1.872648 0.983573 -2.224297 +H -1.794001 -1.123746 -2.163811 +H 0.007307 -2.131542 -2.162506 +C -2.041386 1.166265 0.001611 +C -0.008228 2.407278 -0.038607 +C -2.060771 -1.235188 0.011255 +C -0.015564 -2.386711 0.008068 +C 2.082524 -1.200968 -0.044758 +C 2.062902 1.236215 -0.039488 +S -1.747351 2.989145 0.157210 +S -3.457618 -0.024533 0.228590 +S -1.703077 -2.993831 0.204851 +S 1.751497 -2.981721 0.182774 +S 3.463722 0.015652 0.187192 +S 1.716084 3.036423 0.165511 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_4.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_4.mmp new file mode 100755 index 000000000..d3a178c70 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_4.mmp @@ -0,0 +1,83 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (03-thermo-rmotor-anchor-stat reordering-3) +info opengroup open = True +mol (chunk 1) - +atom 1 (6) (-1, 1519, 1246) - +atom 2 (6) (-1307, 756, 1259) - +bond1 1 +atom 3 (6) (-1297, -756, 1267) - +bond1 2 +atom 4 (6) (15, -1505, 1262) - +bond1 3 +atom 5 (6) (1320, -741, 1251) - +bond1 4 +atom 6 (6) (1312, 770, 1243) - +bond1 1 5 +atom 7 (6) (1303, 760, -1299) - +atom 8 (6) (-16, 1511, -1295) - +bond1 7 +atom 9 (6) (-1328, 745, -1283) - +bond1 8 +atom 10 (6) (-1319, -773, -1275) - +bond1 9 +atom 11 (6) (0, -1524, -1279) - +bond1 10 +atom 12 (6) (1312, -758, -1291) - +bond1 7 11 +atom 13 (1) (0, 2183, 2155) - +bond1 1 +atom 14 (1) (-1872, 1087, 2174) - +bond1 2 +atom 15 (1) (-1860, -1083, 2185) - +bond1 3 +atom 16 (1) (24, -2159, 2178) - +bond1 4 +atom 17 (1) (1897, -1063, 2163) - +bond1 5 +atom 18 (1) (1885, 1108, 2151) - +bond1 6 +atom 19 (1) (-26, 2135, -2179) - +bond1 8 +atom 20 (1) (1840, 1072, -2185) - +bond1 7 +atom 21 (1) (1852, -1074, -2174) - +bond1 12 +atom 22 (1) (-1879, 1051, -2163) - +bond1 9 +atom 23 (1) (-1867, -1094, -2151) - +bond1 10 +atom 24 (1) (-1, -2157, -2156) - +bond1 11 +mol (chunk 2) - +atom 25 (6) (-2082, 1185, -6) - +bond1 2 9 +atom 26 (6) (-14, 2394, -25) - +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) - +bond1 3 10 +atom 28 (6) (13, -2394, 0) - +bond1 4 11 +atom 29 (6) (2080, -1186, -18) - +bond1 5 12 +atom 30 (6) (2067, 1208, -30) - +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) - +bond1 25 26 +atom 32 (16) (-3453, -18, 208) - +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) - +bond1 27 28 +atom 34 (16) (1744, -2981, 185) - +bond1 28 29 +atom 35 (16) (3454, 19, 167) - +bond1 29 30 +atom 36 (16) (1710, 3000, 157) - +bond1 26 30 +ground (Anchor-44) (0, 0, 0) 8 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +thermo (Thermo-42) (153, 0, 51) 1 24 6 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +egroup (03-thermo-rmotor-anchor-stat reordering-3) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-3 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_4.trc b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_4.trc new file mode 100755 index 000000000..8c798fc6f --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_4.trc @@ -0,0 +1,32 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_03_thermo_rmotor_anchor_stat_reordering_4.trc test_03_thermo_rmotor_anchor_stat_reordering_4.mmp +# Date and Time: Wed Apr 19 10:53:28 2006 +# Input File: test_03_thermo_rmotor_anchor_stat_reordering_4.mmp +# Output File: test_03_thermo_rmotor_anchor_stat_reordering_4.xyz +# Trace File: test_03_thermo_rmotor_anchor_stat_reordering_4.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 36 +# +# 5 columns: +# Anchor-44: torque (nn-nm) +# Rotary Motor--chunk2: speed (GHz) +# Rotary Motor--chunk2: torque (nn-nm) +# Thermo-42: temperature (K) +# Stat- -chunk 2: energy added (zJ) +# +# Time Anchor speed torque T.meter T.stat +# picosec Anchor-44 Rotary Motor--c Thermo-42 Stat- -chunk 2 +# + 0.0100 0.00 0.908 0.369 254.47 -0.02 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_4.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_4.xyzcmp new file mode 100755 index 000000000..f5330d027 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_4.xyzcmp @@ -0,0 +1,38 @@ +36 +Frame 0, Iteration: 100 +C 0.006117 1.537654 1.225730 +C -1.345322 0.748929 1.228597 +C -1.300491 -0.772777 1.254978 +C -0.009133 -1.503234 1.285428 +C 1.366948 -0.743100 1.230227 +C 1.317206 0.771384 1.207537 +C 1.303087 0.741041 -1.277168 +C -0.016005 1.510991 -1.295010 +C -1.337456 0.741537 -1.295035 +C -1.316232 -0.791547 -1.238016 +C -0.002012 -1.529211 -1.250162 +C 1.303437 -0.785666 -1.275440 +H 0.025887 2.173581 2.119457 +H -1.835145 1.055147 2.166863 +H -1.825669 -1.030467 2.182147 +H -0.035106 -2.078639 2.218288 +H 1.993164 -0.991188 2.099780 +H 1.882247 1.072559 2.095953 +H -0.058921 2.114237 -2.207234 +H 1.907739 1.078112 -2.120112 +H 1.874179 -1.113567 -2.147026 +H -1.872648 0.983573 -2.224297 +H -1.794001 -1.123746 -2.163811 +H 0.007307 -2.131542 -2.162506 +C -2.041386 1.166265 0.001611 +C -0.008228 2.407278 -0.038607 +C -2.060771 -1.235188 0.011255 +C -0.015564 -2.386711 0.008068 +C 2.082524 -1.200968 -0.044758 +C 2.062902 1.236215 -0.039488 +S -1.747351 2.989145 0.157210 +S -3.457618 -0.024533 0.228590 +S -1.703077 -2.993831 0.204851 +S 1.751497 -2.981721 0.182774 +S 3.463722 0.015652 0.187192 +S 1.716084 3.036423 0.165511 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_5.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_5.mmp new file mode 100755 index 000000000..3983a11c4 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_5.mmp @@ -0,0 +1,91 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (03-thermo-rmotor-anchor-stat reordering-4) +info opengroup open = True +forward_ref (786022768) # ground (Anchor-44) +forward_ref (786022688) # rmotor (Rotary Motor--chunk2) +forward_ref (786022928) # stat (Stat- -chunk 2) +forward_ref (786022728) # thermo (Thermo-42) +mol (chunk 1) - +atom 1 (6) (-1, 1519, 1246) - +atom 2 (6) (-1307, 756, 1259) - +bond1 1 +atom 3 (6) (-1297, -756, 1267) - +bond1 2 +atom 4 (6) (15, -1505, 1262) - +bond1 3 +atom 5 (6) (1320, -741, 1251) - +bond1 4 +atom 6 (6) (1312, 770, 1243) - +bond1 1 5 +atom 7 (6) (1303, 760, -1299) - +atom 8 (6) (-16, 1511, -1295) - +bond1 7 +atom 9 (6) (-1328, 745, -1283) - +bond1 8 +atom 10 (6) (-1319, -773, -1275) - +bond1 9 +atom 11 (6) (0, -1524, -1279) - +bond1 10 +atom 12 (6) (1312, -758, -1291) - +bond1 7 11 +atom 13 (1) (0, 2183, 2155) - +bond1 1 +atom 14 (1) (-1872, 1087, 2174) - +bond1 2 +atom 15 (1) (-1860, -1083, 2185) - +bond1 3 +atom 16 (1) (24, -2159, 2178) - +bond1 4 +atom 17 (1) (1897, -1063, 2163) - +bond1 5 +atom 18 (1) (1885, 1108, 2151) - +bond1 6 +atom 19 (1) (-26, 2135, -2179) - +bond1 8 +atom 20 (1) (1840, 1072, -2185) - +bond1 7 +atom 21 (1) (1852, -1074, -2174) - +bond1 12 +atom 22 (1) (-1879, 1051, -2163) - +bond1 9 +atom 23 (1) (-1867, -1094, -2151) - +bond1 10 +atom 24 (1) (-1, -2157, -2156) - +bond1 11 +ground (Anchor-44) (0, 0, 0) 8 +info leaf forwarded = 786022768 +thermo (Thermo-42) (153, 0, 51) 1 24 6 +info leaf forwarded = 786022728 +mol (chunk 2) - +atom 25 (6) (-2082, 1185, -6) - +bond1 2 9 +atom 26 (6) (-14, 2394, -25) - +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) - +bond1 3 10 +atom 28 (6) (13, -2394, 0) - +bond1 4 11 +atom 29 (6) (2080, -1186, -18) - +bond1 5 12 +atom 30 (6) (2067, 1208, -30) - +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) - +bond1 25 26 +atom 32 (16) (-3453, -18, 208) - +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) - +bond1 27 28 +atom 34 (16) (1744, -2981, 185) - +bond1 28 29 +atom 35 (16) (3454, 19, 167) - +bond1 29 30 +atom 36 (16) (1710, 3000, 157) - +bond1 26 30 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +info leaf forwarded = 786022688 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +info leaf forwarded = 786022928 +egroup (03-thermo-rmotor-anchor-stat reordering-4) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-4 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_5.trc b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_5.trc new file mode 100755 index 000000000..1d3a10663 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_5.trc @@ -0,0 +1,32 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_03_thermo_rmotor_anchor_stat_reordering_5.trc test_03_thermo_rmotor_anchor_stat_reordering_5.mmp +# Date and Time: Wed Apr 19 10:53:29 2006 +# Input File: test_03_thermo_rmotor_anchor_stat_reordering_5.mmp +# Output File: test_03_thermo_rmotor_anchor_stat_reordering_5.xyz +# Trace File: test_03_thermo_rmotor_anchor_stat_reordering_5.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 36 +# +# 5 columns: +# Anchor-44: torque (nn-nm) +# Thermo-42: temperature (K) +# Rotary Motor--chunk2: speed (GHz) +# Rotary Motor--chunk2: torque (nn-nm) +# Stat- -chunk 2: energy added (zJ) +# +# Time Anchor T.meter speed torque T.stat +# picosec Anchor-44 Thermo-42 Rotary Motor--c Stat- -chunk 2 +# + 0.0100 0.00 254.47 0.908 0.369 -0.02 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_5.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_5.xyzcmp new file mode 100755 index 000000000..f5330d027 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_5.xyzcmp @@ -0,0 +1,38 @@ +36 +Frame 0, Iteration: 100 +C 0.006117 1.537654 1.225730 +C -1.345322 0.748929 1.228597 +C -1.300491 -0.772777 1.254978 +C -0.009133 -1.503234 1.285428 +C 1.366948 -0.743100 1.230227 +C 1.317206 0.771384 1.207537 +C 1.303087 0.741041 -1.277168 +C -0.016005 1.510991 -1.295010 +C -1.337456 0.741537 -1.295035 +C -1.316232 -0.791547 -1.238016 +C -0.002012 -1.529211 -1.250162 +C 1.303437 -0.785666 -1.275440 +H 0.025887 2.173581 2.119457 +H -1.835145 1.055147 2.166863 +H -1.825669 -1.030467 2.182147 +H -0.035106 -2.078639 2.218288 +H 1.993164 -0.991188 2.099780 +H 1.882247 1.072559 2.095953 +H -0.058921 2.114237 -2.207234 +H 1.907739 1.078112 -2.120112 +H 1.874179 -1.113567 -2.147026 +H -1.872648 0.983573 -2.224297 +H -1.794001 -1.123746 -2.163811 +H 0.007307 -2.131542 -2.162506 +C -2.041386 1.166265 0.001611 +C -0.008228 2.407278 -0.038607 +C -2.060771 -1.235188 0.011255 +C -0.015564 -2.386711 0.008068 +C 2.082524 -1.200968 -0.044758 +C 2.062902 1.236215 -0.039488 +S -1.747351 2.989145 0.157210 +S -3.457618 -0.024533 0.228590 +S -1.703077 -2.993831 0.204851 +S 1.751497 -2.981721 0.182774 +S 3.463722 0.015652 0.187192 +S 1.716084 3.036423 0.165511 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_6.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_6.mmp new file mode 100755 index 000000000..89281a280 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_6.mmp @@ -0,0 +1,89 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (03-thermo-rmotor-anchor-stat reordering-5) +info opengroup open = True +forward_ref (786022768) # ground (Anchor-44) +forward_ref (786022928) # stat (Stat- -chunk 2) +mol (chunk 1) - +atom 1 (6) (-1, 1519, 1246) - +atom 2 (6) (-1307, 756, 1259) - +bond1 1 +atom 3 (6) (-1297, -756, 1267) - +bond1 2 +atom 4 (6) (15, -1505, 1262) - +bond1 3 +atom 5 (6) (1320, -741, 1251) - +bond1 4 +atom 6 (6) (1312, 770, 1243) - +bond1 1 5 +atom 7 (6) (1303, 760, -1299) - +atom 8 (6) (-16, 1511, -1295) - +bond1 7 +atom 9 (6) (-1328, 745, -1283) - +bond1 8 +atom 10 (6) (-1319, -773, -1275) - +bond1 9 +atom 11 (6) (0, -1524, -1279) - +bond1 10 +atom 12 (6) (1312, -758, -1291) - +bond1 7 11 +atom 13 (1) (0, 2183, 2155) - +bond1 1 +atom 14 (1) (-1872, 1087, 2174) - +bond1 2 +atom 15 (1) (-1860, -1083, 2185) - +bond1 3 +atom 16 (1) (24, -2159, 2178) - +bond1 4 +atom 17 (1) (1897, -1063, 2163) - +bond1 5 +atom 18 (1) (1885, 1108, 2151) - +bond1 6 +atom 19 (1) (-26, 2135, -2179) - +bond1 8 +atom 20 (1) (1840, 1072, -2185) - +bond1 7 +atom 21 (1) (1852, -1074, -2174) - +bond1 12 +atom 22 (1) (-1879, 1051, -2163) - +bond1 9 +atom 23 (1) (-1867, -1094, -2151) - +bond1 10 +atom 24 (1) (-1, -2157, -2156) - +bond1 11 +ground (Anchor-44) (0, 0, 0) 8 +info leaf forwarded = 786022768 +forward_ref (786022688) # rmotor (Rotary Motor--chunk2) +thermo (Thermo-42) (153, 0, 51) 1 24 6 +mol (chunk 2) - +atom 25 (6) (-2082, 1185, -6) - +bond1 2 9 +atom 26 (6) (-14, 2394, -25) - +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) - +bond1 3 10 +atom 28 (6) (13, -2394, 0) - +bond1 4 11 +atom 29 (6) (2080, -1186, -18) - +bond1 5 12 +atom 30 (6) (2067, 1208, -30) - +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) - +bond1 25 26 +atom 32 (16) (-3453, -18, 208) - +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) - +bond1 27 28 +atom 34 (16) (1744, -2981, 185) - +bond1 28 29 +atom 35 (16) (3454, 19, 167) - +bond1 29 30 +atom 36 (16) (1710, 3000, 157) - +bond1 26 30 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +info leaf forwarded = 786022928 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +info leaf forwarded = 786022688 +egroup (03-thermo-rmotor-anchor-stat reordering-5) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-5 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_6.trc b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_6.trc new file mode 100755 index 000000000..4d3cb43db --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_6.trc @@ -0,0 +1,32 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_03_thermo_rmotor_anchor_stat_reordering_6.trc test_03_thermo_rmotor_anchor_stat_reordering_6.mmp +# Date and Time: Wed Apr 19 10:53:29 2006 +# Input File: test_03_thermo_rmotor_anchor_stat_reordering_6.mmp +# Output File: test_03_thermo_rmotor_anchor_stat_reordering_6.xyz +# Trace File: test_03_thermo_rmotor_anchor_stat_reordering_6.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 36 +# +# 5 columns: +# Anchor-44: torque (nn-nm) +# Thermo-42: temperature (K) +# Stat- -chunk 2: energy added (zJ) +# Rotary Motor--chunk2: speed (GHz) +# Rotary Motor--chunk2: torque (nn-nm) +# +# Time Anchor T.meter T.stat speed torque +# picosec Anchor-44 Thermo-42 Stat- -chunk 2 Rotary Motor--c +# + 0.0100 0.00 254.47 -0.02 0.908 0.369 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_6.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_6.xyzcmp new file mode 100755 index 000000000..f5330d027 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_6.xyzcmp @@ -0,0 +1,38 @@ +36 +Frame 0, Iteration: 100 +C 0.006117 1.537654 1.225730 +C -1.345322 0.748929 1.228597 +C -1.300491 -0.772777 1.254978 +C -0.009133 -1.503234 1.285428 +C 1.366948 -0.743100 1.230227 +C 1.317206 0.771384 1.207537 +C 1.303087 0.741041 -1.277168 +C -0.016005 1.510991 -1.295010 +C -1.337456 0.741537 -1.295035 +C -1.316232 -0.791547 -1.238016 +C -0.002012 -1.529211 -1.250162 +C 1.303437 -0.785666 -1.275440 +H 0.025887 2.173581 2.119457 +H -1.835145 1.055147 2.166863 +H -1.825669 -1.030467 2.182147 +H -0.035106 -2.078639 2.218288 +H 1.993164 -0.991188 2.099780 +H 1.882247 1.072559 2.095953 +H -0.058921 2.114237 -2.207234 +H 1.907739 1.078112 -2.120112 +H 1.874179 -1.113567 -2.147026 +H -1.872648 0.983573 -2.224297 +H -1.794001 -1.123746 -2.163811 +H 0.007307 -2.131542 -2.162506 +C -2.041386 1.166265 0.001611 +C -0.008228 2.407278 -0.038607 +C -2.060771 -1.235188 0.011255 +C -0.015564 -2.386711 0.008068 +C 2.082524 -1.200968 -0.044758 +C 2.062902 1.236215 -0.039488 +S -1.747351 2.989145 0.157210 +S -3.457618 -0.024533 0.228590 +S -1.703077 -2.993831 0.204851 +S 1.751497 -2.981721 0.182774 +S 3.463722 0.015652 0.187192 +S 1.716084 3.036423 0.165511 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_7.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_7.mmp new file mode 100755 index 000000000..e8f64e702 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_7.mmp @@ -0,0 +1,99 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (03-thermo-rmotor-anchor-stat reordering-6) +info opengroup open = True +group (Group52) +info opengroup open = True +forward_ref (786022768) # ground (Anchor-44) +group (Group53) +info opengroup open = True +forward_ref (786022928) # stat (Stat- -chunk 2) +mol (chunk 1) - +atom 1 (6) (-1, 1519, 1246) - +atom 2 (6) (-1307, 756, 1259) - +bond1 1 +atom 3 (6) (-1297, -756, 1267) - +bond1 2 +atom 4 (6) (15, -1505, 1262) - +bond1 3 +atom 5 (6) (1320, -741, 1251) - +bond1 4 +atom 6 (6) (1312, 770, 1243) - +bond1 1 5 +atom 7 (6) (1303, 760, -1299) - +atom 8 (6) (-16, 1511, -1295) - +bond1 7 +atom 9 (6) (-1328, 745, -1283) - +bond1 8 +atom 10 (6) (-1319, -773, -1275) - +bond1 9 +atom 11 (6) (0, -1524, -1279) - +bond1 10 +atom 12 (6) (1312, -758, -1291) - +bond1 7 11 +atom 13 (1) (0, 2183, 2155) - +bond1 1 +atom 14 (1) (-1872, 1087, 2174) - +bond1 2 +atom 15 (1) (-1860, -1083, 2185) - +bond1 3 +atom 16 (1) (24, -2159, 2178) - +bond1 4 +atom 17 (1) (1897, -1063, 2163) - +bond1 5 +atom 18 (1) (1885, 1108, 2151) - +bond1 6 +atom 19 (1) (-26, 2135, -2179) - +bond1 8 +atom 20 (1) (1840, 1072, -2185) - +bond1 7 +atom 21 (1) (1852, -1074, -2174) - +bond1 12 +atom 22 (1) (-1879, 1051, -2163) - +bond1 9 +atom 23 (1) (-1867, -1094, -2151) - +bond1 10 +atom 24 (1) (-1, -2157, -2156) - +bond1 11 +ground (Anchor-44) (0, 0, 0) 8 +info leaf forwarded = 786022768 +egroup (Group53) +egroup (Group52) +forward_ref (786022688) # rmotor (Rotary Motor--chunk2) +thermo (Thermo-42) (153, 0, 51) 1 24 6 +mol (chunk 2) def +atom 25 (6) (-2082, 1185, -6) def +bond1 2 9 +atom 26 (6) (-14, 2394, -25) def +bond1 1 8 +atom 27 (6) (-2067, -1208, 6) def +bond1 3 10 +atom 28 (6) (13, -2394, 0) def +bond1 4 11 +atom 29 (6) (2080, -1186, -18) def +bond1 5 12 +atom 30 (6) (2067, 1208, -30) def +bond1 6 7 +atom 31 (16) (-1742, 2982, 178) def +bond1 25 26 +atom 32 (16) (-3453, -18, 208) def +bond1 25 27 +atom 33 (16) (-1710, -3000, 205) def +bond1 27 28 +atom 34 (16) (1744, -2981, 185) def +bond1 28 29 +atom 35 (16) (3454, 19, 167) def +bond1 29 30 +atom 36 (16) (1710, 3000, 157) def +bond1 26 30 +stat (Stat- -chunk 2) (0, 0, 153) (240) 25 36 26 +info leaf forwarded = 786022928 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 25 26 27 28 29 30 +info leaf forwarded = 786022688 +egroup (03-thermo-rmotor-anchor-stat reordering-6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-6 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_7.trc b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_7.trc new file mode 100755 index 000000000..191ee4c4c --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_7.trc @@ -0,0 +1,32 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_03_thermo_rmotor_anchor_stat_reordering_7.trc test_03_thermo_rmotor_anchor_stat_reordering_7.mmp +# Date and Time: Wed Apr 19 10:53:29 2006 +# Input File: test_03_thermo_rmotor_anchor_stat_reordering_7.mmp +# Output File: test_03_thermo_rmotor_anchor_stat_reordering_7.xyz +# Trace File: test_03_thermo_rmotor_anchor_stat_reordering_7.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 36 +# +# 5 columns: +# Anchor-44: torque (nn-nm) +# Thermo-42: temperature (K) +# Stat- -chunk 2: energy added (zJ) +# Rotary Motor--chunk2: speed (GHz) +# Rotary Motor--chunk2: torque (nn-nm) +# +# Time Anchor T.meter T.stat speed torque +# picosec Anchor-44 Thermo-42 Stat- -chunk 2 Rotary Motor--c +# + 0.0100 0.00 254.47 -0.02 0.908 0.369 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_7.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_7.xyzcmp new file mode 100755 index 000000000..f5330d027 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_7.xyzcmp @@ -0,0 +1,38 @@ +36 +Frame 0, Iteration: 100 +C 0.006117 1.537654 1.225730 +C -1.345322 0.748929 1.228597 +C -1.300491 -0.772777 1.254978 +C -0.009133 -1.503234 1.285428 +C 1.366948 -0.743100 1.230227 +C 1.317206 0.771384 1.207537 +C 1.303087 0.741041 -1.277168 +C -0.016005 1.510991 -1.295010 +C -1.337456 0.741537 -1.295035 +C -1.316232 -0.791547 -1.238016 +C -0.002012 -1.529211 -1.250162 +C 1.303437 -0.785666 -1.275440 +H 0.025887 2.173581 2.119457 +H -1.835145 1.055147 2.166863 +H -1.825669 -1.030467 2.182147 +H -0.035106 -2.078639 2.218288 +H 1.993164 -0.991188 2.099780 +H 1.882247 1.072559 2.095953 +H -0.058921 2.114237 -2.207234 +H 1.907739 1.078112 -2.120112 +H 1.874179 -1.113567 -2.147026 +H -1.872648 0.983573 -2.224297 +H -1.794001 -1.123746 -2.163811 +H 0.007307 -2.131542 -2.162506 +C -2.041386 1.166265 0.001611 +C -0.008228 2.407278 -0.038607 +C -2.060771 -1.235188 0.011255 +C -0.015564 -2.386711 0.008068 +C 2.082524 -1.200968 -0.044758 +C 2.062902 1.236215 -0.039488 +S -1.747351 2.989145 0.157210 +S -3.457618 -0.024533 0.228590 +S -1.703077 -2.993831 0.204851 +S 1.751497 -2.981721 0.182774 +S 3.463722 0.015652 0.187192 +S 1.716084 3.036423 0.165511 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_8.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_8.mmp new file mode 100755 index 000000000..e5b7160b2 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_8.mmp @@ -0,0 +1,97 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (03-thermo-rmotor-anchor-stat reordering-7) +info opengroup open = True +group (Group52) +info opengroup open = True +forward_ref (786022768) # ground (Anchor-44) +group (Group53) +info opengroup open = True +forward_ref (786022928) # stat (Stat- -chunk 2) +forward_ref (786022728) # thermo (Thermo-42) +egroup (Group53) +egroup (Group52) +forward_ref (786022688) # rmotor (Rotary Motor--chunk2) +mol (chunk 2) def +atom 1 (6) (-2082, 1185, -6) def +atom 2 (6) (-14, 2394, -25) def +atom 3 (6) (-2067, -1208, 6) def +atom 4 (6) (13, -2394, 0) def +atom 5 (6) (2080, -1186, -18) def +atom 6 (6) (2067, 1208, -30) def +atom 7 (16) (-1742, 2982, 178) def +bond1 1 2 +atom 8 (16) (-3453, -18, 208) def +bond1 1 3 +atom 9 (16) (-1710, -3000, 205) def +bond1 3 4 +atom 10 (16) (1744, -2981, 185) def +bond1 4 5 +atom 11 (16) (3454, 19, 167) def +bond1 5 6 +atom 12 (16) (1710, 3000, 157) def +bond1 2 6 +stat (Stat- -chunk 2) (0, 0, 153) (240) 1 12 2 +info leaf forwarded = 786022928 +rmotor (Rotary Motor--chunk2) (85, 170, 255) 1.00 1.50 (0, 0, -12) (-5, -3, -999) 5.00 0.50 0.10 +shaft 1 2 3 4 5 6 +info leaf forwarded = 786022688 +mol (chunk 1) def +atom 13 (6) (-1, 1519, 1246) def +bond1 2 +atom 14 (6) (-1307, 756, 1259) def +bond1 13 1 +atom 15 (6) (-1297, -756, 1267) def +bond1 14 3 +atom 16 (6) (15, -1505, 1262) def +bond1 15 4 +atom 17 (6) (1320, -741, 1251) def +bond1 16 5 +atom 18 (6) (1312, 770, 1243) def +bond1 13 17 6 +atom 19 (6) (1303, 760, -1299) def +bond1 6 +atom 20 (6) (-16, 1511, -1295) def +bond1 19 2 +atom 21 (6) (-1328, 745, -1283) def +bond1 20 1 +atom 22 (6) (-1319, -773, -1275) def +bond1 21 3 +atom 23 (6) (0, -1524, -1279) def +bond1 22 4 +atom 24 (6) (1312, -758, -1291) def +bond1 19 23 5 +atom 25 (1) (0, 2183, 2155) def +bond1 13 +atom 26 (1) (-1872, 1087, 2174) def +bond1 14 +atom 27 (1) (-1860, -1083, 2185) def +bond1 15 +atom 28 (1) (24, -2159, 2178) def +bond1 16 +atom 29 (1) (1897, -1063, 2163) def +bond1 17 +atom 30 (1) (1885, 1108, 2151) def +bond1 18 +atom 31 (1) (-26, 2135, -2179) def +bond1 20 +atom 32 (1) (1840, 1072, -2185) def +bond1 19 +atom 33 (1) (1852, -1074, -2174) def +bond1 24 +atom 34 (1) (-1879, 1051, -2163) def +bond1 21 +atom 35 (1) (-1867, -1094, -2151) def +bond1 22 +atom 36 (1) (-1, -2157, -2156) def +bond1 23 +ground (Anchor-44) (0, 0, 0) 20 +info leaf forwarded = 786022768 +thermo (Thermo-42) (153, 0, 51) 13 36 18 +info leaf forwarded = 786022728 +egroup (03-thermo-rmotor-anchor-stat reordering-7) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 03-thermo-rmotor-anchor-stat reordering-7 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_8.trc b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_8.trc new file mode 100755 index 000000000..80a515c0f --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_8.trc @@ -0,0 +1,32 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_03_thermo_rmotor_anchor_stat_reordering_8.trc test_03_thermo_rmotor_anchor_stat_reordering_8.mmp +# Date and Time: Wed Apr 19 10:53:29 2006 +# Input File: test_03_thermo_rmotor_anchor_stat_reordering_8.mmp +# Output File: test_03_thermo_rmotor_anchor_stat_reordering_8.xyz +# Trace File: test_03_thermo_rmotor_anchor_stat_reordering_8.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 36 +# +# 5 columns: +# Stat- -chunk 2: energy added (zJ) +# Rotary Motor--chunk2: speed (GHz) +# Rotary Motor--chunk2: torque (nn-nm) +# Anchor-44: torque (nn-nm) +# Thermo-42: temperature (K) +# +# Time T.stat speed torque Anchor T.meter +# picosec Stat- -chunk 2 Rotary Motor--c Anchor-44 Thermo-42 +# + 0.0100 -0.01 0.863 0.399 0.00 291.74 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_8.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_8.xyzcmp new file mode 100755 index 000000000..5875d7dd2 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_03_thermo_rmotor_anchor_stat_reordering_8.xyzcmp @@ -0,0 +1,38 @@ +36 +Frame 0, Iteration: 100 +C -2.047766 1.175748 -0.005855 +C -0.043202 2.381959 -0.059220 +C -2.028734 -1.223791 -0.000857 +C -0.002929 -2.383905 0.028949 +C 2.106366 -1.186728 -0.031175 +C 2.052642 1.201723 -0.059008 +S -1.753481 2.975197 0.178381 +S -3.474733 -0.039524 0.199145 +S -1.713960 -2.999864 0.194850 +S 1.748131 -2.992980 0.206554 +S 3.470435 0.026547 0.179857 +S 1.699802 3.007865 0.180025 +C 0.007647 1.524734 1.241158 +C -1.308823 0.772039 1.308215 +C -1.300528 -0.732733 1.267364 +C -0.008249 -1.463259 1.262960 +C 1.356112 -0.716323 1.229498 +C 1.330161 0.778133 1.233821 +C 1.291173 0.756396 -1.311195 +C -0.016000 1.511003 -1.295008 +C -1.333652 0.743431 -1.283226 +C -1.314901 -0.802710 -1.319849 +C 0.047216 -1.518319 -1.278479 +C 1.328821 -0.726862 -1.285890 +H 0.109883 2.138957 2.145980 +H -1.857537 1.163914 2.173972 +H -1.876490 -1.108064 2.122134 +H -0.079210 -2.107534 2.145192 +H 1.951607 -1.071745 2.076350 +H 1.908801 1.184496 2.076034 +H 0.007978 2.150161 -2.184736 +H 1.953031 1.079740 -2.117794 +H 1.951730 -1.031600 -2.129232 +H -1.872047 1.077894 -2.170867 +H -1.930273 -1.204493 -2.137240 +H 0.094184 -2.127709 -2.182220 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_1.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_1.mmp new file mode 100755 index 000000000..d65bb4245 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_1.mmp @@ -0,0 +1,64 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (04-thermo-lmotor-anchor-stat reordering-1) +info opengroup open = True +mol (chunk1) tub +atom 1 (1) (-773, -1934, -1202) - +atom 2 (1) (-797, 16, 2241) - +atom 3 (1) (-815, 53, -2329) - +atom 4 (1) (-764, -1953, 1082) - +mol (chunk2) tub +atom 5 (1) (-848, 2022, -1170) - +atom 6 (1) (-839, 2004, 1114) - +forward_ref (163006384) # lmotor (Linear Motor-83) +forward_ref (163006704) # ground (Anchor-86) +forward_ref (163006744) # stat (Stat-87) +mol (chunk1-frag22) tub +atom 7 (6) (31, -1296, -839) - +bond1 1 +atom 8 (8) (1253, -1983, -1261) - +bond1 7 +atom 9 (8) (1229, 53, 2334) - +atom 10 (8) (1209, 92, -2437) - +atom 11 (8) (1263, -2002, 1124) - +atom 12 (6) (2, 62, -1609) - +bond1 7 10 3 +atom 13 (6) (15, 37, 1515) - +bond1 9 2 +atom 14 (6) (38, -1309, 723) - +bond1 13 7 11 4 +atom 15 (8) (1175, 2148, -1227) - +atom 16 (8) (1185, 2129, 1158) - +atom 17 (6) (-19, 1409, -817) - +bond1 12 15 5 +atom 18 (6) (-13, 1396, 745) - +bond1 13 17 16 6 +atom 19 (6) (2452, -1250, -848) - +bond1 8 +atom 20 (1) (3278, -1858, -1218) - +bond1 19 +atom 21 (1) (3254, 92, 2225) - +atom 22 (1) (3236, 129, -2344) - +atom 23 (1) (3287, -1876, 1066) - +atom 24 (6) (2423, 108, -1619) - +bond1 19 22 10 +atom 25 (6) (2436, 83, 1506) - +bond1 21 9 +atom 26 (6) (2458, -1263, 713) - +bond1 19 23 25 11 +atom 27 (1) (3203, 2098, -1186) - +atom 28 (1) (3212, 2080, 1099) - +atom 29 (6) (2401, 1454, -826) - +bond1 24 27 15 +atom 30 (6) (2407, 1442, 735) - +bond1 25 28 29 16 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 7 12 13 17 18 14 +info leaf forwarded = 163006384 +ground (Anchor-86) (0, 0, 0) 14 +info leaf forwarded = 163006704 +stat (Stat-87) (0, 0, 153) (300) 7 30 12 +info leaf forwarded = 163006744 +thermo (Thermo-25) (153, 0, 51) 7 30 16 +egroup (04-thermo-lmotor-anchor-stat reordering-1) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_1.trc b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_1.trc new file mode 100755 index 000000000..d6fef93bc --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_1.trc @@ -0,0 +1,31 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_04_thermo_lmotor_anchor_stat_reordering_1.trc test_04_thermo_lmotor_anchor_stat_reordering_1.mmp +# Date and Time: Wed Apr 19 10:53:28 2006 +# Input File: test_04_thermo_lmotor_anchor_stat_reordering_1.mmp +# Output File: test_04_thermo_lmotor_anchor_stat_reordering_1.xyz +# Trace File: test_04_thermo_lmotor_anchor_stat_reordering_1.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 30 +# +# 4 columns: +# Linear Motor-83: displacement (angstroms) +# Anchor-86: torque (nn-nm) +# Stat-87: energy added (zJ) +# Thermo-25: temperature (K) +# +# Time Lmotor Anchor T.stat T.meter +# picosec Linear Motor-83 Anchor-86 Stat-87 Thermo-25 +# + 0.0100 -0.0068 0.00 0.10 266.72 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_1.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_1.xyzcmp new file mode 100755 index 000000000..362701920 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_1.xyzcmp @@ -0,0 +1,32 @@ +30 +Frame 0, Iteration: 100 +H -0.763922 -1.929498 -1.251964 +H -0.892534 -0.000814 2.096538 +H -0.799001 0.003308 -2.371812 +H -0.791437 -1.912342 1.103404 +H -0.749516 2.062692 -1.236334 +H -0.866050 1.994808 1.033819 +C 0.022456 -1.296610 -0.839697 +O 1.242651 -2.019852 -1.254562 +O 1.229698 0.041476 2.322846 +O 1.209408 0.087692 -2.405021 +O 1.258232 -2.002118 1.136733 +C -0.017505 0.062450 -1.608566 +C 0.030035 0.037191 1.515049 +C 0.037997 -1.309000 0.723000 +O 1.209038 2.149632 -1.231680 +O 1.165037 2.146882 1.170032 +C 0.013161 1.409351 -0.817063 +C -0.003997 1.396119 0.744611 +C 2.427783 -1.270381 -0.854599 +H 3.274072 -1.851765 -1.209261 +H 3.268786 0.129801 2.257482 +H 3.209641 0.084789 -2.378860 +H 3.361029 -1.782140 1.044108 +C 2.430176 0.126440 -1.613218 +C 2.473655 0.088041 1.518137 +C 2.465377 -1.234292 0.703500 +H 3.232595 2.053307 -1.232777 +H 3.188718 2.134580 1.069906 +C 2.409856 1.444610 -0.853182 +C 2.393161 1.489044 0.709474 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_2.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_2.mmp new file mode 100755 index 000000000..d01d6ac73 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_2.mmp @@ -0,0 +1,58 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (04-thermo-lmotor-anchor-stat reordering-1) +info opengroup open = True +mol (chunk1) tub +atom 1 (1) (-773, -1934, -1202) - +atom 2 (1) (-797, 16, 2241) - +atom 3 (1) (-815, 53, -2329) - +atom 4 (1) (-764, -1953, 1082) - +mol (chunk2) tub +atom 5 (1) (-848, 2022, -1170) - +atom 6 (1) (-839, 2004, 1114) - +mol (chunk1-frag22) tub +atom 7 (6) (31, -1296, -839) - +bond1 1 +atom 8 (8) (1253, -1983, -1261) - +bond1 7 +atom 9 (8) (1229, 53, 2334) - +atom 10 (8) (1209, 92, -2437) - +atom 11 (8) (1263, -2002, 1124) - +atom 12 (6) (2, 62, -1609) - +bond1 7 10 3 +atom 13 (6) (15, 37, 1515) - +bond1 9 2 +atom 14 (6) (38, -1309, 723) - +bond1 13 7 11 4 +atom 15 (8) (1175, 2148, -1227) - +atom 16 (8) (1185, 2129, 1158) - +atom 17 (6) (-19, 1409, -817) - +bond1 12 15 5 +atom 18 (6) (-13, 1396, 745) - +bond1 13 17 16 6 +atom 19 (6) (2452, -1250, -848) - +bond1 8 +atom 20 (1) (3278, -1858, -1218) - +bond1 19 +atom 21 (1) (3254, 92, 2225) - +atom 22 (1) (3236, 129, -2344) - +atom 23 (1) (3287, -1876, 1066) - +atom 24 (6) (2423, 108, -1619) - +bond1 19 22 10 +atom 25 (6) (2436, 83, 1506) - +bond1 21 9 +atom 26 (6) (2458, -1263, 713) - +bond1 19 23 25 11 +atom 27 (1) (3203, 2098, -1186) - +atom 28 (1) (3212, 2080, 1099) - +atom 29 (6) (2401, 1454, -826) - +bond1 24 27 15 +atom 30 (6) (2407, 1442, 735) - +bond1 25 28 29 16 +thermo (Thermo-25) (153, 0, 51) 7 30 16 +stat (Stat-87) (0, 0, 153) (300) 7 30 12 +ground (Anchor-86) (0, 0, 0) 14 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 7 12 13 17 18 14 +egroup (04-thermo-lmotor-anchor-stat reordering-1) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_2.trc b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_2.trc new file mode 100755 index 000000000..e27374cd6 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_2.trc @@ -0,0 +1,31 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_04_thermo_lmotor_anchor_stat_reordering_2.trc test_04_thermo_lmotor_anchor_stat_reordering_2.mmp +# Date and Time: Wed Apr 19 10:53:28 2006 +# Input File: test_04_thermo_lmotor_anchor_stat_reordering_2.mmp +# Output File: test_04_thermo_lmotor_anchor_stat_reordering_2.xyz +# Trace File: test_04_thermo_lmotor_anchor_stat_reordering_2.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 30 +# +# 4 columns: +# Thermo-25: temperature (K) +# Stat-87: energy added (zJ) +# Anchor-86: torque (nn-nm) +# Linear Motor-83: displacement (angstroms) +# +# Time T.meter T.stat Anchor Lmotor +# picosec Thermo-25 Stat-87 Anchor-86 Linear Motor-83 +# + 0.0100 266.72 0.10 0.00 -0.0068 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_2.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_2.xyzcmp new file mode 100755 index 000000000..362701920 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_2.xyzcmp @@ -0,0 +1,32 @@ +30 +Frame 0, Iteration: 100 +H -0.763922 -1.929498 -1.251964 +H -0.892534 -0.000814 2.096538 +H -0.799001 0.003308 -2.371812 +H -0.791437 -1.912342 1.103404 +H -0.749516 2.062692 -1.236334 +H -0.866050 1.994808 1.033819 +C 0.022456 -1.296610 -0.839697 +O 1.242651 -2.019852 -1.254562 +O 1.229698 0.041476 2.322846 +O 1.209408 0.087692 -2.405021 +O 1.258232 -2.002118 1.136733 +C -0.017505 0.062450 -1.608566 +C 0.030035 0.037191 1.515049 +C 0.037997 -1.309000 0.723000 +O 1.209038 2.149632 -1.231680 +O 1.165037 2.146882 1.170032 +C 0.013161 1.409351 -0.817063 +C -0.003997 1.396119 0.744611 +C 2.427783 -1.270381 -0.854599 +H 3.274072 -1.851765 -1.209261 +H 3.268786 0.129801 2.257482 +H 3.209641 0.084789 -2.378860 +H 3.361029 -1.782140 1.044108 +C 2.430176 0.126440 -1.613218 +C 2.473655 0.088041 1.518137 +C 2.465377 -1.234292 0.703500 +H 3.232595 2.053307 -1.232777 +H 3.188718 2.134580 1.069906 +C 2.409856 1.444610 -0.853182 +C 2.393161 1.489044 0.709474 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_3.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_3.mmp new file mode 100755 index 000000000..e845d7f5b --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_3.mmp @@ -0,0 +1,69 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (04-thermo-lmotor-anchor-stat reordering-2) +info opengroup open = True +forward_ref (163006744) # stat (Stat-87) +forward_ref (163006704) # ground (Anchor-86) +forward_ref (163006384) # lmotor (Linear Motor-83) +mol (chunk1-frag22) tub +atom 1 (6) (31, -1296, -839) - +atom 2 (8) (1253, -1983, -1261) - +bond1 1 +atom 3 (8) (1229, 53, 2334) - +atom 4 (8) (1209, 92, -2437) - +atom 5 (8) (1263, -2002, 1124) - +atom 6 (6) (2, 62, -1609) - +bond1 1 4 +atom 7 (6) (15, 37, 1515) - +bond1 3 +atom 8 (6) (38, -1309, 723) - +bond1 7 1 5 +atom 9 (8) (1175, 2148, -1227) - +atom 10 (8) (1185, 2129, 1158) - +atom 11 (6) (-19, 1409, -817) - +bond1 6 9 +atom 12 (6) (-13, 1396, 745) - +bond1 7 11 10 +atom 13 (6) (2452, -1250, -848) - +bond1 2 +atom 14 (1) (3278, -1858, -1218) - +bond1 13 +atom 15 (1) (3254, 92, 2225) - +atom 16 (1) (3236, 129, -2344) - +atom 17 (1) (3287, -1876, 1066) - +atom 18 (6) (2423, 108, -1619) - +bond1 13 16 4 +atom 19 (6) (2436, 83, 1506) - +bond1 15 3 +atom 20 (6) (2458, -1263, 713) - +bond1 13 17 19 5 +atom 21 (1) (3203, 2098, -1186) - +atom 22 (1) (3212, 2080, 1099) - +atom 23 (6) (2401, 1454, -826) - +bond1 18 21 9 +atom 24 (6) (2407, 1442, 735) - +bond1 19 22 23 10 +stat (Stat-87) (0, 0, 153) (300) 1 24 6 +info leaf forwarded = 163006744 +ground (Anchor-86) (0, 0, 0) 8 +info leaf forwarded = 163006704 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 1 6 7 11 12 8 +info leaf forwarded = 163006384 +thermo (Thermo-25) (153, 0, 51) 1 24 10 +mol (chunk1) tub +atom 25 (1) (-773, -1934, -1202) - +bond1 1 +atom 26 (1) (-797, 16, 2241) - +bond1 7 +atom 27 (1) (-815, 53, -2329) - +bond1 6 +atom 28 (1) (-764, -1953, 1082) - +bond1 8 +mol (chunk2) tub +atom 29 (1) (-848, 2022, -1170) - +bond1 11 +atom 30 (1) (-839, 2004, 1114) - +bond1 12 +egroup (04-thermo-lmotor-anchor-stat reordering-2) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-2 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_3.trc b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_3.trc new file mode 100755 index 000000000..3b79ad350 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_3.trc @@ -0,0 +1,31 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_04_thermo_lmotor_anchor_stat_reordering_3.trc test_04_thermo_lmotor_anchor_stat_reordering_3.mmp +# Date and Time: Wed Apr 19 10:53:28 2006 +# Input File: test_04_thermo_lmotor_anchor_stat_reordering_3.mmp +# Output File: test_04_thermo_lmotor_anchor_stat_reordering_3.xyz +# Trace File: test_04_thermo_lmotor_anchor_stat_reordering_3.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 30 +# +# 4 columns: +# Stat-87: energy added (zJ) +# Anchor-86: torque (nn-nm) +# Linear Motor-83: displacement (angstroms) +# Thermo-25: temperature (K) +# +# Time T.stat Anchor Lmotor T.meter +# picosec Stat-87 Anchor-86 Linear Motor-83 Thermo-25 +# + 0.0100 0.07 0.00 -0.0008 260.09 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_3.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_3.xyzcmp new file mode 100755 index 000000000..b6e61b4fe --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_3.xyzcmp @@ -0,0 +1,32 @@ +30 +Frame 0, Iteration: 100 +C 0.044032 -1.296221 -0.839762 +O 1.222626 -1.988814 -1.283469 +O 1.240339 0.026267 2.318459 +O 1.186508 0.110703 -2.412872 +O 1.286021 -1.999335 1.109127 +C -0.019897 0.062406 -1.608559 +C 0.031933 0.037225 1.515044 +C 0.037997 -1.309000 0.723000 +O 1.199460 2.136973 -1.223503 +O 1.186627 2.108888 1.198347 +C -0.014237 1.408858 -0.816981 +C -0.017758 1.395871 0.744652 +C 2.441852 -1.262214 -0.843737 +H 3.280063 -1.871608 -1.162661 +H 3.258231 0.185645 2.187895 +H 3.220068 0.182305 -2.346257 +H 3.377924 -1.760171 1.045076 +C 2.430351 0.112845 -1.606424 +C 2.428584 0.087237 1.492584 +C 2.469820 -1.239825 0.721689 +H 3.249787 2.100849 -1.183390 +H 3.271699 2.040052 1.019175 +C 2.436722 1.459474 -0.819702 +C 2.392934 1.474167 0.714127 +H -0.713760 -2.001141 -1.180891 +H -0.790825 0.088813 2.227462 +H -0.857279 -0.016302 -2.305886 +H -0.834319 -1.893919 1.026058 +H -0.808945 2.004039 -1.264339 +H -0.778671 2.101042 1.089827 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_4.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_4.mmp new file mode 100755 index 000000000..e72ab38a4 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_4.mmp @@ -0,0 +1,67 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (04-thermo-lmotor-anchor-stat reordering-4) +info opengroup open = True +forward_ref (166344944) # lmotor (Linear Motor-83) +forward_ref (166329160) # thermo (Thermo-25) +mol (chunk1-frag22) tub +atom 1 (6) (31, -1296, -839) - +atom 2 (8) (1253, -1983, -1261) - +bond1 1 +atom 3 (8) (1229, 53, 2334) - +atom 4 (8) (1209, 92, -2437) - +atom 5 (8) (1263, -2001, 1124) - +atom 6 (6) (2, 62, -1609) - +bond1 1 4 +atom 7 (6) (15, 37, 1515) - +bond1 3 +atom 8 (6) (38, -1309, 723) - +bond1 7 1 5 +atom 9 (8) (1175, 2148, -1227) - +atom 10 (8) (1185, 2129, 1158) - +atom 11 (6) (-19, 1409, -817) - +bond1 6 9 +atom 12 (6) (-13, 1396, 745) - +bond1 7 11 10 +atom 13 (6) (2452, -1250, -848) - +bond1 2 +atom 14 (1) (3278, -1858, -1218) - +bond1 13 +atom 15 (1) (3254, 92, 2225) - +atom 16 (1) (3236, 129, -2344) - +atom 17 (1) (3287, -1876, 1066) - +atom 18 (6) (2423, 108, -1619) - +bond1 13 16 4 +atom 19 (6) (2436, 83, 1506) - +bond1 15 3 +atom 20 (6) (2458, -1263, 713) - +bond1 13 17 19 5 +atom 21 (1) (3203, 2098, -1186) - +atom 22 (1) (3212, 2080, 1099) - +atom 23 (6) (2401, 1454, -826) - +bond1 18 21 9 +atom 24 (6) (2407, 1442, 735) - +bond1 19 22 23 10 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 1 6 7 11 12 8 +info leaf forwarded = 166344944 +thermo (Thermo-25) (153, 0, 51) 1 24 10 +info leaf forwarded = 166329160 +ground (Anchor-86) (0, 0, 0) 8 +mol (chunk1) tub +atom 25 (1) (-773, -1934, -1202) - +bond1 1 +atom 26 (1) (-797, 16, 2241) - +bond1 7 +atom 27 (1) (-815, 53, -2329) - +bond1 6 +atom 28 (1) (-764, -1953, 1082) - +bond1 8 +stat (Stat-87) (0, 0, 153) (300) 1 24 6 +mol (chunk2) tub +atom 29 (1) (-848, 2021, -1170) - +bond1 11 +atom 30 (1) (-839, 2004, 1114) - +bond1 12 +egroup (04-thermo-lmotor-anchor-stat reordering-4) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-4 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_4.trc b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_4.trc new file mode 100755 index 000000000..d11a2f1d2 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_4.trc @@ -0,0 +1,31 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_04_thermo_lmotor_anchor_stat_reordering_4.trc test_04_thermo_lmotor_anchor_stat_reordering_4.mmp +# Date and Time: Wed Apr 19 10:53:28 2006 +# Input File: test_04_thermo_lmotor_anchor_stat_reordering_4.mmp +# Output File: test_04_thermo_lmotor_anchor_stat_reordering_4.xyz +# Trace File: test_04_thermo_lmotor_anchor_stat_reordering_4.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 30 +# +# 4 columns: +# Linear Motor-83: displacement (angstroms) +# Thermo-25: temperature (K) +# Anchor-86: torque (nn-nm) +# Stat-87: energy added (zJ) +# +# Time Lmotor T.meter Anchor T.stat +# picosec Linear Motor-83 Thermo-25 Anchor-86 Stat-87 +# + 0.0100 -0.0008 260.10 0.00 0.07 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_4.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_4.xyzcmp new file mode 100755 index 000000000..353755842 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_4.xyzcmp @@ -0,0 +1,32 @@ +30 +Frame 0, Iteration: 100 +C 0.044035 -1.296221 -0.839762 +O 1.222626 -1.988815 -1.283468 +O 1.240340 0.026272 2.318460 +O 1.186509 0.110703 -2.412872 +O 1.286023 -1.998560 1.109186 +C -0.019886 0.062407 -1.608559 +C 0.031911 0.037225 1.515044 +C 0.037997 -1.309000 0.723000 +O 1.199455 2.136984 -1.223509 +O 1.186627 2.108887 1.198347 +C -0.014239 1.408858 -0.816980 +C -0.017760 1.395871 0.744652 +C 2.441852 -1.262211 -0.843742 +H 3.280063 -1.871610 -1.162656 +H 3.258245 0.185650 2.187895 +H 3.220069 0.182305 -2.346258 +H 3.377814 -1.760271 1.045154 +C 2.430351 0.112844 -1.606425 +C 2.428607 0.087257 1.492577 +C 2.469881 -1.239692 0.721653 +H 3.249787 2.100848 -1.183389 +H 3.271699 2.040055 1.019174 +C 2.436721 1.459475 -0.819702 +C 2.392935 1.474169 0.714127 +H -0.713760 -2.001139 -1.180888 +H -0.790841 0.088812 2.227467 +H -0.857264 -0.016322 -2.305890 +H -0.834139 -1.894121 1.026180 +H -0.809076 2.003956 -1.264337 +H -0.778672 2.101047 1.089818 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_5.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_5.mmp new file mode 100755 index 000000000..dfb737178 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_5.mmp @@ -0,0 +1,78 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (04-thermo-lmotor-anchor-stat reordering-4) +info opengroup open = True +group (Group34) +info opengroup open = True +forward_ref (165422184) # lmotor (Linear Motor-83) +forward_ref (165422344) # ground (Anchor-86) +group (Group35) +info opengroup open = True +forward_ref (165406440) # thermo (Thermo-25) +mol (chunk1) tub +atom 1 (1) (-773, -1934, -1202) - +atom 2 (1) (-797, 16, 2241) - +atom 3 (1) (-815, 53, -2329) - +atom 4 (1) (-764, -1953, 1082) - +egroup (Group35) +forward_ref (165423144) # stat (Stat-87) +egroup (Group34) +mol (chunk3) tub +atom 5 (6) (31, -1296, -839) def +bond1 1 +atom 6 (8) (1253, -1983, -1261) def +bond1 5 +atom 7 (8) (1229, 53, 2334) def +atom 8 (8) (1209, 92, -2437) def +atom 9 (8) (1263, -2001, 1124) def +atom 10 (6) (2, 62, -1609) def +bond1 5 8 3 +atom 11 (6) (15, 37, 1515) def +bond1 7 2 +atom 12 (6) (38, -1309, 723) def +bond1 11 5 9 4 +atom 13 (8) (1175, 2148, -1227) def +atom 14 (8) (1185, 2129, 1158) def +atom 15 (6) (-19, 1409, -817) def +bond1 10 13 +atom 16 (6) (-13, 1396, 745) def +bond1 11 15 14 +atom 17 (6) (2452, -1250, -848) def +bond1 6 +atom 18 (1) (3278, -1858, -1218) def +bond1 17 +atom 19 (1) (3254, 92, 2225) def +atom 20 (1) (3236, 129, -2344) def +atom 21 (1) (3287, -1876, 1066) def +atom 22 (6) (2423, 108, -1619) def +bond1 17 20 8 +atom 23 (6) (2436, 83, 1506) def +bond1 19 7 +atom 24 (6) (2458, -1263, 713) def +bond1 17 21 23 9 +atom 25 (1) (3203, 2098, -1186) def +atom 26 (1) (3212, 2080, 1099) def +atom 27 (6) (2401, 1454, -826) def +bond1 22 25 13 +atom 28 (6) (2407, 1442, 735) def +bond1 23 26 27 14 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 5 10 11 15 16 12 +info leaf forwarded = 165422184 +ground (Anchor-86) (0, 0, 0) 12 +info leaf forwarded = 165422344 +thermo (Thermo-25) (153, 0, 51) 5 28 14 +info leaf forwarded = 165406440 +stat (Stat-87) (0, 0, 153) (300) 5 28 10 +info leaf forwarded = 165423144 +mol (chunk2) tub +atom 29 (1) (-848, 2021, -1170) def +bond1 15 +atom 30 (1) (-839, 2004, 1114) def +bond1 16 +egroup (04-thermo-lmotor-anchor-stat reordering-4) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-4 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_5.trc b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_5.trc new file mode 100755 index 000000000..067111ce9 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_5.trc @@ -0,0 +1,31 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_04_thermo_lmotor_anchor_stat_reordering_5.trc test_04_thermo_lmotor_anchor_stat_reordering_5.mmp +# Date and Time: Wed Apr 19 10:53:28 2006 +# Input File: test_04_thermo_lmotor_anchor_stat_reordering_5.mmp +# Output File: test_04_thermo_lmotor_anchor_stat_reordering_5.xyz +# Trace File: test_04_thermo_lmotor_anchor_stat_reordering_5.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 30 +# +# 4 columns: +# Linear Motor-83: displacement (angstroms) +# Anchor-86: torque (nn-nm) +# Thermo-25: temperature (K) +# Stat-87: energy added (zJ) +# +# Time Lmotor Anchor T.meter T.stat +# picosec Linear Motor-83 Anchor-86 Thermo-25 Stat-87 +# + 0.0100 -0.0092 0.00 241.81 0.09 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_5.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_5.xyzcmp new file mode 100755 index 000000000..faf0d7b21 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_5.xyzcmp @@ -0,0 +1,32 @@ +30 +Frame 0, Iteration: 100 +H -0.726521 -1.920147 -1.248395 +H -0.892443 -0.000747 2.094000 +H -0.796447 -0.005860 -2.359291 +H -0.791975 -1.914143 1.099267 +C 0.061868 -1.295900 -0.839815 +O 1.257993 -1.987392 -1.265995 +O 1.229859 0.023666 2.339318 +O 1.204805 0.073257 -2.443344 +O 1.250711 -1.994857 1.118145 +C -0.003992 0.062693 -1.608607 +C 0.030247 0.037195 1.515049 +C 0.037994 -1.309000 0.723000 +O 1.200789 2.132796 -1.231863 +O 1.180780 2.117597 1.208123 +C -0.008348 1.408964 -0.816998 +C -0.026407 1.395715 0.744678 +C 2.468377 -1.241926 -0.859454 +H 3.267324 -1.868602 -1.248184 +H 3.278731 0.122740 2.229370 +H 3.289416 0.125971 -2.310713 +H 3.290333 -1.824596 1.083239 +C 2.433364 0.098314 -1.639546 +C 2.469039 0.096607 1.509191 +C 2.453536 -1.223913 0.715228 +H 3.264980 2.025801 -1.139587 +H 3.199237 2.086247 1.030538 +C 2.393162 1.427167 -0.827533 +C 2.362021 1.463179 0.706039 +H -0.804796 1.998743 -1.267172 +H -0.790254 2.098651 1.089978 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_6.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_6.mmp new file mode 100755 index 000000000..99bfa9a17 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_6.mmp @@ -0,0 +1,77 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (04-thermo-lmotor-anchor-stat reordering-6) +info opengroup open = True +group (Group34) +info opengroup open = True +forward_ref (165422184) # lmotor (Linear Motor-83) +forward_ref (165422344) # ground (Anchor-86) +mol (chunk3) tub +atom 1 (6) (31, -1296, -839) - +atom 2 (8) (1253, -1983, -1261) - +bond1 1 +atom 3 (8) (1229, 53, 2334) - +atom 4 (8) (1209, 92, -2437) - +atom 5 (8) (1263, -2001, 1124) - +atom 6 (6) (2, 62, -1609) - +bond1 1 4 +atom 7 (6) (15, 37, 1515) - +bond1 3 +atom 8 (6) (38, -1309, 723) - +bond1 7 1 5 +atom 9 (8) (1175, 2148, -1227) - +atom 10 (8) (1185, 2129, 1158) - +atom 11 (6) (-19, 1409, -817) - +bond1 6 9 +atom 12 (6) (-13, 1396, 745) - +bond1 7 11 10 +atom 13 (6) (2452, -1250, -848) - +bond1 2 +atom 14 (1) (3278, -1858, -1218) - +bond1 13 +atom 15 (1) (3254, 92, 2225) - +atom 16 (1) (3236, 129, -2344) - +atom 17 (1) (3287, -1876, 1066) - +atom 18 (6) (2423, 108, -1619) - +bond1 13 16 4 +atom 19 (6) (2436, 83, 1506) - +bond1 15 3 +atom 20 (6) (2458, -1263, 713) - +bond1 13 17 19 5 +atom 21 (1) (3203, 2098, -1186) - +atom 22 (1) (3212, 2080, 1099) - +atom 23 (6) (2401, 1454, -826) - +bond1 18 21 9 +atom 24 (6) (2407, 1442, 735) - +bond1 19 22 23 10 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 1 6 7 11 12 8 +info leaf forwarded = 165422184 +ground (Anchor-86) (0, 0, 0) 8 +info leaf forwarded = 165422344 +mol (chunk2) tub +atom 25 (1) (-848, 2021, -1170) - +bond1 11 +atom 26 (1) (-839, 2004, 1114) - +bond1 12 +egroup (Group34) +stat (Stat-87) (0, 0, 153) (300) 1 24 6 +mol (chunk1) tub +atom 27 (1) (-773, -1934, -1202) def +bond1 1 +atom 28 (1) (-797, 16, 2241) def +bond1 7 +atom 29 (1) (-815, 53, -2329) def +bond1 6 +atom 30 (1) (-764, -1953, 1082) def +bond1 8 +group (Group35) +info opengroup open = True +thermo (Thermo-25) (153, 0, 51) 1 24 10 +egroup (Group35) +egroup (04-thermo-lmotor-anchor-stat reordering-6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-6 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_6.trc b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_6.trc new file mode 100755 index 000000000..d033a48f3 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_6.trc @@ -0,0 +1,31 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_04_thermo_lmotor_anchor_stat_reordering_6.trc test_04_thermo_lmotor_anchor_stat_reordering_6.mmp +# Date and Time: Wed Apr 19 10:53:27 2006 +# Input File: test_04_thermo_lmotor_anchor_stat_reordering_6.mmp +# Output File: test_04_thermo_lmotor_anchor_stat_reordering_6.xyz +# Trace File: test_04_thermo_lmotor_anchor_stat_reordering_6.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 30 +# +# 4 columns: +# Linear Motor-83: displacement (angstroms) +# Anchor-86: torque (nn-nm) +# Stat-87: energy added (zJ) +# Thermo-25: temperature (K) +# +# Time Lmotor Anchor T.stat T.meter +# picosec Linear Motor-83 Anchor-86 Stat-87 Thermo-25 +# + 0.0100 0.0030 0.00 0.07 260.28 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_6.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_6.xyzcmp new file mode 100755 index 000000000..8b40a7a65 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_6.xyzcmp @@ -0,0 +1,32 @@ +30 +Frame 0, Iteration: 100 +C 0.027658 -1.296516 -0.839712 +O 1.220435 -1.989498 -1.283689 +O 1.238472 0.026286 2.319924 +O 1.188206 0.110547 -2.410417 +O 1.286529 -1.997816 1.108796 +C -0.018167 0.062438 -1.608564 +C 0.022004 0.037046 1.515073 +C 0.037999 -1.309000 0.723000 +O 1.200225 2.137009 -1.223798 +O 1.186318 2.109608 1.198928 +C -0.005834 1.409009 -0.817006 +C -0.014333 1.395933 0.744642 +C 2.441655 -1.262208 -0.843727 +H 3.279974 -1.871593 -1.162644 +H 3.258219 0.185647 2.187840 +H 3.220001 0.182284 -2.346338 +H 3.377792 -1.760287 1.045161 +C 2.430512 0.112824 -1.606259 +C 2.428402 0.087254 1.492661 +C 2.469906 -1.239630 0.721620 +H 3.249851 2.100851 -1.183386 +H 3.271735 2.040020 1.019167 +C 2.436806 1.459513 -0.819722 +C 2.392890 1.474233 0.714190 +H -0.802696 2.070532 -1.162717 +H -0.807657 2.070261 1.073867 +H -0.776060 -1.954613 -1.172045 +H -0.859861 0.046175 2.161526 +H -0.766043 0.033604 -2.404719 +H -0.807658 -1.886209 1.106842 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_7.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_7.mmp new file mode 100755 index 000000000..3cd83b720 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_7.mmp @@ -0,0 +1,78 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (04-thermo-lmotor-anchor-stat reordering-6) +info opengroup open = True +forward_ref (240190288) # stat (Stat-87) +mol (chunk1) tub +atom 1 (1) (-773, -1934, -1202) - +atom 2 (1) (-797, 16, 2241) - +atom 3 (1) (-815, 53, -2329) - +atom 4 (1) (-764, -1953, 1082) - +group (Group35) +info opengroup open = True +forward_ref (240191048) # thermo (Thermo-25) +forward_ref (240189648) # lmotor (Linear Motor-83) +forward_ref (240189808) # ground (Anchor-86) +group (Group34) +info opengroup open = True +mol (chunk3) tub +atom 5 (6) (31, -1296, -839) - +bond1 1 +atom 6 (8) (1253, -1983, -1261) - +bond1 5 +atom 7 (8) (1229, 53, 2334) - +atom 8 (8) (1209, 92, -2437) - +atom 9 (8) (1263, -2001, 1124) - +atom 10 (6) (2, 62, -1609) - +bond1 5 8 3 +atom 11 (6) (15, 37, 1515) - +bond1 7 2 +atom 12 (6) (38, -1309, 723) - +bond1 11 5 9 4 +atom 13 (8) (1175, 2148, -1227) - +atom 14 (8) (1185, 2129, 1158) - +atom 15 (6) (-19, 1409, -817) - +bond1 10 13 +atom 16 (6) (-13, 1396, 745) - +bond1 11 15 14 +atom 17 (6) (2452, -1250, -848) - +bond1 6 +atom 18 (1) (3278, -1858, -1218) - +bond1 17 +atom 19 (1) (3254, 92, 2225) - +atom 20 (1) (3236, 129, -2344) - +atom 21 (1) (3287, -1876, 1066) - +atom 22 (6) (2423, 108, -1619) - +bond1 17 20 8 +atom 23 (6) (2436, 83, 1506) - +bond1 19 7 +atom 24 (6) (2458, -1263, 713) - +bond1 17 21 23 9 +atom 25 (1) (3203, 2098, -1186) - +atom 26 (1) (3212, 2080, 1099) - +atom 27 (6) (2401, 1454, -826) - +bond1 22 25 13 +atom 28 (6) (2407, 1442, 735) - +bond1 23 26 27 14 +stat (Stat-87) (0, 0, 153) (300) 5 28 10 +info leaf forwarded = 240190288 +thermo (Thermo-25) (153, 0, 51) 5 28 14 +info leaf forwarded = 240191048 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 5 10 11 15 16 12 +info leaf forwarded = 240189648 +ground (Anchor-86) (0, 0, 0) 12 +info leaf forwarded = 240189808 +mol (chunk2) tub +atom 29 (1) (-848, 2021, -1170) - +bond1 15 +atom 30 (1) (-839, 2004, 1114) - +bond1 16 +egroup (Group34) +egroup (Group35) +egroup (04-thermo-lmotor-anchor-stat reordering-6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-6 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_7.trc b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_7.trc new file mode 100755 index 000000000..5b5e1a525 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_7.trc @@ -0,0 +1,31 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_04_thermo_lmotor_anchor_stat_reordering_7.trc test_04_thermo_lmotor_anchor_stat_reordering_7.mmp +# Date and Time: Wed Apr 19 10:53:28 2006 +# Input File: test_04_thermo_lmotor_anchor_stat_reordering_7.mmp +# Output File: test_04_thermo_lmotor_anchor_stat_reordering_7.xyz +# Trace File: test_04_thermo_lmotor_anchor_stat_reordering_7.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 30 +# +# 4 columns: +# Stat-87: energy added (zJ) +# Thermo-25: temperature (K) +# Linear Motor-83: displacement (angstroms) +# Anchor-86: torque (nn-nm) +# +# Time T.stat T.meter Lmotor Anchor +# picosec Stat-87 Thermo-25 Linear Motor-83 Anchor-86 +# + 0.0100 0.09 241.81 -0.0092 0.00 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_7.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_7.xyzcmp new file mode 100755 index 000000000..faf0d7b21 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_7.xyzcmp @@ -0,0 +1,32 @@ +30 +Frame 0, Iteration: 100 +H -0.726521 -1.920147 -1.248395 +H -0.892443 -0.000747 2.094000 +H -0.796447 -0.005860 -2.359291 +H -0.791975 -1.914143 1.099267 +C 0.061868 -1.295900 -0.839815 +O 1.257993 -1.987392 -1.265995 +O 1.229859 0.023666 2.339318 +O 1.204805 0.073257 -2.443344 +O 1.250711 -1.994857 1.118145 +C -0.003992 0.062693 -1.608607 +C 0.030247 0.037195 1.515049 +C 0.037994 -1.309000 0.723000 +O 1.200789 2.132796 -1.231863 +O 1.180780 2.117597 1.208123 +C -0.008348 1.408964 -0.816998 +C -0.026407 1.395715 0.744678 +C 2.468377 -1.241926 -0.859454 +H 3.267324 -1.868602 -1.248184 +H 3.278731 0.122740 2.229370 +H 3.289416 0.125971 -2.310713 +H 3.290333 -1.824596 1.083239 +C 2.433364 0.098314 -1.639546 +C 2.469039 0.096607 1.509191 +C 2.453536 -1.223913 0.715228 +H 3.264980 2.025801 -1.139587 +H 3.199237 2.086247 1.030538 +C 2.393162 1.427167 -0.827533 +C 2.362021 1.463179 0.706039 +H -0.804796 1.998743 -1.267172 +H -0.790254 2.098651 1.089978 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_8.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_8.mmp new file mode 100755 index 000000000..10935f057 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_8.mmp @@ -0,0 +1,78 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (04-thermo-lmotor-anchor-stat reordering-8) +info opengroup open = True +forward_ref (240190288) # stat (Stat-87) +mol (chunk1) tub +atom 1 (1) (-773, -1934, -1202) - +atom 2 (1) (-797, 16, 2241) - +atom 3 (1) (-815, 53, -2329) - +atom 4 (1) (-764, -1953, 1082) - +group (Group35) +info opengroup open = True +forward_ref (240189648) # lmotor (Linear Motor-83) +forward_ref (240191048) # thermo (Thermo-25) +forward_ref (240189808) # ground (Anchor-86) +group (Group34) +info opengroup open = True +mol (chunk3) tub +atom 5 (6) (31, -1296, -839) - +bond1 1 +atom 6 (8) (1253, -1983, -1261) - +bond1 5 +atom 7 (8) (1229, 53, 2334) - +atom 8 (8) (1209, 92, -2437) - +atom 9 (8) (1263, -2001, 1124) - +atom 10 (6) (2, 62, -1609) - +bond1 5 8 3 +atom 11 (6) (15, 37, 1515) - +bond1 7 2 +atom 12 (6) (38, -1309, 723) - +bond1 11 5 9 4 +atom 13 (8) (1175, 2148, -1227) - +atom 14 (8) (1185, 2129, 1158) - +atom 15 (6) (-19, 1409, -817) - +bond1 10 13 +atom 16 (6) (-13, 1396, 745) - +bond1 11 15 14 +atom 17 (6) (2452, -1250, -848) - +bond1 6 +atom 18 (1) (3278, -1858, -1218) - +bond1 17 +atom 19 (1) (3254, 92, 2225) - +atom 20 (1) (3236, 129, -2344) - +atom 21 (1) (3287, -1876, 1066) - +atom 22 (6) (2423, 108, -1619) - +bond1 17 20 8 +atom 23 (6) (2436, 83, 1506) - +bond1 19 7 +atom 24 (6) (2458, -1263, 713) - +bond1 17 21 23 9 +atom 25 (1) (3203, 2098, -1186) - +atom 26 (1) (3212, 2080, 1099) - +atom 27 (6) (2401, 1454, -826) - +bond1 22 25 13 +atom 28 (6) (2407, 1442, 735) - +bond1 23 26 27 14 +stat (Stat-87) (0, 0, 153) (300) 5 28 10 +info leaf forwarded = 240190288 +lmotor (Linear Motor-83) (127, 127, 127) 0.600000 0.100000 (9, 50, -47) (-999, -18, 3) 5.00 0.50 0.10 +shaft 5 10 11 15 16 12 +info leaf forwarded = 240189648 +thermo (Thermo-25) (153, 0, 51) 5 28 14 +info leaf forwarded = 240191048 +ground (Anchor-86) (0, 0, 0) 12 +info leaf forwarded = 240189808 +mol (chunk2) tub +atom 29 (1) (-848, 2021, -1170) - +bond1 15 +atom 30 (1) (-839, 2004, 1114) - +bond1 16 +egroup (Group34) +egroup (Group35) +egroup (04-thermo-lmotor-anchor-stat reordering-8) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 04-thermo-lmotor-anchor-stat reordering-8 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_8.trc b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_8.trc new file mode 100755 index 000000000..626c74af3 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_8.trc @@ -0,0 +1,31 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_04_thermo_lmotor_anchor_stat_reordering_8.trc test_04_thermo_lmotor_anchor_stat_reordering_8.mmp +# Date and Time: Wed Apr 19 10:53:28 2006 +# Input File: test_04_thermo_lmotor_anchor_stat_reordering_8.mmp +# Output File: test_04_thermo_lmotor_anchor_stat_reordering_8.xyz +# Trace File: test_04_thermo_lmotor_anchor_stat_reordering_8.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 30 +# +# 4 columns: +# Stat-87: energy added (zJ) +# Linear Motor-83: displacement (angstroms) +# Thermo-25: temperature (K) +# Anchor-86: torque (nn-nm) +# +# Time T.stat Lmotor T.meter Anchor +# picosec Stat-87 Linear Motor-83 Thermo-25 Anchor-86 +# + 0.0100 0.09 -0.0092 241.81 0.00 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_8.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_8.xyzcmp new file mode 100755 index 000000000..faf0d7b21 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_04_thermo_lmotor_anchor_stat_reordering_8.xyzcmp @@ -0,0 +1,32 @@ +30 +Frame 0, Iteration: 100 +H -0.726521 -1.920147 -1.248395 +H -0.892443 -0.000747 2.094000 +H -0.796447 -0.005860 -2.359291 +H -0.791975 -1.914143 1.099267 +C 0.061868 -1.295900 -0.839815 +O 1.257993 -1.987392 -1.265995 +O 1.229859 0.023666 2.339318 +O 1.204805 0.073257 -2.443344 +O 1.250711 -1.994857 1.118145 +C -0.003992 0.062693 -1.608607 +C 0.030247 0.037195 1.515049 +C 0.037994 -1.309000 0.723000 +O 1.200789 2.132796 -1.231863 +O 1.180780 2.117597 1.208123 +C -0.008348 1.408964 -0.816998 +C -0.026407 1.395715 0.744678 +C 2.468377 -1.241926 -0.859454 +H 3.267324 -1.868602 -1.248184 +H 3.278731 0.122740 2.229370 +H 3.289416 0.125971 -2.310713 +H 3.290333 -1.824596 1.083239 +C 2.433364 0.098314 -1.639546 +C 2.469039 0.096607 1.509191 +C 2.453536 -1.223913 0.715228 +H 3.264980 2.025801 -1.139587 +H 3.199237 2.086247 1.030538 +C 2.393162 1.427167 -0.827533 +C 2.362021 1.463179 0.706039 +H -0.804796 1.998743 -1.267172 +H -0.790254 2.098651 1.089978 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.mmp new file mode 100755 index 000000000..1d8de059d --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.mmp @@ -0,0 +1,60 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (05-thermo-lmotor-anchor-measurement jigs reordering-1) +info opengroup open = True +mol (1) tub +atom 1 (6) (-4035, -61, 0) - +atom 2 (1) (-3412, 563, 624) - +bond1 1 +atom 3 (1) (-4661, 563, -624) - +bond1 1 +atom 4 (1) (-3412, -686, -624) - +bond1 1 +atom 5 (7) (-4903, -928, 867) - +bond1 1 +atom 6 (1) (-4303, -1528, 1467) - +bond1 5 +atom 7 (1) (-5504, -328, 1467) - +bond1 5 +mol (2) tub +atom 8 (6) (527, 5239, 0) - +atom 9 (1) (-97, 5863, -624) - +bond1 8 +atom 10 (1) (-97, 4614, 624) - +bond1 8 +atom 11 (1) (1152, 4614, -624) - +bond1 8 +atom 12 (8) (1371, 6083, 844) - +bond1 8 +atom 13 (1) (1915, 6627, 204) - +bond1 12 +mol (3) tub +atom 14 (6) (5901, -159, 0) - +atom 15 (1) (6526, 465, 624) - +bond1 14 +atom 16 (1) (5277, 465, -624) - +bond1 14 +atom 17 (1) (5277, -784, 624) - +bond1 14 +atom 18 (1) (6526, -784, -624) - +bond1 14 +mol (4) tub +atom 19 (6) (1288, -5705, 0) - +atom 20 (17) (2322, -4670, 1034) - +bond1 19 +atom 21 (17) (253, -6740, 1034) - +bond1 19 +atom 22 (17) (2322, -6740, -1034) - +bond1 19 +atom 23 (17) (253, -4670, -1034) - +bond1 19 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 14 +thermo (Thermo-2) (153, 0, 51) 1 7 5 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 1 8 +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 1 14 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 5 12 14 23 +ground (Anchor-4) (0, 0, 0) 20 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-1) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.trc b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.trc new file mode 100755 index 000000000..78832f5f5 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.trc @@ -0,0 +1,34 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.trc test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.mmp +# Date and Time: Wed Apr 19 10:53:27 2006 +# Input File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.mmp +# Output File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.xyz +# Trace File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 23 +# +# 7 columns: +# Linear Motor-3: displacement (angstroms) +# Thermo-2: temperature (K) +# Angle-4-1-2: angle (degrees) +# Distance-1-3: distance (angstroms) +# Thermo-4: temperature (K) +# Dihedral-1-2-3-4: dihedral (degrees) +# Anchor-4: torque (nn-nm) +# +# Time Lmotor T.meter Angle Distance T.meter Dihedral Anchor +# picosec Linear Motor-3 Thermo-2 Angle-4-1-2 Distance-1-3 Thermo-4 Dihedral-1-2-3- Anchor-4 +# + 0.0100 -0.0110 423.97 95.91957 9.9470 332.77 -9.17430 0.00 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.xyzcmp new file mode 100755 index 000000000..9d0c1e36c --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_1.xyzcmp @@ -0,0 +1,25 @@ +23 +Frame 0, Iteration: 100 +C -4.037407 -0.049709 -0.020529 +H -3.414685 0.693545 0.496616 +H -4.615364 0.527261 -0.737759 +H -3.393609 -0.672723 -0.641541 +N -4.859096 -0.919234 0.854547 +H -4.283542 -1.590945 1.356184 +H -5.474255 -0.445435 1.511972 +C 0.509511 5.192406 -0.000800 +H -0.103246 5.847127 -0.625816 +H -0.059101 4.582888 0.702119 +H 1.207359 4.573491 -0.566755 +O 1.348626 6.061519 0.850480 +H 1.922453 6.601782 0.279543 +C 5.906437 -0.159000 0.000000 +H 6.559704 0.504530 0.566521 +H 5.251552 0.501612 -0.574906 +H 5.302412 -0.760262 0.685528 +H 6.509814 -0.803912 -0.637685 +C 1.261036 -5.717664 -0.014008 +Cl 2.321999 -4.669999 1.034002 +Cl 0.237700 -6.735291 1.045850 +Cl 2.312766 -6.752830 -1.068915 +Cl 0.278255 -4.655349 -1.027984 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.mmp new file mode 100755 index 000000000..621a97f5d --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.mmp @@ -0,0 +1,68 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (05-thermo-lmotor-anchor-measurement jigs reordering-1) +info opengroup open = True +mol (1) tub +atom 1 (6) (-4035, -61, 0) - +atom 2 (1) (-3412, 563, 624) - +bond1 1 +atom 3 (1) (-4661, 563, -624) - +bond1 1 +atom 4 (1) (-3412, -686, -624) - +bond1 1 +atom 5 (7) (-4903, -928, 867) - +bond1 1 +atom 6 (1) (-4303, -1528, 1467) - +bond1 5 +atom 7 (1) (-5504, -328, 1467) - +bond1 5 +mol (2) tub +atom 8 (6) (527, 5239, 0) - +atom 9 (1) (-97, 5863, -624) - +bond1 8 +atom 10 (1) (-97, 4614, 624) - +bond1 8 +atom 11 (1) (1152, 4614, -624) - +bond1 8 +atom 12 (8) (1371, 6083, 844) - +bond1 8 +atom 13 (1) (1915, 6627, 204) - +bond1 12 +mol (3) tub +atom 14 (6) (5901, -159, 0) - +atom 15 (1) (6526, 465, 624) - +bond1 14 +atom 16 (1) (5277, 465, -624) - +bond1 14 +atom 17 (1) (5277, -784, 624) - +bond1 14 +atom 18 (1) (6526, -784, -624) - +bond1 14 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 14 +thermo (Thermo-2) (153, 0, 51) 1 7 5 +forward_ref (241879240) # mangle (Angle-4-1-2) +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 1 14 +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +forward_ref (241672880) # ground (Anchor-4) +forward_ref (241879280) # thermo (Thermo-4) +mol (4) tub +atom 19 (6) (1288, -5705, 0) - +atom 20 (17) (2322, -4670, 1034) - +bond1 19 +atom 21 (17) (253, -6740, 1034) - +bond1 19 +atom 22 (17) (2322, -6740, -1034) - +bond1 19 +atom 23 (17) (253, -4670, -1034) - +bond1 19 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 1 8 +info leaf forwarded = 241879240 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 5 12 14 23 +info leaf forwarded = 241879560 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +info leaf forwarded = 241879280 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-1) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-1 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.trc b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.trc new file mode 100755 index 000000000..2db0b10a7 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.trc @@ -0,0 +1,34 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.trc test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.mmp +# Date and Time: Wed Apr 19 10:53:27 2006 +# Input File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.mmp +# Output File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.xyz +# Trace File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 23 +# +# 7 columns: +# Linear Motor-3: displacement (angstroms) +# Thermo-2: temperature (K) +# Distance-1-3: distance (angstroms) +# Angle-4-1-2: angle (degrees) +# Dihedral-1-2-3-4: dihedral (degrees) +# Anchor-4: torque (nn-nm) +# Thermo-4: temperature (K) +# +# Time Lmotor T.meter Distance Angle Dihedral Anchor T.meter +# picosec Linear Motor-3 Thermo-2 Distance-1-3 Angle-4-1-2 Dihedral-1-2-3- Anchor-4 Thermo-4 +# + 0.0100 -0.0110 423.97 9.9470 95.91957 -9.17430 0.00 332.77 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.xyzcmp new file mode 100755 index 000000000..9d0c1e36c --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_2.xyzcmp @@ -0,0 +1,25 @@ +23 +Frame 0, Iteration: 100 +C -4.037407 -0.049709 -0.020529 +H -3.414685 0.693545 0.496616 +H -4.615364 0.527261 -0.737759 +H -3.393609 -0.672723 -0.641541 +N -4.859096 -0.919234 0.854547 +H -4.283542 -1.590945 1.356184 +H -5.474255 -0.445435 1.511972 +C 0.509511 5.192406 -0.000800 +H -0.103246 5.847127 -0.625816 +H -0.059101 4.582888 0.702119 +H 1.207359 4.573491 -0.566755 +O 1.348626 6.061519 0.850480 +H 1.922453 6.601782 0.279543 +C 5.906437 -0.159000 0.000000 +H 6.559704 0.504530 0.566521 +H 5.251552 0.501612 -0.574906 +H 5.302412 -0.760262 0.685528 +H 6.509814 -0.803912 -0.637685 +C 1.261036 -5.717664 -0.014008 +Cl 2.321999 -4.669999 1.034002 +Cl 0.237700 -6.735291 1.045850 +Cl 2.312766 -6.752830 -1.068915 +Cl 0.278255 -4.655349 -1.027984 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.mmp new file mode 100755 index 000000000..c6bc16084 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.mmp @@ -0,0 +1,74 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (05-thermo-lmotor-anchor-measurement jigs reordering-2) +info opengroup open = True +forward_ref (241878960) # lmotor (Linear Motor-3) +forward_ref (241879000) # thermo (Thermo-2) +forward_ref (241879240) # mangle (Angle-4-1-2) +forward_ref (241879400) # mdistance (Distance-1-3) +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +forward_ref (241672880) # ground (Anchor-4) +forward_ref (241879280) # thermo (Thermo-4) +mol (1) tub +atom 1 (6) (-4035, -61, 0) - +atom 2 (1) (-3412, 563, 624) - +bond1 1 +atom 3 (1) (-4661, 563, -624) - +bond1 1 +atom 4 (1) (-3412, -686, -624) - +bond1 1 +atom 5 (7) (-4903, -928, 867) - +bond1 1 +atom 6 (1) (-4303, -1528, 1467) - +bond1 5 +atom 7 (1) (-5504, -328, 1467) - +bond1 5 +thermo (Thermo-2) (153, 0, 51) 1 7 5 +info leaf forwarded = 241879000 +mol (2) tub +atom 8 (6) (527, 5239, 0) - +atom 9 (1) (-97, 5863, -624) - +bond1 8 +atom 10 (1) (-97, 4614, 624) - +bond1 8 +atom 11 (1) (1152, 4614, -624) - +bond1 8 +atom 12 (8) (1371, 6083, 844) - +bond1 8 +atom 13 (1) (1915, 6627, 204) - +bond1 12 +mol (3) tub +atom 14 (6) (5901, -159, 0) - +atom 15 (1) (6526, 465, 624) - +bond1 14 +atom 16 (1) (5277, 465, -624) - +bond1 14 +atom 17 (1) (5277, -784, 624) - +bond1 14 +atom 18 (1) (6526, -784, -624) - +bond1 14 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 14 +info leaf forwarded = 241878960 +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 1 14 +info leaf forwarded = 241879400 +mol (4) tub +atom 19 (6) (1288, -5705, 0) - +atom 20 (17) (2322, -4670, 1034) - +bond1 19 +atom 21 (17) (253, -6740, 1034) - +bond1 19 +atom 22 (17) (2322, -6740, -1034) - +bond1 19 +atom 23 (17) (253, -4670, -1034) - +bond1 19 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 1 8 +info leaf forwarded = 241879240 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 5 12 14 23 +info leaf forwarded = 241879560 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +info leaf forwarded = 241879280 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-2) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-2 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.trc b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.trc new file mode 100755 index 000000000..fb94c825e --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.trc @@ -0,0 +1,34 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.trc test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.mmp +# Date and Time: Wed Apr 19 10:53:27 2006 +# Input File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.mmp +# Output File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.xyz +# Trace File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 23 +# +# 7 columns: +# Thermo-2: temperature (K) +# Linear Motor-3: displacement (angstroms) +# Distance-1-3: distance (angstroms) +# Angle-4-1-2: angle (degrees) +# Dihedral-1-2-3-4: dihedral (degrees) +# Anchor-4: torque (nn-nm) +# Thermo-4: temperature (K) +# +# Time T.meter Lmotor Distance Angle Dihedral Anchor T.meter +# picosec Thermo-2 Linear Motor-3 Distance-1-3 Angle-4-1-2 Dihedral-1-2-3- Anchor-4 Thermo-4 +# + 0.0100 423.97 -0.0110 9.9470 95.91957 -9.17430 0.00 332.77 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.xyzcmp new file mode 100755 index 000000000..9d0c1e36c --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_3.xyzcmp @@ -0,0 +1,25 @@ +23 +Frame 0, Iteration: 100 +C -4.037407 -0.049709 -0.020529 +H -3.414685 0.693545 0.496616 +H -4.615364 0.527261 -0.737759 +H -3.393609 -0.672723 -0.641541 +N -4.859096 -0.919234 0.854547 +H -4.283542 -1.590945 1.356184 +H -5.474255 -0.445435 1.511972 +C 0.509511 5.192406 -0.000800 +H -0.103246 5.847127 -0.625816 +H -0.059101 4.582888 0.702119 +H 1.207359 4.573491 -0.566755 +O 1.348626 6.061519 0.850480 +H 1.922453 6.601782 0.279543 +C 5.906437 -0.159000 0.000000 +H 6.559704 0.504530 0.566521 +H 5.251552 0.501612 -0.574906 +H 5.302412 -0.760262 0.685528 +H 6.509814 -0.803912 -0.637685 +C 1.261036 -5.717664 -0.014008 +Cl 2.321999 -4.669999 1.034002 +Cl 0.237700 -6.735291 1.045850 +Cl 2.312766 -6.752830 -1.068915 +Cl 0.278255 -4.655349 -1.027984 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.mmp new file mode 100755 index 000000000..bed127cdb --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.mmp @@ -0,0 +1,74 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (05-thermo-lmotor-anchor-measurement jigs reordering-3) +info opengroup open = True +forward_ref (241878960) # lmotor (Linear Motor-3) +forward_ref (241672880) # ground (Anchor-4) +forward_ref (241879000) # thermo (Thermo-2) +forward_ref (241879240) # mangle (Angle-4-1-2) +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +forward_ref (241879280) # thermo (Thermo-4) +mol (1) tub +atom 1 (6) (-4035, -61, 0) - +atom 2 (1) (-3412, 563, 624) - +bond1 1 +atom 3 (1) (-4661, 563, -624) - +bond1 1 +atom 4 (1) (-3412, -686, -624) - +bond1 1 +atom 5 (7) (-4903, -928, 867) - +bond1 1 +atom 6 (1) (-4303, -1528, 1467) - +bond1 5 +atom 7 (1) (-5504, -328, 1467) - +bond1 5 +thermo (Thermo-2) (153, 0, 51) 1 7 5 +info leaf forwarded = 241879000 +mol (2) tub +atom 8 (6) (527, 5239, 0) - +atom 9 (1) (-97, 5863, -624) - +bond1 8 +atom 10 (1) (-97, 4614, 624) - +bond1 8 +atom 11 (1) (1152, 4614, -624) - +bond1 8 +atom 12 (8) (1371, 6083, 844) - +bond1 8 +atom 13 (1) (1915, 6627, 204) - +bond1 12 +forward_ref (241879400) # mdistance (Distance-1-3) +mol (3) tub +atom 14 (6) (5901, -159, 0) - +atom 15 (1) (6526, 465, 624) - +bond1 14 +atom 16 (1) (5277, 465, -624) - +bond1 14 +atom 17 (1) (5277, -784, 624) - +bond1 14 +atom 18 (1) (6526, -784, -624) - +bond1 14 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 14 +info leaf forwarded = 241878960 +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 1 14 +info leaf forwarded = 241879400 +mol (4) tub +atom 19 (6) (1288, -5705, 0) - +atom 20 (17) (2322, -4670, 1034) - +bond1 19 +atom 21 (17) (253, -6740, 1034) - +bond1 19 +atom 22 (17) (2322, -6740, -1034) - +bond1 19 +atom 23 (17) (253, -4670, -1034) - +bond1 19 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 1 8 +info leaf forwarded = 241879240 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 5 12 14 23 +info leaf forwarded = 241879560 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +info leaf forwarded = 241879280 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-3) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-3 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.trc b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.trc new file mode 100755 index 000000000..deeb863c8 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.trc @@ -0,0 +1,34 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.trc test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.mmp +# Date and Time: Wed Apr 19 10:53:27 2006 +# Input File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.mmp +# Output File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.xyz +# Trace File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 23 +# +# 7 columns: +# Thermo-2: temperature (K) +# Linear Motor-3: displacement (angstroms) +# Distance-1-3: distance (angstroms) +# Anchor-4: torque (nn-nm) +# Angle-4-1-2: angle (degrees) +# Dihedral-1-2-3-4: dihedral (degrees) +# Thermo-4: temperature (K) +# +# Time T.meter Lmotor Distance Anchor Angle Dihedral T.meter +# picosec Thermo-2 Linear Motor-3 Distance-1-3 Anchor-4 Angle-4-1-2 Dihedral-1-2-3- Thermo-4 +# + 0.0100 423.97 -0.0110 9.9470 0.00 95.91957 -9.17430 332.77 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.xyzcmp new file mode 100755 index 000000000..9d0c1e36c --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_4.xyzcmp @@ -0,0 +1,25 @@ +23 +Frame 0, Iteration: 100 +C -4.037407 -0.049709 -0.020529 +H -3.414685 0.693545 0.496616 +H -4.615364 0.527261 -0.737759 +H -3.393609 -0.672723 -0.641541 +N -4.859096 -0.919234 0.854547 +H -4.283542 -1.590945 1.356184 +H -5.474255 -0.445435 1.511972 +C 0.509511 5.192406 -0.000800 +H -0.103246 5.847127 -0.625816 +H -0.059101 4.582888 0.702119 +H 1.207359 4.573491 -0.566755 +O 1.348626 6.061519 0.850480 +H 1.922453 6.601782 0.279543 +C 5.906437 -0.159000 0.000000 +H 6.559704 0.504530 0.566521 +H 5.251552 0.501612 -0.574906 +H 5.302412 -0.760262 0.685528 +H 6.509814 -0.803912 -0.637685 +C 1.261036 -5.717664 -0.014008 +Cl 2.321999 -4.669999 1.034002 +Cl 0.237700 -6.735291 1.045850 +Cl 2.312766 -6.752830 -1.068915 +Cl 0.278255 -4.655349 -1.027984 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.mmp new file mode 100755 index 000000000..836f30769 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.mmp @@ -0,0 +1,72 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (05-thermo-lmotor-anchor-measurement jigs reordering-4) +info opengroup open = True +forward_ref (241672880) # ground (Anchor-4) +forward_ref (241878960) # lmotor (Linear Motor-3) +forward_ref (241879280) # thermo (Thermo-4) +forward_ref (241879240) # mangle (Angle-4-1-2) +mol (1) tub +atom 1 (6) (-4035, -61, 0) - +atom 2 (1) (-3412, 563, 624) - +bond1 1 +atom 3 (1) (-4661, 563, -624) - +bond1 1 +atom 4 (1) (-3412, -686, -624) - +bond1 1 +atom 5 (7) (-4903, -928, 867) - +bond1 1 +atom 6 (1) (-4303, -1528, 1467) - +bond1 5 +atom 7 (1) (-5504, -328, 1467) - +bond1 5 +mol (2) tub +atom 8 (6) (527, 5239, 0) - +atom 9 (1) (-97, 5863, -624) - +bond1 8 +atom 10 (1) (-97, 4614, 624) - +bond1 8 +atom 11 (1) (1152, 4614, -624) - +bond1 8 +atom 12 (8) (1371, 6083, 844) - +bond1 8 +atom 13 (1) (1915, 6627, 204) - +bond1 12 +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +forward_ref (241879400) # mdistance (Distance-1-3) +mol (3) tub +atom 14 (6) (5901, -159, 0) - +atom 15 (1) (6526, 465, 624) - +bond1 14 +atom 16 (1) (5277, 465, -624) - +bond1 14 +atom 17 (1) (5277, -784, 624) - +bond1 14 +atom 18 (1) (6526, -784, -624) - +bond1 14 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 14 +info leaf forwarded = 241878960 +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 1 14 +info leaf forwarded = 241879400 +mol (4) tub +atom 19 (6) (1288, -5705, 0) - +atom 20 (17) (2322, -4670, 1034) - +bond1 19 +atom 21 (17) (253, -6740, 1034) - +bond1 19 +atom 22 (17) (2322, -6740, -1034) - +bond1 19 +atom 23 (17) (253, -4670, -1034) - +bond1 19 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +info leaf forwarded = 241879280 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 1 8 +info leaf forwarded = 241879240 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 5 12 14 23 +info leaf forwarded = 241879560 +thermo (Thermo-2) (153, 0, 51) 1 7 5 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-4) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-4 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.trc b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.trc new file mode 100755 index 000000000..5196731a3 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.trc @@ -0,0 +1,34 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.trc test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.mmp +# Date and Time: Wed Apr 19 10:53:27 2006 +# Input File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.mmp +# Output File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.xyz +# Trace File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 23 +# +# 7 columns: +# Linear Motor-3: displacement (angstroms) +# Distance-1-3: distance (angstroms) +# Anchor-4: torque (nn-nm) +# Thermo-4: temperature (K) +# Angle-4-1-2: angle (degrees) +# Dihedral-1-2-3-4: dihedral (degrees) +# Thermo-2: temperature (K) +# +# Time Lmotor Distance Anchor T.meter Angle Dihedral T.meter +# picosec Linear Motor-3 Distance-1-3 Anchor-4 Thermo-4 Angle-4-1-2 Dihedral-1-2-3- Thermo-2 +# + 0.0100 -0.0110 9.9470 0.00 332.77 95.91957 -9.17430 423.97 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.xyzcmp new file mode 100755 index 000000000..9d0c1e36c --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_5.xyzcmp @@ -0,0 +1,25 @@ +23 +Frame 0, Iteration: 100 +C -4.037407 -0.049709 -0.020529 +H -3.414685 0.693545 0.496616 +H -4.615364 0.527261 -0.737759 +H -3.393609 -0.672723 -0.641541 +N -4.859096 -0.919234 0.854547 +H -4.283542 -1.590945 1.356184 +H -5.474255 -0.445435 1.511972 +C 0.509511 5.192406 -0.000800 +H -0.103246 5.847127 -0.625816 +H -0.059101 4.582888 0.702119 +H 1.207359 4.573491 -0.566755 +O 1.348626 6.061519 0.850480 +H 1.922453 6.601782 0.279543 +C 5.906437 -0.159000 0.000000 +H 6.559704 0.504530 0.566521 +H 5.251552 0.501612 -0.574906 +H 5.302412 -0.760262 0.685528 +H 6.509814 -0.803912 -0.637685 +C 1.261036 -5.717664 -0.014008 +Cl 2.321999 -4.669999 1.034002 +Cl 0.237700 -6.735291 1.045850 +Cl 2.312766 -6.752830 -1.068915 +Cl 0.278255 -4.655349 -1.027984 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.mmp new file mode 100755 index 000000000..e0383c872 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.mmp @@ -0,0 +1,80 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (05-thermo-lmotor-anchor-measurement jigs reordering-5) +info opengroup open = True +group (Group163) +info opengroup open = True +forward_ref (241672880) # ground (Anchor-4) +forward_ref (241878960) # lmotor (Linear Motor-3) +mol (3) tub +atom 1 (6) (5901, -159, 0) - +atom 2 (1) (6526, 465, 624) - +bond1 1 +atom 3 (1) (5277, 465, -624) - +bond1 1 +atom 4 (1) (5277, -784, 624) - +bond1 1 +atom 5 (1) (6526, -784, -624) - +bond1 1 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 1 +info leaf forwarded = 241878960 +egroup (Group163) +forward_ref (241879280) # thermo (Thermo-4) +forward_ref (241879240) # mangle (Angle-4-1-2) +mol (1) tub +atom 6 (6) (-4035, -61, 0) def +atom 7 (1) (-3412, 563, 624) def +bond1 6 +atom 8 (1) (-4661, 563, -624) def +bond1 6 +atom 9 (1) (-3412, -686, -624) def +bond1 6 +atom 10 (7) (-4903, -928, 867) def +bond1 6 +atom 11 (1) (-4303, -1528, 1467) def +bond1 10 +atom 12 (1) (-5504, -328, 1467) def +bond1 10 +group (Group164) +info opengroup open = True +mol (2) tub +atom 13 (6) (527, 5239, 0) def +atom 14 (1) (-97, 5863, -624) def +bond1 13 +atom 15 (1) (-97, 4614, 624) def +bond1 13 +atom 16 (1) (1152, 4614, -624) def +bond1 13 +atom 17 (8) (1371, 6083, 844) def +bond1 13 +atom 18 (1) (1915, 6627, 204) def +bond1 17 +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +egroup (Group164) +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 6 1 +mol (4) tub +atom 19 (6) (1288, -5705, 0) def +atom 20 (17) (2322, -4670, 1034) def +bond1 19 +atom 21 (17) (253, -6740, 1034) def +bond1 19 +atom 22 (17) (2322, -6740, -1034) def +bond1 19 +atom 23 (17) (253, -4670, -1034) def +bond1 19 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +info leaf forwarded = 241879280 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 6 13 +info leaf forwarded = 241879240 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 10 17 1 23 +info leaf forwarded = 241879560 +thermo (Thermo-2) (153, 0, 51) 6 12 10 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-5) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-5 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.trc b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.trc new file mode 100755 index 000000000..012d899fa --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.trc @@ -0,0 +1,34 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.trc test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.mmp +# Date and Time: Wed Apr 19 10:53:27 2006 +# Input File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.mmp +# Output File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.xyz +# Trace File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 23 +# +# 7 columns: +# Linear Motor-3: displacement (angstroms) +# Distance-1-3: distance (angstroms) +# Anchor-4: torque (nn-nm) +# Thermo-4: temperature (K) +# Angle-4-1-2: angle (degrees) +# Dihedral-1-2-3-4: dihedral (degrees) +# Thermo-2: temperature (K) +# +# Time Lmotor Distance Anchor T.meter Angle Dihedral T.meter +# picosec Linear Motor-3 Distance-1-3 Anchor-4 Thermo-4 Angle-4-1-2 Dihedral-1-2-3- Thermo-2 +# + 0.0100 -0.0258 10.0053 0.00 326.25 96.07593 -10.02470 289.61 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.xyzcmp new file mode 100755 index 000000000..5ad31c789 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_6.xyzcmp @@ -0,0 +1,25 @@ +23 +Frame 0, Iteration: 100 +C 5.913890 -0.159000 0.000000 +H 6.474332 0.591420 0.571775 +H 5.301111 0.393700 -0.709117 +H 5.251877 -0.738156 0.647660 +H 6.632953 -0.744105 -0.579815 +C -4.055099 -0.084600 -0.015836 +H -3.404940 0.548271 0.589089 +H -4.653267 0.495811 -0.721226 +H -3.378825 -0.654133 -0.652501 +N -4.903115 -0.953766 0.913924 +H -4.314568 -1.514818 1.529580 +H -5.548706 -0.432548 1.505346 +C 0.525065 5.252593 0.005809 +H -0.157851 5.933232 -0.502321 +H -0.057773 4.636198 0.689677 +H 1.136986 4.678795 -0.698394 +O 1.396082 6.120005 0.821770 +H 1.996760 6.590522 0.222671 +C 1.260630 -5.721539 -0.011305 +Cl 2.321999 -4.670000 1.034003 +Cl 0.237231 -6.739344 1.048602 +Cl 2.312285 -6.756894 -1.066177 +Cl 0.277762 -4.659431 -1.025259 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.mmp new file mode 100755 index 000000000..62e7a5778 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.mmp @@ -0,0 +1,76 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (05-thermo-lmotor-anchor-measurement jigs reordering-6) +info opengroup open = True +group (Group165) +info opengroup open = True +mol (3) tub +atom 1 (6) (5901, -159, 0) - +atom 2 (1) (6526, 465, 624) - +bond1 1 +atom 3 (1) (5277, 465, -624) - +bond1 1 +atom 4 (1) (5277, -784, 624) - +bond1 1 +atom 5 (1) (6526, -784, -624) - +bond1 1 +forward_ref (241879000) # thermo (Thermo-2) +forward_ref (241879240) # mangle (Angle-4-1-2) +egroup (Group165) +mol (1) tub +atom 6 (6) (-4035, -61, 0) def +atom 7 (1) (-3412, 563, 624) def +bond1 6 +atom 8 (1) (-4661, 563, -624) def +bond1 6 +atom 9 (1) (-3412, -686, -624) def +bond1 6 +atom 10 (7) (-4903, -928, 867) def +bond1 6 +atom 11 (1) (-4303, -1528, 1467) def +bond1 10 +atom 12 (1) (-5504, -328, 1467) def +bond1 10 +thermo (Thermo-2) (153, 0, 51) 6 12 10 +info leaf forwarded = 241879000 +group (Group164) +info opengroup open = True +mol (2) tub +atom 13 (6) (527, 5239, 0) def +atom 14 (1) (-97, 5863, -624) def +bond1 13 +atom 15 (1) (-97, 4614, 624) def +bond1 13 +atom 16 (1) (1152, 4614, -624) def +bond1 13 +atom 17 (8) (1371, 6083, 844) def +bond1 13 +atom 18 (1) (1915, 6627, 204) def +bond1 17 +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +egroup (Group164) +forward_ref (241672880) # ground (Anchor-4) +mol (4) tub +atom 19 (6) (1288, -5705, 0) def +atom 20 (17) (2322, -4670, 1034) def +bond1 19 +atom 21 (17) (253, -6740, 1034) def +bond1 19 +atom 22 (17) (2322, -6740, -1034) def +bond1 19 +atom 23 (17) (253, -4670, -1034) def +bond1 19 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 6 13 +info leaf forwarded = 241879240 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 10 17 1 23 +info leaf forwarded = 241879560 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 6 1 +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-6 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.trc b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.trc new file mode 100755 index 000000000..9a6c50ee1 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.trc @@ -0,0 +1,33 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.trc test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.mmp +# Date and Time: Wed Apr 19 10:53:27 2006 +# Input File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.mmp +# Output File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.xyz +# Trace File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 23 +# +# 6 columns: +# Thermo-2: temperature (K) +# Angle-4-1-2: angle (degrees) +# Dihedral-1-2-3-4: dihedral (degrees) +# Anchor-4: torque (nn-nm) +# Thermo-4: temperature (K) +# Distance-1-3: distance (angstroms) +# +# Time T.meter Angle Dihedral Anchor T.meter Distance +# picosec Thermo-2 Angle-4-1-2 Dihedral-1-2-3- Anchor-4 Thermo-4 Distance-1-3 +# + 0.0100 289.61 96.07593 -9.62275 0.00 326.25 10.0045 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.xyzcmp new file mode 100755 index 000000000..c272c7ff1 --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_7.xyzcmp @@ -0,0 +1,25 @@ +23 +Frame 0, Iteration: 100 +C 5.913703 -0.159048 -0.027570 +H 6.469849 0.584632 0.556082 +H 5.296449 0.401446 -0.725276 +H 5.256860 -0.733344 0.632348 +H 6.639391 -0.746055 -0.595659 +C -4.055099 -0.084600 -0.015836 +H -3.404940 0.548271 0.589089 +H -4.653267 0.495811 -0.721226 +H -3.378825 -0.654133 -0.652501 +N -4.903115 -0.953766 0.913924 +H -4.314568 -1.514818 1.529580 +H -5.548706 -0.432548 1.505346 +C 0.525065 5.252593 0.005809 +H -0.157851 5.933232 -0.502321 +H -0.057773 4.636198 0.689677 +H 1.136986 4.678795 -0.698394 +O 1.396082 6.120005 0.821770 +H 1.996760 6.590522 0.222671 +C 1.260630 -5.721539 -0.011305 +Cl 2.321999 -4.670000 1.034003 +Cl 0.237231 -6.739344 1.048602 +Cl 2.312285 -6.756894 -1.066177 +Cl 0.277762 -4.659431 -1.025259 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.mmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.mmp new file mode 100755 index 000000000..1d8a749ff --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.mmp @@ -0,0 +1,86 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (05-thermo-lmotor-anchor-measurement jigs reordering-7) +info opengroup open = True +group (Group163) +info opengroup open = True +forward_ref (241878960) # lmotor (Linear Motor-3) +egroup (Group163) +mol (1) tub +atom 1 (6) (-4035, -61, 0) def +atom 2 (1) (-3412, 563, 624) def +bond1 1 +atom 3 (1) (-4661, 563, -624) def +bond1 1 +atom 4 (1) (-3412, -686, -624) def +bond1 1 +atom 5 (7) (-4903, -928, 867) def +bond1 1 +atom 6 (1) (-4303, -1528, 1467) def +bond1 5 +atom 7 (1) (-5504, -328, 1467) def +bond1 5 +group (Group166) +info opengroup open = True +mol (2) tub +atom 8 (6) (527, 5239, 0) def +atom 9 (1) (-97, 5863, -624) def +bond1 8 +atom 10 (1) (-97, 4614, 624) def +bond1 8 +atom 11 (1) (1152, 4614, -624) def +bond1 8 +atom 12 (8) (1371, 6083, 844) def +bond1 8 +atom 13 (1) (1915, 6627, 204) def +bond1 12 +forward_ref (241672880) # ground (Anchor-4) +forward_ref (241879280) # thermo (Thermo-4) +egroup (Group166) +group (Group164) +info opengroup open = True +forward_ref (241879560) # mdihedral (Dihedral-1-2-3-4) +egroup (Group164) +mol (3) tub +atom 14 (6) (5901, -159, 0) def +atom 15 (1) (6526, 465, 624) def +bond1 14 +atom 16 (1) (5277, 465, -624) def +bond1 14 +atom 17 (1) (5277, -784, 624) def +bond1 14 +atom 18 (1) (6526, -784, -624) def +bond1 14 +lmotor (Linear Motor-3) (127, 127, 127) 0.500000 0.050000 (5901, -159, 0) (-1000, 0, 0) 3.00 0.50 0.10 +shaft 14 +info leaf forwarded = 241878960 +forward_ref (241879240) # mangle (Angle-4-1-2) +mdistance (Distance-1-3) (0, 0, 0) (Helvetica) 10 1 14 +group (Group165) +info opengroup open = True +mol (4) tub +atom 19 (6) (1288, -5705, 0) def +atom 20 (17) (2322, -4670, 1034) def +bond1 19 +atom 21 (17) (253, -6740, 1034) def +bond1 19 +atom 22 (17) (2322, -6740, -1034) def +bond1 19 +atom 23 (17) (253, -4670, -1034) def +bond1 19 +ground (Anchor-4) (0, 0, 0) 20 +info leaf forwarded = 241672880 +thermo (Thermo-4) (153, 0, 51) 19 23 19 +info leaf forwarded = 241879280 +mdihedral (Dihedral-1-2-3-4) (0, 0, 0) (Helvetica) 10 5 12 14 23 +info leaf forwarded = 241879560 +mangle (Angle-4-1-2) (0, 0, 0) (Helvetica) 10 19 1 8 +info leaf forwarded = 241879240 +thermo (Thermo-2) (153, 0, 51) 1 7 5 +egroup (Group165) +egroup (05-thermo-lmotor-anchor-measurement jigs reordering-7) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 05-thermo-lmotor-anchor-measurement jigs reordering-7 diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.trc b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.trc new file mode 100755 index 000000000..e014a360b --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.trc @@ -0,0 +1,34 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.trc test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.mmp +# Date and Time: Wed Apr 19 10:53:27 2006 +# Input File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.mmp +# Output File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.xyz +# Trace File: test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 23 +# +# 7 columns: +# Linear Motor-3: displacement (angstroms) +# Distance-1-3: distance (angstroms) +# Anchor-4: torque (nn-nm) +# Thermo-4: temperature (K) +# Dihedral-1-2-3-4: dihedral (degrees) +# Angle-4-1-2: angle (degrees) +# Thermo-2: temperature (K) +# +# Time Lmotor Distance Anchor T.meter Dihedral Angle T.meter +# picosec Linear Motor-3 Distance-1-3 Anchor-4 Thermo-4 Dihedral-1-2-3- Angle-4-1-2 Thermo-2 +# + 0.0100 -0.0110 9.9470 0.00 332.77 -9.17430 95.91957 423.97 +# Done: diff --git a/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.xyzcmp b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.xyzcmp new file mode 100755 index 000000000..9d0c1e36c --- /dev/null +++ b/sim/src/tests/reordering_jigs_or_chunks/test_05_thermo_lmotor_anchor_measurement_jigs_reordering_8.xyzcmp @@ -0,0 +1,25 @@ +23 +Frame 0, Iteration: 100 +C -4.037407 -0.049709 -0.020529 +H -3.414685 0.693545 0.496616 +H -4.615364 0.527261 -0.737759 +H -3.393609 -0.672723 -0.641541 +N -4.859096 -0.919234 0.854547 +H -4.283542 -1.590945 1.356184 +H -5.474255 -0.445435 1.511972 +C 0.509511 5.192406 -0.000800 +H -0.103246 5.847127 -0.625816 +H -0.059101 4.582888 0.702119 +H 1.207359 4.573491 -0.566755 +O 1.348626 6.061519 0.850480 +H 1.922453 6.601782 0.279543 +C 5.906437 -0.159000 0.000000 +H 6.559704 0.504530 0.566521 +H 5.251552 0.501612 -0.574906 +H 5.302412 -0.760262 0.685528 +H 6.509814 -0.803912 -0.637685 +C 1.261036 -5.717664 -0.014008 +Cl 2.321999 -4.669999 1.034002 +Cl 0.237700 -6.735291 1.045850 +Cl 2.312766 -6.752830 -1.068915 +Cl 0.278255 -4.655349 -1.027984 diff --git a/sim/src/tests/rigid_organics/Atom.py b/sim/src/tests/rigid_organics/Atom.py new file mode 100755 index 000000000..de10aca58 --- /dev/null +++ b/sim/src/tests/rigid_organics/Atom.py @@ -0,0 +1,66 @@ +#!/usr/bin/python + +"""MMP and XYZ files share a common Atom definition. This will +make it easy to move information back and forth between the two +formats. + +$Id$ +""" + +__author__ = "Will" + +import re +import os +import sys +import string +import random + +_PeriodicTable = [ + "X", # our singlet has element number zero + "H", "He", + "Li", "Be", "B", "C", "N", "O", "F", "Ne", + "Na", "Mg", "Al", "Si", "P", "S", "Cl", "Ar", + "K", "Ca" #Sc,Ti,V,Cr,Mn,Fe.... + ] + +_MmpAtomPattern = re.compile("^atom (\d+) \((\d+)\) " + + "\((\-?\d+), (\-?\d+), (\-?\d+)\)") + +class NotAtomException(Exception): + pass + +class Atom: + def fromMmp(self, line): + m = _MmpAtomPattern.match(line) + if m == None: + raise NotAtomException + groups = m.groups() + self.elem = elem = string.atoi(groups[1]) + str = "atom %s" % groups[0] + str += " (%s)" % groups[1] + str += " (%d, %d, %d)" + str += line[m.span()[1]:] # anything after position + self._mmpstr = str + self.x = 0.001 * string.atoi(groups[2]) + self.y = 0.001 * string.atoi(groups[3]) + self.z = 0.001 * string.atoi(groups[4]) + def clone(self): + "permit deep cloning of structure files" + a = Atom() + for key in self.__dict__.keys(): + setattr(a, key, getattr(self, key)) + return a + def fromXyz(self, element, x, y, z): + self.elem = _PeriodicTable.index(element) + self.x = x + self.y = y + self.z = z + def toMmpString(self): + return self._mmpstr % (int(self.x * 1000), + int(self.y * 1000), + int(self.z * 1000)) + def toXyzString(self): + element = _PeriodicTable[self.elem] + return "%s %f %f %f" % (element, self.x, self.y, self.z) + def __repr__(self): + return "<" + self.toXyzString() + ">" diff --git a/sim/src/tests/rigid_organics/C10H12.jpg b/sim/src/tests/rigid_organics/C10H12.jpg Binary files differnew file mode 100755 index 000000000..c3853e31f --- /dev/null +++ b/sim/src/tests/rigid_organics/C10H12.jpg diff --git a/sim/src/tests/rigid_organics/C10H12.mmp b/sim/src/tests/rigid_organics/C10H12.mmp new file mode 100755 index 000000000..f5d4e0079 --- /dev/null +++ b/sim/src/tests/rigid_organics/C10H12.mmp @@ -0,0 +1,58 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.267749) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C10H12) +info opengroup open = True +mol (C10H12.pdb) def +atom 1 (6) (-661, -1288, -573) def +atom 2 (6) (-1391, 622, 300) def +atom 3 (6) (-232, 239, 1248) def +bond1 2 +atom 4 (6) (661, 1288, 565) def +bond1 3 +atom 5 (6) (-1978, -640, -250) def +bond1 1 2 +atom 6 (6) (233, -233, -1248) def +bond1 1 +atom 7 (6) (1979, 637, 242) def +bond1 4 +atom 8 (6) (272, -1096, 628) def +bond1 1 3 +atom 9 (6) (-272, 1096, -635) def +bond1 2 4 6 +atom 10 (6) (1391, -625, -310) def +bond1 6 7 8 +atom 11 (1) (-667, -2270, -1016) def +bond1 1 +atom 12 (1) (-2064, 1385, 666) def +bond1 2 +atom 13 (1) (-373, 232, 2320) def +bond1 3 +atom 14 (1) (668, 2270, 1016) def +bond1 4 +atom 15 (1) (-2591, -467, -1125) def +bond1 5 +atom 16 (1) (-2563, -1198, 460) def +bond1 5 +atom 17 (1) (373, -227, -2320) def +bond1 6 +atom 18 (1) (2560, 1195, -469) def +bond1 7 +atom 19 (1) (2591, 467, 1117) def +bond1 7 +atom 20 (1) (441, -1894, 1330) def +bond1 8 +atom 21 (1) (-444, 1895, -1338) def +bond1 9 +atom 22 (1) (2065, -1385, -674) def +bond1 10 +egroup (C10H12) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C10H12 diff --git a/sim/src/tests/rigid_organics/C10H12.pdb b/sim/src/tests/rigid_organics/C10H12.pdb new file mode 100755 index 000000000..c5935607c --- /dev/null +++ b/sim/src/tests/rigid_organics/C10H12.pdb @@ -0,0 +1,46 @@ +COMPND from C10H12.pdb +HETATM 1 C -0.661 -1.288 -0.573 +HETATM 2 C -1.391 0.622 0.300 +HETATM 3 C -0.232 0.239 1.248 +HETATM 4 C 0.661 1.288 0.565 +HETATM 5 C -1.978 -0.640 -0.250 +HETATM 6 C 0.233 -0.233 -1.248 +HETATM 7 C 1.979 0.637 0.242 +HETATM 8 C 0.272 -1.096 0.628 +HETATM 9 C -0.272 1.096 -0.635 +HETATM 10 C 1.391 -0.625 -0.310 +HETATM 11 H -0.667 -2.270 -1.016 +HETATM 12 H -2.064 1.385 0.666 +HETATM 13 H -0.373 0.232 2.320 +HETATM 14 H 0.668 2.270 1.016 +HETATM 15 H -2.591 -0.467 -1.125 +HETATM 16 H -2.563 -1.198 0.460 +HETATM 17 H 0.373 -0.227 -2.320 +HETATM 18 H 2.560 1.195 -0.469 +HETATM 19 H 2.591 0.467 1.117 +HETATM 20 H 0.441 -1.894 1.330 +HETATM 21 H -0.444 1.895 -1.338 +HETATM 22 H 2.065 -1.385 -0.674 +CONECT 1 5 6 8 11 +CONECT 2 3 5 9 12 +CONECT 3 2 4 8 13 +CONECT 4 3 7 9 14 +CONECT 5 1 2 15 16 +CONECT 6 1 9 10 17 +CONECT 7 4 10 18 19 +CONECT 8 1 3 10 20 +CONECT 9 2 4 6 21 +CONECT 10 6 7 8 22 +CONECT 11 1 +CONECT 12 2 +CONECT 13 3 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 6 +CONECT 18 7 +CONECT 19 7 +CONECT 20 8 +CONECT 21 9 +CONECT 22 10 +END diff --git a/sim/src/tests/rigid_organics/C10H14.jpg b/sim/src/tests/rigid_organics/C10H14.jpg Binary files differnew file mode 100755 index 000000000..de388d126 --- /dev/null +++ b/sim/src/tests/rigid_organics/C10H14.jpg diff --git a/sim/src/tests/rigid_organics/C10H14.mmp b/sim/src/tests/rigid_organics/C10H14.mmp new file mode 100755 index 000000000..582ea5aca --- /dev/null +++ b/sim/src/tests/rigid_organics/C10H14.mmp @@ -0,0 +1,67 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.304694) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C10H14) +info opengroup open = True +mol (C10H14.pdb) def +atom 1 (6) (-1586, 651, 418) def +atom 2 (6) (-1397, -882, 410) def +bond1 1 +atom 3 (6) (-265, 1340, 9) def +bond1 1 +atom 4 (6) (-285, -1264, 1410) def +bond1 2 +atom 5 (6) (-995, -1337, -1002) def +bond1 2 +atom 6 (6) (140, 878, -1400) def +bond1 3 +atom 7 (6) (844, 948, 1008) def +bond1 3 +atom 8 (6) (1040, -584, 995) def +bond1 4 7 +atom 9 (6) (1435, -1047, -409) def +bond1 8 +atom 10 (6) (328, -655, -1414) def +bond1 5 6 9 +atom 11 (1) (-2394, 936, -266) def +bond1 1 +atom 12 (1) (-1890, 985, 1417) def +bond1 1 +atom 13 (1) (-2341, -1370, 702) def +bond1 2 +atom 14 (1) (-400, 2433, 16) def +bond1 3 +atom 15 (1) (-158, -2359, 1438) def +bond1 4 +atom 16 (1) (-570, -950, 2425) def +bond1 4 +atom 17 (1) (-879, -2433, -1029) def +bond1 5 +atom 18 (1) (-1789, -1084, -1717) def +bond1 5 +atom 19 (1) (1069, 1376, -1704) def +bond1 6 +atom 20 (1) (-630, 1169, -2130) def +bond1 6 +atom 21 (1) (1784, 1454, 750) def +bond1 7 +atom 22 (1) (577, 1283, 2025) def +bond1 7 +atom 23 (1) (1830, -859, 1708) def +bond1 8 +atom 24 (1) (2394, -593, -706) def +bond1 9 +atom 25 (1) (1580, -2139, -421) def +bond1 9 +atom 26 (1) (611, -981, -2425) def +bond1 10 +egroup (C10H14) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C10H14 diff --git a/sim/src/tests/rigid_organics/C10H14.pdb b/sim/src/tests/rigid_organics/C10H14.pdb new file mode 100755 index 000000000..1727ba620 --- /dev/null +++ b/sim/src/tests/rigid_organics/C10H14.pdb @@ -0,0 +1,54 @@ +COMPND from C10H14.pdb +HETATM 1 C -1.586 0.651 0.418 +HETATM 2 C -1.397 -0.882 0.410 +HETATM 3 C -0.265 1.340 0.009 +HETATM 4 C -0.285 -1.264 1.410 +HETATM 5 C -0.995 -1.337 -1.002 +HETATM 6 C 0.140 0.878 -1.400 +HETATM 7 C 0.844 0.948 1.008 +HETATM 8 C 1.040 -0.584 0.995 +HETATM 9 C 1.435 -1.047 -0.409 +HETATM 10 C 0.328 -0.655 -1.414 +HETATM 11 H -2.394 0.936 -0.266 +HETATM 12 H -1.890 0.985 1.417 +HETATM 13 H -2.341 -1.370 0.702 +HETATM 14 H -0.400 2.433 0.016 +HETATM 15 H -0.158 -2.359 1.438 +HETATM 16 H -0.570 -0.950 2.425 +HETATM 17 H -0.879 -2.433 -1.029 +HETATM 18 H -1.789 -1.084 -1.717 +HETATM 19 H 1.069 1.376 -1.704 +HETATM 20 H -0.630 1.169 -2.130 +HETATM 21 H 1.784 1.454 0.750 +HETATM 22 H 0.577 1.283 2.025 +HETATM 23 H 1.830 -0.859 1.708 +HETATM 24 H 2.394 -0.593 -0.706 +HETATM 25 H 1.580 -2.139 -0.421 +HETATM 26 H 0.611 -0.981 -2.425 +CONECT 1 2 3 11 12 +CONECT 2 1 4 5 13 +CONECT 3 1 6 7 14 +CONECT 4 2 8 15 16 +CONECT 5 2 10 17 18 +CONECT 6 3 10 19 20 +CONECT 7 3 8 21 22 +CONECT 8 4 7 9 23 +CONECT 9 8 10 24 25 +CONECT 10 5 6 9 26 +CONECT 11 1 +CONECT 12 1 +CONECT 13 2 +CONECT 14 3 +CONECT 15 4 +CONECT 16 4 +CONECT 17 5 +CONECT 18 5 +CONECT 19 6 +CONECT 20 6 +CONECT 21 7 +CONECT 22 7 +CONECT 23 8 +CONECT 24 9 +CONECT 25 9 +CONECT 26 10 +END diff --git a/sim/src/tests/rigid_organics/C14H20.jpg b/sim/src/tests/rigid_organics/C14H20.jpg Binary files differnew file mode 100755 index 000000000..e14caedea --- /dev/null +++ b/sim/src/tests/rigid_organics/C14H20.jpg diff --git a/sim/src/tests/rigid_organics/C14H20.mmp b/sim/src/tests/rigid_organics/C14H20.mmp new file mode 100755 index 000000000..8b6c3b8d9 --- /dev/null +++ b/sim/src/tests/rigid_organics/C14H20.mmp @@ -0,0 +1,83 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.876625) (-0.000000, -0.000000, -0.000500) (1.000000) +egroup (View Data) +group (C14H20) +info opengroup open = True +mol (C14H20.pdb) def +atom 1 (6) (272, -500, -1353) def +atom 2 (6) (-373, 880, -1119) def +bond1 1 +atom 3 (6) (-154, -1449, -204) def +bond1 1 +atom 4 (6) (1807, -369, -1398) def +bond1 1 +atom 5 (6) (154, 1451, 213) def +bond1 2 +atom 6 (6) (-1907, 753, -1069) def +bond1 2 +atom 7 (6) (-1688, -1572, -160) def +bond1 3 +atom 8 (6) (373, -878, 1120) def +bond1 3 +atom 9 (6) (1688, 1574, 161) def +bond1 5 +atom 10 (6) (-272, 500, 1354) def +bond1 5 8 +atom 11 (6) (1908, -751, 1070) def +bond1 8 +atom 12 (6) (-1807, 370, 1398) def +bond1 10 +atom 13 (6) (-2319, -186, 59) def +bond1 6 7 12 +atom 14 (6) (2319, 188, -58) def +bond1 4 9 11 +atom 15 (1) (-78, -905, -2308) def +bond1 1 +atom 16 (1) (-86, 1557, -1934) def +bond1 2 +atom 17 (1) (281, -2441, -379) def +bond1 3 +atom 18 (1) (2263, -1348, -1592) def +bond1 4 +atom 19 (1) (2105, 286, -2223) def +bond1 4 +atom 20 (1) (-281, 2441, 380) def +bond1 5 +atom 21 (1) (-2360, 1742, -922) def +bond1 6 +atom 22 (1) (-2281, 370, -2029) def +bond1 6 +atom 23 (1) (-1987, -2264, 624) def +bond1 7 +atom 24 (1) (-2057, -2001, -1106) def +bond1 7 +atom 25 (1) (86, -1556, 1935) def +bond1 8 +atom 26 (1) (2058, 2003, 1107) def +bond1 9 +atom 27 (1) (1987, 2266, -616) def +bond1 9 +atom 28 (1) (78, 906, 2309) def +bond1 10 +atom 29 (1) (2281, -368, 2031) def +bond1 11 +atom 30 (1) (2360, -1741, 922) def +bond1 11 +atom 31 (1) (-2105, -285, 2223) def +bond1 12 +atom 32 (1) (-2263, 1350, 1592) def +bond1 12 +atom 33 (1) (-3413, -276, 85) def +bond1 13 +atom 34 (1) (3413, 277, -84) def +bond1 14 +egroup (C14H20) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C14H20 diff --git a/sim/src/tests/rigid_organics/C14H20.pdb b/sim/src/tests/rigid_organics/C14H20.pdb new file mode 100755 index 000000000..e378093b3 --- /dev/null +++ b/sim/src/tests/rigid_organics/C14H20.pdb @@ -0,0 +1,70 @@ +COMPND from C14H20.pdb +HETATM 1 C 0.272 -0.500 -1.353 +HETATM 2 C -0.373 0.880 -1.119 +HETATM 3 C -0.154 -1.449 -0.204 +HETATM 4 C 1.807 -0.369 -1.398 +HETATM 5 C 0.154 1.451 0.213 +HETATM 6 C -1.907 0.753 -1.069 +HETATM 7 C -1.688 -1.572 -0.160 +HETATM 8 C 0.373 -0.878 1.120 +HETATM 9 C 1.688 1.574 0.161 +HETATM 10 C -0.272 0.500 1.354 +HETATM 11 C 1.908 -0.751 1.070 +HETATM 12 C -1.807 0.370 1.398 +HETATM 13 C -2.319 -0.186 0.059 +HETATM 14 C 2.319 0.188 -0.058 +HETATM 15 H -0.078 -0.905 -2.308 +HETATM 16 H -0.086 1.557 -1.934 +HETATM 17 H 0.281 -2.441 -0.379 +HETATM 18 H 2.263 -1.348 -1.592 +HETATM 19 H 2.105 0.286 -2.223 +HETATM 20 H -0.281 2.441 0.380 +HETATM 21 H -2.360 1.742 -0.922 +HETATM 22 H -2.281 0.370 -2.030 +HETATM 23 H -1.987 -2.264 0.624 +HETATM 24 H -2.057 -2.002 -1.106 +HETATM 25 H 0.086 -1.556 1.935 +HETATM 26 H 2.058 2.003 1.107 +HETATM 27 H 1.987 2.266 -0.616 +HETATM 28 H 0.078 0.906 2.309 +HETATM 29 H 2.281 -0.368 2.031 +HETATM 30 H 2.360 -1.741 0.922 +HETATM 31 H -2.105 -0.285 2.223 +HETATM 32 H -2.263 1.350 1.592 +HETATM 33 H -3.413 -0.276 0.085 +HETATM 34 H 3.413 0.277 -0.084 +CONECT 1 2 3 4 15 +CONECT 2 1 5 6 16 +CONECT 3 1 7 8 17 +CONECT 4 1 14 18 19 +CONECT 5 2 9 10 20 +CONECT 6 2 13 21 22 +CONECT 7 3 13 23 24 +CONECT 8 3 10 11 25 +CONECT 9 5 14 26 27 +CONECT 10 5 8 12 28 +CONECT 11 8 14 29 30 +CONECT 12 10 13 31 32 +CONECT 13 6 7 12 33 +CONECT 14 4 9 11 34 +CONECT 15 1 +CONECT 16 2 +CONECT 17 3 +CONECT 18 4 +CONECT 19 4 +CONECT 20 5 +CONECT 21 6 +CONECT 22 6 +CONECT 23 7 +CONECT 24 7 +CONECT 25 8 +CONECT 26 9 +CONECT 27 9 +CONECT 28 10 +CONECT 29 11 +CONECT 30 11 +CONECT 31 12 +CONECT 32 12 +CONECT 33 13 +CONECT 34 14 +END diff --git a/sim/src/tests/rigid_organics/C14H24.jpg b/sim/src/tests/rigid_organics/C14H24.jpg Binary files differnew file mode 100755 index 000000000..153d35bcc --- /dev/null +++ b/sim/src/tests/rigid_organics/C14H24.jpg diff --git a/sim/src/tests/rigid_organics/C14H24.mmp b/sim/src/tests/rigid_organics/C14H24.mmp new file mode 100755 index 000000000..e391dfffd --- /dev/null +++ b/sim/src/tests/rigid_organics/C14H24.mmp @@ -0,0 +1,91 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (8.645131) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C14H24) +info opengroup open = True +mol (C14H24.pdb) def +atom 1 (6) (-400, 274, 1261) def +atom 2 (6) (-388, -1251, 1110) def +bond1 1 +atom 3 (6) (-172, 979, -76) def +bond1 1 +atom 4 (6) (963, -1667, 519) def +bond1 2 +atom 5 (6) (-617, -1923, 2456) def +bond1 2 +atom 6 (6) (-1500, -1643, 124) def +bond1 2 +atom 7 (6) (-187, 2493, 94) def +bond1 3 +atom 8 (6) (-1285, 542, -1043) def +bond1 3 +atom 9 (6) (1174, 518, -648) def +bond1 3 +atom 10 (6) (1215, -1002, -835) def +bond1 4 9 +atom 11 (6) (2565, -1433, -1400) def +bond1 10 +atom 12 (6) (74, -1408, -1786) def +bond1 10 +atom 13 (6) (-1294, -979, -1237) def +bond1 6 8 12 +atom 14 (6) (-2405, -1389, -2204) def +bond1 13 +atom 15 (1) (-1362, 593, 1678) def +bond1 1 +atom 16 (1) (364, 585, 1980) def +bond1 1 +atom 17 (1) (1000, -2757, 406) def +bond1 4 +atom 18 (1) (1767, -1400, 1211) def +bond1 4 +atom 19 (1) (-597, -3011, 2366) def +bond1 5 +atom 20 (1) (-1582, -1641, 2877) def +bond1 5 +atom 21 (1) (148, -1635, 3177) def +bond1 5 +atom 22 (1) (-1525, -2732, 0) def +bond1 6 +atom 23 (1) (-2467, -1350, 532) def +bond1 6 +atom 24 (1) (-34, 3011, -844) def +bond1 7 +atom 25 (1) (598, 2817, 774) def +bond1 7 +atom 26 (1) (-1141, 2833, 505) def +bond1 7 +atom 27 (1) (-1150, 1035, -2012) def +bond1 8 +atom 28 (1) (-2256, 867, -659) def +bond1 8 +atom 29 (1) (1361, 1016, -1600) def +bond1 9 +atom 30 (1) (1981, 822, 13) def +bond1 9 +atom 31 (1) (2754, -957, -2367) def +bond1 11 +atom 32 (1) (2612, -2511, -1544) def +bond1 11 +atom 33 (1) (3379, -1151, -735) def +bond1 11 +atom 34 (1) (237, -948, -2765) def +bond1 12 +atom 35 (1) (91, -2488, -1939) def +bond1 12 +atom 36 (1) (-2270, -931, -3177) def +bond1 14 +atom 37 (1) (-3379, -1071, -1824) def +bond1 14 +atom 38 (1) (-2435, -2468, -2335) def +bond1 14 +egroup (C14H24) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C14H24 diff --git a/sim/src/tests/rigid_organics/C14H24.pdb b/sim/src/tests/rigid_organics/C14H24.pdb new file mode 100755 index 000000000..95216eca8 --- /dev/null +++ b/sim/src/tests/rigid_organics/C14H24.pdb @@ -0,0 +1,78 @@ +COMPND from C14H24.pdb +HETATM 1 C -0.400 0.274 1.261 +HETATM 2 C -0.388 -1.251 1.110 +HETATM 3 C -0.172 0.979 -0.076 +HETATM 4 C 0.963 -1.667 0.519 +HETATM 5 C -0.617 -1.923 2.456 +HETATM 6 C -1.500 -1.643 0.124 +HETATM 7 C -0.187 2.493 0.094 +HETATM 8 C -1.285 0.542 -1.043 +HETATM 9 C 1.174 0.518 -0.648 +HETATM 10 C 1.215 -1.002 -0.835 +HETATM 11 C 2.565 -1.433 -1.400 +HETATM 12 C 0.074 -1.408 -1.786 +HETATM 13 C -1.294 -0.979 -1.237 +HETATM 14 C -2.405 -1.389 -2.204 +HETATM 15 H -1.362 0.593 1.678 +HETATM 16 H 0.364 0.585 1.980 +HETATM 17 H 1.000 -2.757 0.406 +HETATM 18 H 1.767 -1.400 1.211 +HETATM 19 H -0.597 -3.011 2.366 +HETATM 20 H -1.582 -1.641 2.877 +HETATM 21 H 0.148 -1.635 3.177 +HETATM 22 H -1.525 -2.732 0.000 +HETATM 23 H -2.467 -1.350 0.532 +HETATM 24 H -0.034 3.011 -0.844 +HETATM 25 H 0.598 2.817 0.774 +HETATM 26 H -1.141 2.833 0.505 +HETATM 27 H -1.150 1.035 -2.012 +HETATM 28 H -2.256 0.867 -0.659 +HETATM 29 H 1.361 1.016 -1.600 +HETATM 30 H 1.981 0.822 0.013 +HETATM 31 H 2.754 -0.957 -2.367 +HETATM 32 H 2.612 -2.511 -1.544 +HETATM 33 H 3.379 -1.151 -0.735 +HETATM 34 H 0.237 -0.948 -2.765 +HETATM 35 H 0.091 -2.488 -1.939 +HETATM 36 H -2.270 -0.931 -3.177 +HETATM 37 H -3.379 -1.071 -1.824 +HETATM 38 H -2.435 -2.468 -2.335 +CONECT 1 2 3 15 16 +CONECT 2 1 4 5 6 +CONECT 3 1 7 8 9 +CONECT 4 2 10 17 18 +CONECT 5 2 19 20 21 +CONECT 6 2 13 22 23 +CONECT 7 3 24 25 26 +CONECT 8 3 13 27 28 +CONECT 9 3 10 29 30 +CONECT 10 4 9 11 12 +CONECT 11 10 31 32 33 +CONECT 12 10 13 34 35 +CONECT 13 6 8 12 14 +CONECT 14 13 36 37 38 +CONECT 15 1 +CONECT 16 1 +CONECT 17 4 +CONECT 18 4 +CONECT 19 5 +CONECT 20 5 +CONECT 21 5 +CONECT 22 6 +CONECT 23 6 +CONECT 24 7 +CONECT 25 7 +CONECT 26 7 +CONECT 27 8 +CONECT 28 8 +CONECT 29 9 +CONECT 30 9 +CONECT 31 11 +CONECT 32 11 +CONECT 33 11 +CONECT 34 12 +CONECT 35 12 +CONECT 36 14 +CONECT 37 14 +CONECT 38 14 +END diff --git a/sim/src/tests/rigid_organics/C2H6.jpg b/sim/src/tests/rigid_organics/C2H6.jpg Binary files differnew file mode 100755 index 000000000..c23113584 --- /dev/null +++ b/sim/src/tests/rigid_organics/C2H6.jpg diff --git a/sim/src/tests/rigid_organics/C2H6.mmp b/sim/src/tests/rigid_organics/C2H6.mmp new file mode 100755 index 000000000..496f57706 --- /dev/null +++ b/sim/src/tests/rigid_organics/C2H6.mmp @@ -0,0 +1,31 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.187532) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C2H6) +info opengroup open = True +mol (C2H6.pdb) cpk +atom 1 (6) (449, -619, -6) def +atom 2 (6) (-449, 619, 6) def +bond1 1 +atom 3 (1) (-140, -1543, -5) def +bond1 1 +atom 4 (1) (1106, -651, 862) def +bond1 1 +atom 5 (1) (1086, -636, -900) def +bond1 1 +atom 6 (1) (140, 1543, 5) def +bond1 2 +atom 7 (1) (-1086, 636, 900) def +bond1 2 +atom 8 (1) (-1106, 651, -862) def +bond1 2 +egroup (C2H6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C2H6 diff --git a/sim/src/tests/rigid_organics/C2H6.pdb b/sim/src/tests/rigid_organics/C2H6.pdb new file mode 100755 index 000000000..89d62b0b1 --- /dev/null +++ b/sim/src/tests/rigid_organics/C2H6.pdb @@ -0,0 +1,18 @@ +COMPND from C2H6.pdb +HETATM 1 C 0.449 -0.619 -0.006 +HETATM 2 C -0.449 0.619 0.006 +HETATM 3 H -0.140 -1.543 -0.005 +HETATM 4 H 1.106 -0.651 0.862 +HETATM 5 H 1.086 -0.636 -0.900 +HETATM 6 H 0.140 1.543 0.005 +HETATM 7 H -1.086 0.636 0.900 +HETATM 8 H -1.106 0.651 -0.862 +CONECT 1 2 3 4 5 +CONECT 2 1 6 7 8 +CONECT 3 1 +CONECT 4 1 +CONECT 5 1 +CONECT 6 2 +CONECT 7 2 +CONECT 8 2 +END diff --git a/sim/src/tests/rigid_organics/C3H6.jpg b/sim/src/tests/rigid_organics/C3H6.jpg Binary files differnew file mode 100755 index 000000000..ba0011db2 --- /dev/null +++ b/sim/src/tests/rigid_organics/C3H6.jpg diff --git a/sim/src/tests/rigid_organics/C3H6.mmp b/sim/src/tests/rigid_organics/C3H6.mmp new file mode 100755 index 000000000..1cbe099d0 --- /dev/null +++ b/sim/src/tests/rigid_organics/C3H6.mmp @@ -0,0 +1,34 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.062915) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C3H6) +info opengroup open = True +mol (C3H6.pdb) def +atom 1 (6) (-800, 808, 0) def +atom 2 (6) (673, 486, 0) def +bond1 1 +atom 3 (6) (-343, -629, 0) def +bond1 1 2 +atom 4 (1) (-1239, 1207, -910) def +bond1 1 +atom 5 (1) (-1238, 1208, 911) def +bond1 1 +atom 6 (1) (1239, 666, 910) def +bond1 2 +atom 7 (1) (1237, 665, -911) def +bond1 2 +atom 8 (1) (-470, -1208, -910) def +bond1 3 +atom 9 (1) (-469, -1208, 911) def +bond1 3 +egroup (C3H6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6 + diff --git a/sim/src/tests/rigid_organics/C3H6.mol b/sim/src/tests/rigid_organics/C3H6.mol new file mode 100755 index 000000000..dbf051a33 --- /dev/null +++ b/sim/src/tests/rigid_organics/C3H6.mol @@ -0,0 +1,23 @@ +Empty+H, M=1 + MacMolPlt -117.06906 + + 9 9 0 0 0 0 0 0 0 0 0 v2000 + -0.7738 0.8240 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6886 0.5039 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + -0.3198 -0.6025 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + -1.2065 1.2182 -0.9028 H 0 0 0 0 0 0 0 0 0 0 0 0 + -1.2065 1.2182 0.9028 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1.2465 0.6813 0.9028 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1.2465 0.6813 -0.9028 H 0 0 0 0 0 0 0 0 0 0 0 0 + -0.4450 -1.1743 -0.9029 H 0 0 0 0 0 0 0 0 0 0 0 0 + -0.4450 -1.1743 0.9029 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 3 1 0 0 0 0 + 1 4 1 0 0 0 0 + 1 5 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 6 1 0 0 0 0 + 2 7 1 0 0 0 0 + 3 8 1 0 0 0 0 + 3 9 1 0 0 0 0 +M END diff --git a/sim/src/tests/rigid_organics/C3H6.pdb b/sim/src/tests/rigid_organics/C3H6.pdb new file mode 100755 index 000000000..233bba1ee --- /dev/null +++ b/sim/src/tests/rigid_organics/C3H6.pdb @@ -0,0 +1,20 @@ +COMPND from C3H6.mol +HETATM 1 C -0.794 0.802 0.000 +HETATM 2 C 0.669 0.482 0.000 +HETATM 3 C -0.340 -0.624 0.000 +HETATM 4 H -1.226 1.196 -0.903 +HETATM 5 H -1.226 1.196 0.903 +HETATM 6 H 1.227 0.659 0.903 +HETATM 7 H 1.227 0.659 -0.903 +HETATM 8 H -0.465 -1.196 -0.903 +HETATM 9 H -0.465 -1.196 0.903 +CONECT 1 2 3 4 5 +CONECT 2 1 3 6 7 +CONECT 3 1 2 8 9 +CONECT 4 1 +CONECT 5 1 +CONECT 6 2 +CONECT 7 2 +CONECT 8 3 +CONECT 9 3 +END diff --git a/sim/src/tests/rigid_organics/C3H8.jpg b/sim/src/tests/rigid_organics/C3H8.jpg Binary files differnew file mode 100755 index 000000000..6a4af2cd1 --- /dev/null +++ b/sim/src/tests/rigid_organics/C3H8.jpg diff --git a/sim/src/tests/rigid_organics/C3H8.mmp b/sim/src/tests/rigid_organics/C3H8.mmp new file mode 100755 index 000000000..0f5dac863 --- /dev/null +++ b/sim/src/tests/rigid_organics/C3H8.mmp @@ -0,0 +1,37 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.320629) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C3H8) +info opengroup open = True +mol (C3H8.pdb) cpk +atom 1 (6) (430, -1267, 15) def +atom 2 (6) (-432, -2, 18) def +bond1 1 +atom 3 (6) (397, 1286, 20) def +bond1 2 +atom 4 (1) (-180, -2176, 27) def +bond1 1 +atom 5 (1) (1095, -1294, 878) def +bond1 1 +atom 6 (1) (1063, -1312, -882) def +bond1 1 +atom 7 (1) (-1091, -14, 883) def +bond1 2 +atom 8 (1) (-1095, -6, -858) def +bond1 2 +atom 9 (1) (-240, 2176, 61) def +bond1 3 +atom 10 (1) (1012, 1366, -883) def +bond1 3 +atom 11 (1) (1074, 1317, 879) def +bond1 3 +egroup (C3H8) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H8 diff --git a/sim/src/tests/rigid_organics/C3H8.pdb b/sim/src/tests/rigid_organics/C3H8.pdb new file mode 100755 index 000000000..d94cb77f8 --- /dev/null +++ b/sim/src/tests/rigid_organics/C3H8.pdb @@ -0,0 +1,24 @@ +COMPND from C3H8.pdb +HETATM 1 C 0.430 -1.267 0.015 +HETATM 2 C -0.432 -0.002 0.018 +HETATM 3 C 0.397 1.286 0.020 +HETATM 4 H -0.180 -2.176 0.027 +HETATM 5 H 1.095 -1.294 0.878 +HETATM 6 H 1.063 -1.312 -0.882 +HETATM 7 H -1.091 -0.014 0.883 +HETATM 8 H -1.095 -0.006 -0.858 +HETATM 9 H -0.240 2.176 0.061 +HETATM 10 H 1.012 1.366 -0.883 +HETATM 11 H 1.074 1.317 0.879 +CONECT 1 2 4 5 6 +CONECT 2 1 3 7 8 +CONECT 3 2 9 10 11 +CONECT 4 1 +CONECT 5 1 +CONECT 6 1 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 3 +END diff --git a/sim/src/tests/rigid_organics/C4H8.jpg b/sim/src/tests/rigid_organics/C4H8.jpg Binary files differnew file mode 100755 index 000000000..757664f03 --- /dev/null +++ b/sim/src/tests/rigid_organics/C4H8.jpg diff --git a/sim/src/tests/rigid_organics/C4H8.mmp b/sim/src/tests/rigid_organics/C4H8.mmp new file mode 100755 index 000000000..d9666831b --- /dev/null +++ b/sim/src/tests/rigid_organics/C4H8.mmp @@ -0,0 +1,40 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.157707) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C4H8) +info opengroup open = True +mol (C4H8.pdb) def +atom 1 (6) (-123, 1180, 14) def +atom 2 (6) (-70, 116, 1146) def +bond1 1 +atom 3 (6) (-285, 24, -1010) def +bond1 1 +atom 4 (6) (260, -953, 67) def +bond1 2 3 +atom 5 (1) (837, 1694, -103) def +bond1 1 +atom 6 (1) (-915, 1935, 61) def +bond1 1 +atom 7 (1) (-1059, -50, 1587) def +bond1 2 +atom 8 (1) (650, 265, 1956) def +bond1 2 +atom 9 (1) (260, 100, -1956) def +bond1 3 +atom 10 (1) (-1340, -169, -1234) def +bond1 3 +atom 11 (1) (-217, -1935, 156) def +bond1 4 +atom 12 (1) (1340, -1100, -37) def +bond1 4 +egroup (C4H8) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8 + diff --git a/sim/src/tests/rigid_organics/C4H8.pdb b/sim/src/tests/rigid_organics/C4H8.pdb new file mode 100755 index 000000000..e6b92684d --- /dev/null +++ b/sim/src/tests/rigid_organics/C4H8.pdb @@ -0,0 +1,26 @@ +COMPND from C4H8.pdb +HETATM 1 C 0.195 -1.054 0.259 +HETATM 2 C -0.931 -0.294 -0.500 +HETATM 3 C -0.195 1.054 -0.251 +HETATM 4 C 0.931 0.294 0.508 +HETATM 5 H -0.135 -1.573 1.154 +HETATM 6 H 0.754 -1.769 -0.354 +HETATM 7 H -1.922 -0.366 -0.047 +HETATM 8 H -1.034 -0.570 -1.557 +HETATM 9 H -0.755 1.769 0.354 +HETATM 10 H 0.135 1.573 -1.154 +HETATM 11 H 1.922 0.366 0.055 +HETATM 12 H 1.034 0.570 1.557 +CONECT 1 2 4 5 6 +CONECT 2 1 3 7 8 +CONECT 3 2 4 9 10 +CONECT 4 1 3 11 12 +CONECT 5 1 +CONECT 6 1 +CONECT 7 2 +CONECT 8 2 +CONECT 9 3 +CONECT 10 3 +CONECT 11 4 +CONECT 12 4 +END diff --git a/sim/src/tests/rigid_organics/C6H10.jpg b/sim/src/tests/rigid_organics/C6H10.jpg Binary files differnew file mode 100755 index 000000000..8a4c304b7 --- /dev/null +++ b/sim/src/tests/rigid_organics/C6H10.jpg diff --git a/sim/src/tests/rigid_organics/C6H10.mmp b/sim/src/tests/rigid_organics/C6H10.mmp new file mode 100755 index 000000000..3cfa95c76 --- /dev/null +++ b/sim/src/tests/rigid_organics/C6H10.mmp @@ -0,0 +1,47 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.466723) (-0.000000, -0.000000, -0.000500) (1.000000) +egroup (View Data) +group (C4H10) +info opengroup open = True +mol (C4H10.pdb) def +atom 1 (6) (1229, -793, 363) def +atom 2 (6) (-6, -37, 837) def +bond1 1 +atom 3 (6) (15, 758, -476) def +bond1 2 +atom 4 (6) (-1226, -9, -924) def +bond1 3 +atom 5 (6) (1333, 115, -842) def +bond1 1 3 +atom 6 (6) (-1335, -655, 445) def +bond1 2 4 +atom 7 (1) (2068, -744, 1031) def +bond1 1 +atom 8 (1) (1046, -1829, 149) def +bond1 1 +atom 9 (1) (59, 422, 1807) def +bond1 2 +atom 10 (1) (-54, 1829, -512) def +bond1 3 +atom 11 (1) (-1047, -688, -1730) def +bond1 4 +atom 12 (1) (-2063, 608, -1190) def +bond1 4 +atom 13 (1) (2155, 803, -762) def +bond1 5 +atom 14 (1) (1381, -358, -1806) def +bond1 5 +atom 15 (1) (-2155, -267, 1016) def +bond1 6 +atom 16 (1) (-1387, -1729, 480) def +bond1 6 +egroup (C4H10) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H10 diff --git a/sim/src/tests/rigid_organics/C6H10.pdb b/sim/src/tests/rigid_organics/C6H10.pdb new file mode 100755 index 000000000..6a8137003 --- /dev/null +++ b/sim/src/tests/rigid_organics/C6H10.pdb @@ -0,0 +1,34 @@ +COMPND from C4H10.pdb +HETATM 1 C 1.229 -0.793 0.363 +HETATM 2 C -0.006 -0.037 0.837 +HETATM 3 C 0.015 0.758 -0.476 +HETATM 4 C -1.226 -0.009 -0.924 +HETATM 5 C 1.333 0.115 -0.842 +HETATM 6 C -1.335 -0.655 0.445 +HETATM 7 H 2.068 -0.744 1.031 +HETATM 8 H 1.046 -1.829 0.149 +HETATM 9 H 0.059 0.422 1.807 +HETATM 10 H -0.054 1.829 -0.512 +HETATM 11 H -1.047 -0.688 -1.730 +HETATM 12 H -2.063 0.608 -1.190 +HETATM 13 H 2.155 0.803 -0.762 +HETATM 14 H 1.381 -0.358 -1.806 +HETATM 15 H -2.155 -0.267 1.016 +HETATM 16 H -1.387 -1.729 0.480 +CONECT 1 2 5 7 8 +CONECT 2 1 3 6 9 +CONECT 3 2 4 5 10 +CONECT 4 3 6 11 12 +CONECT 5 1 3 13 14 +CONECT 6 2 4 15 16 +CONECT 7 1 +CONECT 8 1 +CONECT 9 2 +CONECT 10 3 +CONECT 11 4 +CONECT 12 4 +CONECT 13 5 +CONECT 14 5 +CONECT 15 6 +CONECT 16 6 +END diff --git a/sim/src/tests/rigid_organics/C8H14.jpg b/sim/src/tests/rigid_organics/C8H14.jpg Binary files differnew file mode 100755 index 000000000..e7d41ab15 --- /dev/null +++ b/sim/src/tests/rigid_organics/C8H14.jpg diff --git a/sim/src/tests/rigid_organics/C8H14.mmp b/sim/src/tests/rigid_organics/C8H14.mmp new file mode 100755 index 000000000..53b2362f7 --- /dev/null +++ b/sim/src/tests/rigid_organics/C8H14.mmp @@ -0,0 +1,59 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.071846) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C8H14) +info opengroup open = True +mol (C8H14.pdb) def +atom 1 (6) (568, -227, -1458) def +atom 2 (6) (1463, -691, -290) def +bond1 1 +atom 3 (6) (-743, 321, -907) def +bond1 1 +atom 4 (6) (741, -451, 1031) def +bond1 2 +atom 5 (6) (-451, 1502, 21) def +bond1 3 +atom 6 (6) (-1463, -765, -122) def +bond1 3 +atom 7 (6) (-567, -1236, 1040) def +bond1 4 6 +atom 8 (6) (441, 1036, 1178) def +bond1 4 5 +atom 9 (1) (1070, 528, -2048) def +bond1 1 +atom 10 (1) (357, -1056, -2133) def +bond1 1 +atom 11 (1) (2411, -165, -288) def +bond1 2 +atom 12 (1) (1705, -1747, -380) def +bond1 2 +atom 13 (1) (-1373, 653, -1732) def +bond1 3 +atom 14 (1) (1373, -781, 1850) def +bond1 4 +atom 15 (1) (-1386, 1913, 381) def +bond1 5 +atom 16 (1) (28, 2300, -539) def +bond1 5 +atom 17 (1) (-2411, -385, 239) def +bond1 6 +atom 18 (1) (-1700, -1597, -775) def +bond1 6 +atom 19 (1) (-348, -2300, 951) def +bond1 7 +atom 20 (1) (-1070, -1100, 1990) def +bond1 7 +atom 21 (1) (-43, 1222, 2133) def +bond1 8 +atom 22 (1) (1373, 1597, 1186) def +bond1 8 +egroup (C8H14) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C8H14 diff --git a/sim/src/tests/rigid_organics/C8H14.pdb b/sim/src/tests/rigid_organics/C8H14.pdb new file mode 100755 index 000000000..bcc91597a --- /dev/null +++ b/sim/src/tests/rigid_organics/C8H14.pdb @@ -0,0 +1,46 @@ +COMPND from C8H14.pdb +HETATM 1 C 0.568 -0.227 -1.458 +HETATM 2 C 1.463 -0.691 -0.290 +HETATM 3 C -0.743 0.321 -0.907 +HETATM 4 C 0.741 -0.451 1.031 +HETATM 5 C -0.451 1.502 0.021 +HETATM 6 C -1.463 -0.765 -0.122 +HETATM 7 C -0.567 -1.236 1.040 +HETATM 8 C 0.441 1.036 1.178 +HETATM 9 H 1.070 0.528 -2.048 +HETATM 10 H 0.357 -1.056 -2.133 +HETATM 11 H 2.411 -0.165 -0.288 +HETATM 12 H 1.705 -1.747 -0.380 +HETATM 13 H -1.373 0.653 -1.732 +HETATM 14 H 1.373 -0.781 1.850 +HETATM 15 H -1.386 1.913 0.381 +HETATM 16 H 0.028 2.300 -0.539 +HETATM 17 H -2.411 -0.385 0.239 +HETATM 18 H -1.700 -1.597 -0.775 +HETATM 19 H -0.348 -2.300 0.951 +HETATM 20 H -1.070 -1.100 1.990 +HETATM 21 H -0.043 1.222 2.133 +HETATM 22 H 1.373 1.597 1.186 +CONECT 1 2 3 9 10 +CONECT 2 1 4 11 12 +CONECT 3 1 5 6 13 +CONECT 4 2 7 8 14 +CONECT 5 3 8 15 16 +CONECT 6 3 7 17 18 +CONECT 7 4 6 19 20 +CONECT 8 4 5 21 22 +CONECT 9 1 +CONECT 10 1 +CONECT 11 2 +CONECT 12 2 +CONECT 13 3 +CONECT 14 4 +CONECT 15 5 +CONECT 16 5 +CONECT 17 6 +CONECT 18 6 +CONECT 19 7 +CONECT 20 7 +CONECT 21 8 +CONECT 22 8 +END diff --git a/sim/src/tests/rigid_organics/C8H8.jpg b/sim/src/tests/rigid_organics/C8H8.jpg Binary files differnew file mode 100755 index 000000000..741c1ef34 --- /dev/null +++ b/sim/src/tests/rigid_organics/C8H8.jpg diff --git a/sim/src/tests/rigid_organics/C8H8.mmp b/sim/src/tests/rigid_organics/C8H8.mmp new file mode 100755 index 000000000..bc747cf2c --- /dev/null +++ b/sim/src/tests/rigid_organics/C8H8.mmp @@ -0,0 +1,47 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.510190) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C8H8) +info opengroup open = True +mol (C8H8.pdb) def +atom 1 (6) (-494, 331, 1187) def +atom 2 (6) (-939, 938, -162) def +bond1 1 +atom 3 (6) (538, 1079, -574) def +bond1 2 +atom 4 (6) (494, -335, -1194) def +bond1 3 +atom 5 (6) (-537, -1077, 566) def +bond1 1 +atom 6 (6) (978, 471, 766) def +bond1 1 3 +atom 7 (6) (-978, -471, -774) def +bond1 2 4 5 +atom 8 (6) (940, -937, 142) def +bond1 4 5 6 +atom 9 (1) (-893, 600, 2153) def +bond1 1 +atom 10 (1) (-1690, 1693, -284) def +bond1 2 +atom 11 (1) (971, 1947, -1033) def +bond1 3 +atom 12 (1) (894, -594, -2153) def +bond1 4 +atom 13 (1) (-971, -1947, 1025) def +bond1 5 +atom 14 (1) (1766, 850, 1392) def +bond1 6 +atom 15 (1) (-1766, -848, -1392) def +bond1 7 +atom 16 (1) (1691, -1691, 273) def +bond1 8 +egroup (C8H8) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C8H8 diff --git a/sim/src/tests/rigid_organics/C8H8.pdb b/sim/src/tests/rigid_organics/C8H8.pdb new file mode 100755 index 000000000..664615ab4 --- /dev/null +++ b/sim/src/tests/rigid_organics/C8H8.pdb @@ -0,0 +1,34 @@ +COMPND from C8H8.pdb +HETATM 1 C -0.494 0.331 1.187 +HETATM 2 C -0.939 0.938 -0.162 +HETATM 3 C 0.538 1.079 -0.574 +HETATM 4 C 0.494 -0.335 -1.194 +HETATM 5 C -0.537 -1.077 0.566 +HETATM 6 C 0.978 0.471 0.766 +HETATM 7 C -0.978 -0.471 -0.774 +HETATM 8 C 0.940 -0.937 0.142 +HETATM 9 H -0.893 0.600 2.153 +HETATM 10 H -1.690 1.693 -0.284 +HETATM 11 H 0.971 1.947 -1.033 +HETATM 12 H 0.894 -0.594 -2.153 +HETATM 13 H -0.971 -1.947 1.025 +HETATM 14 H 1.766 0.850 1.392 +HETATM 15 H -1.766 -0.848 -1.392 +HETATM 16 H 1.691 -1.691 0.273 +CONECT 1 2 5 6 9 +CONECT 2 1 3 7 10 +CONECT 3 2 4 6 11 +CONECT 4 3 7 8 12 +CONECT 5 1 7 8 13 +CONECT 6 1 3 8 14 +CONECT 7 2 4 5 15 +CONECT 8 4 5 6 16 +CONECT 9 1 +CONECT 10 2 +CONECT 11 3 +CONECT 12 4 +CONECT 13 5 +CONECT 14 6 +CONECT 15 7 +CONECT 16 8 +END diff --git a/sim/src/tests/rigid_organics/CH4.jpg b/sim/src/tests/rigid_organics/CH4.jpg Binary files differnew file mode 100755 index 000000000..b09c843e4 --- /dev/null +++ b/sim/src/tests/rigid_organics/CH4.jpg diff --git a/sim/src/tests/rigid_organics/CH4.mmp b/sim/src/tests/rigid_organics/CH4.mmp new file mode 100755 index 000000000..ea7b34984 --- /dev/null +++ b/sim/src/tests/rigid_organics/CH4.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.523762) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (CH4) +info opengroup open = True +mol (CH4.pdb) def +atom 1 (6) (10, -21, -2) def +atom 2 (1) (-589, 891, 10) def +bond1 1 +atom 3 (1) (-649, -891, -2) def +bond1 1 +atom 4 (1) (649, -47, 888) def +bond1 1 +atom 5 (1) (631, -35, -888) def +bond1 1 +egroup (CH4) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH4 diff --git a/sim/src/tests/rigid_organics/CH4.pdb b/sim/src/tests/rigid_organics/CH4.pdb new file mode 100755 index 000000000..56f0f932a --- /dev/null +++ b/sim/src/tests/rigid_organics/CH4.pdb @@ -0,0 +1,12 @@ +COMPND from CH4.pdb +HETATM 1 C 0.010 -0.021 -0.002 +HETATM 2 H -0.589 0.891 0.010 +HETATM 3 H -0.649 -0.891 -0.002 +HETATM 4 H 0.649 -0.047 0.888 +HETATM 5 H 0.631 -0.035 -0.888 +CONECT 1 2 3 4 5 +CONECT 2 1 +CONECT 3 1 +CONECT 4 1 +CONECT 5 1 +END diff --git a/sim/src/tests/rigid_organics/CreateTests.py b/sim/src/tests/rigid_organics/CreateTests.py new file mode 100755 index 000000000..a96fe319f --- /dev/null +++ b/sim/src/tests/rigid_organics/CreateTests.py @@ -0,0 +1,38 @@ +#!/usr/bin/python + +import os +import sys +import MmpFile +import XyzFile + +damianFiles = filter(lambda x: x, + os.popen("ls C*.mmp").read().split("\n")) + +for df in damianFiles: + prefix = df[:df.index(".")] + testPrefix = "test_" + prefix + damianMmp = MmpFile.MmpFile() + damianMmp.read(df) + + # Generate the xyzcmp file + xyzcmpFilename = testPrefix + ".xyzcmp" + outf = open(xyzcmpFilename, "w") + xyzcmp = damianMmp.convertToXyz() + xyzcmp.write(df, outf) + outf.close() + + # Make a perturbed copy of the MMP, use it for test_{foo}.mmp + dmClone = damianMmp.clone() + dmClone.perturb() + testMmpFilename = testPrefix + ".mmp" + outf = open(testMmpFilename, "w") + dmClone.write(outf) + outf.close() + + # Create test_{foo}.test + testTestFilename = testPrefix + ".test" + outf = open(testTestFilename, "w") + outf.write("TYPE struct\n") + outf.close() + + print "Test input files generated for " + testPrefix diff --git a/sim/src/tests/rigid_organics/MmpFile.py b/sim/src/tests/rigid_organics/MmpFile.py new file mode 100755 index 000000000..9a2e9d81d --- /dev/null +++ b/sim/src/tests/rigid_organics/MmpFile.py @@ -0,0 +1,123 @@ +#!/usr/bin/python + +"""Grab one of Damian's minimized MMP files, perturb each atom's +position by some fraction of an angstrom, write out the result as +another MMP file, which becomes an input file for the test. + +$Id$ +""" + +__author__ = "Will" + +import re +import os +import sys +import string +import Atom + +class MmpFile: + """This is meant to be a Python class representing a MMP file. It + is not intended to represent ALL the information in a MMP file, + although it might do that in some distant-future version. Right + now, its biggest strength is that it allows us to easily modify + the positions of the atoms in an MMP file, and write out the + resulting modified MMP file.""" + class _Line: + def fromMmp(self, line): + self._str = line + def str(self): + return self._str + def clone(self, owner): + ln = MmpFile._Line() + ln._str = self._str + return ln + class _AtomHolder: + """Atom holders are indices into the MmpFile.atoms list, + and that's done so that an entry in MmpFile.lines can be + a pointer into the MmpFile.atoms list. When a file is + cloned, we clone the atoms but keep the same lines. + """ + def __init__(self, owner): + self._owner = owner + def fromMmp(self, line): + atoms = self._owner.atoms + self._index = len(atoms) + a = Atom.Atom() + a.fromMmp(line) + atoms.append(a) + def str(self): + a = self._owner.atoms[self._index] + return a.toMmpString() + def clone(self, newowner): + other = MmpFile._AtomHolder(newowner) + other._index = self._index + return other + def __init__(self): + self.atoms = [ ] + self.lines = [ ] + def clone(self): + other = MmpFile() + for x in self.lines: + other.lines.append(x.clone(other)) + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + for line in lines.split("\n"): + try: + atm = MmpFile._AtomHolder(self) + atm.fromMmp(line) + except Atom.NotAtomException: + atm = MmpFile._Line() + atm.fromMmp(line) + self.lines.append(atm) + def write(self, outf=None): + if outf == None: + outf = sys.stdout + for ln in self.lines: + outf.write(ln.str() + "\n") + def convertToXyz(self): + import XyzFile + xyz = XyzFile.XyzFile() + for a in self.atoms: + xyz.atoms.append(a) + return xyz + def perturb(self): + import random + A = 0.5 # some small number of angstroms + A = A / (3 ** .5) # amount in one dimension + for i in range(len(self)): + x, y, z = self[i] + x += random.normalvariate(0.0, A) + y += random.normalvariate(0.0, A) + z += random.normalvariate(0.0, A) + self[i] = (x, y, z) + +if __name__ == "__main__": + """What follows is a specific usage of the MmpFile class. It's not + the only way it could be used, but it demonstrates something we're + going to want to do very soon as we generate test cases from + Damian's MMP files.""" + m = MmpFile() + #input = "C14H20.mmp" + input = "C3H8.mmp" + m.read(input) + m.perturb() + #outf = os.popen("diff -u - %s | less" % input, "w") + outf = os.popen("diff -u - %s" % input, "w") + m.write(outf) + outf.close() diff --git a/sim/src/tests/rigid_organics/README b/sim/src/tests/rigid_organics/README new file mode 100755 index 000000000..de9b202cc --- /dev/null +++ b/sim/src/tests/rigid_organics/README @@ -0,0 +1,20 @@ +Where things stand as of 15 Nov 2005 +------------------------------------ + +The MMP files from Damian are minimized structures. So the idea for +the tests is that for each structure, we generate a perturbed version +and then we want the minimizer to bring it back to the minimized +shape. So the MMP files we have right now are essentially outputs of +the tests, or references for how the outputs should look. + +The immediate need for MmpFile.py is in helping to perturb the MMP +structures supplied by Damian. Later, it might help with merging +position information from other file formats into an MMP file. This +would be helpful when we get GAMESS data in something like an XYZ or a +PDB file. There is already some effort in that direction, see +sim/src/tests/scripts/xyzmerge.py and +sim/src/tests/scripts/XyzFile.py. + +It makes sense to have Python classes representing a few different +file formats that we are likely to be using. That's why I used names +like XyzFile.py and MmpFile.py. diff --git a/sim/src/tests/rigid_organics/XyzFile.py b/sim/src/tests/rigid_organics/XyzFile.py new file mode 100755 index 000000000..e614f1129 --- /dev/null +++ b/sim/src/tests/rigid_organics/XyzFile.py @@ -0,0 +1,89 @@ +#!/usr/bin/python + +import sys +import string +import Atom + +class XyzFile: + """Python class to contain information from an XYZ file""" + def __init__(self): + self.atoms = [ ] + def clone(self): + other = XyzFile() + other.atoms = [ ] + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + lines = lines.split("\n") + numAtoms = string.atoi(lines[0]) + lines = lines[2:] + for i in range(numAtoms): + element, x, y, z = lines[i].split() + x, y, z = map(string.atof, (x, y, z)) + a = Atom.Atom() + a.fromXyz(element, x, y, z) + self.atoms.append(a) + def write(self, title, outf=None): + if outf == None: + outf = sys.stdout + outf.write("%d\n%s\n" % (len(self.atoms), title)) + for atm in self.atoms: + outf.write(atm.toXyzString() + "\n") + +if __name__ == "__main__": + # do a little test + class StringCollector: + def __init__(self): + self.contents = "" + def write(self, x): + self.contents += x + import sys + example_xyz_file = """15 +RMS=0.994508 +C -0.193641 2.900593 -0.026523 +X 0.093601 3.502437 0.394872 +X -0.623522 3.154064 -0.637458 +C -1.079249 2.005273 0.890906 +X -1.803795 1.958430 0.584626 +X -1.090331 2.310792 1.617200 +C 0.986482 2.029986 -0.552402 +X 0.945121 1.985940 -1.338110 +X 1.667645 2.347089 -0.314849 +C -0.443634 0.583852 0.936816 +X -0.955793 0.061908 0.643109 +X -0.248030 0.411844 1.680547 +C 0.839719 0.603152 0.054672 +X 1.466374 0.446893 0.504740 +X 0.762053 0.079748 -0.528147 +""" + xyz = XyzFile() + xyz.readstring(example_xyz_file) + # test 1 + sc = StringCollector() + ss, sys.stdout = sys.stdout, sc + xyz.write("RMS=0.994508") + sys.stdout = ss + assert sc.contents == example_xyz_file + # test 2 + for i in range(len(xyz)): + print xyz.getAtom(i) + print + for i in range(8): + xyz[i] = (1.0, 2.0, 3.0) + for i in range(len(xyz)): + print xyz.getAtom(i) diff --git a/sim/src/tests/rigid_organics/rigid.html b/sim/src/tests/rigid_organics/rigid.html new file mode 100755 index 000000000..3c1a26a38 --- /dev/null +++ b/sim/src/tests/rigid_organics/rigid.html @@ -0,0 +1,19 @@ +<h2>B3LYP/6-31G(d,p) Optimized Rigid Organic Molecules</h2> +<table> +<tr> +<td><center><img src="CH4.jpg"><br><a href="CH4.mmp">MMP</a><br><a href="CH4.pdb">PDB</a></center></td> +<td><center><img src="C2H6.jpg"><br><a href="C2H6.mmp">MMP</a><br><a href="C2H6.pdb">PDB</a></center></td> +<td><center><img src="C3H6.jpg"><br><a href="C3H6.mmp">MMP</a><br><a href="C3H6.pdb">PDB</a></center></td> +<td><center><img src="C3H8.jpg"><br><a href="C3H8.mmp">MMP</a><br><a href="C3H8.pdb">PDB</a></center></td> +<td><center><img src="C4H8.jpg"><br><a href="C4H8.mmp">MMP</a><br><a href="C4H8.pdb">PDB</a></center></td> +<td><center><img src="C6H10.jpg"><br><a href="C6H10.mmp">MMP</a><br><a href="C6H10.pdb">PDB</a></center></td> +</tr> +<tr> +<td><center><img src="C8H8.jpg"><br><a href="C8H8.mmp">MMP</a><br><a href="C8H8.pdb">PDB</a></center></td> +<td><center><img src="C8H14.jpg"><br><a href="C8H14.mmp">MMP</a><br><a href="C8H14.pdb">PDB</a></center></td> +<td><center><img src="C10H12.jpg"><br><a href="C10H12.mmp">MMP</a><br><a href="C10H12.pdb">PDB</a></center></td> +<td><center><img src="C10H14.jpg"><br><a href="C10H14.mmp">MMP</a><br><a href="C10H14.pdb">PDB</a></center></td> +<td><center><img src="C14H20.jpg"><br><a href="C14H20.mmp">MMP</a><br><a href="C14H20.pdb">PDB</a></center></td> +<td><center><img src="C14H24.jpg"><br><a href="C14H24.mmp">MMP</a><br><a href="C14H24.pdb">PDB</a></center></td> +</tr> +</table> diff --git a/sim/src/tests/rigid_organics/test_C10H12.ba b/sim/src/tests/rigid_organics/test_C10H12.ba new file mode 100755 index 000000000..49f9d09ad --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C10H12.ba @@ -0,0 +1,86 @@ +LENGTH 0 4 1.50290452125 +LENGTH 0 5 1.53879368338 +LENGTH 0 7 1.53289073322 +LENGTH 0 10 1.07731564548 +LENGTH 1 2 1.54553356482 +LENGTH 1 4 1.49656707167 +LENGTH 1 8 1.53331731876 +LENGTH 1 11 1.08122800556 +LENGTH 2 3 1.53764072527 +LENGTH 2 7 1.55584093017 +LENGTH 2 12 1.08125575143 +LENGTH 3 6 1.50507607781 +LENGTH 3 8 1.53210737222 +LENGTH 3 13 1.08063592389 +LENGTH 4 14 1.08227676682 +LENGTH 4 15 1.07595957173 +LENGTH 5 8 1.54823609311 +LENGTH 5 9 1.5409321854 +LENGTH 5 16 1.08111978985 +LENGTH 6 9 1.49769556319 +LENGTH 6 17 1.07445148797 +LENGTH 6 18 1.08123494209 +LENGTH 7 9 1.53422488573 +LENGTH 7 19 1.07618260532 +LENGTH 8 20 1.0780510192 +LENGTH 9 21 1.07906070265 +ANGLE 0 4 1 95.6733063903 +ANGLE 0 4 14 113.047953692 +ANGLE 0 4 15 113.244783256 +ANGLE 0 5 8 103.022783234 +ANGLE 0 5 9 89.7231342595 +ANGLE 0 5 16 120.930201925 +ANGLE 0 7 2 102.857394865 +ANGLE 0 7 9 90.1929759756 +ANGLE 0 7 19 120.915755913 +ANGLE 1 2 3 89.6560991446 +ANGLE 1 2 7 102.188505227 +ANGLE 1 2 12 120.793391602 +ANGLE 1 4 14 112.611953537 +ANGLE 1 4 15 114.083576799 +ANGLE 1 8 3 90.3179176599 +ANGLE 1 8 5 102.36381986 +ANGLE 1 8 20 120.685427241 +ANGLE 2 1 4 108.094633711 +ANGLE 2 1 8 84.454713907 +ANGLE 2 1 11 115.722509372 +ANGLE 2 3 6 107.987931909 +ANGLE 2 3 8 84.7642953175 +ANGLE 2 3 13 115.997139453 +ANGLE 2 7 9 102.502643115 +ANGLE 2 7 19 115.28907193 +ANGLE 3 2 7 102.723067847 +ANGLE 3 2 12 121.368121743 +ANGLE 3 6 9 95.7253610755 +ANGLE 3 6 17 113.011142981 +ANGLE 3 6 18 112.954425611 +ANGLE 3 8 5 102.653300368 +ANGLE 3 8 20 120.999385118 +ANGLE 4 0 5 107.925298772 +ANGLE 4 0 7 108.11803492 +ANGLE 4 0 10 118.457890373 +ANGLE 4 1 8 108.833869236 +ANGLE 4 1 11 118.38120703 +ANGLE 5 0 7 84.5022989125 +ANGLE 5 0 10 116.602666318 +ANGLE 5 8 20 115.470931865 +ANGLE 5 9 6 107.760316518 +ANGLE 5 9 7 84.3847385388 +ANGLE 5 9 21 116.30996435 +ANGLE 6 3 8 108.118335123 +ANGLE 6 3 13 118.486341803 +ANGLE 6 9 7 108.644540054 +ANGLE 6 9 21 118.201794866 +ANGLE 7 0 10 116.087108299 +ANGLE 7 2 12 115.580271964 +ANGLE 7 9 21 116.4608629 +ANGLE 8 1 11 116.264635446 +ANGLE 8 3 13 116.404429539 +ANGLE 8 5 9 102.854429186 +ANGLE 8 5 16 115.471945716 +ANGLE 9 5 16 120.509718291 +ANGLE 9 6 17 113.954442618 +ANGLE 9 6 18 112.830264962 +ANGLE 9 7 19 120.791350258 +ANGLE 14 4 15 107.965497455 +ANGLE 17 6 18 108.125399144 diff --git a/sim/src/tests/rigid_organics/test_C10H12.md5sums b/sim/src/tests/rigid_organics/test_C10H12.md5sums new file mode 100755 index 000000000..5568fe220 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C10H12.md5sums @@ -0,0 +1,2 @@ +stdout 00A6967FB18DED757A2594AFF8369A02 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/rigid_organics/test_C10H12.mmp b/sim/src/tests/rigid_organics/test_C10H12.mmp new file mode 100755 index 000000000..2cfc4c7cd --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C10H12.mmp @@ -0,0 +1,59 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.267749) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C10H12) +info opengroup open = True +mol (C10H12.pdb) def +atom 1 (6) (23, -670, -640) def +atom 2 (6) (-840, 517, 746) def +atom 3 (6) (-226, 431, 1001) def +bond1 2 +atom 4 (6) (742, 909, 502) def +bond1 3 +atom 5 (6) (-1947, -683, -126) def +bond1 1 2 +atom 6 (6) (272, -301, -1411) def +bond1 1 +atom 7 (6) (2459, 516, 61) def +bond1 4 +atom 8 (6) (1167, -1145, 636) def +bond1 1 3 +atom 9 (6) (-267, 1312, -430) def +bond1 2 4 6 +atom 10 (6) (1410, -712, -207) def +bond1 6 7 8 +atom 11 (1) (-758, -2326, -757) def +bond1 1 +atom 12 (1) (-1782, 1097, 141) def +bond1 2 +atom 13 (1) (-475, 59, 2511) def +bond1 3 +atom 14 (1) (266, 2286, 279) def +bond1 4 +atom 15 (1) (-2627, -588, -1092) def +bond1 5 +atom 16 (1) (-2325, -1355, 585) def +bond1 5 +atom 17 (1) (172, -26, -1880) def +bond1 6 +atom 18 (1) (2728, 1432, -721) def +bond1 7 +atom 19 (1) (3005, 225, 1411) def +bond1 7 +atom 20 (1) (319, -2093, 1693) def +bond1 8 +atom 21 (1) (-141, 1595, -1111) def +bond1 9 +atom 22 (1) (1301, -1794, -454) def +bond1 10 +egroup (C10H12) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C10H12 + diff --git a/sim/src/tests/rigid_organics/test_C10H12.out b/sim/src/tests/rigid_organics/test_C10H12.out new file mode 100755 index 000000000..be49b4147 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C10H12.out @@ -0,0 +1,12 @@ +======= test_C10H12.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 7 +== structure comparison == +cutover to fine tolerance at 1 diff --git a/sim/src/tests/rigid_organics/test_C10H12.test b/sim/src/tests/rigid_organics/test_C10H12.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C10H12.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/rigid_organics/test_C10H12.xyzcmp b/sim/src/tests/rigid_organics/test_C10H12.xyzcmp new file mode 100755 index 000000000..250fcf74b --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C10H12.xyzcmp @@ -0,0 +1,24 @@ +22 +C10H12.mmp +C -0.661000 -1.288000 -0.573000 +C -1.391000 0.622000 0.300000 +C -0.232000 0.239000 1.248000 +C 0.661000 1.288000 0.565000 +C -1.978000 -0.640000 -0.250000 +C 0.233000 -0.233000 -1.248000 +C 1.979000 0.637000 0.242000 +C 0.272000 -1.096000 0.628000 +C -0.272000 1.096000 -0.635000 +C 1.391000 -0.625000 -0.310000 +H -0.667000 -2.270000 -1.016000 +H -2.064000 1.385000 0.666000 +H -0.373000 0.232000 2.320000 +H 0.668000 2.270000 1.016000 +H -2.591000 -0.467000 -1.125000 +H -2.563000 -1.198000 0.460000 +H 0.373000 -0.227000 -2.320000 +H 2.560000 1.195000 -0.469000 +H 2.591000 0.467000 1.117000 +H 0.441000 -1.894000 1.330000 +H -0.444000 1.895000 -1.338000 +H 2.065000 -1.385000 -0.674000 diff --git a/sim/src/tests/rigid_organics/test_C10H14.ba b/sim/src/tests/rigid_organics/test_C10H14.ba new file mode 100755 index 000000000..b98c73208 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C10H14.ba @@ -0,0 +1,88 @@ +LENGTH 0 1 1.54462746318 +LENGTH 0 2 1.54500582523 +LENGTH 0 10 1.09633252255 +LENGTH 0 11 1.09634529232 +LENGTH 1 3 1.54352453819 +LENGTH 1 4 1.53700130124 +LENGTH 1 12 1.10206351904 +LENGTH 2 5 1.53712393775 +LENGTH 2 6 1.54322584219 +LENGTH 2 13 1.10132783493 +LENGTH 3 7 1.54604333704 +LENGTH 3 14 1.1026957876 +LENGTH 3 15 1.10002090889 +LENGTH 4 9 1.54440830094 +LENGTH 4 16 1.10245226654 +LENGTH 4 17 1.09803005423 +LENGTH 5 9 1.54454815399 +LENGTH 5 18 1.09702370075 +LENGTH 5 19 1.10021861464 +LENGTH 6 7 1.54454167959 +LENGTH 6 20 1.09827136902 +LENGTH 6 21 1.1035411184 +LENGTH 7 8 1.53023200855 +LENGTH 7 22 1.09913329492 +LENGTH 8 9 1.54568366751 +LENGTH 8 23 1.10181940444 +LENGTH 8 24 1.10165012595 +LENGTH 9 25 1.09931160278 +ANGLE 0 1 3 109.294178581 +ANGLE 0 1 4 109.302982202 +ANGLE 0 1 12 109.46858388 +ANGLE 0 2 5 109.505672408 +ANGLE 0 2 6 109.255878119 +ANGLE 0 2 13 109.638919664 +ANGLE 1 0 2 109.670221845 +ANGLE 1 0 10 110.178669168 +ANGLE 1 0 11 109.937999728 +ANGLE 1 3 7 109.552428631 +ANGLE 1 3 14 110.192946177 +ANGLE 1 3 15 109.907120591 +ANGLE 1 4 9 109.779434632 +ANGLE 1 4 16 110.140143692 +ANGLE 1 4 17 109.92987692 +ANGLE 2 0 10 110.429656696 +ANGLE 2 0 11 110.025732593 +ANGLE 2 5 9 109.797263792 +ANGLE 2 5 18 109.919373776 +ANGLE 2 5 19 110.139336376 +ANGLE 2 6 7 109.736479811 +ANGLE 2 6 20 110.240590801 +ANGLE 2 6 21 110.218377813 +ANGLE 3 1 4 109.480602987 +ANGLE 3 1 12 109.624602575 +ANGLE 3 7 6 108.980501017 +ANGLE 3 7 8 109.537850299 +ANGLE 3 7 22 109.378947556 +ANGLE 4 1 12 109.655290843 +ANGLE 4 9 5 109.366199171 +ANGLE 4 9 8 109.151654453 +ANGLE 4 9 25 109.567190633 +ANGLE 5 2 6 109.129111482 +ANGLE 5 2 13 109.658414316 +ANGLE 5 9 8 109.450545059 +ANGLE 5 9 25 109.511888077 +ANGLE 6 2 13 109.637411156 +ANGLE 6 7 8 109.912852775 +ANGLE 6 7 22 109.506494424 +ANGLE 7 3 14 110.174049591 +ANGLE 7 3 15 110.131387659 +ANGLE 7 6 20 110.2669458 +ANGLE 7 6 21 109.850239957 +ANGLE 7 8 9 109.569933628 +ANGLE 7 8 23 110.323330327 +ANGLE 7 8 24 110.11390783 +ANGLE 8 7 22 109.508585976 +ANGLE 8 9 25 109.77859147 +ANGLE 9 4 16 110.01948388 +ANGLE 9 4 17 110.119989827 +ANGLE 9 5 18 110.180208929 +ANGLE 9 5 19 109.979702878 +ANGLE 9 8 23 110.095896595 +ANGLE 9 8 24 109.789814774 +ANGLE 10 0 11 106.555650156 +ANGLE 14 3 15 106.849978126 +ANGLE 16 4 17 106.81021367 +ANGLE 18 5 19 106.782173108 +ANGLE 20 6 21 106.481902101 +ANGLE 23 8 24 106.914258532 diff --git a/sim/src/tests/rigid_organics/test_C10H14.md5sums b/sim/src/tests/rigid_organics/test_C10H14.md5sums new file mode 100755 index 000000000..2f4d3c816 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C10H14.md5sums @@ -0,0 +1,2 @@ +stdout EA0CCFF8759B26A6C0617064A1776BD5 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/rigid_organics/test_C10H14.mmp b/sim/src/tests/rigid_organics/test_C10H14.mmp new file mode 100755 index 000000000..22e957c0b --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C10H14.mmp @@ -0,0 +1,68 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.304694) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C10H14) +info opengroup open = True +mol (C10H14.pdb) def +atom 1 (6) (-1939, 817, 577) def +atom 2 (6) (-1462, -1157, 585) def +bond1 1 +atom 3 (6) (70, 1327, -321) def +bond1 1 +atom 4 (6) (-74, -1550, 1286) def +bond1 2 +atom 5 (6) (-1038, -1598, -1135) def +bond1 2 +atom 6 (6) (45, 908, -1717) def +bond1 3 +atom 7 (6) (1419, 1055, 989) def +bond1 3 +atom 8 (6) (1269, -363, 1219) def +bond1 4 7 +atom 9 (6) (1523, -684, -774) def +bond1 8 +atom 10 (6) (535, -640, -1752) def +bond1 5 6 9 +atom 11 (1) (-2437, 864, 276) def +bond1 1 +atom 12 (1) (-1568, 1504, 1037) def +bond1 1 +atom 13 (1) (-2169, -1883, 1068) def +bond1 2 +atom 14 (1) (-415, 2398, 519) def +bond1 3 +atom 15 (1) (-144, -2461, 1501) def +bond1 4 +atom 16 (1) (-290, -864, 2851) def +bond1 4 +atom 17 (1) (-523, -2592, -1035) def +bond1 5 +atom 18 (1) (-1750, -1455, -1191) def +bond1 5 +atom 19 (1) (822, 1360, -2011) def +bond1 6 +atom 20 (1) (-966, 1488, -2195) def +bond1 6 +atom 21 (1) (1627, 1750, 1039) def +bond1 7 +atom 22 (1) (660, 1030, 1641) def +bond1 7 +atom 23 (1) (1843, -479, 1325) def +bond1 8 +atom 24 (1) (2804, -731, -293) def +bond1 9 +atom 25 (1) (1328, -2143, -740) def +bond1 9 +atom 26 (1) (608, -1142, -2444) def +bond1 10 +egroup (C10H14) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C10H14 + diff --git a/sim/src/tests/rigid_organics/test_C10H14.out b/sim/src/tests/rigid_organics/test_C10H14.out new file mode 100755 index 000000000..773a846cb --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C10H14.out @@ -0,0 +1,12 @@ +======= test_C10H14.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 2 +== structure comparison == +cutover to fine tolerance at 1 diff --git a/sim/src/tests/rigid_organics/test_C10H14.test b/sim/src/tests/rigid_organics/test_C10H14.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C10H14.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/rigid_organics/test_C10H14.xyzcmp b/sim/src/tests/rigid_organics/test_C10H14.xyzcmp new file mode 100755 index 000000000..5b5859757 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C10H14.xyzcmp @@ -0,0 +1,28 @@ +26 +C10H14.mmp +C -1.586000 0.651000 0.418000 +C -1.397000 -0.882000 0.410000 +C -0.265000 1.340000 0.009000 +C -0.285000 -1.264000 1.410000 +C -0.995000 -1.337000 -1.002000 +C 0.140000 0.878000 -1.400000 +C 0.844000 0.948000 1.008000 +C 1.040000 -0.584000 0.995000 +C 1.435000 -1.047000 -0.409000 +C 0.328000 -0.655000 -1.414000 +H -2.394000 0.936000 -0.266000 +H -1.890000 0.985000 1.417000 +H -2.341000 -1.370000 0.702000 +H -0.400000 2.433000 0.016000 +H -0.158000 -2.359000 1.438000 +H -0.570000 -0.950000 2.425000 +H -0.879000 -2.433000 -1.029000 +H -1.789000 -1.084000 -1.717000 +H 1.069000 1.376000 -1.704000 +H -0.630000 1.169000 -2.130000 +H 1.784000 1.454000 0.750000 +H 0.577000 1.283000 2.025000 +H 1.830000 -0.859000 1.708000 +H 2.394000 -0.593000 -0.706000 +H 1.580000 -2.139000 -0.421000 +H 0.611000 -0.981000 -2.425000 diff --git a/sim/src/tests/rigid_organics/test_C14H20.ba b/sim/src/tests/rigid_organics/test_C14H20.ba new file mode 100755 index 000000000..3061434dd --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C14H20.ba @@ -0,0 +1,122 @@ +LENGTH 0 1 1.54116222378 +LENGTH 0 2 1.54992838544 +LENGTH 0 3 1.54123684098 +LENGTH 0 14 1.09478308354 +LENGTH 1 4 1.54207457667 +LENGTH 1 5 1.54006006376 +LENGTH 1 15 1.09768984691 +LENGTH 2 6 1.53955220762 +LENGTH 2 7 1.53516969746 +LENGTH 2 16 1.09723014906 +LENGTH 3 13 1.53882845048 +LENGTH 3 17 1.09727526173 +LENGTH 3 18 1.09473923836 +LENGTH 4 8 1.5398016106 +LENGTH 4 9 1.54523719862 +LENGTH 4 19 1.09417274687 +LENGTH 5 12 1.52441759371 +LENGTH 5 20 1.09769713491 +LENGTH 5 21 1.09916559262 +LENGTH 6 12 1.53854411701 +LENGTH 6 22 1.08762171733 +LENGTH 6 23 1.10232390884 +LENGTH 7 9 1.53937162505 +LENGTH 7 10 1.54105613136 +LENGTH 7 24 1.09830687879 +LENGTH 8 13 1.53854411701 +LENGTH 8 25 1.10265905882 +LENGTH 8 26 1.08258671708 +LENGTH 9 11 1.54112329163 +LENGTH 9 27 1.09515341391 +LENGTH 10 13 1.52414763064 +LENGTH 10 28 1.09969950441 +LENGTH 10 29 1.09832053609 +LENGTH 11 12 1.53759585067 +LENGTH 11 30 1.09473923836 +LENGTH 11 31 1.09816756463 +LENGTH 12 32 1.09800364298 +LENGTH 13 33 1.09792212839 +ANGLE 0 1 4 108.643717279 +ANGLE 0 1 5 110.362411735 +ANGLE 0 1 15 109.274803818 +ANGLE 0 2 6 110.118608053 +ANGLE 0 2 7 108.497443543 +ANGLE 0 2 16 109.048204258 +ANGLE 0 3 13 109.676868662 +ANGLE 0 3 17 110.073201072 +ANGLE 0 3 18 110.118780673 +ANGLE 1 0 2 108.70351007 +ANGLE 1 0 3 110.190736358 +ANGLE 1 0 14 109.26270869 +ANGLE 1 4 8 109.929758742 +ANGLE 1 4 9 108.403498626 +ANGLE 1 4 19 109.329267896 +ANGLE 1 5 12 110.122168537 +ANGLE 1 5 20 109.944367391 +ANGLE 1 5 21 109.834102344 +ANGLE 2 0 3 110.329969449 +ANGLE 2 0 14 109.408135146 +ANGLE 2 6 12 109.922267012 +ANGLE 2 6 22 110.203401304 +ANGLE 2 6 23 109.883337263 +ANGLE 2 7 9 108.676131839 +ANGLE 2 7 10 110.15772307 +ANGLE 2 7 24 108.703281329 +ANGLE 3 0 14 108.927913744 +ANGLE 3 13 8 108.274396311 +ANGLE 3 13 10 109.374457454 +ANGLE 3 13 33 109.892247772 +ANGLE 4 1 5 110.053299217 +ANGLE 4 1 15 108.880775665 +ANGLE 4 8 13 109.963978479 +ANGLE 4 8 25 109.657315609 +ANGLE 4 8 26 110.514723946 +ANGLE 4 9 7 108.854521984 +ANGLE 4 9 11 110.339794999 +ANGLE 4 9 27 109.125347189 +ANGLE 5 1 15 109.596522425 +ANGLE 5 12 6 109.799470236 +ANGLE 5 12 11 109.368874264 +ANGLE 5 12 32 109.712018411 +ANGLE 6 2 7 110.310898864 +ANGLE 6 2 16 109.108019728 +ANGLE 6 12 11 108.248628142 +ANGLE 6 12 32 109.764997108 +ANGLE 7 2 16 109.738740018 +ANGLE 7 9 11 110.252992106 +ANGLE 7 9 27 109.299673828 +ANGLE 7 10 13 110.083145838 +ANGLE 7 10 28 109.76720714 +ANGLE 7 10 29 109.877413187 +ANGLE 8 4 9 110.410561109 +ANGLE 8 4 19 109.204556362 +ANGLE 8 13 10 109.819511288 +ANGLE 8 13 33 109.816488459 +ANGLE 9 4 19 109.544832099 +ANGLE 9 7 10 110.396550756 +ANGLE 9 7 24 109.287702724 +ANGLE 9 11 12 109.712706197 +ANGLE 9 11 30 110.066807952 +ANGLE 9 11 31 110.081339459 +ANGLE 10 7 24 109.586762187 +ANGLE 10 13 33 109.643252303 +ANGLE 11 9 27 108.947122009 +ANGLE 11 12 32 109.925123142 +ANGLE 12 5 20 110.142170991 +ANGLE 12 5 21 109.857069498 +ANGLE 12 6 22 110.965915663 +ANGLE 12 6 23 109.600425717 +ANGLE 12 11 30 110.442835243 +ANGLE 12 11 31 109.771230037 +ANGLE 13 3 17 109.793717367 +ANGLE 13 3 18 110.431899306 +ANGLE 13 8 25 109.571605326 +ANGLE 13 8 26 111.124582135 +ANGLE 13 10 28 109.920226878 +ANGLE 13 10 29 110.158572055 +ANGLE 17 3 18 106.706017729 +ANGLE 20 5 21 106.886997244 +ANGLE 22 6 23 106.198973637 +ANGLE 25 8 26 105.92556851 +ANGLE 28 10 29 106.983574719 +ANGLE 30 11 31 106.72463831 diff --git a/sim/src/tests/rigid_organics/test_C14H20.md5sums b/sim/src/tests/rigid_organics/test_C14H20.md5sums new file mode 100755 index 000000000..ac429fc48 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C14H20.md5sums @@ -0,0 +1,2 @@ +stdout CBE7C90ED513AEC9AD4F2502C5F3F2F8 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/rigid_organics/test_C14H20.mmp b/sim/src/tests/rigid_organics/test_C14H20.mmp new file mode 100755 index 000000000..facc55cb8 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C14H20.mmp @@ -0,0 +1,84 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.876625) (-0.000000, -0.000000, -0.000500) (1.000000) +egroup (View Data) +group (C14H20) +info opengroup open = True +mol (C14H20.pdb) def +atom 1 (6) (37, -949, -1647) def +atom 2 (6) (-814, 1069, -1367) def +bond1 1 +atom 3 (6) (-54, -1719, -330) def +bond1 1 +atom 4 (6) (2209, -557, -1306) def +bond1 1 +atom 5 (6) (18, 1507, 410) def +bond1 2 +atom 6 (6) (-1842, 1401, -1081) def +bond1 2 +atom 7 (6) (-1495, -1661, -227) def +bond1 3 +atom 8 (6) (570, -1312, 548) def +bond1 3 +atom 9 (6) (1823, 1524, -40) def +bond1 5 +atom 10 (6) (-603, 480, 1294) def +bond1 5 8 +atom 11 (6) (1655, -548, 1186) def +bond1 8 +atom 12 (6) (-1754, 565, 1296) def +bond1 10 +atom 13 (6) (-2624, -369, 127) def +bond1 6 7 12 +atom 14 (6) (2499, 553, -204) def +bond1 4 9 11 +atom 15 (1) (274, -829, -2697) def +bond1 1 +atom 16 (1) (-208, 1900, -1640) def +bond1 2 +atom 17 (1) (213, -2017, -549) def +bond1 3 +atom 18 (1) (2189, -908, -1506) def +bond1 4 +atom 19 (1) (1644, 298, -2345) def +bond1 4 +atom 20 (1) (-270, 2775, 313) def +bond1 5 +atom 21 (1) (-2071, 1993, -1270) def +bond1 6 +atom 22 (1) (-2414, 555, -2519) def +bond1 6 +atom 23 (1) (-2237, -2187, 486) def +bond1 7 +atom 24 (1) (-1546, -1920, -1157) def +bond1 7 +atom 25 (1) (812, -1601, 1774) def +bond1 8 +atom 26 (1) (2445, 2553, 1011) def +bond1 9 +atom 27 (1) (1652, 2415, -913) def +bond1 9 +atom 28 (1) (210, 300, 2317) def +bond1 10 +atom 29 (1) (2667, -162, 2108) def +bond1 11 +atom 30 (1) (2208, -2062, 800) def +bond1 11 +atom 31 (1) (-2287, -504, 2275) def +bond1 12 +atom 32 (1) (-1949, 1197, 1766) def +bond1 12 +atom 33 (1) (-3497, -447, -350) def +bond1 13 +atom 34 (1) (3911, 340, -90) def +bond1 14 +egroup (C14H20) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C14H20 + diff --git a/sim/src/tests/rigid_organics/test_C14H20.out b/sim/src/tests/rigid_organics/test_C14H20.out new file mode 100755 index 000000000..e15654c83 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C14H20.out @@ -0,0 +1,12 @@ +======= test_C14H20.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 3 +== structure comparison == +cutover to fine tolerance at 1 diff --git a/sim/src/tests/rigid_organics/test_C14H20.test b/sim/src/tests/rigid_organics/test_C14H20.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C14H20.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/rigid_organics/test_C14H20.xyzcmp b/sim/src/tests/rigid_organics/test_C14H20.xyzcmp new file mode 100755 index 000000000..545d69a65 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C14H20.xyzcmp @@ -0,0 +1,36 @@ +34 +C14H20.mmp +C 0.272000 -0.500000 -1.353000 +C -0.373000 0.880000 -1.119000 +C -0.154000 -1.449000 -0.204000 +C 1.807000 -0.369000 -1.398000 +C 0.154000 1.451000 0.213000 +C -1.907000 0.753000 -1.069000 +C -1.688000 -1.572000 -0.160000 +C 0.373000 -0.878000 1.120000 +C 1.688000 1.574000 0.161000 +C -0.272000 0.500000 1.354000 +C 1.908000 -0.751000 1.070000 +C -1.807000 0.370000 1.398000 +C -2.319000 -0.186000 0.059000 +C 2.319000 0.188000 -0.058000 +H -0.078000 -0.905000 -2.308000 +H -0.086000 1.557000 -1.934000 +H 0.281000 -2.441000 -0.379000 +H 2.263000 -1.348000 -1.592000 +H 2.105000 0.286000 -2.223000 +H -0.281000 2.441000 0.380000 +H -2.360000 1.742000 -0.922000 +H -2.281000 0.370000 -2.029000 +H -1.987000 -2.264000 0.624000 +H -2.057000 -2.001000 -1.106000 +H 0.086000 -1.556000 1.935000 +H 2.058000 2.003000 1.107000 +H 1.987000 2.266000 -0.616000 +H 0.078000 0.906000 2.309000 +H 2.281000 -0.368000 2.031000 +H 2.360000 -1.741000 0.922000 +H -2.105000 -0.285000 2.223000 +H -2.263000 1.350000 1.592000 +H -3.413000 -0.276000 0.085000 +H 3.413000 0.277000 -0.084000 diff --git a/sim/src/tests/rigid_organics/test_C14H24.ba b/sim/src/tests/rigid_organics/test_C14H24.ba new file mode 100755 index 000000000..27e140152 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C14H24.ba @@ -0,0 +1,124 @@ +LENGTH 0 1 1.53250448613 +LENGTH 0 2 1.52858692916 +LENGTH 0 14 1.09594434165 +LENGTH 0 15 1.09424768677 +LENGTH 1 3 1.53216774539 +LENGTH 1 4 1.5217558937 +LENGTH 1 5 1.53701138577 +LENGTH 2 6 1.52358819896 +LENGTH 2 7 1.53779940174 +LENGTH 2 8 1.53343438073 +LENGTH 3 9 1.52939367071 +LENGTH 3 16 1.09646614175 +LENGTH 3 17 1.09387796394 +LENGTH 4 18 1.09189926275 +LENGTH 4 19 1.08994954012 +LENGTH 4 20 1.08995871481 +LENGTH 5 12 1.52828433218 +LENGTH 5 21 1.09632203298 +LENGTH 5 22 1.08967976947 +LENGTH 6 23 1.08239410568 +LENGTH 6 24 1.0879342811 +LENGTH 6 25 1.09299451051 +LENGTH 7 12 1.53334862311 +LENGTH 7 26 1.09555237209 +LENGTH 7 27 1.09358218713 +LENGTH 8 9 1.53200848562 +LENGTH 8 28 1.09053977461 +LENGTH 8 29 1.086547744 +LENGTH 9 10 1.52561004192 +LENGTH 9 11 1.53984349854 +LENGTH 10 30 1.09425134224 +LENGTH 10 31 1.08859037291 +LENGTH 10 32 1.08827615981 +LENGTH 11 12 1.53520878059 +LENGTH 11 33 1.09389670445 +LENGTH 11 34 1.09091612877 +LENGTH 12 13 1.52889175549 +LENGTH 13 35 1.08384408473 +LENGTH 13 36 1.09279458271 +LENGTH 13 37 1.08733711424 +ANGLE 0 1 3 108.366367501 +ANGLE 0 1 4 110.554780966 +ANGLE 0 1 5 108.139692405 +ANGLE 0 2 6 111.053863159 +ANGLE 0 2 7 108.118857122 +ANGLE 0 2 8 108.574476379 +ANGLE 1 0 2 111.814441998 +ANGLE 1 0 14 109.51245535 +ANGLE 1 0 15 110.004687395 +ANGLE 1 3 9 111.636934141 +ANGLE 1 3 16 109.84134417 +ANGLE 1 3 17 109.743100626 +ANGLE 1 4 18 111.367976052 +ANGLE 1 4 19 111.138620762 +ANGLE 1 4 20 111.271748686 +ANGLE 1 5 12 111.28199817 +ANGLE 1 5 21 110.022715553 +ANGLE 1 5 22 109.466743019 +ANGLE 2 0 14 109.237574675 +ANGLE 2 0 15 109.846064863 +ANGLE 2 6 23 112.177153378 +ANGLE 2 6 24 111.012709473 +ANGLE 2 6 25 111.079601577 +ANGLE 2 7 12 111.450087754 +ANGLE 2 7 26 109.823198117 +ANGLE 2 7 27 109.717136732 +ANGLE 2 8 9 111.549097037 +ANGLE 2 8 28 109.807513959 +ANGLE 2 8 29 109.931554678 +ANGLE 3 1 4 110.730377313 +ANGLE 3 1 5 108.738108277 +ANGLE 3 9 8 108.598304306 +ANGLE 3 9 10 110.538561399 +ANGLE 3 9 11 108.061115465 +ANGLE 4 1 5 110.237764905 +ANGLE 5 12 7 108.608180296 +ANGLE 5 12 11 108.491490596 +ANGLE 5 12 13 110.413449627 +ANGLE 6 2 7 110.207521157 +ANGLE 6 2 8 110.426357503 +ANGLE 7 2 8 108.379015244 +ANGLE 7 12 11 108.493957827 +ANGLE 7 12 13 110.50541189 +ANGLE 8 9 10 110.437296844 +ANGLE 8 9 11 108.490713696 +ANGLE 9 3 16 109.599845622 +ANGLE 9 3 17 109.440286011 +ANGLE 9 8 28 109.994540788 +ANGLE 9 8 29 109.388485666 +ANGLE 9 10 30 110.929771542 +ANGLE 9 10 31 111.528027884 +ANGLE 9 10 32 111.245651147 +ANGLE 9 11 12 111.453456021 +ANGLE 9 11 33 109.356150866 +ANGLE 9 11 34 109.639143111 +ANGLE 10 9 11 110.639149523 +ANGLE 11 12 13 110.26769646 +ANGLE 12 5 21 109.506941764 +ANGLE 12 5 22 109.647371334 +ANGLE 12 7 26 109.58439912 +ANGLE 12 7 27 109.512338963 +ANGLE 12 11 33 109.591710724 +ANGLE 12 11 34 109.918584574 +ANGLE 12 13 35 111.344152378 +ANGLE 12 13 36 110.469245422 +ANGLE 12 13 37 111.245284615 +ANGLE 14 0 15 106.267686076 +ANGLE 16 3 17 106.441714623 +ANGLE 18 4 19 107.809779352 +ANGLE 18 4 20 107.755426032 +ANGLE 19 4 20 107.309428657 +ANGLE 21 5 22 106.810274141 +ANGLE 23 6 24 107.285842654 +ANGLE 23 6 25 107.480184301 +ANGLE 24 6 25 107.584840104 +ANGLE 26 7 27 106.63391025 +ANGLE 28 8 29 106.018200865 +ANGLE 30 10 31 107.843216119 +ANGLE 30 10 32 107.342780253 +ANGLE 31 10 32 107.766720093 +ANGLE 33 11 34 106.766201445 +ANGLE 35 13 36 107.470804353 +ANGLE 35 13 37 108.337265737 +ANGLE 36 13 37 107.822477042 diff --git a/sim/src/tests/rigid_organics/test_C14H24.md5sums b/sim/src/tests/rigid_organics/test_C14H24.md5sums new file mode 100755 index 000000000..128e42cdf --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C14H24.md5sums @@ -0,0 +1,2 @@ +stdout 127B74B2E50E0499FF67A0B012B6A8DC +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/rigid_organics/test_C14H24.mmp b/sim/src/tests/rigid_organics/test_C14H24.mmp new file mode 100755 index 000000000..aee31706f --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C14H24.mmp @@ -0,0 +1,92 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (8.645131) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C14H24) +info opengroup open = True +mol (C14H24.pdb) def +atom 1 (6) (-431, 51, 1577) def +atom 2 (6) (-553, -1682, 957) def +bond1 1 +atom 3 (6) (188, 1190, 239) def +bond1 1 +atom 4 (6) (893, -1342, 39) def +bond1 2 +atom 5 (6) (-331, -1721, 2157) def +bond1 2 +atom 6 (6) (-1875, -1692, 396) def +bond1 2 +atom 7 (6) (-93, 2264, 239) def +bond1 3 +atom 8 (6) (-1240, 826, -783) def +bond1 3 +atom 9 (6) (545, 463, -1089) def +bond1 3 +atom 10 (6) (1514, -1015, -1685) def +bond1 4 9 +atom 11 (6) (2519, -1544, -1031) def +bond1 10 +atom 12 (6) (845, -1354, -1833) def +bond1 10 +atom 13 (6) (-1794, -389, -1325) def +bond1 6 8 12 +atom 14 (6) (-2411, -822, -2647) def +bond1 13 +atom 15 (1) (-1323, 1010, 1790) def +bond1 1 +atom 16 (1) (448, 796, 1792) def +bond1 1 +atom 17 (1) (984, -2948, -34) def +bond1 4 +atom 18 (1) (1672, -1695, 1103) def +bond1 4 +atom 19 (1) (-559, -2938, 1942) def +bond1 5 +atom 20 (1) (-784, -1157, 2576) def +bond1 5 +atom 21 (1) (39, -1346, 3344) def +bond1 5 +atom 22 (1) (-1629, -2867, 22) def +bond1 6 +atom 23 (1) (-2671, -1131, 747) def +bond1 6 +atom 24 (1) (-125, 3228, -579) def +bond1 7 +atom 25 (1) (284, 2943, 924) def +bond1 7 +atom 26 (1) (-1512, 2523, -424) def +bond1 7 +atom 27 (1) (-1435, 1050, -1892) def +bond1 8 +atom 28 (1) (-2322, 721, -623) def +bond1 8 +atom 29 (1) (1215, 1152, -1840) def +bond1 9 +atom 30 (1) (2510, 736, 441) def +bond1 9 +atom 31 (1) (2674, -1096, -2260) def +bond1 11 +atom 32 (1) (2704, -2130, -1660) def +bond1 11 +atom 33 (1) (3212, -1050, -348) def +bond1 11 +atom 34 (1) (205, -1708, -2345) def +bond1 12 +atom 35 (1) (212, -2440, -1659) def +bond1 12 +atom 36 (1) (-2193, -610, -3214) def +bond1 14 +atom 37 (1) (-3121, -1060, -1772) def +bond1 14 +atom 38 (1) (-2820, -2489, -2492) def +bond1 14 +egroup (C14H24) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C14H24 + diff --git a/sim/src/tests/rigid_organics/test_C14H24.out b/sim/src/tests/rigid_organics/test_C14H24.out new file mode 100755 index 000000000..d7807f0c7 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C14H24.out @@ -0,0 +1,12 @@ +======= test_C14H24.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 3 +== structure comparison == +cutover to fine tolerance at 1 diff --git a/sim/src/tests/rigid_organics/test_C14H24.test b/sim/src/tests/rigid_organics/test_C14H24.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C14H24.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/rigid_organics/test_C14H24.xyzcmp b/sim/src/tests/rigid_organics/test_C14H24.xyzcmp new file mode 100755 index 000000000..b733c766b --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C14H24.xyzcmp @@ -0,0 +1,40 @@ +38 +C14H24.mmp +C -0.400000 0.274000 1.261000 +C -0.388000 -1.251000 1.110000 +C -0.172000 0.979000 -0.076000 +C 0.963000 -1.667000 0.519000 +C -0.617000 -1.923000 2.456000 +C -1.500000 -1.643000 0.124000 +C -0.187000 2.493000 0.094000 +C -1.285000 0.542000 -1.043000 +C 1.174000 0.518000 -0.648000 +C 1.215000 -1.002000 -0.835000 +C 2.565000 -1.433000 -1.400000 +C 0.074000 -1.408000 -1.786000 +C -1.294000 -0.979000 -1.237000 +C -2.405000 -1.389000 -2.204000 +H -1.362000 0.593000 1.678000 +H 0.364000 0.585000 1.980000 +H 1.000000 -2.757000 0.406000 +H 1.767000 -1.400000 1.211000 +H -0.597000 -3.011000 2.366000 +H -1.582000 -1.641000 2.877000 +H 0.148000 -1.635000 3.177000 +H -1.525000 -2.732000 0.000000 +H -2.467000 -1.350000 0.532000 +H -0.034000 3.011000 -0.844000 +H 0.598000 2.817000 0.774000 +H -1.141000 2.833000 0.505000 +H -1.150000 1.035000 -2.012000 +H -2.256000 0.867000 -0.659000 +H 1.361000 1.016000 -1.600000 +H 1.981000 0.822000 0.013000 +H 2.754000 -0.957000 -2.367000 +H 2.612000 -2.511000 -1.544000 +H 3.379000 -1.151000 -0.735000 +H 0.237000 -0.948000 -2.765000 +H 0.091000 -2.488000 -1.939000 +H -2.270000 -0.931000 -3.177000 +H -3.379000 -1.071000 -1.824000 +H -2.435000 -2.468000 -2.335000 diff --git a/sim/src/tests/rigid_organics/test_C2H6.ba b/sim/src/tests/rigid_organics/test_C2H6.ba new file mode 100755 index 000000000..dfb4133d5 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C2H6.ba @@ -0,0 +1,19 @@ +LENGTH 0 1 1.52944172821 +LENGTH 0 2 1.09576366065 +LENGTH 0 3 1.08908080508 +LENGTH 0 4 1.09785882517 +LENGTH 1 5 1.09576366065 +LENGTH 1 6 1.09785882517 +LENGTH 1 7 1.08908080508 +ANGLE 0 1 5 111.527787199 +ANGLE 0 1 6 111.0753273 +ANGLE 0 1 7 111.822375733 +ANGLE 1 0 2 111.527787199 +ANGLE 1 0 3 111.822375733 +ANGLE 1 0 4 111.0753273 +ANGLE 2 0 3 107.383354096 +ANGLE 2 0 4 107.431685603 +ANGLE 3 0 4 107.369308986 +ANGLE 5 1 6 107.431685603 +ANGLE 5 1 7 107.383354096 +ANGLE 6 1 7 107.369308986 diff --git a/sim/src/tests/rigid_organics/test_C2H6.md5sums b/sim/src/tests/rigid_organics/test_C2H6.md5sums new file mode 100755 index 000000000..4b8df77e6 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C2H6.md5sums @@ -0,0 +1,2 @@ +stdout 7FA4654EF12329EF1B242321F32541A5 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/rigid_organics/test_C2H6.mmp b/sim/src/tests/rigid_organics/test_C2H6.mmp new file mode 100755 index 000000000..7a9f85427 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C2H6.mmp @@ -0,0 +1,32 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.187532) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C2H6) +info opengroup open = True +mol (C2H6.pdb) cpk +atom 1 (6) (308, -220, -337) def +atom 2 (6) (-681, 634, 330) def +bond1 1 +atom 3 (1) (-35, -1896, -24) def +bond1 1 +atom 4 (1) (590, -637, 778) def +bond1 1 +atom 5 (1) (1545, -615, -740) def +bond1 1 +atom 6 (1) (55, 1856, -38) def +bond1 2 +atom 7 (1) (-1152, 808, 1054) def +bond1 2 +atom 8 (1) (-979, 86, -905) def +bond1 2 +egroup (C2H6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C2H6 + diff --git a/sim/src/tests/rigid_organics/test_C2H6.out b/sim/src/tests/rigid_organics/test_C2H6.out new file mode 100755 index 000000000..2a9186a3c --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C2H6.out @@ -0,0 +1,14 @@ +======= test_C2H6.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 3 +linearMinimize allocated 0 instead of 1 +minimize allocated 0 instead of 1 +== structure comparison == +cutover to fine tolerance at 1 diff --git a/sim/src/tests/rigid_organics/test_C2H6.test b/sim/src/tests/rigid_organics/test_C2H6.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C2H6.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/rigid_organics/test_C2H6.xyzcmp b/sim/src/tests/rigid_organics/test_C2H6.xyzcmp new file mode 100755 index 000000000..30069a272 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C2H6.xyzcmp @@ -0,0 +1,10 @@ +8 +C2H6.mmp +C 0.449000 -0.619000 -0.006000 +C -0.449000 0.619000 0.006000 +H -0.140000 -1.543000 -0.005000 +H 1.106000 -0.651000 0.862000 +H 1.086000 -0.636000 -0.900000 +H 0.140000 1.543000 0.005000 +H -1.086000 0.636000 0.900000 +H -1.106000 0.651000 -0.862000 diff --git a/sim/src/tests/rigid_organics/test_C3H6.ba b/sim/src/tests/rigid_organics/test_C3H6.ba new file mode 100755 index 000000000..ac9f5cab8 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C3H6.ba @@ -0,0 +1,27 @@ +LENGTH 0 1 1.50778413574 +LENGTH 0 2 1.50791843281 +LENGTH 0 3 1.08628817539 +LENGTH 0 4 1.08709015266 +LENGTH 1 2 1.50846975442 +LENGTH 1 5 1.08667198363 +LENGTH 1 6 1.08630474546 +LENGTH 2 7 1.08603406945 +LENGTH 2 8 1.08675572232 +ANGLE 0 1 2 59.9908479338 +ANGLE 0 1 5 118.25950599 +ANGLE 0 1 6 118.165748245 +ANGLE 0 2 1 59.9820140075 +ANGLE 0 2 7 118.204401309 +ANGLE 0 2 8 118.202128 +ANGLE 1 0 2 60.0271380588 +ANGLE 1 0 3 118.245249028 +ANGLE 1 0 4 118.176891441 +ANGLE 1 2 7 118.218292943 +ANGLE 1 2 8 118.157594759 +ANGLE 2 0 3 118.197293135 +ANGLE 2 0 4 118.213498553 +ANGLE 2 1 5 118.245429296 +ANGLE 2 1 6 118.130988192 +ANGLE 3 0 4 113.830978349 +ANGLE 5 1 6 113.863575642 +ANGLE 7 2 8 113.878609915 diff --git a/sim/src/tests/rigid_organics/test_C3H6.md5sums b/sim/src/tests/rigid_organics/test_C3H6.md5sums new file mode 100755 index 000000000..bbdf77ecf --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C3H6.md5sums @@ -0,0 +1,2 @@ +stdout A14FE025D15C6AAD6534E60EACD7E89F +stderr 160E6504290AEB20212DA51B283BAFE4 diff --git a/sim/src/tests/rigid_organics/test_C3H6.mmp b/sim/src/tests/rigid_organics/test_C3H6.mmp new file mode 100755 index 000000000..6d540afe9 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C3H6.mmp @@ -0,0 +1,35 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.062915) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C3H6) +info opengroup open = True +mol (C3H6.pdb) def +atom 1 (6) (-813, 570, -65) def +atom 2 (6) (247, 204, -194) def +bond1 1 +atom 3 (6) (-317, -1071, 63) def +bond1 1 2 +atom 4 (1) (-1339, 1130, -828) def +bond1 1 +atom 5 (1) (-1221, 1053, 597) def +bond1 1 +atom 6 (1) (1361, 796, 1109) def +bond1 2 +atom 7 (1) (1056, 1008, -767) def +bond1 2 +atom 8 (1) (-464, -1560, -975) def +bond1 3 +atom 9 (1) (-62, -1022, 1066) def +bond1 3 +egroup (C3H6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H6 + + diff --git a/sim/src/tests/rigid_organics/test_C3H6.out b/sim/src/tests/rigid_organics/test_C3H6.out new file mode 100755 index 000000000..842f7dda2 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C3H6.out @@ -0,0 +1,13 @@ +======= test_C3H6.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 0 +== structure comparison == +error reading atom count from xyz file: test_C3H6.xyz +could not read comparison positions file diff --git a/sim/src/tests/rigid_organics/test_C3H6.test b/sim/src/tests/rigid_organics/test_C3H6.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C3H6.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/rigid_organics/test_C3H6.xyzcmp b/sim/src/tests/rigid_organics/test_C3H6.xyzcmp new file mode 100755 index 000000000..e6d1a7a64 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C3H6.xyzcmp @@ -0,0 +1,11 @@ +9 +C3H6.mmp +C -0.800000 0.808000 0.000000 +C 0.673000 0.486000 0.000000 +C -0.343000 -0.629000 0.000000 +H -1.239000 1.207000 -0.910000 +H -1.238000 1.208000 0.911000 +H 1.239000 0.666000 0.910000 +H 1.237000 0.665000 -0.911000 +H -0.470000 -1.208000 -0.910000 +H -0.469000 -1.208000 0.911000 diff --git a/sim/src/tests/rigid_organics/test_C3H8.ba b/sim/src/tests/rigid_organics/test_C3H8.ba new file mode 100755 index 000000000..1cc67388a --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C3H8.ba @@ -0,0 +1,28 @@ +LENGTH 0 1 1.53077692692 +LENGTH 0 3 1.09477166569 +LENGTH 0 4 1.0898270505 +LENGTH 0 5 1.09878250805 +LENGTH 1 2 1.53172745617 +LENGTH 1 6 1.08749712643 +LENGTH 1 7 1.09861776792 +LENGTH 2 8 1.09523969979 +LENGTH 2 9 1.09546063371 +LENGTH 2 10 1.09415309715 +ANGLE 0 1 2 112.961986081 +ANGLE 0 1 6 109.491950915 +ANGLE 0 1 7 109.588286735 +ANGLE 1 0 3 111.861571612 +ANGLE 1 0 4 111.255420951 +ANGLE 1 0 5 111.090895604 +ANGLE 1 2 8 111.627921075 +ANGLE 1 2 9 111.35691509 +ANGLE 1 2 10 111.083305448 +ANGLE 2 1 6 109.645968377 +ANGLE 2 1 7 109.312518693 +ANGLE 3 0 4 108.104006126 +ANGLE 3 0 5 107.213815295 +ANGLE 4 0 5 107.092127689 +ANGLE 6 1 7 105.574346828 +ANGLE 8 2 9 107.339518701 +ANGLE 8 2 10 107.90583599 +ANGLE 9 2 10 107.320427881 diff --git a/sim/src/tests/rigid_organics/test_C3H8.md5sums b/sim/src/tests/rigid_organics/test_C3H8.md5sums new file mode 100755 index 000000000..d9fcfb4a6 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C3H8.md5sums @@ -0,0 +1,2 @@ +stdout C6B7F8F258292C4B2584DB51ED787C1E +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/rigid_organics/test_C3H8.mmp b/sim/src/tests/rigid_organics/test_C3H8.mmp new file mode 100755 index 000000000..b6d4de6b2 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C3H8.mmp @@ -0,0 +1,38 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.320629) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C3H8) +info opengroup open = True +mol (C3H8.pdb) cpk +atom 1 (6) (588, -1606, 77) def +atom 2 (6) (-206, 78, 45) def +bond1 1 +atom 3 (6) (106, 1012, 468) def +bond1 2 +atom 4 (1) (-219, -2513, 442) def +bond1 1 +atom 5 (1) (1114, -1376, 956) def +bond1 1 +atom 6 (1) (1291, -1425, -1141) def +bond1 1 +atom 7 (1) (-1072, -162, 812) def +bond1 2 +atom 8 (1) (-961, 268, -634) def +bond1 2 +atom 9 (1) (-318, 2261, -285) def +bond1 3 +atom 10 (1) (800, 1498, -491) def +bond1 3 +atom 11 (1) (1616, 1346, 858) def +bond1 3 +egroup (C3H8) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C3H8 + diff --git a/sim/src/tests/rigid_organics/test_C3H8.out b/sim/src/tests/rigid_organics/test_C3H8.out new file mode 100755 index 000000000..e0a07517b --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C3H8.out @@ -0,0 +1,12 @@ +======= test_C3H8.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 3 +== structure comparison == +cutover to fine tolerance at 1 diff --git a/sim/src/tests/rigid_organics/test_C3H8.test b/sim/src/tests/rigid_organics/test_C3H8.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C3H8.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/rigid_organics/test_C3H8.xyzcmp b/sim/src/tests/rigid_organics/test_C3H8.xyzcmp new file mode 100755 index 000000000..3e0d6a38d --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C3H8.xyzcmp @@ -0,0 +1,13 @@ +11 +C3H8.mmp +C 0.430000 -1.267000 0.015000 +C -0.432000 -0.002000 0.018000 +C 0.397000 1.286000 0.020000 +H -0.180000 -2.176000 0.027000 +H 1.095000 -1.294000 0.878000 +H 1.063000 -1.312000 -0.882000 +H -1.091000 -0.014000 0.883000 +H -1.095000 -0.006000 -0.858000 +H -0.240000 2.176000 0.061000 +H 1.012000 1.366000 -0.883000 +H 1.074000 1.317000 0.879000 diff --git a/sim/src/tests/rigid_organics/test_C4H8.ba b/sim/src/tests/rigid_organics/test_C4H8.ba new file mode 100755 index 000000000..2404296f1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C4H8.ba @@ -0,0 +1,36 @@ +LENGTH 0 1 1.55445456672 +LENGTH 0 2 1.55278974752 +LENGTH 0 4 1.09521002552 +LENGTH 0 5 1.09521596044 +LENGTH 1 3 1.55431721344 +LENGTH 1 6 1.09551722944 +LENGTH 1 7 1.09393829808 +LENGTH 2 3 1.55289503831 +LENGTH 2 8 1.09440257675 +LENGTH 2 9 1.09565049172 +LENGTH 3 10 1.09534195574 +LENGTH 3 11 1.09490867199 +ANGLE 0 1 3 88.4222974591 +ANGLE 0 1 6 111.474415064 +ANGLE 0 1 7 117.932027578 +ANGLE 0 2 3 88.5331576109 +ANGLE 0 2 8 117.799665476 +ANGLE 0 2 9 111.494933389 +ANGLE 1 0 2 88.5226619999 +ANGLE 1 0 4 111.663169741 +ANGLE 1 0 5 117.727196655 +ANGLE 1 3 2 88.5238189046 +ANGLE 1 3 10 117.887142963 +ANGLE 1 3 11 111.573627381 +ANGLE 2 0 4 111.739646983 +ANGLE 2 0 5 117.778984701 +ANGLE 2 3 10 117.876229384 +ANGLE 2 3 11 111.393447072 +ANGLE 3 1 6 111.524723239 +ANGLE 3 1 7 117.901420048 +ANGLE 3 2 8 117.931509446 +ANGLE 3 2 9 111.647952645 +ANGLE 4 0 5 108.35624286 +ANGLE 6 1 7 108.466585353 +ANGLE 8 2 9 108.362220608 +ANGLE 10 3 11 108.475755629 diff --git a/sim/src/tests/rigid_organics/test_C4H8.md5sums b/sim/src/tests/rigid_organics/test_C4H8.md5sums new file mode 100755 index 000000000..399165fdb --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C4H8.md5sums @@ -0,0 +1,2 @@ +stdout DF379DB31141A33C855918E1FA6D67F7 +stderr 160E6504290AEB20212DA51B283BAFE4 diff --git a/sim/src/tests/rigid_organics/test_C4H8.mmp b/sim/src/tests/rigid_organics/test_C4H8.mmp new file mode 100755 index 000000000..6031aa6e8 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C4H8.mmp @@ -0,0 +1,41 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.157707) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C4H8) +info opengroup open = True +mol (C4H8.pdb) def +atom 1 (6) (-417, 1325, -312) def +atom 2 (6) (344, 443, 1363) def +bond1 1 +atom 3 (6) (-31, -94, -404) def +bond1 1 +atom 4 (6) (-308, -1102, -251) def +bond1 2 3 +atom 5 (1) (1073, 1739, -63) def +bond1 1 +atom 6 (1) (-652, 1696, -121) def +bond1 1 +atom 7 (1) (-1130, 145, 2088) def +bond1 2 +atom 8 (1) (756, 874, 1687) def +bond1 2 +atom 9 (1) (-29, -303, -1721) def +bond1 3 +atom 10 (1) (-1325, -295, -1423) def +bond1 3 +atom 11 (1) (-241, -1742, 107) def +bond1 4 +atom 12 (1) (1792, -829, -147) def +bond1 4 +egroup (C4H8) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H8 + + diff --git a/sim/src/tests/rigid_organics/test_C4H8.out b/sim/src/tests/rigid_organics/test_C4H8.out new file mode 100755 index 000000000..5897bc058 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C4H8.out @@ -0,0 +1,13 @@ +======= test_C4H8.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 0 +== structure comparison == +error reading atom count from xyz file: test_C4H8.xyz +could not read comparison positions file diff --git a/sim/src/tests/rigid_organics/test_C4H8.test b/sim/src/tests/rigid_organics/test_C4H8.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C4H8.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/rigid_organics/test_C4H8.xyzcmp b/sim/src/tests/rigid_organics/test_C4H8.xyzcmp new file mode 100755 index 000000000..2ccab1aab --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C4H8.xyzcmp @@ -0,0 +1,14 @@ +12 +C4H8.mmp +C -0.123000 1.180000 0.014000 +C -0.070000 0.116000 1.146000 +C -0.285000 0.024000 -1.010000 +C 0.260000 -0.953000 0.067000 +H 0.837000 1.694000 -0.103000 +H -0.915000 1.935000 0.061000 +H -1.059000 -0.050000 1.587000 +H 0.650000 0.265000 1.956000 +H 0.260000 0.100000 -1.956000 +H -1.340000 -0.169000 -1.234000 +H -0.217000 -1.935000 0.156000 +H 1.340000 -1.100000 -0.037000 diff --git a/sim/src/tests/rigid_organics/test_C6H10.ba b/sim/src/tests/rigid_organics/test_C6H10.ba new file mode 100755 index 000000000..b72225f70 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C6H10.ba @@ -0,0 +1,53 @@ +LENGTH 0 1 1.52362626651 +LENGTH 0 4 1.51238387984 +LENGTH 0 6 1.0735669518 +LENGTH 0 7 1.07358325248 +LENGTH 1 2 1.53506840238 +LENGTH 1 5 1.51717797242 +LENGTH 1 8 1.07508418275 +LENGTH 2 3 1.52613040072 +LENGTH 2 4 1.5114658448 +LENGTH 2 9 1.07382400793 +LENGTH 3 5 1.51768178483 +LENGTH 3 10 1.06897988756 +LENGTH 3 11 1.07331915105 +LENGTH 4 12 1.07490836819 +LENGTH 4 13 1.07486231676 +LENGTH 5 14 1.07190717882 +LENGTH 5 15 1.07582758842 +ANGLE 0 1 2 88.8417669897 +ANGLE 0 1 5 115.31133268 +ANGLE 0 1 8 116.329135913 +ANGLE 0 4 2 90.143921574 +ANGLE 0 4 12 112.182719923 +ANGLE 0 4 13 116.965156484 +ANGLE 1 0 4 90.3272701456 +ANGLE 1 0 6 114.66058865 +ANGLE 1 0 7 113.744576473 +ANGLE 1 2 3 88.8357175653 +ANGLE 1 2 4 89.9271765161 +ANGLE 1 2 9 122.978644463 +ANGLE 1 5 3 89.8148441482 +ANGLE 1 5 14 112.645592676 +ANGLE 1 5 15 116.140723833 +ANGLE 2 1 5 90.1112718304 +ANGLE 2 1 8 123.352869195 +ANGLE 2 3 5 90.4313958352 +ANGLE 2 3 10 113.853638985 +ANGLE 2 3 11 114.70651811 +ANGLE 2 4 12 112.118469886 +ANGLE 2 4 13 116.315961489 +ANGLE 3 2 4 115.099746204 +ANGLE 3 2 9 116.050554342 +ANGLE 3 5 14 112.419062638 +ANGLE 3 5 15 117.241592183 +ANGLE 4 0 6 114.495239609 +ANGLE 4 0 7 115.611165213 +ANGLE 4 2 9 118.177822551 +ANGLE 5 1 8 117.386464291 +ANGLE 5 3 10 114.947299102 +ANGLE 5 3 11 114.344923244 +ANGLE 6 0 7 107.534951052 +ANGLE 10 3 11 107.990408083 +ANGLE 12 4 13 108.316081314 +ANGLE 14 5 15 107.881582998 diff --git a/sim/src/tests/rigid_organics/test_C6H10.md5sums b/sim/src/tests/rigid_organics/test_C6H10.md5sums new file mode 100755 index 000000000..27d284020 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C6H10.md5sums @@ -0,0 +1,2 @@ +stdout 967EC9C0F7895EA82287B95C9B8C2A74 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/rigid_organics/test_C6H10.mmp b/sim/src/tests/rigid_organics/test_C6H10.mmp new file mode 100755 index 000000000..fd695a8ef --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C6H10.mmp @@ -0,0 +1,48 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.466723) (-0.000000, -0.000000, -0.000500) (1.000000) +egroup (View Data) +group (C4H10) +info opengroup open = True +mol (C4H10.pdb) def +atom 1 (6) (1127, -782, 34) def +atom 2 (6) (-420, 162, 1268) def +bond1 1 +atom 3 (6) (-4, 1030, -433) def +bond1 2 +atom 4 (6) (-1066, -122, -565) def +bond1 3 +atom 5 (6) (1522, -686, -1201) def +bond1 1 3 +atom 6 (6) (-1238, -685, 962) def +bond1 2 4 +atom 7 (1) (1833, -910, 1342) def +bond1 1 +atom 8 (1) (1732, -2282, 77) def +bond1 1 +atom 9 (1) (282, -108, 1779) def +bond1 2 +atom 10 (1) (-160, 1462, -375) def +bond1 3 +atom 11 (1) (-1915, -517, -1614) def +bond1 4 +atom 12 (1) (-2237, 683, -1231) def +bond1 4 +atom 13 (1) (2234, 1201, -1069) def +bond1 5 +atom 14 (1) (1291, -356, -1928) def +bond1 5 +atom 15 (1) (-2386, -474, 1389) def +bond1 6 +atom 16 (1) (-1217, -1716, 624) def +bond1 6 +egroup (C4H10) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C4H10 + diff --git a/sim/src/tests/rigid_organics/test_C6H10.out b/sim/src/tests/rigid_organics/test_C6H10.out new file mode 100755 index 000000000..929e8927c --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C6H10.out @@ -0,0 +1,12 @@ +======= test_C6H10.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 10 +== structure comparison == +cutover to fine tolerance at 1 diff --git a/sim/src/tests/rigid_organics/test_C6H10.test b/sim/src/tests/rigid_organics/test_C6H10.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C6H10.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/rigid_organics/test_C6H10.xyzcmp b/sim/src/tests/rigid_organics/test_C6H10.xyzcmp new file mode 100755 index 000000000..d8293b56c --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C6H10.xyzcmp @@ -0,0 +1,18 @@ +16 +C6H10.mmp +C 1.229000 -0.793000 0.363000 +C -0.006000 -0.037000 0.837000 +C 0.015000 0.758000 -0.476000 +C -1.226000 -0.009000 -0.924000 +C 1.333000 0.115000 -0.842000 +C -1.335000 -0.655000 0.445000 +H 2.068000 -0.744000 1.031000 +H 1.046000 -1.829000 0.149000 +H 0.059000 0.422000 1.807000 +H -0.054000 1.829000 -0.512000 +H -1.047000 -0.688000 -1.730000 +H -2.063000 0.608000 -1.190000 +H 2.155000 0.803000 -0.762000 +H 1.381000 -0.358000 -1.806000 +H -2.155000 -0.267000 1.016000 +H -1.387000 -1.729000 0.480000 diff --git a/sim/src/tests/rigid_organics/test_C8H14.ba b/sim/src/tests/rigid_organics/test_C8H14.ba new file mode 100755 index 000000000..4308184ef --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C8H14.ba @@ -0,0 +1,71 @@ +LENGTH 0 1 1.54290148746 +LENGTH 0 2 1.52401640411 +LENGTH 0 8 1.08172501127 +LENGTH 0 9 1.0896728867 +LENGTH 1 3 1.52444252105 +LENGTH 1 10 1.08415128096 +LENGTH 1 11 1.08710625056 +LENGTH 2 4 1.53010097706 +LENGTH 2 5 1.52119065209 +LENGTH 2 12 1.08983897893 +LENGTH 3 6 1.52550647327 +LENGTH 3 7 1.52406627152 +LENGTH 3 13 1.08585680456 +LENGTH 4 7 1.53345003179 +LENGTH 4 14 1.08293397767 +LENGTH 4 15 1.08620670224 +LENGTH 5 6 1.54107138057 +LENGTH 5 16 1.08324743249 +LENGTH 5 17 1.083882835 +LENGTH 6 18 1.08994403526 +LENGTH 6 19 1.08351511295 +LENGTH 7 20 1.08668164611 +LENGTH 7 21 1.0878460369 +ANGLE 0 1 3 109.50627178 +ANGLE 0 1 10 111.267196826 +ANGLE 0 1 11 111.013326927 +ANGLE 0 2 4 109.429641575 +ANGLE 0 2 5 109.695602696 +ANGLE 0 2 12 109.458299465 +ANGLE 1 0 2 109.477594256 +ANGLE 1 0 8 110.70742092 +ANGLE 1 0 9 110.638321099 +ANGLE 1 3 6 109.280116479 +ANGLE 1 3 7 109.2938836 +ANGLE 1 3 13 109.273810909 +ANGLE 2 0 8 110.208328898 +ANGLE 2 0 9 109.326233519 +ANGLE 2 4 7 109.515331914 +ANGLE 2 4 14 109.255645933 +ANGLE 2 4 15 109.786867508 +ANGLE 2 5 6 109.396963726 +ANGLE 2 5 16 109.618427052 +ANGLE 2 5 17 109.913740144 +ANGLE 3 1 10 109.64285397 +ANGLE 3 1 11 109.274920247 +ANGLE 3 6 5 109.681696822 +ANGLE 3 6 18 109.242877731 +ANGLE 3 6 19 109.793034688 +ANGLE 3 7 4 109.768880225 +ANGLE 3 7 20 109.842576025 +ANGLE 3 7 21 109.586106742 +ANGLE 4 2 5 109.170394727 +ANGLE 4 2 12 109.530030148 +ANGLE 4 7 20 110.608519432 +ANGLE 4 7 21 110.315772769 +ANGLE 5 2 12 109.54306082 +ANGLE 5 6 18 110.708198434 +ANGLE 5 6 19 110.660860381 +ANGLE 6 3 7 109.434134639 +ANGLE 6 3 13 109.767721403 +ANGLE 6 5 16 111.392432178 +ANGLE 6 5 17 110.291413532 +ANGLE 7 3 13 109.775480759 +ANGLE 7 4 14 111.515013699 +ANGLE 7 4 15 110.838211848 +ANGLE 8 0 9 106.438698652 +ANGLE 10 1 11 106.068650607 +ANGLE 14 4 15 105.861080418 +ANGLE 16 5 17 106.182206352 +ANGLE 18 6 19 106.702360766 +ANGLE 20 7 21 106.669690165 diff --git a/sim/src/tests/rigid_organics/test_C8H14.md5sums b/sim/src/tests/rigid_organics/test_C8H14.md5sums new file mode 100755 index 000000000..7fd5b4fa1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C8H14.md5sums @@ -0,0 +1,2 @@ +stdout 87073C7F11BE7288D455AE2058CEC7CB +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/rigid_organics/test_C8H14.mmp b/sim/src/tests/rigid_organics/test_C8H14.mmp new file mode 100755 index 000000000..d876734ef --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C8H14.mmp @@ -0,0 +1,60 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (7.071846) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C8H14) +info opengroup open = True +mol (C8H14.pdb) def +atom 1 (6) (-42, -474, -1550) def +atom 2 (6) (1850, -260, -504) def +bond1 1 +atom 3 (6) (-924, 552, -218) def +bond1 1 +atom 4 (6) (317, -303, 714) def +bond1 2 +atom 5 (6) (-250, 1248, -220) def +bond1 3 +atom 6 (6) (-1783, -791, -389) def +bond1 3 +atom 7 (6) (-243, -1234, 1207) def +bond1 4 6 +atom 8 (6) (-54, 706, 1324) def +bond1 4 5 +atom 9 (1) (914, 963, -2330) def +bond1 1 +atom 10 (1) (446, -868, -2465) def +bond1 1 +atom 11 (1) (1942, -295, -370) def +bond1 2 +atom 12 (1) (1293, -1760, -343) def +bond1 2 +atom 13 (1) (-971, 779, -1667) def +bond1 3 +atom 14 (1) (930, -773, 1934) def +bond1 4 +atom 15 (1) (-1133, 2457, 883) def +bond1 5 +atom 16 (1) (465, 2295, -705) def +bond1 5 +atom 17 (1) (-2512, -377, 469) def +bond1 6 +atom 18 (1) (-1802, -1906, -1082) def +bond1 6 +atom 19 (1) (-664, -2029, 872) def +bond1 7 +atom 20 (1) (-1527, -930, 2248) def +bond1 7 +atom 21 (1) (-249, 1413, 2063) def +bond1 8 +atom 22 (1) (1406, 1218, 1419) def +bond1 8 +egroup (C8H14) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C8H14 + diff --git a/sim/src/tests/rigid_organics/test_C8H14.out b/sim/src/tests/rigid_organics/test_C8H14.out new file mode 100755 index 000000000..988d1d5df --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C8H14.out @@ -0,0 +1,12 @@ +======= test_C8H14.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 2 +== structure comparison == +cutover to fine tolerance at 1 diff --git a/sim/src/tests/rigid_organics/test_C8H14.test b/sim/src/tests/rigid_organics/test_C8H14.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C8H14.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/rigid_organics/test_C8H14.xyzcmp b/sim/src/tests/rigid_organics/test_C8H14.xyzcmp new file mode 100755 index 000000000..965b4a9ab --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C8H14.xyzcmp @@ -0,0 +1,24 @@ +22 +C8H14.mmp +C 0.568000 -0.227000 -1.458000 +C 1.463000 -0.691000 -0.290000 +C -0.743000 0.321000 -0.907000 +C 0.741000 -0.451000 1.031000 +C -0.451000 1.502000 0.021000 +C -1.463000 -0.765000 -0.122000 +C -0.567000 -1.236000 1.040000 +C 0.441000 1.036000 1.178000 +H 1.070000 0.528000 -2.048000 +H 0.357000 -1.056000 -2.133000 +H 2.411000 -0.165000 -0.288000 +H 1.705000 -1.747000 -0.380000 +H -1.373000 0.653000 -1.732000 +H 1.373000 -0.781000 1.850000 +H -1.386000 1.913000 0.381000 +H 0.028000 2.300000 -0.539000 +H -2.411000 -0.385000 0.239000 +H -1.700000 -1.597000 -0.775000 +H -0.348000 -2.300000 0.951000 +H -1.070000 -1.100000 1.990000 +H -0.043000 1.222000 2.133000 +H 1.373000 1.597000 1.186000 diff --git a/sim/src/tests/rigid_organics/test_C8H8.ba b/sim/src/tests/rigid_organics/test_C8H8.ba new file mode 100755 index 000000000..fcd893b1d --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C8H8.ba @@ -0,0 +1,68 @@ +LENGTH 0 1 1.54475726248 +LENGTH 0 4 1.53946549166 +LENGTH 0 5 1.53740853386 +LENGTH 0 8 1.07922101536 +LENGTH 1 2 1.539855188 +LENGTH 1 6 1.53666717281 +LENGTH 1 9 1.07187219387 +LENGTH 2 3 1.54458149672 +LENGTH 2 5 1.53585936856 +LENGTH 2 10 1.07312347845 +LENGTH 3 6 1.53677584572 +LENGTH 3 7 1.53173626973 +LENGTH 3 11 1.07086973998 +LENGTH 4 6 1.53535565912 +LENGTH 4 7 1.54301814636 +LENGTH 4 12 1.07514510649 +LENGTH 5 7 1.54054665622 +LENGTH 5 13 1.07538876691 +LENGTH 6 14 1.07004532614 +LENGTH 7 15 1.07223038569 +ANGLE 0 1 2 89.6172549053 +ANGLE 0 1 6 89.7026313162 +ANGLE 0 1 9 125.310665812 +ANGLE 0 4 6 89.9480038682 +ANGLE 0 4 7 90.0644734175 +ANGLE 0 4 12 125.390932296 +ANGLE 0 5 2 90.0383388439 +ANGLE 0 5 7 90.2333979221 +ANGLE 0 5 13 125.048635666 +ANGLE 1 0 4 89.9468024588 +ANGLE 1 0 5 90.0514110658 +ANGLE 1 0 8 125.254938387 +ANGLE 1 2 3 89.7850709291 +ANGLE 1 2 5 90.2924639986 +ANGLE 1 2 10 125.136744767 +ANGLE 1 6 3 90.1942930159 +ANGLE 1 6 4 90.4025232163 +ANGLE 1 6 14 124.872793161 +ANGLE 2 1 6 90.0999546142 +ANGLE 2 1 9 125.246332839 +ANGLE 2 3 6 89.9196687105 +ANGLE 2 3 7 90.0795300209 +ANGLE 2 3 11 124.767091787 +ANGLE 2 5 7 90.0771026874 +ANGLE 2 5 13 125.330261587 +ANGLE 3 2 5 89.7692956196 +ANGLE 3 2 10 125.470002124 +ANGLE 3 6 4 89.9044218976 +ANGLE 3 6 14 125.360110245 +ANGLE 3 7 4 89.8061124908 +ANGLE 3 7 5 90.0727454285 +ANGLE 3 7 15 125.935632348 +ANGLE 4 0 5 89.9751865435 +ANGLE 4 0 8 125.359802767 +ANGLE 4 6 14 125.206199891 +ANGLE 4 7 5 89.726908428 +ANGLE 4 7 15 124.96438781 +ANGLE 5 0 8 125.197271203 +ANGLE 5 2 10 125.294815441 +ANGLE 5 7 15 125.165498207 +ANGLE 6 1 9 125.643690112 +ANGLE 6 3 7 90.3290843201 +ANGLE 6 3 11 125.52997708 +ANGLE 6 4 7 89.9602643609 +ANGLE 6 4 12 125.172471963 +ANGLE 7 3 11 125.259432192 +ANGLE 7 4 12 125.248662 +ANGLE 7 5 13 125.167515631 diff --git a/sim/src/tests/rigid_organics/test_C8H8.md5sums b/sim/src/tests/rigid_organics/test_C8H8.md5sums new file mode 100755 index 000000000..fc31b434c --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C8H8.md5sums @@ -0,0 +1,2 @@ +stdout 4A5AB7FDDAB00F4A671F2053FC13BA82 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/rigid_organics/test_C8H8.mmp b/sim/src/tests/rigid_organics/test_C8H8.mmp new file mode 100755 index 000000000..ed008f808 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C8H8.mmp @@ -0,0 +1,48 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (6.510190) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (C8H8) +info opengroup open = True +mol (C8H8.pdb) def +atom 1 (6) (-530, 651, 534) def +atom 2 (6) (-197, 529, -24) def +bond1 1 +atom 3 (6) (169, 933, -724) def +bond1 2 +atom 4 (6) (623, -606, -1646) def +bond1 3 +atom 5 (6) (-127, -828, 317) def +bond1 1 +atom 6 (6) (1203, 652, 1001) def +bond1 1 3 +atom 7 (6) (-639, -670, -1097) def +bond1 2 4 5 +atom 8 (6) (1035, -721, 494) def +bond1 4 5 6 +atom 9 (1) (-950, 800, 2367) def +bond1 1 +atom 10 (1) (-1948, 1733, 181) def +bond1 2 +atom 11 (1) (714, 1887, -1350) def +bond1 3 +atom 12 (1) (1265, -634, -2194) def +bond1 4 +atom 13 (1) (-780, -2008, 373) def +bond1 5 +atom 14 (1) (2094, 705, 1146) def +bond1 6 +atom 15 (1) (-2160, -1301, -1497) def +bond1 7 +atom 16 (1) (1516, -1222, -117) def +bond1 8 +egroup (C8H8) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part C8H8 + diff --git a/sim/src/tests/rigid_organics/test_C8H8.out b/sim/src/tests/rigid_organics/test_C8H8.out new file mode 100755 index 000000000..e4e249c96 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C8H8.out @@ -0,0 +1,12 @@ +======= test_C8H8.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 7 +== structure comparison == +cutover to fine tolerance at 1 diff --git a/sim/src/tests/rigid_organics/test_C8H8.test b/sim/src/tests/rigid_organics/test_C8H8.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C8H8.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/rigid_organics/test_C8H8.xyzcmp b/sim/src/tests/rigid_organics/test_C8H8.xyzcmp new file mode 100755 index 000000000..2cb4fd111 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_C8H8.xyzcmp @@ -0,0 +1,18 @@ +16 +C8H8.mmp +C -0.494000 0.331000 1.187000 +C -0.939000 0.938000 -0.162000 +C 0.538000 1.079000 -0.574000 +C 0.494000 -0.335000 -1.194000 +C -0.537000 -1.077000 0.566000 +C 0.978000 0.471000 0.766000 +C -0.978000 -0.471000 -0.774000 +C 0.940000 -0.937000 0.142000 +H -0.893000 0.600000 2.153000 +H -1.690000 1.693000 -0.284000 +H 0.971000 1.947000 -1.033000 +H 0.894000 -0.594000 -2.153000 +H -0.971000 -1.947000 1.025000 +H 1.766000 0.850000 1.392000 +H -1.766000 -0.848000 -1.392000 +H 1.691000 -1.691000 0.273000 diff --git a/sim/src/tests/rigid_organics/test_CH4.ba b/sim/src/tests/rigid_organics/test_CH4.ba new file mode 100755 index 000000000..2cdd42efc --- /dev/null +++ b/sim/src/tests/rigid_organics/test_CH4.ba @@ -0,0 +1,10 @@ +LENGTH 0 1 1.0911869684 +LENGTH 0 2 1.09141238769 +LENGTH 0 3 1.09594571033 +LENGTH 0 4 1.08205036851 +ANGLE 1 0 2 109.559047543 +ANGLE 1 0 3 109.327257029 +ANGLE 1 0 4 109.564197273 +ANGLE 2 0 3 109.459607918 +ANGLE 2 0 4 109.646513913 +ANGLE 3 0 4 109.269820045 diff --git a/sim/src/tests/rigid_organics/test_CH4.md5sums b/sim/src/tests/rigid_organics/test_CH4.md5sums new file mode 100755 index 000000000..20710641f --- /dev/null +++ b/sim/src/tests/rigid_organics/test_CH4.md5sums @@ -0,0 +1,2 @@ +stdout 88341CF6F75C3B9EE72A09C9940E1371 +stderr D41D8CD98F00B204E9800998ECF8427E diff --git a/sim/src/tests/rigid_organics/test_CH4.mmp b/sim/src/tests/rigid_organics/test_CH4.mmp new file mode 100755 index 000000000..9fc5fbdbd --- /dev/null +++ b/sim/src/tests/rigid_organics/test_CH4.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.523762) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (CH4) +info opengroup open = True +mol (CH4.pdb) def +atom 1 (6) (57, -38, 240) def +atom 2 (1) (-468, 1441, -17) def +bond1 1 +atom 3 (1) (-457, -627, 50) def +bond1 1 +atom 4 (1) (925, 118, 908) def +bond1 1 +atom 5 (1) (378, 0, -460) def +bond1 1 +egroup (CH4) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part CH4 + diff --git a/sim/src/tests/rigid_organics/test_CH4.out b/sim/src/tests/rigid_organics/test_CH4.out new file mode 100755 index 000000000..940132b09 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_CH4.out @@ -0,0 +1,12 @@ +======= test_CH4.test ======= +TYPE struct +======= exitvalue ======= +0 +======= structurematch ======= +1 +======= lengthsangles ======= +OK +======= stderr ======= +cutover to fine tolerance at 15 +== structure comparison == +cutover to fine tolerance at 1 diff --git a/sim/src/tests/rigid_organics/test_CH4.test b/sim/src/tests/rigid_organics/test_CH4.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_CH4.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/rigid_organics/test_CH4.xyzcmp b/sim/src/tests/rigid_organics/test_CH4.xyzcmp new file mode 100755 index 000000000..119a376d9 --- /dev/null +++ b/sim/src/tests/rigid_organics/test_CH4.xyzcmp @@ -0,0 +1,7 @@ +5 +CH4.mmp +C 0.010000 -0.021000 -0.002000 +H -0.589000 0.891000 0.010000 +H -0.649000 -0.891000 -0.002000 +H 0.649000 -0.047000 0.888000 +H 0.631000 -0.035000 -0.888000 diff --git a/sim/src/tests/scripts/Atom.py b/sim/src/tests/scripts/Atom.py new file mode 100755 index 000000000..3620ac36a --- /dev/null +++ b/sim/src/tests/scripts/Atom.py @@ -0,0 +1,90 @@ +#!/usr/bin/python + +"""A common Atom definition to be shared by the classes for various +molecule file formats including MMP and XYZ. This will make it easy to +move information back and forth between formats. + +$Id$ +""" + +__author__ = "Will" + +import re +import os +import sys +import string +import random + +_PeriodicTable = [ + "X", # our singlet has element number zero + "H", "He", + "Li", "Be", "B", "C", "N", "O", "F", "Ne", + "Na", "Mg", "Al", "Si", "P", "S", "Cl", "Ar", + "K", "Ca" #Sc,Ti,V,Cr,Mn,Fe.... + ] + +_MmpAtomPattern = re.compile("^atom (\d+) \((\d+)\) " + + "\((\-?\d+), (\-?\d+), (\-?\d+)\)") + +class NotAtomException(Exception): + pass + +class Atom: + def fromMmp(self, line): + m = _MmpAtomPattern.match(line) + if m == None: + raise NotAtomException + groups = m.groups() + self.elem = elem = string.atoi(groups[1]) + str = "atom %s" % groups[0] + str += " (%s)" % groups[1] + str += " (%d, %d, %d)" + str += line[m.span()[1]:] # anything after position + self._mmpstr = str + self.x = 0.001 * string.atoi(groups[2]) + self.y = 0.001 * string.atoi(groups[3]) + self.z = 0.001 * string.atoi(groups[4]) + self.bonds = [ ] + def clone(self): + "permit deep cloning of structure files" + a = Atom() + for key in self.__dict__.keys(): + setattr(a, key, getattr(self, key)) + return a + def mmpBonds(self, line): + if line.startswith("bond"): + for b in line.split()[1:]: + self.bonds.append(string.atoi(b)) + return True + return False + def fromXyz(self, element, x, y, z): + self.elem = _PeriodicTable.index(element) + self.x = x + self.y = y + self.z = z + def toMmpString(self): + return self._mmpstr % (int(self.x * 1000), + int(self.y * 1000), + int(self.z * 1000)) + def toXyzString(self): + element = _PeriodicTable[self.elem] + return "%s %f %f %f" % (element, self.x, self.y, self.z) + def __repr__(self): + return "<" + self.toXyzString() + ">" + +class FileLineIterator: + def __init__(self, lines): + self.lines = lines + self.pointer = 0 + def next(self): + pointer = self.pointer + lines = self.lines + if pointer >= len(lines): + raise StopIteration + self.pointer = pointer + 1 + return lines[pointer] + def backup(self): + pointer = self.pointer + if pointer <= 0: + raise Exception, "can't back up" + self.pointer = pointer - 1 diff --git a/sim/src/tests/scripts/MmpFile.py b/sim/src/tests/scripts/MmpFile.py new file mode 100755 index 000000000..29447f079 --- /dev/null +++ b/sim/src/tests/scripts/MmpFile.py @@ -0,0 +1,139 @@ +#!/usr/bin/python + +"""Grab one of Damian's minimized MMP files, perturb each atom's +position by some fraction of an angstrom, write out the result as +another MMP file, which becomes an input file for the test. + +$Id$ +""" + +__author__ = "Will" + +import re +import os +import sys +import string +import Atom + +class MmpFile: + """This is meant to be a Python class representing a MMP file. It + is not intended to represent ALL the information in a MMP file, + although it might do that in some distant-future version. Right + now, its biggest strength is that it allows us to easily modify + the positions of the atoms in an MMP file, and write out the + resulting modified MMP file.""" + class _Line: + def fromMmp(self, line): + self._str = line + def str(self): + return self._str + class _AtomHolder: + """Atom holders are indices into the MmpFile.atoms list, + and that's done so that MmpFiles are easier to clone. + """ + def __init__(self, owner): + self._owner = owner + def fromMmp(self, line): + atoms = self._owner.atoms + n = len(atoms) + a = Atom.Atom() + try: + a.fromMmp(line) + except Atom.NotAtomException: + del a + return False + self._index = n + atoms.append(a) + return True + def mmpBonds(self, line): + return self._owner.atoms[self._index].mmpBonds(line) + def str(self): + a = self._owner.atoms[self._index] + return a.toMmpString() + def __init__(self): + self.atoms = [ ] + self.lines = [ ] + def clone(self): + other = MmpFile() + other.lines = self.lines[:] + other.atoms = [ ] + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + lines = Atom.FileLineIterator(lines.split(os.linesep)) + try: + while True: + line = lines.next() + atm = MmpFile._AtomHolder(self) + if atm.fromMmp(line): + self.lines.append(atm) + line = lines.next() + if atm.mmpBonds(line): + x = MmpFile._Line() + x.fromMmp(line) + self.lines.append(x) + else: + lines.backup() + else: + x = MmpFile._Line() + x.fromMmp(line) + self.lines.append(x) + except StopIteration: + pass + def write(self, outf=None): + if outf == None: + outf = sys.stdout + for ln in self.lines: + outf.write(ln.str() + "\n") + def convertToXyz(self): + import XyzFile + xyz = XyzFile.XyzFile() + for a in self.atoms: + xyz.atoms.append(a) + return xyz + def perturb(self): + import random + A = 0.5 # some small number of angstroms + A = A / (3 ** .5) # amount in one dimension + for i in range(len(self)): + x, y, z = self[i] + x += random.normalvariate(0.0, A) + y += random.normalvariate(0.0, A) + z += random.normalvariate(0.0, A) + self[i] = (x, y, z) + +if __name__ == "__main__": + """What follows is a specific usage of the MmpFile class. It's not + the only way it could be used, but it demonstrates something we're + going to want to do very soon as we generate test cases from + Damian's MMP files.""" + m = MmpFile() + #input = "C14H20.mmp" + input = "C3H8.mmp" + m.read(input) + m.perturb() + if False: + outf = open("results", "w") + m.write(outf) + outf.close() + if False: + for a in m.atoms: + print a.bonds + outf = os.popen("diff -u - %s" % input, "w") + m.write(outf) + outf.close() diff --git a/sim/src/tests/scripts/XyzFile.py b/sim/src/tests/scripts/XyzFile.py new file mode 100755 index 000000000..e5323a00f --- /dev/null +++ b/sim/src/tests/scripts/XyzFile.py @@ -0,0 +1,99 @@ +#!/usr/bin/python + +"""MMP and XYZ files share a common Atom definition. This will +make it easy to move information back and forth between the two +formats. + +$Id$ +""" + +__author__ = "Will" + +import os +import sys +import string +import Atom + +class XyzFile: + """Python class to contain information from an XYZ file""" + def __init__(self): + self.atoms = [ ] + def clone(self): + other = XyzFile() + other.atoms = [ ] + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + lines = lines.split(os.linesep) + numAtoms = string.atoi(lines[0]) + lines = lines[2:] + for i in range(numAtoms): + element, x, y, z = lines[i].split() + x, y, z = map(string.atof, (x, y, z)) + a = Atom.Atom() + a.fromXyz(element, x, y, z) + self.atoms.append(a) + def write(self, title, outf=None): + if outf == None: + outf = sys.stdout + outf.write("%d\n%s\n" % (len(self.atoms), title)) + for atm in self.atoms: + outf.write(atm.toXyzString() + "\n") + +if __name__ == "__main__": + # do a little test + class StringCollector: + def __init__(self): + self.contents = "" + def write(self, x): + self.contents += x + import sys + example_xyz_file = """15 +RMS=0.994508 +C -0.193641 2.900593 -0.026523 +X 0.093601 3.502437 0.394872 +X -0.623522 3.154064 -0.637458 +C -1.079249 2.005273 0.890906 +X -1.803795 1.958430 0.584626 +X -1.090331 2.310792 1.617200 +C 0.986482 2.029986 -0.552402 +X 0.945121 1.985940 -1.338110 +X 1.667645 2.347089 -0.314849 +C -0.443634 0.583852 0.936816 +X -0.955793 0.061908 0.643109 +X -0.248030 0.411844 1.680547 +C 0.839719 0.603152 0.054672 +X 1.466374 0.446893 0.504740 +X 0.762053 0.079748 -0.528147 +""" + xyz = XyzFile() + xyz.readstring(example_xyz_file) + # test 1 + sc = StringCollector() + ss, sys.stdout = sys.stdout, sc + xyz.write("RMS=0.994508") + sys.stdout = ss + assert sc.contents == example_xyz_file + # test 2 + for i in range(len(xyz)): + print xyz.getAtom(i) + print + for i in range(8): + xyz[i] = (1.0, 2.0, 3.0) + for i in range(len(xyz)): + print xyz.getAtom(i) diff --git a/sim/src/tests/scripts/findterms.py b/sim/src/tests/scripts/findterms.py new file mode 100755 index 000000000..4c122ac80 --- /dev/null +++ b/sim/src/tests/scripts/findterms.py @@ -0,0 +1,294 @@ +#!/usr/bin/python + +"""This script examines the structure in an MMP file to enumerate all +the bond length terms and bond angle terms for the structure. If an +XYZ file is given, use the position information from the XYZ file, +otherwise use position information from the MMP file. Bond lengths are +in angstroms, bond angles are in degrees. + +Usage: + findterms.py input.mmp > output.txt + findterms.py input1.mmp input2.xyz > output.txt + +Example output: +LENGTH 0 1 1.53077692692 +LENGTH 0 3 1.09477166569 +.... +ANGLE 0 1 2 112.961986081 +ANGLE 0 1 6 109.491950915 +.... + +------------------------------------------------- + +To generate the bond-angle information from the sim/src directory +type: + +for x in tests/*/*.test; do ./runtest.py $x --generate; done + +This will generate a bunch of *.ba files (ba='bond,angle'). Those +are actually already checked into CVS so that's unnecessary. + +To really use this stuff, we need to clear out the *.out files +and replace them, like this: + +rm -f tests/*/*altout tests/*/*.diff tests/*/*.new +rm -f tests/rigid_organics/test_*.out # other directories? +./regression.py --generate + +I don't dare do that on the head (the main CVS tree with the duple rev +numbers) because Eric M needs the *.out files for his regression +testing. So I'll plan to attempt this on a branch at some point. + +$Id$ +""" + +__author__ = "Will" + +import os +import sys +import string +import getopt +from MmpFile import MmpFile +from XyzFile import XyzFile +import math +import Numeric + +# How much variation do we permit in bond lengths and bond +# angles before we think it's a problem? For now these are +# wild guesses, to be later scrutinized by smart people. + +LENGTH_TOLERANCE = 0.2 # angstroms +ANGLE_TOLERANCE = 10 # degrees + +######################################## +# Borrow stuff from VQT.py + +def V(*v): + return Numeric.array(v, Numeric.Float) + +def vlen(v1): + return math.sqrt(Numeric.dot(v1, v1)) + +def angleBetween(vec1, vec2): + TEENY = 1.0e-10 + lensq1 = Numeric.dot(vec1, vec1) + if lensq1 < TEENY: + return 0.0 + lensq2 = Numeric.dot(vec2, vec2) + if lensq2 < TEENY: + return 0.0 + dprod = Numeric.dot(vec1 / lensq1**.5, vec2 / lensq2**.5) + if dprod >= 1.0: + return 0.0 + if dprod <= -1.0: + return 180.0 + return (180/math.pi) * math.acos(dprod) + +def measureLength(xyz, first, second): + '''Returns the angle between two atoms (nuclei)''' + p0 = apply(V, xyz[first]) + p1 = apply(V, xyz[second]) + return vlen(p0 - p1) + +def measureAngle(xyz, first, second, third): + '''Returns the angle between two atoms (nuclei)''' + p0 = apply(V, xyz[first]) + p1 = apply(V, xyz[second]) + p2 = apply(V, xyz[third]) + v01, v21 = p0 - p1, p2 - p1 + return angleBetween(v01, v21) + +################################# + +def main(mmpInputFile, xyzInputFile=None, outf=None, + referenceInputFile=None, generateFlag=False): + bondLengthTerms = { } + bondAngleTerms = { } + + def addBondLength(atm1, atm2): + assert atm1 != atm2 + if atm2 < atm1: + atm1, atm2 = atm2, atm1 + if bondLengthTerms.has_key(atm1): + if atm2 not in bondLengthTerms[atm1]: + bondLengthTerms[atm1].append(atm2) + else: + bondLengthTerms[atm1] = [ atm2 ] + + def getBonds(atm1): + lst = [ ] + if bondLengthTerms.has_key(atm1): + for x in bondLengthTerms[atm1]: + lst.append(x) + for key in bondLengthTerms.keys(): + if atm1 in bondLengthTerms[key]: + if key not in lst: + lst.append(key) + lst.sort() + return lst + + def addBondAngle(atm1, atm2, atm3): + if atm3 < atm1: + atm1, atm3 = atm3, atm1 + value = (atm2, atm3) + if bondAngleTerms.has_key(atm1): + if value not in bondAngleTerms[atm1]: + bondAngleTerms[atm1].append(value) + else: + bondAngleTerms[atm1] = [ value ] + + if outf != None: + ss, sys.stdout = sys.stdout, outf + mmp = MmpFile() + mmp.read(mmpInputFile) + xyz = XyzFile() + if xyzInputFile != None: + xyz.read(xyzInputFile) + else: + # copy xyz file from mmp file + import Atom + for i in range(len(mmp)): + ma = mmp.atoms[i] + element = Atom._PeriodicTable[ma.elem] + x, y, z = ma.x, ma.y, ma.z + a = Atom.Atom() + a.fromXyz(element, x, y, z) + xyz.atoms.append(a) + + assert len(xyz) != 0 + assert len(xyz) == len(mmp) + + # store all the bonds in bondLengthTerms + for i in range(len(mmp)): + a = mmp.atoms[i] + for b in a.bonds: + addBondLength(i, b - 1) + + # generate angles from chains of two bonds + for first in range(len(mmp)): + for second in getBonds(first): + for third in getBonds(second): + if first != third: + addBondAngle(first, second, third) + + lengthList = [ ] + for first in bondLengthTerms.keys(): + for second in bondLengthTerms[first]: + lengthList.append((first, second, + measureLength(xyz, first, second))) + angleList = [ ] + for first in bondAngleTerms.keys(): + for second, third in bondAngleTerms[first]: + angleList.append((first, second, third, + measureAngle(xyz, first, second, third))) + + if generateFlag: + for a1, a2, L in lengthList: + print "LENGTH", a1, a2, L + for a1, a2, a3, A in angleList: + print "ANGLE", a1, a2, a3, A + + if referenceInputFile != None: + badness = False + # read in LENGTH lines, compare them to this guy + inf = open(referenceInputFile) + lp = ap = 0 + for line in inf.readlines(): + if line.startswith("LENGTH "): + fields = line[7:].split() + a1, a2, L = (string.atoi(fields[0]), + string.atoi(fields[1]), + string.atof(fields[2])) + a11, a22, LL = lengthList[lp] + lp += 1 + if a1 != a11 or a2 != a22: + print ("Wrong length term (%d, %d), should be (%d, %d)" + % (a11, a22, a1, a2)) + badness = True + break + if abs(L - LL) > LENGTH_TOLERANCE: + print ("Wrong bond length at (%d, %d), it's %f, should be %f" + % (a1, a2, LL, L)) + badness = True + break + elif line.startswith("ANGLE "): + fields = line[6:].split() + a1, a2, a3, A = (string.atoi(fields[0]), + string.atoi(fields[1]), + string.atoi(fields[2]), + string.atof(fields[3])) + a11, a22, a33, AA = angleList[ap] + ap += 1 + if a1 != a11 or a2 != a22 or a3 != a33: + print ("Wrong angle term (%d, %d, %d), should be (%d, %d, %d)" + % (a11, a22, a33, a1, a2, a3)) + badness = True + break + if abs(L - LL) > ANGLE_TOLERANCE: + print ("Wrong bond angle at (%d, %d, %d), it's %f, should be %f" + % (a1, a2, a3, AA, A)) + badness = True + break + else: + print "Unknown line in reference file:", line + badness = True + break + if not badness: + print "OK" + if outf != None: + outf.close() + sys.stdout = ss + +############################################################ + +if __name__ == "__main__": + try: + mmpInputFile = None + xyzInputFile = None + outputFile = None + referenceInputFile = None + generateFlag = False + + try: + opts, args = getopt.getopt(sys.argv[1:], "m:x:o:r:g", + ["mmp=", "xyz=", "output=", + "reference=", "generate"]) + except getopt.error, msg: + errprint(msg) + sys.exit(1) + for o, a in opts: + if o in ('-m', '--mmp'): + mmpInputFile = a + elif o in ('-x', '--xyz'): + xyzInputFile = a + elif o in ('-o', '--output'): + outputFile = a + elif o in ('-r', '--reference'): + referenceInputFile = a + elif o in ('-g', '--generate'): + generateFlag = True + else: + print "Bad command line option:", o + + if mmpInputFile == None: + mmpInputFile = args.pop(0) + if xyzInputFile == None and len(args) > 1: + xyzInputFile = args.pop(0) + + outf = None + if outputFile != None: + outf = open(outputFile, "w") + main(mmpInputFile, + xyzInputFile=xyzInputFile, + outf=outf, + referenceInputFile=referenceInputFile, + generateFlag=generateFlag) + + except Exception, e: + if e: + sys.stderr.write(sys.argv[0] + ": " + repr(e.args[0]) + "\n") + import traceback + traceback.print_tb(sys.exc_traceback, sys.stderr) + sys.stderr.write("\n") + sys.stderr.write(__doc__) + sys.exit(1) diff --git a/sim/src/tests/scripts/mmp2xyz.py b/sim/src/tests/scripts/mmp2xyz.py new file mode 100755 index 000000000..d2f1d77e8 --- /dev/null +++ b/sim/src/tests/scripts/mmp2xyz.py @@ -0,0 +1,42 @@ +#!/usr/bin/python + +"""This script translates an MMP file to an XYZ file. + +Usage: + mmp2xyz.py input.mmp > output.xyz + +$Id$ +""" + +__author__ = "Will" + +import sys +from MmpFile import MmpFile +from XyzFile import XyzFile +import Atom + +try: + mmpInputFile = sys.argv[1] + + xyz = XyzFile() + mmp = MmpFile() + mmp.read(mmpInputFile) + + for i in range(len(mmp)): + ma = mmp.atoms[i] + element = Atom._PeriodicTable[ma.elem] + x, y, z = ma.x, ma.y, ma.z + a = Atom.Atom() + a.fromXyz(element, x, y, z) + xyz.atoms.append(a) + + xyz.write(mmpInputFile) + +except Exception, e: + if e: + sys.stderr.write(sys.argv[0] + ": " + e.args[0] + "\n") + import traceback + traceback.print_tb(sys.exc_traceback, sys.stderr) + sys.stderr.write("\n") + sys.stderr.write(__doc__) + sys.exit(1) diff --git a/sim/src/tests/scripts/mmpsubstitute b/sim/src/tests/scripts/mmpsubstitute new file mode 100755 index 000000000..65661efe2 --- /dev/null +++ b/sim/src/tests/scripts/mmpsubstitute @@ -0,0 +1,32 @@ +#!/usr/bin/perl + +# usage: +# +# mmpsubstitute value < template.mmp > result.mmp + +# Reads a template file from stdin, and adds value wherever $$ appears +# in the template, writing the result to stdout. If value is 10, for +# example, and a fragment of the template read: (123 $$45 678) the +# resulting output would be: (123 55 678) where 10 was added to the +# number 45 which followed the $$ substitution marker. If $$ is not +# followed immediately by a string of digits, value just replaces the +# $$. + +$value = $ARGV[0]; + +while (<STDIN>) { + while (/\$\$/) { + $pre = $`; + printf STDOUT "%s", $pre; + $post = $'; #' <-- to make emacs happy + if ($post =~ /^-?\d+/) { + $num = $&; + $post = $'; #' <-- to make emacs happy + printf STDOUT "%d", $num + $value; + } else { + printf STDOUT "%d", $value; + } + $_ = $post; + } + printf STDOUT "%s", $_; +} diff --git a/sim/src/tests/scripts/testmmppotential b/sim/src/tests/scripts/testmmppotential new file mode 100755 index 000000000..cc2f01e5e --- /dev/null +++ b/sim/src/tests/scripts/testmmppotential @@ -0,0 +1,27 @@ +#!/usr/bin/perl + +# usage: +# +# testmmppotential initial increment limit input.mmp > output + +# Loops with a parameter value starting at initial, adding increment +# each time, until limit is reached. For each parameter value, the +# file input.mmp has the parameter substituted in with mmpsubstitute, +# and the result is fed to the command "simulator -E result.mmp". The +# parameter and resulting potential from the simulator output are +# printed to stdout. + +$initial = $ARGV[0]; +$increment = $ARGV[1]; +$limit = $ARGV[2]; +$input = $ARGV[3]; + +$tmp = "/tmp/testmmppotential$$.mmp" ; + +for ($i = $initial; $i < $limit; $i += $increment) { + system "mmpsubstitute $i < $input > $tmp"; + $result = `simulator -m -E $tmp`; + $result =~ s/.Potential.*//; + unlink $tmp; + print "$i $result"; +} diff --git a/sim/src/tests/scripts/xyzmerge.py b/sim/src/tests/scripts/xyzmerge.py new file mode 100755 index 000000000..28a81b88c --- /dev/null +++ b/sim/src/tests/scripts/xyzmerge.py @@ -0,0 +1,44 @@ +#!/usr/bin/python + +"""This script merges an MMP file with an XYZ file, by replacing the +MMP file's atom positions with the positions from the XYZ file, +producing a new MMP file with the XYZ positions. The merged MMP file +is written to standard output. + +Usage: + xyzmerge.py input1.mmp input2.xyz > output.mmp + +$Id$ +""" + +__author__ = "Will" + +import sys +from MmpFile import MmpFile +from XyzFile import XyzFile + +try: + mmpInputFile = sys.argv[1] + xyzInputFile = sys.argv[2] + + xyz = XyzFile() + xyz.read(xyzInputFile) + mmp = MmpFile() + mmp.read(mmpInputFile) + + assert len(xyz) != 0 + assert len(xyz) == len(mmp) + + for i in range(len(xyz)): + xa = xyz.atoms[i] + ma = mmp.atoms[i] + assert xa.elem == ma.elem + ma.x, ma.y, ma.z = xa.x, xa.y, xa.z + + mmp.write() + +except Exception, e: + if e: + sys.stderr.write(sys.argv[0] + ": " + e.args[0] + "\n\n") + sys.stderr.write(__doc__) + sys.exit(1) diff --git a/sim/src/tests/singlebond_stretch/Atom.py b/sim/src/tests/singlebond_stretch/Atom.py new file mode 100755 index 000000000..de10aca58 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/Atom.py @@ -0,0 +1,66 @@ +#!/usr/bin/python + +"""MMP and XYZ files share a common Atom definition. This will +make it easy to move information back and forth between the two +formats. + +$Id$ +""" + +__author__ = "Will" + +import re +import os +import sys +import string +import random + +_PeriodicTable = [ + "X", # our singlet has element number zero + "H", "He", + "Li", "Be", "B", "C", "N", "O", "F", "Ne", + "Na", "Mg", "Al", "Si", "P", "S", "Cl", "Ar", + "K", "Ca" #Sc,Ti,V,Cr,Mn,Fe.... + ] + +_MmpAtomPattern = re.compile("^atom (\d+) \((\d+)\) " + + "\((\-?\d+), (\-?\d+), (\-?\d+)\)") + +class NotAtomException(Exception): + pass + +class Atom: + def fromMmp(self, line): + m = _MmpAtomPattern.match(line) + if m == None: + raise NotAtomException + groups = m.groups() + self.elem = elem = string.atoi(groups[1]) + str = "atom %s" % groups[0] + str += " (%s)" % groups[1] + str += " (%d, %d, %d)" + str += line[m.span()[1]:] # anything after position + self._mmpstr = str + self.x = 0.001 * string.atoi(groups[2]) + self.y = 0.001 * string.atoi(groups[3]) + self.z = 0.001 * string.atoi(groups[4]) + def clone(self): + "permit deep cloning of structure files" + a = Atom() + for key in self.__dict__.keys(): + setattr(a, key, getattr(self, key)) + return a + def fromXyz(self, element, x, y, z): + self.elem = _PeriodicTable.index(element) + self.x = x + self.y = y + self.z = z + def toMmpString(self): + return self._mmpstr % (int(self.x * 1000), + int(self.y * 1000), + int(self.z * 1000)) + def toXyzString(self): + element = _PeriodicTable[self.elem] + return "%s %f %f %f" % (element, self.x, self.y, self.z) + def __repr__(self): + return "<" + self.toXyzString() + ">" diff --git a/sim/src/tests/singlebond_stretch/Cl_AlH2.mmp b/sim/src/tests/singlebond_stretch/Cl_AlH2.mmp new file mode 100755 index 000000000..db211c6d2 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/Cl_AlH2.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.703117, 0.710932, -0.011874, 0.007843) (4.894567) (0.435500, 0.009000, -0.000000) (1.000000) +egroup (View Data) +group (Cl_AlH2_cs) +info opengroup open = True +mol (Cl_AlH2_cs.pdb) cpk +atom 1 (13) (-1136, -23, 0) def +atom 2 (17) (983, 20, 0) def +bond1 1 +atom 3 (1) (-1854, -38, -1402) def +bond1 1 +atom 4 (1) (-1854, -38, 1402) def +bond1 1 +egroup (Cl_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_AlH2_cs diff --git a/sim/src/tests/singlebond_stretch/Cl_BH2.mmp b/sim/src/tests/singlebond_stretch/Cl_BH2.mmp new file mode 100755 index 000000000..6a691f08a --- /dev/null +++ b/sim/src/tests/singlebond_stretch/Cl_BH2.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.491851) (0.655500, 0.013500, -0.000000) (1.000000) +egroup (View Data) +group (Cl_BH2_cs) +info opengroup open = True +mol (Cl_BH2_cs.pdb) cpk +atom 1 (5) (-1254, -26, 0) def +atom 2 (17) (499, 10, 0) def +bond1 1 +atom 3 (1) (-1810, -37, -1050) def +bond1 1 +atom 4 (1) (-1810, -37, 1050) def +bond1 1 +egroup (Cl_BH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_BH2_cs diff --git a/sim/src/tests/singlebond_stretch/Cl_CH3.mmp b/sim/src/tests/singlebond_stretch/Cl_CH3.mmp new file mode 100755 index 000000000..721e9b68c --- /dev/null +++ b/sim/src/tests/singlebond_stretch/Cl_CH3.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.708515) (-0.258500, -0.000000, 0.511500) (1.000000) +egroup (View Data) +group (Cl_CH3_c3v) +info opengroup open = True +mol (Cl_CH3_c3v.pdb) cpk +atom 1 (6) (0, 0, -1242) def +atom 2 (17) (0, 0, 564) def +bond1 1 +atom 3 (1) (-517, 896, -1587) def +bond1 1 +atom 4 (1) (-517, -896, -1587) def +bond1 1 +atom 5 (1) (1034, 0, -1587) def +bond1 1 +egroup (Cl_CH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_CH3_c3v diff --git a/sim/src/tests/singlebond_stretch/Cl_Cl.mmp b/sim/src/tests/singlebond_stretch/Cl_Cl.mmp new file mode 100755 index 000000000..46e452bf2 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/Cl_Cl.mmp @@ -0,0 +1,19 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.801227) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (Cl_Cl_c4h) +info opengroup open = True +mol (Cl_Cl_c4h.pdb) def +atom 1 (17) (0, 0, -1022) def +atom 2 (17) (0, 0, 1022) def +bond1 1 +egroup (Cl_Cl_c4h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_Cl_c4h diff --git a/sim/src/tests/singlebond_stretch/Cl_F.mmp b/sim/src/tests/singlebond_stretch/Cl_F.mmp new file mode 100755 index 000000000..aece8e266 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/Cl_F.mmp @@ -0,0 +1,19 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.663772) (-0.000000, -0.000000, 0.247000) (1.000000) +egroup (View Data) +group (Cl_F_c4v) +info opengroup open = True +mol (Cl_F_c4v.pdb) def +atom 1 (9) (0, 0, -1082) def +atom 2 (17) (0, 0, 588) def +bond1 1 +egroup (Cl_F_c4v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_F_c4v diff --git a/sim/src/tests/singlebond_stretch/Cl_NH2.mmp b/sim/src/tests/singlebond_stretch/Cl_NH2.mmp new file mode 100755 index 000000000..d125206a3 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/Cl_NH2.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.374000) (0.456000, 0.205000, -0.000000) (1.000000) +egroup (View Data) +group (Cl_NH2_cs) +info opengroup open = True +mol (Cl_NH2_cs.pdb) cpk +atom 1 (7) (-1207, 68, 0) def +atom 2 (17) (569, 0, 0) def +bond1 1 +atom 3 (1) (-1481, -478, -818) def +bond1 1 +atom 4 (1) (-1481, -478, 818) def +bond1 1 +egroup (Cl_NH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_NH2_cs diff --git a/sim/src/tests/singlebond_stretch/Cl_OH.mmp b/sim/src/tests/singlebond_stretch/Cl_OH.mmp new file mode 100755 index 000000000..0df429456 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/Cl_OH.mmp @@ -0,0 +1,21 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.022129) (0.420500, -0.405500, -0.000000) (1.000000) +egroup (View Data) +group (Cl_OH_cs) +info opengroup open = True +mol (Cl_OH_cs.pdb) def +atom 1 (8) (-1158, -64, 0) def +atom 2 (17) (570, 4, 0) def +bond1 1 +atom 3 (1) (-1411, 875, 0) def +bond1 1 +egroup (Cl_OH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_OH_cs diff --git a/sim/src/tests/singlebond_stretch/Cl_PH2.mmp b/sim/src/tests/singlebond_stretch/Cl_PH2.mmp new file mode 100755 index 000000000..29a842b74 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/Cl_PH2.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.684170) (0.124000, 0.422000, -0.000000) (1.000000) +egroup (View Data) +group (Cl_PH2_cs) +info opengroup open = True +mol (Cl_PH2_cs.pdb) def +atom 1 (15) (-1080, 61, 0) def +atom 2 (17) (1030, -2, 0) def +bond1 1 +atom 3 (1) (-1278, -905, -1029) def +bond1 1 +atom 4 (1) (-1278, -905, 1029) def +bond1 1 +egroup (Cl_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_PH2_cs diff --git a/sim/src/tests/singlebond_stretch/Cl_SH.mmp b/sim/src/tests/singlebond_stretch/Cl_SH.mmp new file mode 100755 index 000000000..bf9519269 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/Cl_SH.mmp @@ -0,0 +1,21 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.230774) (0.112500, -0.621000, -0.000000) (1.000000) +egroup (View Data) +group (Cl_SH_cs) +info opengroup open = True +mol (Cl_SH_cs.pdb) def +atom 1 (16) (-1069, -49, 0) def +atom 2 (17) (1012, 8, 0) def +bond1 1 +atom 3 (1) (-1238, 1291, 0) def +bond1 1 +egroup (Cl_SH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_SH_cs diff --git a/sim/src/tests/singlebond_stretch/Cl_SiH3.mmp b/sim/src/tests/singlebond_stretch/Cl_SiH3.mmp new file mode 100755 index 000000000..5392d3a17 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/Cl_SiH3.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.170703) (-0.351500, -0.000000, 0.275000) (1.000000) +egroup (View Data) +group (Cl_SiH3_c3v) +info opengroup open = True +mol (Cl_SiH3_c3v.pdb) def +atom 1 (14) (0, 0, -1084) def +atom 2 (17) (0, 0, 1002) def +bond1 1 +atom 3 (1) (-704, 1219, -1552) def +bond1 1 +atom 4 (1) (-704, -1219, -1552) def +bond1 1 +atom 5 (1) (1407, 0, -1552) def +bond1 1 +egroup (Cl_SiH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_SiH3_c3v diff --git a/sim/src/tests/singlebond_stretch/CreateTests.py b/sim/src/tests/singlebond_stretch/CreateTests.py new file mode 100755 index 000000000..cff35dc44 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/CreateTests.py @@ -0,0 +1,38 @@ +#!/usr/bin/python + +import os +import sys +import MmpFile +import XyzFile + +damianFiles = map(lambda x: x.strip(), + open("damianFiles").readlines()) + +for df in damianFiles: + prefix = df[:df.index(".")] + testPrefix = "test_" + prefix + damianMmp = MmpFile.MmpFile() + damianMmp.read(df) + + # Generate the xyzcmp file + xyzcmpFilename = testPrefix + ".xyzcmp" + outf = open(xyzcmpFilename, "w") + xyzcmp = damianMmp.convertToXyz() + xyzcmp.write(df, outf) + outf.close() + + # Make a perturbed copy of the MMP, use it for test_{foo}.mmp + dmClone = damianMmp.clone() + dmClone.perturb() + testMmpFilename = testPrefix + ".mmp" + outf = open(testMmpFilename, "w") + dmClone.write(outf) + outf.close() + + # Create test_{foo}.test + testTestFilename = testPrefix + ".test" + outf = open(testTestFilename, "w") + outf.write("TYPE struct\n") + outf.close() + + print "Test input files generated for " + testPrefix diff --git a/sim/src/tests/singlebond_stretch/F_AlH2.mmp b/sim/src/tests/singlebond_stretch/F_AlH2.mmp new file mode 100755 index 000000000..e279fa632 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/F_AlH2.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.758249) (0.150000, 0.007000, -0.000000) (1.000000) +egroup (View Data) +group (F_AlH2_cs) +info opengroup open = True +mol (F_AlH2_cs.pdb) def +atom 1 (13) (-633, -23, 0) def +atom 2 (9) (1042, 38, 0) def +bond1 1 +atom 3 (1) (-1342, -52, -1407) def +bond1 1 +atom 4 (1) (-1342, -52, 1407) def +bond1 1 +egroup (F_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_AlH2_cs diff --git a/sim/src/tests/singlebond_stretch/F_BH2.mmp b/sim/src/tests/singlebond_stretch/F_BH2.mmp new file mode 100755 index 000000000..68f10b836 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/F_BH2.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.362095) (0.365500, 0.009500, -0.000000) (1.000000) +egroup (View Data) +group (F_BH2_cs) +info opengroup open = True +mol (F_BH2_cs.pdb) def +atom 1 (5) (-755, -21, 0) def +atom 2 (9) (576, 16, 0) def +bond1 1 +atom 3 (1) (-1307, -35, -1060) def +bond1 1 +atom 4 (1) (-1307, -35, 1060) def +bond1 1 +egroup (F_BH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_BH2_cs diff --git a/sim/src/tests/singlebond_stretch/F_CH3.mmp b/sim/src/tests/singlebond_stretch/F_CH3.mmp new file mode 100755 index 000000000..4b972d7fd --- /dev/null +++ b/sim/src/tests/singlebond_stretch/F_CH3.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.590813) (-0.259000, -0.000000, 0.225000) (1.000000) +egroup (View Data) +group (F_CH3_c3v) +info opengroup open = True +mol (F_CH3_c3v.pdb) def +atom 1 (6) (0, 0, -750) def +atom 2 (9) (0, 0, 649) def +bond1 1 +atom 3 (1) (-519, 898, -1099) def +bond1 1 +atom 4 (1) (-519, -898, -1099) def +bond1 1 +atom 5 (1) (1037, 0, -1099) def +bond1 1 +egroup (F_CH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_CH3_c3v diff --git a/sim/src/tests/singlebond_stretch/F_F.mmp b/sim/src/tests/singlebond_stretch/F_F.mmp new file mode 100755 index 000000000..70b37e90e --- /dev/null +++ b/sim/src/tests/singlebond_stretch/F_F.mmp @@ -0,0 +1,19 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.571418) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (F_F_c4h) +info opengroup open = True +mol (F_F_c4h.pdb) def +atom 1 (9) (0, 0, -705) def +atom 2 (9) (0, 0, 705) def +bond1 1 +egroup (F_F_c4h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_F_c4h diff --git a/sim/src/tests/singlebond_stretch/F_NH2.mmp b/sim/src/tests/singlebond_stretch/F_NH2.mmp new file mode 100755 index 000000000..d738e1a6c --- /dev/null +++ b/sim/src/tests/singlebond_stretch/F_NH2.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.258376) (0.161000, 0.216500, -0.000000) (1.000000) +egroup (View Data) +group (F_NH2_cs) +info opengroup open = True +mol (F_NH2_cs.pdb) def +atom 1 (7) (-768, 71, 0) def +atom 2 (9) (671, 1, 0) def +bond1 1 +atom 3 (1) (-993, -504, -817) def +bond1 1 +atom 4 (1) (-993, -504, 817) def +bond1 1 +egroup (F_NH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_NH2_cs diff --git a/sim/src/tests/singlebond_stretch/F_OH.mmp b/sim/src/tests/singlebond_stretch/F_OH.mmp new file mode 100755 index 000000000..d54bf48d2 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/F_OH.mmp @@ -0,0 +1,21 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.906946) (0.128500, -0.412000, -0.000000) (1.000000) +egroup (View Data) +group (F_OH_cs) +info opengroup open = True +mol (F_OH_cs.pdb) def +atom 1 (8) (-754, -67, 0) def +atom 2 (9) (685, 9, 0) def +bond1 1 +atom 3 (1) (-942, 891, 0) def +bond1 1 +egroup (F_OH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_OH_cs diff --git a/sim/src/tests/singlebond_stretch/F_PH2.mmp b/sim/src/tests/singlebond_stretch/F_PH2.mmp new file mode 100755 index 000000000..013418408 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/F_PH2.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.548831) (-0.124000, 0.424500, -0.000000) (1.000000) +egroup (View Data) +group (F_PH2_cs) +info opengroup open = True +mol (F_PH2_cs.pdb) def +atom 1 (15) (-594, 60, 0) def +atom 2 (9) (1055, -1, 0) def +bond1 1 +atom 3 (1) (-807, -909, -1031) def +bond1 1 +atom 4 (1) (-807, -909, 1031) def +bond1 1 +egroup (F_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_PH2_cs diff --git a/sim/src/tests/singlebond_stretch/F_SH.mmp b/sim/src/tests/singlebond_stretch/F_SH.mmp new file mode 100755 index 000000000..c147e0083 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/F_SH.mmp @@ -0,0 +1,21 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.090311) (-0.142500, -0.623000, -0.000000) (1.000000) +egroup (View Data) +group (F_SH_cs) +info opengroup open = True +mol (F_SH_cs.pdb) def +atom 1 (16) (-605, -48, 0) def +atom 2 (9) (1060, 12, 0) def +bond1 1 +atom 3 (1) (-775, 1294, 0) def +bond1 1 +egroup (F_SH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_SH_cs diff --git a/sim/src/tests/singlebond_stretch/F_SiH3.mmp b/sim/src/tests/singlebond_stretch/F_SiH3.mmp new file mode 100755 index 000000000..36f18f5e5 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/F_SiH3.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.040725) (-0.353000, -0.000000, 0.005500) (1.000000) +egroup (View Data) +group (F_SiH3_c3v) +info opengroup open = True +mol (F_SiH3_c3v.pdb) def +atom 1 (14) (0, 0, -594) def +atom 2 (9) (0, 0, 1042) def +bond1 1 +atom 3 (1) (-705, 1222, -1053) def +bond1 1 +atom 4 (1) (-705, -1222, -1053) def +bond1 1 +atom 5 (1) (1411, 0, -1053) def +bond1 1 +egroup (F_SiH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_SiH3_c3v diff --git a/sim/src/tests/singlebond_stretch/H2Al_AlH2.mmp b/sim/src/tests/singlebond_stretch/H2Al_AlH2.mmp new file mode 100755 index 000000000..92b11e3cd --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2Al_AlH2.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.954839) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H2Al_AlH2_c2v) +info opengroup open = True +mol (H2Al_AlH2_c2v.pdb) def +atom 1 (13) (0, 0, -1297) def +atom 2 (13) (0, 0, 1297) def +bond1 1 +atom 3 (1) (-1351, 0, -2150) def +bond1 1 +atom 4 (1) (1351, 0, -2150) def +bond1 1 +atom 5 (1) (0, -1351, 2150) def +bond1 2 +atom 6 (1) (0, 1351, 2150) def +bond1 2 +egroup (H2Al_AlH2_c2v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2Al_AlH2_c2v diff --git a/sim/src/tests/singlebond_stretch/H2Al_CH3.mmp b/sim/src/tests/singlebond_stretch/H2Al_CH3.mmp new file mode 100755 index 000000000..b7252b1a7 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2Al_CH3.mmp @@ -0,0 +1,29 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.301435) (-0.120500, -0.264000, -0.000000) (1.000000) +egroup (View Data) +group (H2Al_CH3_cs) +info opengroup open = True +mol (H2Al_CH3_cs.pdb) def +atom 1 (6) (1304, -1, 0) def +atom 2 (13) (-661, -1, 0) def +bond1 1 +atom 3 (1) (1704, 1024, 0) def +bond1 1 +atom 4 (1) (1713, -496, 889) def +bond1 1 +atom 5 (1) (1713, -496, -889) def +bond1 1 +atom 6 (1) (-1472, 6, -1369) def +bond1 2 +atom 7 (1) (-1472, 6, 1369) def +bond1 2 +egroup (H2Al_CH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2Al_CH3_cs diff --git a/sim/src/tests/singlebond_stretch/H2Al_SiH3.mmp b/sim/src/tests/singlebond_stretch/H2Al_SiH3.mmp new file mode 100755 index 000000000..b22672448 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2Al_SiH3.mmp @@ -0,0 +1,29 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.656843) (0.159000, -0.368500, -0.000000) (1.000000) +egroup (View Data) +group (H2Al_SiH3_cs) +info opengroup open = True +mol (H2Al_SiH3_cs.pdb) def +atom 1 (14) (1193, -3, 0) def +atom 2 (13) (-1276, -1, 0) def +bond1 1 +atom 3 (1) (1695, 1407, 0) def +bond1 1 +atom 4 (1) (1771, -670, 1204) def +bond1 1 +atom 5 (1) (1771, -670, -1204) def +bond1 1 +atom 6 (1) (-2089, 16, -1367) def +bond1 2 +atom 7 (1) (-2089, 16, 1367) def +bond1 2 +egroup (H2Al_SiH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2Al_SiH3_cs diff --git a/sim/src/tests/singlebond_stretch/H2B_AlH2.mmp b/sim/src/tests/singlebond_stretch/H2B_AlH2.mmp new file mode 100755 index 000000000..8edab9662 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2B_AlH2.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.555626) (-0.000000, -0.000000, -0.323500) (1.000000) +egroup (View Data) +group (H2B_AlH2_c2v) +info opengroup open = True +mol (H2B_AlH2_c2v.pdb) def +atom 1 (13) (0, 0, -650) def +atom 2 (5) (0, 0, 1474) def +bond1 1 +atom 3 (1) (-1364, 0, -1477) def +bond1 1 +atom 4 (1) (1364, 0, -1477) def +bond1 1 +atom 5 (1) (0, -1008, 2124) def +bond1 2 +atom 6 (1) (0, 1008, 2124) def +bond1 2 +egroup (H2B_AlH2_c2v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2B_AlH2_c2v diff --git a/sim/src/tests/singlebond_stretch/H2B_BH2.mmp b/sim/src/tests/singlebond_stretch/H2B_BH2.mmp new file mode 100755 index 000000000..3f1bc8034 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2B_BH2.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.146411) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H2B_BH2_c2v) +info opengroup open = True +mol (H2B_BH2_c2v.pdb) def +atom 1 (5) (0, 0, -820) def +atom 2 (5) (0, 0, 820) def +bond1 1 +atom 3 (1) (-1016, 0, -1458) def +bond1 1 +atom 4 (1) (1016, 0, -1458) def +bond1 1 +atom 5 (1) (0, -1016, 1458) def +bond1 2 +atom 6 (1) (0, 1016, 1458) def +bond1 2 +egroup (H2B_BH2_c2v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2B_BH2_c2v diff --git a/sim/src/tests/singlebond_stretch/H2B_CH3.mmp b/sim/src/tests/singlebond_stretch/H2B_CH3.mmp new file mode 100755 index 000000000..7e974c809 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2B_CH3.mmp @@ -0,0 +1,29 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.920636) (0.132500, -0.302000, -0.000000) (1.000000) +egroup (View Data) +group (H2B_CH3_cs) +info opengroup open = True +mol (H2B_CH3_cs.pdb) def +atom 1 (6) (726, -21, 0) def +atom 2 (5) (-834, 1, 0) def +bond1 1 +atom 3 (1) (1000, 1052, 0) def +bond1 1 +atom 4 (1) (1184, -448, 898) def +bond1 1 +atom 5 (1) (1184, -448, -898) def +bond1 1 +atom 6 (1) (-1449, 44, -1028) def +bond1 2 +atom 7 (1) (-1449, 44, 1028) def +bond1 2 +egroup (H2B_CH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2B_CH3_cs diff --git a/sim/src/tests/singlebond_stretch/H2B_NH2.mmp b/sim/src/tests/singlebond_stretch/H2B_NH2.mmp new file mode 100755 index 000000000..18f34b3c1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2B_NH2.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.565348) (0.083000, 0.002000, -0.000000) (1.000000) +egroup (View Data) +group (H2B_NH2_cs) +info opengroup open = True +mol (H2B_NH2_cs.pdb) def +atom 1 (5) (-768, -18, 0) def +atom 2 (7) (628, 15, 0) def +bond1 1 +atom 3 (1) (-1347, -32, -1047) def +bond1 1 +atom 4 (1) (-1347, -32, 1047) def +bond1 1 +atom 5 (1) (1181, 28, 845) def +bond1 2 +atom 6 (1) (1181, 28, -845) def +bond1 2 +egroup (H2B_NH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2B_NH2_cs diff --git a/sim/src/tests/singlebond_stretch/H2B_PH2.mmp b/sim/src/tests/singlebond_stretch/H2B_PH2.mmp new file mode 100755 index 000000000..13ec61dea --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2B_PH2.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.864962) (0.479000, -0.337500, -0.000000) (1.000000) +egroup (View Data) +group (H2B_PH2_cs) +info opengroup open = True +mol (H2B_PH2_cs.pdb) def +atom 1 (5) (-1333, 39, 0) def +atom 2 (15) (536, -60, 0) def +bond1 1 +atom 3 (1) (-1920, -18, -1036) def +bond1 1 +atom 4 (1) (-1920, -18, 1036) def +bond1 1 +atom 5 (1) (962, 735, 1087) def +bond1 2 +atom 6 (1) (962, 735, -1087) def +bond1 2 +egroup (H2B_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2B_PH2_cs diff --git a/sim/src/tests/singlebond_stretch/H2B_SiH3.mmp b/sim/src/tests/singlebond_stretch/H2B_SiH3.mmp new file mode 100755 index 000000000..4c6efde6d --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2B_SiH3.mmp @@ -0,0 +1,29 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.365016) (0.435000, -0.389000, -0.000000) (1.000000) +egroup (View Data) +group (H2B_SiH3_cs) +info opengroup open = True +mol (H2B_SiH3_cs.pdb) def +atom 1 (14) (590, -7, 0) def +atom 2 (5) (-1433, 1, 0) def +bond1 1 +atom 3 (1) (1020, 1427, 0) def +bond1 1 +atom 4 (1) (1181, -649, 1210) def +bond1 1 +atom 5 (1) (1181, -649, -1210) def +bond1 1 +atom 6 (1) (-2051, 28, -1022) def +bond1 2 +atom 7 (1) (-2051, 28, 1022) def +bond1 2 +egroup (H2B_SiH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2B_SiH3_cs diff --git a/sim/src/tests/singlebond_stretch/H2N_AlH2.mmp b/sim/src/tests/singlebond_stretch/H2N_AlH2.mmp new file mode 100755 index 000000000..f30a2e4db --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2N_AlH2.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.977417) (0.188000, 0.001500, -0.000000) (1.000000) +egroup (View Data) +group (H2N_AlH2_cs) +info opengroup open = True +mol (H2N_AlH2_cs.pdb) def +atom 1 (7) (-1159, -13, 0) def +atom 2 (13) (630, 7, 0) def +bond1 1 +atom 3 (1) (-1737, -18, -831) def +bond1 1 +atom 4 (1) (-1737, -18, 831) def +bond1 1 +atom 5 (1) (1361, 15, 1403) def +bond1 2 +atom 6 (1) (1361, 15, -1403) def +bond1 2 +egroup (H2N_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2N_AlH2_cs diff --git a/sim/src/tests/singlebond_stretch/H2N_CH3.mmp b/sim/src/tests/singlebond_stretch/H2N_CH3.mmp new file mode 100755 index 000000000..21b49d5d6 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2N_CH3.mmp @@ -0,0 +1,29 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.732818) (-0.012000, -0.275000, -0.000000) (1.000000) +egroup (View Data) +group (H2N_CH3_cs) +info opengroup open = True +mol (H2N_CH3_cs.pdb) def +atom 1 (6) (742, 20, 0) def +atom 2 (7) (-721, -75, 0) def +bond1 1 +atom 3 (1) (1144, 1047, 0) def +bond1 1 +atom 4 (1) (1135, -497, 881) def +bond1 1 +atom 5 (1) (1135, -497, -881) def +bond1 1 +atom 6 (1) (-1120, 375, -819) def +bond1 2 +atom 7 (1) (-1120, 375, 819) def +bond1 2 +egroup (H2N_CH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2N_CH3_cs diff --git a/sim/src/tests/singlebond_stretch/H2N_NH2.mmp b/sim/src/tests/singlebond_stretch/H2N_NH2.mmp new file mode 100755 index 000000000..6cdf4c7d7 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2N_NH2.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.469991) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H2N_NH2_c2h) +info opengroup open = True +mol (H2N_NH2_c2h.pdb) def +atom 1 (7) (735, -101, 0) def +atom 2 (7) (-735, 101, 0) def +bond1 1 +atom 3 (1) (1064, 439, 801) def +bond1 1 +atom 4 (1) (-1064, -439, -801) def +bond1 2 +atom 5 (1) (1064, 439, -801) def +bond1 1 +atom 6 (1) (-1064, -439, 801) def +bond1 2 +egroup (H2N_NH2_c2h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2N_NH2_c2h diff --git a/sim/src/tests/singlebond_stretch/H2N_PH2.mmp b/sim/src/tests/singlebond_stretch/H2N_PH2.mmp new file mode 100755 index 000000000..f6079cfa7 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2N_PH2.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.785670) (0.377500, -0.261000, -0.000000) (1.000000) +egroup (View Data) +group (H2N_PH2_cs) +info opengroup open = True +mol (H2N_PH2_cs.pdb) def +atom 1 (7) (-1186, 107, 0) def +atom 2 (15) (585, -82, 0) def +bond1 1 +atom 3 (1) (-1590, -350, -816) def +bond1 1 +atom 4 (1) (-1590, -350, 816) def +bond1 1 +atom 5 (1) (835, 872, 1031) def +bond1 2 +atom 6 (1) (835, 872, -1031) def +bond1 2 +egroup (H2N_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2N_PH2_cs diff --git a/sim/src/tests/singlebond_stretch/H2N_SiH3.mmp b/sim/src/tests/singlebond_stretch/H2N_SiH3.mmp new file mode 100755 index 000000000..a5a2ac951 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2N_SiH3.mmp @@ -0,0 +1,29 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.256237) (0.244500, -0.343500, -0.000000) (1.000000) +egroup (View Data) +group (H2N_SiH3_cs) +info opengroup open = True +mol (H2N_SiH3_cs.pdb) def +atom 1 (14) (583, 9, 0) def +atom 2 (7) (-1161, -47, 0) def +bond1 1 +atom 3 (1) (1188, 1378, 0) def +bond1 1 +atom 4 (1) (1057, -691, 1224) def +bond1 1 +atom 5 (1) (1057, -691, -1224) def +bond1 1 +atom 6 (1) (-1677, 200, -834) def +bond1 2 +atom 7 (1) (-1677, 200, 834) def +bond1 2 +egroup (H2N_SiH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2N_SiH3_cs diff --git a/sim/src/tests/singlebond_stretch/H2P_AlH2.mmp b/sim/src/tests/singlebond_stretch/H2P_AlH2.mmp new file mode 100755 index 000000000..30468e895 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2P_AlH2.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.219062) (-0.340500, 0.391000, -0.000000) (1.000000) +egroup (View Data) +group (H2P_AlH2_cs) +info opengroup open = True +mol (H2P_AlH2_cs.pdb) def +atom 1 (15) (-1112, 73, 0) def +atom 2 (13) (1226, -22, 0) def +bond1 1 +atom 3 (1) (-1320, -855, -1058) def +bond1 1 +atom 4 (1) (-1320, -855, 1058) def +bond1 1 +atom 5 (1) (2001, 27, 1384) def +bond1 2 +atom 6 (1) (2001, 27, -1384) def +bond1 2 +egroup (H2P_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2P_AlH2_cs diff --git a/sim/src/tests/singlebond_stretch/H2P_CH3.mmp b/sim/src/tests/singlebond_stretch/H2P_CH3.mmp new file mode 100755 index 000000000..9695b245d --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2P_CH3.mmp @@ -0,0 +1,29 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.904439) (-0.405000, -0.317500, -0.000000) (1.000000) +egroup (View Data) +group (H2P_CH3_cs) +info opengroup open = True +mol (H2P_CH3_cs.pdb) def +atom 1 (6) (1274, 58, 0) def +atom 2 (15) (-599, -84, 0) def +bond1 1 +atom 3 (1) (1632, 1090, 0) def +bond1 1 +atom 4 (1) (1667, -455, 883) def +bond1 1 +atom 5 (1) (1667, -455, -883) def +bond1 1 +atom 6 (1) (-857, 858, -1039) def +bond1 2 +atom 7 (1) (-857, 858, 1039) def +bond1 2 +egroup (H2P_CH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2P_CH3_cs diff --git a/sim/src/tests/singlebond_stretch/H2P_PH2.mmp b/sim/src/tests/singlebond_stretch/H2P_PH2.mmp new file mode 100755 index 000000000..d7ce682da --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2P_PH2.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.987592) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H2P_PH2_c2h) +info opengroup open = True +mol (H2P_PH2_c2h.pdb) def +atom 1 (15) (1131, -95, 0) def +atom 2 (15) (-1131, 95, 0) def +bond1 1 +atom 3 (1) (1318, 872, 1031) def +bond1 1 +atom 4 (1) (-1318, -872, -1031) def +bond1 2 +atom 5 (1) (1318, 872, -1031) def +bond1 1 +atom 6 (1) (-1318, -872, 1031) def +bond1 2 +egroup (H2P_PH2_c2h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2P_PH2_c2h diff --git a/sim/src/tests/singlebond_stretch/H2P_SiH3.mmp b/sim/src/tests/singlebond_stretch/H2P_SiH3.mmp new file mode 100755 index 000000000..8ee0c2a08 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H2P_SiH3.mmp @@ -0,0 +1,29 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.296252) (-0.201000, -0.370500, -0.000000) (1.000000) +egroup (View Data) +group (H2P_SiH3_cs) +info opengroup open = True +mol (H2P_SiH3_cs.pdb) def +atom 1 (14) (1157, 31, 0) def +atom 2 (15) (-1123, -86, 0) def +bond1 1 +atom 3 (1) (1698, 1419, 0) def +bond1 1 +atom 4 (1) (1651, -678, 1211) def +bond1 1 +atom 5 (1) (1651, -678, -1211) def +bond1 1 +atom 6 (1) (-1296, 870, -1042) def +bond1 2 +atom 7 (1) (-1296, 870, 1042) def +bond1 2 +egroup (H2P_SiH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2P_SiH3_cs diff --git a/sim/src/tests/singlebond_stretch/H3C_CH3.mmp b/sim/src/tests/singlebond_stretch/H3C_CH3.mmp new file mode 100755 index 000000000..e347e6a14 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H3C_CH3.mmp @@ -0,0 +1,31 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.894712) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H3C_CH3_d3d) +info opengroup open = True +mol (H3C_CH3_d3d.pdb) def +atom 1 (6) (0, 0, 767) def +atom 2 (6) (0, 0, -767) def +bond1 1 +atom 3 (1) (-885, -511, -1164) def +bond1 2 +atom 4 (1) (885, -511, -1164) def +bond1 2 +atom 5 (1) (0, -1022, 1164) def +bond1 1 +atom 6 (1) (885, 511, 1164) def +bond1 1 +atom 7 (1) (-885, 511, 1164) def +bond1 1 +atom 8 (1) (0, 1022, -1164) def +bond1 2 +egroup (H3C_CH3_d3d) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H3C_CH3_d3d diff --git a/sim/src/tests/singlebond_stretch/H3C_SiH3.mmp b/sim/src/tests/singlebond_stretch/H3C_SiH3.mmp new file mode 100755 index 000000000..fcbb0b4c1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H3C_SiH3.mmp @@ -0,0 +1,31 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.326195) (-0.185500, -0.000000, -0.269500) (1.000000) +egroup (View Data) +group (H3C_SiH3_c3v) +info opengroup open = True +mol (H3C_SiH3_c3v.pdb) def +atom 1 (14) (0, 0, -608) def +atom 2 (6) (0, 0, 1281) def +bond1 1 +atom 3 (1) (-697, 1207, -1136) def +bond1 1 +atom 4 (1) (-697, -1207, -1136) def +bond1 1 +atom 5 (1) (1394, 0, -1136) def +bond1 1 +atom 6 (1) (-1022, 0, 1675) def +bond1 2 +atom 7 (1) (511, -886, 1675) def +bond1 2 +atom 8 (1) (511, 886, 1675) def +bond1 2 +egroup (H3C_SiH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H3C_SiH3_c3v diff --git a/sim/src/tests/singlebond_stretch/H3Si_SiH3.mmp b/sim/src/tests/singlebond_stretch/H3Si_SiH3.mmp new file mode 100755 index 000000000..1202af095 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H3Si_SiH3.mmp @@ -0,0 +1,31 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.614757) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H3Si_SiH3_d3d) +info opengroup open = True +mol (H3Si_SiH3_d3d.pdb) def +atom 1 (14) (0, 0, 1179) def +atom 2 (14) (0, 0, -1179) def +bond1 1 +atom 3 (1) (-1209, -698, -1701) def +bond1 2 +atom 4 (1) (1209, -698, -1701) def +bond1 2 +atom 5 (1) (0, -1396, 1701) def +bond1 1 +atom 6 (1) (1209, 698, 1701) def +bond1 1 +atom 7 (1) (-1209, 698, 1701) def +bond1 1 +atom 8 (1) (0, 1396, -1701) def +bond1 2 +egroup (H3Si_SiH3_d3d) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H3Si_SiH3_d3d diff --git a/sim/src/tests/singlebond_stretch/HO_AlH2.mmp b/sim/src/tests/singlebond_stretch/HO_AlH2.mmp new file mode 100755 index 000000000..8a450b05b --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HO_AlH2.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.965431) (0.179500, -0.028500, -0.000000) (1.000000) +egroup (View Data) +group (HO_AlH2_cs) +info opengroup open = True +mol (HO_AlH2_cs.pdb) def +atom 1 (8) (-1100, -71, 0) def +atom 2 (13) (616, 15, 0) def +bond1 1 +atom 3 (1) (-1722, 662, 0) def +bond1 1 +atom 4 (1) (1330, 1429, 0) def +bond1 2 +atom 5 (1) (1363, -1372, 0) def +bond1 2 +egroup (HO_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_AlH2_cs diff --git a/sim/src/tests/singlebond_stretch/HO_BH2.mmp b/sim/src/tests/singlebond_stretch/HO_BH2.mmp new file mode 100755 index 000000000..74bef42c9 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HO_BH2.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.526175) (-0.146500, -0.067000, -0.000000) (1.000000) +egroup (View Data) +group (HO_BH2_cs) +info opengroup open = True +mol (HO_BH2_cs.pdb) def +atom 1 (8) (-609, -81, 0) def +atom 2 (5) (743, 35, 0) def +bond1 1 +atom 3 (1) (-1075, 765, 0) def +bond1 1 +atom 4 (1) (1264, 1116, 0) def +bond1 2 +atom 5 (1) (1368, -982, 0) def +bond1 2 +egroup (HO_BH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_BH2_cs diff --git a/sim/src/tests/singlebond_stretch/HO_CH3.mmp b/sim/src/tests/singlebond_stretch/HO_CH3.mmp new file mode 100755 index 000000000..405c6ab96 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HO_CH3.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.804391) (0.043500, -0.092500, -0.000000) (1.000000) +egroup (View Data) +group (HO_CH3_cs) +info opengroup open = True +mol (HO_CH3_cs.pdb) def +atom 1 (6) (-732, -2, 0) def +atom 2 (8) (694, 53, 0) def +bond1 1 +atom 3 (1) (-1083, 1033, 0) def +bond1 1 +atom 4 (1) (-1126, -503, 895) def +bond1 1 +atom 5 (1) (-1126, -503, -895) def +bond1 1 +atom 6 (1) (1039, -848, 0) def +bond1 2 +egroup (HO_CH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_CH3_cs diff --git a/sim/src/tests/singlebond_stretch/HO_NH2.mmp b/sim/src/tests/singlebond_stretch/HO_NH2.mmp new file mode 100755 index 000000000..707c944c1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HO_NH2.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.552590) (-0.003000, -0.199000, -0.000000) (1.000000) +egroup (View Data) +group (HO_NH2_cs) +info opengroup open = True +mol (HO_NH2_cs.pdb) def +atom 1 (8) (702, -115, 0) def +atom 2 (7) (-726, 130, 0) def +bond1 1 +atom 3 (1) (1068, 780, 0) def +bond1 1 +atom 4 (1) (-1062, -382, -817) def +bond1 2 +atom 5 (1) (-1062, -382, 817) def +bond1 2 +egroup (HO_NH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_NH2_cs diff --git a/sim/src/tests/singlebond_stretch/HO_OH.mmp b/sim/src/tests/singlebond_stretch/HO_OH.mmp new file mode 100755 index 000000000..fd8e75de0 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HO_OH.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.248799) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (HO_OH_c2h) +info opengroup open = True +mol (HO_OH_c2h.pdb) def +atom 1 (8) (730, 67, 0) def +atom 2 (8) (-730, -67, 0) def +bond1 1 +atom 3 (1) (969, -873, 0) def +bond1 1 +atom 4 (1) (-969, 873, 0) def +bond1 2 +egroup (HO_OH_c2h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_OH_c2h diff --git a/sim/src/tests/singlebond_stretch/HO_PH2.mmp b/sim/src/tests/singlebond_stretch/HO_PH2.mmp new file mode 100755 index 000000000..9e89c9264 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HO_PH2.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.878838) (-0.332000, 0.055500, -0.000000) (1.000000) +egroup (View Data) +group (HO_PH2_cs) +info opengroup open = True +mol (HO_PH2_cs.pdb) def +atom 1 (8) (1109, -139, 0) def +atom 2 (15) (-565, 102, 0) def +bond1 1 +atom 3 (1) (1561, 714, 0) def +bond1 1 +atom 4 (1) (-897, -825, -1033) def +bond1 2 +atom 5 (1) (-897, -825, 1033) def +bond1 2 +egroup (HO_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_PH2_cs diff --git a/sim/src/tests/singlebond_stretch/HO_SiH3.mmp b/sim/src/tests/singlebond_stretch/HO_SiH3.mmp new file mode 100755 index 000000000..653e4b4b5 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HO_SiH3.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.227165) (-0.244000, -0.313000, -0.000000) (1.000000) +egroup (View Data) +group (HO_SiH3_cs) +info opengroup open = True +mol (HO_SiH3_cs.pdb) def +atom 1 (14) (-574, 1, 0) def +atom 2 (8) (1106, 47, 0) def +bond1 1 +atom 3 (1) (-1014, 1415, 0) def +bond1 1 +atom 4 (1) (-1096, -701, 1207) def +bond1 1 +atom 5 (1) (-1096, -701, -1207) def +bond1 1 +atom 6 (1) (1584, -789, 0) def +bond1 2 +egroup (HO_SiH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_SiH3_cs diff --git a/sim/src/tests/singlebond_stretch/HS_AlH2.mmp b/sim/src/tests/singlebond_stretch/HS_AlH2.mmp new file mode 100755 index 000000000..dec157d5c --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HS_AlH2.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.000129) (-0.324000, -0.060500, -0.000000) (1.000000) +egroup (View Data) +group (HS_AlH2_cs) +info opengroup open = True +mol (HS_AlH2_cs.pdb) def +atom 1 (16) (-1048, -75, 0) def +atom 2 (13) (1149, 37, 0) def +bond1 1 +atom 3 (1) (-1267, 1258, 0) def +bond1 1 +atom 4 (1) (1830, 1464, 0) def +bond1 2 +atom 5 (1) (1915, -1343, 0) def +bond1 2 +egroup (HS_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_AlH2_cs diff --git a/sim/src/tests/singlebond_stretch/HS_BH2.mmp b/sim/src/tests/singlebond_stretch/HS_BH2.mmp new file mode 100755 index 000000000..9655536e8 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HS_BH2.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.646765) (-0.495500, -0.142000, -0.000000) (1.000000) +egroup (View Data) +group (HS_BH2_cs) +info opengroup open = True +mol (HS_BH2_cs.pdb) def +atom 1 (16) (-521, -72, 0) def +atom 2 (5) (1257, 78, 0) def +bond1 1 +atom 3 (1) (-865, 1234, 0) def +bond1 1 +atom 4 (1) (1794, 1139, 0) def +bond1 2 +atom 5 (1) (1856, -950, 0) def +bond1 2 +egroup (HS_BH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_BH2_cs diff --git a/sim/src/tests/singlebond_stretch/HS_CH3.mmp b/sim/src/tests/singlebond_stretch/HS_CH3.mmp new file mode 100755 index 000000000..22ed530f9 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HS_CH3.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.010206) (0.415000, 0.130000, -0.000000) (1.000000) +egroup (View Data) +group (HS_CH3_cs) +info opengroup open = True +mol (HS_CH3_cs.pdb) def +atom 1 (6) (-1243, -10, 0) def +atom 2 (16) (594, 43, 0) def +bond1 1 +atom 3 (1) (-1579, 1030, 0) def +bond1 1 +atom 4 (1) (-1627, -502, 896) def +bond1 1 +atom 5 (1) (-1627, -502, -896) def +bond1 1 +atom 6 (1) (797, -1290, 0) def +bond1 2 +egroup (HS_CH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_CH3_cs diff --git a/sim/src/tests/singlebond_stretch/HS_NH2.mmp b/sim/src/tests/singlebond_stretch/HS_NH2.mmp new file mode 100755 index 000000000..72e34107c --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HS_NH2.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.754485) (0.321000, -0.484000, -0.000000) (1.000000) +egroup (View Data) +group (HS_NH2_cs) +info opengroup open = True +mol (HS_NH2_cs.pdb) def +atom 1 (16) (573, -94, 0) def +atom 2 (7) (-1150, 162, 0) def +bond1 1 +atom 3 (1) (929, 1211, 0) def +bond1 1 +atom 4 (1) (-1571, -243, -830) def +bond1 2 +atom 5 (1) (-1571, -243, 830) def +bond1 2 +egroup (HS_NH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_NH2_cs diff --git a/sim/src/tests/singlebond_stretch/HS_OH.mmp b/sim/src/tests/singlebond_stretch/HS_OH.mmp new file mode 100755 index 000000000..17cccdb2b --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HS_OH.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.458553) (-0.354500, -0.224000, -0.000000) (1.000000) +egroup (View Data) +group (HS_OH_cs) +info opengroup open = True +mol (HS_OH_cs.pdb) def +atom 1 (16) (-590, -51, 0) def +atom 2 (8) (1134, 73, 0) def +bond1 1 +atom 3 (1) (-751, 1287, 0) def +bond1 1 +atom 4 (1) (1460, -839, 0) def +bond1 2 +egroup (HS_OH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_OH_cs diff --git a/sim/src/tests/singlebond_stretch/HS_PH2.mmp b/sim/src/tests/singlebond_stretch/HS_PH2.mmp new file mode 100755 index 000000000..9c7408937 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HS_PH2.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.084203) (0.005500, -0.202500, -0.000000) (1.000000) +egroup (View Data) +group (HS_PH2_cs) +info opengroup open = True +mol (HS_PH2_cs.pdb) def +atom 1 (16) (1080, -116, 0) def +atom 2 (15) (-1070, 133, 0) def +bond1 1 +atom 3 (1) (1351, 1204, 0) def +bond1 1 +atom 4 (1) (-1362, -799, -1035) def +bond1 2 +atom 5 (1) (-1362, -799, 1035) def +bond1 2 +egroup (HS_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_PH2_cs diff --git a/sim/src/tests/singlebond_stretch/HS_SH.mmp b/sim/src/tests/singlebond_stretch/HS_SH.mmp new file mode 100755 index 000000000..df6a12c97 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HS_SH.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.672292) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (HS_SH_c2h) +info opengroup open = True +mol (HS_SH_c2h.pdb) def +atom 1 (16) (1075, 51, 0) def +atom 2 (16) (-1075, -51, 0) def +bond1 1 +atom 3 (1) (1206, -1291, 0) def +bond1 1 +atom 4 (1) (-1206, 1291, 0) def +bond1 2 +egroup (HS_SH_c2h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_SH_c2h diff --git a/sim/src/tests/singlebond_stretch/HS_SiH3.mmp b/sim/src/tests/singlebond_stretch/HS_SiH3.mmp new file mode 100755 index 000000000..4e6ec1a62 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/HS_SiH3.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.417931) (0.202500, -0.059000, -0.000000) (1.000000) +egroup (View Data) +group (HS_SiH3_cs) +info opengroup open = True +mol (HS_SiH3_cs.pdb) def +atom 1 (14) (-1097, -6, 0) def +atom 2 (16) (1072, 45, 0) def +bond1 1 +atom 3 (1) (-1527, 1414, 0) def +bond1 1 +atom 4 (1) (-1619, -697, 1209) def +bond1 1 +atom 5 (1) (-1619, -697, -1209) def +bond1 1 +atom 6 (1) (1214, -1296, 0) def +bond1 2 +egroup (HS_SiH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_SiH3_cs diff --git a/sim/src/tests/singlebond_stretch/H_AlH2.mmp b/sim/src/tests/singlebond_stretch/H_AlH2.mmp new file mode 100755 index 000000000..e93590052 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H_AlH2.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.840244) (0.374500, 0.131000, -0.000000) (1.000000) +egroup (View Data) +group (H_AlH2_cs) +info opengroup open = True +mol (H_AlH2_cs.pdb) def +atom 1 (13) (0, 0, 0) def +atom 2 (1) (-1498, -522, 0) def +bond1 1 +atom 3 (1) (749, 260, -1375) def +bond1 1 +atom 4 (1) (749, 260, 1375) def +bond1 1 +egroup (H_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_AlH2_cs diff --git a/sim/src/tests/singlebond_stretch/H_BH2.mmp b/sim/src/tests/singlebond_stretch/H_BH2.mmp new file mode 100755 index 000000000..0f14f92f5 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H_BH2.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.372820) (0.292500, 0.060500, -0.000000) (1.000000) +egroup (View Data) +group (H_BH2_cs) +info opengroup open = True +mol (H_BH2_cs.pdb) def +atom 1 (5) (0, 0, 0) def +atom 2 (1) (-1169, -242, 0) def +bond1 1 +atom 3 (1) (584, 121, -1034) def +bond1 1 +atom 4 (1) (584, 121, 1034) def +bond1 1 +egroup (H_BH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_BH2_cs diff --git a/sim/src/tests/singlebond_stretch/H_CH3.mmp b/sim/src/tests/singlebond_stretch/H_CH3.mmp new file mode 100755 index 000000000..18e16bcab --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H_CH3.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.501770) (-0.257500, -0.000000, -0.365000) (1.000000) +egroup (View Data) +group (H_CH3_c3v) +info opengroup open = True +mol (H_CH3_c3v.pdb) def +atom 1 (6) (0, 0, 0) def +atom 2 (1) (0, 0, 1093) def +bond1 1 +atom 3 (1) (-516, 893, -363) def +bond1 1 +atom 4 (1) (-516, -893, -363) def +bond1 1 +atom 5 (1) (1031, 0, -363) def +bond1 1 +egroup (H_CH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_CH3_c3v diff --git a/sim/src/tests/singlebond_stretch/H_Cl.mmp b/sim/src/tests/singlebond_stretch/H_Cl.mmp new file mode 100755 index 000000000..b3d550918 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H_Cl.mmp @@ -0,0 +1,19 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.528554) (-0.000000, -0.000000, 0.607500) (1.000000) +egroup (View Data) +group (H_Cl_c4v) +info opengroup open = True +mol (H_Cl_c4v.pdb) def +atom 1 (1) (0, 0, -1251) def +atom 2 (17) (0, 0, 36) def +bond1 1 +egroup (H_Cl_c4v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_Cl_c4v diff --git a/sim/src/tests/singlebond_stretch/H_F.mmp b/sim/src/tests/singlebond_stretch/H_F.mmp new file mode 100755 index 000000000..a6452cf37 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H_F.mmp @@ -0,0 +1,19 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.406713) (-0.000000, -0.000000, 0.417000) (1.000000) +egroup (View Data) +group (H_F_c4v) +info opengroup open = True +mol (H_F_c4v.pdb) def +atom 1 (1) (0, 0, -881) def +atom 2 (9) (0, 0, 47) def +bond1 1 +egroup (H_F_c4v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_F_c4v diff --git a/sim/src/tests/singlebond_stretch/H_H.mmp b/sim/src/tests/singlebond_stretch/H_H.mmp new file mode 100755 index 000000000..b5766d069 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H_H.mmp @@ -0,0 +1,18 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.346279) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H_H_c4h) +info opengroup open = True +mol (H_H_c4h.pdb) def +atom 1 (1) (0, 0, -372) def +atom 2 (1) (0, 0, 372) def +egroup (H_H_c4h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_H_c4h diff --git a/sim/src/tests/singlebond_stretch/H_NH2.mmp b/sim/src/tests/singlebond_stretch/H_NH2.mmp new file mode 100755 index 000000000..59fcccd8c --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H_NH2.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.852421, -0.338636, -0.364016, 0.161851) (4.149152) (0.332500, -0.183500, -0.000000) (1.000000) +egroup (View Data) +group (H_NH2_cs) +info opengroup open = True +mol (H_NH2_cs.pdb) def +atom 1 (7) (24, -59, 0) def +atom 2 (1) (-991, -88, 0) def +bond1 1 +atom 3 (1) (326, 455, -823) def +bond1 1 +atom 4 (1) (326, 455, 823) def +bond1 1 +egroup (H_NH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_NH2_cs diff --git a/sim/src/tests/singlebond_stretch/H_OH.mmp b/sim/src/tests/singlebond_stretch/H_OH.mmp new file mode 100755 index 000000000..1073b8775 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H_OH.mmp @@ -0,0 +1,21 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.796143) (-0.234500, -0.376500, -0.000000) (1.000000) +egroup (View Data) +group (H_OH_cs) +info opengroup open = True +mol (H_OH_cs.pdb) def +atom 1 (8) (-30, -58, 0) def +atom 2 (1) (920, 112, 0) def +bond1 1 +atom 3 (1) (-451, 811, 0) def +bond1 1 +egroup (H_OH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_OH_cs diff --git a/sim/src/tests/singlebond_stretch/H_PH2.mmp b/sim/src/tests/singlebond_stretch/H_PH2.mmp new file mode 100755 index 000000000..d44392455 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H_PH2.mmp @@ -0,0 +1,23 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.477057) (0.577000, -0.415500, -0.000000) (1.000000) +egroup (View Data) +group (H_PH2_cs) +info opengroup open = True +mol (H_PH2_cs.pdb) def +atom 1 (15) (30, -61, 0) def +atom 2 (1) (-1385, 102, 0) def +bond1 1 +atom 3 (1) (231, 892, -1039) def +bond1 1 +atom 4 (1) (231, 892, 1039) def +bond1 1 +egroup (H_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_PH2_cs diff --git a/sim/src/tests/singlebond_stretch/H_SH.mmp b/sim/src/tests/singlebond_stretch/H_SH.mmp new file mode 100755 index 000000000..f25060067 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H_SH.mmp @@ -0,0 +1,21 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.030966) (-0.428000, -0.596500, -0.000000) (1.000000) +egroup (View Data) +group (H_SH_cs) +info opengroup open = True +mol (H_SH_cs.pdb) def +atom 1 (16) (-27, -48, 0) def +atom 2 (1) (1280, 284, 0) def +bond1 1 +atom 3 (1) (-424, 1241, 0) def +bond1 1 +egroup (H_SH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_SH_cs diff --git a/sim/src/tests/singlebond_stretch/H_SiH3.mmp b/sim/src/tests/singlebond_stretch/H_SiH3.mmp new file mode 100755 index 000000000..ddbca3311 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/H_SiH3.mmp @@ -0,0 +1,25 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.000772) (-0.350500, -0.000000, -0.495500) (1.000000) +egroup (View Data) +group (H_SiH3_c3v) +info opengroup open = True +mol (H_SiH3_c3v.pdb) def +atom 1 (14) (0, 0, 0) def +atom 2 (1) (0, 0, 1487) def +bond1 1 +atom 3 (1) (-701, 1214, -496) def +bond1 1 +atom 4 (1) (-701, -1214, -496) def +bond1 1 +atom 5 (1) (1402, 0, -496) def +bond1 1 +egroup (H_SiH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_SiH3_c3v diff --git a/sim/src/tests/singlebond_stretch/MmpFile.py b/sim/src/tests/singlebond_stretch/MmpFile.py new file mode 100755 index 000000000..9a2e9d81d --- /dev/null +++ b/sim/src/tests/singlebond_stretch/MmpFile.py @@ -0,0 +1,123 @@ +#!/usr/bin/python + +"""Grab one of Damian's minimized MMP files, perturb each atom's +position by some fraction of an angstrom, write out the result as +another MMP file, which becomes an input file for the test. + +$Id$ +""" + +__author__ = "Will" + +import re +import os +import sys +import string +import Atom + +class MmpFile: + """This is meant to be a Python class representing a MMP file. It + is not intended to represent ALL the information in a MMP file, + although it might do that in some distant-future version. Right + now, its biggest strength is that it allows us to easily modify + the positions of the atoms in an MMP file, and write out the + resulting modified MMP file.""" + class _Line: + def fromMmp(self, line): + self._str = line + def str(self): + return self._str + def clone(self, owner): + ln = MmpFile._Line() + ln._str = self._str + return ln + class _AtomHolder: + """Atom holders are indices into the MmpFile.atoms list, + and that's done so that an entry in MmpFile.lines can be + a pointer into the MmpFile.atoms list. When a file is + cloned, we clone the atoms but keep the same lines. + """ + def __init__(self, owner): + self._owner = owner + def fromMmp(self, line): + atoms = self._owner.atoms + self._index = len(atoms) + a = Atom.Atom() + a.fromMmp(line) + atoms.append(a) + def str(self): + a = self._owner.atoms[self._index] + return a.toMmpString() + def clone(self, newowner): + other = MmpFile._AtomHolder(newowner) + other._index = self._index + return other + def __init__(self): + self.atoms = [ ] + self.lines = [ ] + def clone(self): + other = MmpFile() + for x in self.lines: + other.lines.append(x.clone(other)) + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + for line in lines.split("\n"): + try: + atm = MmpFile._AtomHolder(self) + atm.fromMmp(line) + except Atom.NotAtomException: + atm = MmpFile._Line() + atm.fromMmp(line) + self.lines.append(atm) + def write(self, outf=None): + if outf == None: + outf = sys.stdout + for ln in self.lines: + outf.write(ln.str() + "\n") + def convertToXyz(self): + import XyzFile + xyz = XyzFile.XyzFile() + for a in self.atoms: + xyz.atoms.append(a) + return xyz + def perturb(self): + import random + A = 0.5 # some small number of angstroms + A = A / (3 ** .5) # amount in one dimension + for i in range(len(self)): + x, y, z = self[i] + x += random.normalvariate(0.0, A) + y += random.normalvariate(0.0, A) + z += random.normalvariate(0.0, A) + self[i] = (x, y, z) + +if __name__ == "__main__": + """What follows is a specific usage of the MmpFile class. It's not + the only way it could be used, but it demonstrates something we're + going to want to do very soon as we generate test cases from + Damian's MMP files.""" + m = MmpFile() + #input = "C14H20.mmp" + input = "C3H8.mmp" + m.read(input) + m.perturb() + #outf = os.popen("diff -u - %s | less" % input, "w") + outf = os.popen("diff -u - %s" % input, "w") + m.write(outf) + outf.close() diff --git a/sim/src/tests/singlebond_stretch/README b/sim/src/tests/singlebond_stretch/README new file mode 100755 index 000000000..6ede035f2 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/README @@ -0,0 +1,18 @@ +Notes from Damian about these files + +Down to the simplest systems for tests and any necessary +reparameterizations. + +All of these systems are composed of single bonds between two atoms +and all other valences filled with Hydrogen. The labeling scheme is +FragmentA_FragmentB.mmp/pdb with the two important atoms connected by +the "_". In some cases, like H_X, the parameter is for the H-X bond. + +Also notices a little import issue with the CAD side (it won't read +H2 as a connected system). I'll bring that one up. + +The double bond systems are mostly done. There are a few problem +structures that nature never intended that, despite my wish to have +the exhaustive set, we maybe should intend either. I'd hate to be +the guy proposing the structure at a board meeting arguing that the +existence of parameters means we've got a shot of making it. diff --git a/sim/src/tests/singlebond_stretch/XyzFile.py b/sim/src/tests/singlebond_stretch/XyzFile.py new file mode 100755 index 000000000..e614f1129 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/XyzFile.py @@ -0,0 +1,89 @@ +#!/usr/bin/python + +import sys +import string +import Atom + +class XyzFile: + """Python class to contain information from an XYZ file""" + def __init__(self): + self.atoms = [ ] + def clone(self): + other = XyzFile() + other.atoms = [ ] + for a in self.atoms: + other.atoms.append(a.clone()) + return other + def getAtom(self, i): + return self.atoms[i] + def __getitem__(self, i): + a = self.atoms[i] + return (a.x, a.y, a.z) + def __setitem__(self, i, xyz): + a = self.atoms[i] + a.x, a.y, a.z = xyz + def __len__(self): + return len(self.atoms) + def read(self, filename): + inf = open(filename) + self.readstring(inf.read()) + inf.close() + def readstring(self, lines): + lines = lines.split("\n") + numAtoms = string.atoi(lines[0]) + lines = lines[2:] + for i in range(numAtoms): + element, x, y, z = lines[i].split() + x, y, z = map(string.atof, (x, y, z)) + a = Atom.Atom() + a.fromXyz(element, x, y, z) + self.atoms.append(a) + def write(self, title, outf=None): + if outf == None: + outf = sys.stdout + outf.write("%d\n%s\n" % (len(self.atoms), title)) + for atm in self.atoms: + outf.write(atm.toXyzString() + "\n") + +if __name__ == "__main__": + # do a little test + class StringCollector: + def __init__(self): + self.contents = "" + def write(self, x): + self.contents += x + import sys + example_xyz_file = """15 +RMS=0.994508 +C -0.193641 2.900593 -0.026523 +X 0.093601 3.502437 0.394872 +X -0.623522 3.154064 -0.637458 +C -1.079249 2.005273 0.890906 +X -1.803795 1.958430 0.584626 +X -1.090331 2.310792 1.617200 +C 0.986482 2.029986 -0.552402 +X 0.945121 1.985940 -1.338110 +X 1.667645 2.347089 -0.314849 +C -0.443634 0.583852 0.936816 +X -0.955793 0.061908 0.643109 +X -0.248030 0.411844 1.680547 +C 0.839719 0.603152 0.054672 +X 1.466374 0.446893 0.504740 +X 0.762053 0.079748 -0.528147 +""" + xyz = XyzFile() + xyz.readstring(example_xyz_file) + # test 1 + sc = StringCollector() + ss, sys.stdout = sys.stdout, sc + xyz.write("RMS=0.994508") + sys.stdout = ss + assert sc.contents == example_xyz_file + # test 2 + for i in range(len(xyz)): + print xyz.getAtom(i) + print + for i in range(8): + xyz[i] = (1.0, 2.0, 3.0) + for i in range(len(xyz)): + print xyz.getAtom(i) diff --git a/sim/src/tests/singlebond_stretch/damianFiles b/sim/src/tests/singlebond_stretch/damianFiles new file mode 100755 index 000000000..d74e96f1b --- /dev/null +++ b/sim/src/tests/singlebond_stretch/damianFiles @@ -0,0 +1,66 @@ +Cl_AlH2.mmp +Cl_BH2.mmp +Cl_CH3.mmp +Cl_Cl.mmp +Cl_F.mmp +Cl_NH2.mmp +Cl_OH.mmp +Cl_PH2.mmp +Cl_SH.mmp +Cl_SiH3.mmp +F_AlH2.mmp +F_BH2.mmp +F_CH3.mmp +F_F.mmp +F_NH2.mmp +F_OH.mmp +F_PH2.mmp +F_SH.mmp +F_SiH3.mmp +H2Al_AlH2.mmp +H2Al_CH3.mmp +H2Al_SiH3.mmp +H2B_AlH2.mmp +H2B_BH2.mmp +H2B_CH3.mmp +H2B_NH2.mmp +H2B_PH2.mmp +H2B_SiH3.mmp +H2N_AlH2.mmp +H2N_CH3.mmp +H2N_NH2.mmp +H2N_PH2.mmp +H2N_SiH3.mmp +H2P_AlH2.mmp +H2P_CH3.mmp +H2P_PH2.mmp +H2P_SiH3.mmp +H3C_CH3.mmp +H3C_SiH3.mmp +H3Si_SiH3.mmp +H_AlH2.mmp +H_BH2.mmp +H_CH3.mmp +H_Cl.mmp +H_F.mmp +H_H.mmp +H_NH2.mmp +HO_AlH2.mmp +HO_BH2.mmp +HO_CH3.mmp +H_OH.mmp +HO_NH2.mmp +HO_OH.mmp +HO_PH2.mmp +HO_SiH3.mmp +H_PH2.mmp +HS_AlH2.mmp +HS_BH2.mmp +HS_CH3.mmp +H_SH.mmp +H_SiH3.mmp +HS_NH2.mmp +HS_OH.mmp +HS_PH2.mmp +HS_SH.mmp +HS_SiH3.mmp diff --git a/sim/src/tests/singlebond_stretch/test_Cl_AlH2.mmp b/sim/src/tests/singlebond_stretch/test_Cl_AlH2.mmp new file mode 100755 index 000000000..81b381192 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_AlH2.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.703117, 0.710932, -0.011874, 0.007843) (4.894567) (0.435500, 0.009000, -0.000000) (1.000000) +egroup (View Data) +group (Cl_AlH2_cs) +info opengroup open = True +mol (Cl_AlH2_cs.pdb) cpk +atom 1 (13) (-1058, 604, 219) def +atom 2 (17) (1456, 363, 160) def +bond1 1 +atom 3 (1) (-1768, -936, -1803) def +bond1 1 +atom 4 (1) (-1728, -713, 1184) def +bond1 1 +egroup (Cl_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_AlH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_Cl_AlH2.test b/sim/src/tests/singlebond_stretch/test_Cl_AlH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_AlH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_Cl_AlH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_Cl_AlH2.xyzcmp new file mode 100755 index 000000000..698138e61 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_AlH2.xyzcmp @@ -0,0 +1,6 @@ +4 +Cl_AlH2.mmp +Al -1.136000 -0.023000 0.000000 +Cl 0.983000 0.020000 0.000000 +H -1.854000 -0.038000 -1.402000 +H -1.854000 -0.038000 1.402000 diff --git a/sim/src/tests/singlebond_stretch/test_Cl_BH2.mmp b/sim/src/tests/singlebond_stretch/test_Cl_BH2.mmp new file mode 100755 index 000000000..b9710e8ba --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_BH2.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.491851) (0.655500, 0.013500, -0.000000) (1.000000) +egroup (View Data) +group (Cl_BH2_cs) +info opengroup open = True +mol (Cl_BH2_cs.pdb) cpk +atom 1 (5) (-1133, -28, -557) def +atom 2 (17) (277, -381, 387) def +bond1 1 +atom 3 (1) (-1743, 151, -961) def +bond1 1 +atom 4 (1) (-2127, -144, 950) def +bond1 1 +egroup (Cl_BH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_BH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_Cl_BH2.test b/sim/src/tests/singlebond_stretch/test_Cl_BH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_BH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_Cl_BH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_Cl_BH2.xyzcmp new file mode 100755 index 000000000..8651f7b89 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_BH2.xyzcmp @@ -0,0 +1,6 @@ +4 +Cl_BH2.mmp +B -1.254000 -0.026000 0.000000 +Cl 0.499000 0.010000 0.000000 +H -1.810000 -0.037000 -1.050000 +H -1.810000 -0.037000 1.050000 diff --git a/sim/src/tests/singlebond_stretch/test_Cl_CH3.mmp b/sim/src/tests/singlebond_stretch/test_Cl_CH3.mmp new file mode 100755 index 000000000..399f55981 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_CH3.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.708515) (-0.258500, -0.000000, 0.511500) (1.000000) +egroup (View Data) +group (Cl_CH3_c3v) +info opengroup open = True +mol (Cl_CH3_c3v.pdb) cpk +atom 1 (6) (132, 229, -1346) def +atom 2 (17) (46, 62, 825) def +bond1 1 +atom 3 (1) (-879, 893, -1740) def +bond1 1 +atom 4 (1) (107, -1197, -1733) def +bond1 1 +atom 5 (1) (660, 779, -1682) def +bond1 1 +egroup (Cl_CH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_CH3_c3v + diff --git a/sim/src/tests/singlebond_stretch/test_Cl_CH3.test b/sim/src/tests/singlebond_stretch/test_Cl_CH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_CH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_Cl_CH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_Cl_CH3.xyzcmp new file mode 100755 index 000000000..3e76f97e7 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_CH3.xyzcmp @@ -0,0 +1,7 @@ +5 +Cl_CH3.mmp +C 0.000000 0.000000 -1.242000 +Cl 0.000000 0.000000 0.564000 +H -0.517000 0.896000 -1.587000 +H -0.517000 -0.896000 -1.587000 +H 1.034000 0.000000 -1.587000 diff --git a/sim/src/tests/singlebond_stretch/test_Cl_Cl.mmp b/sim/src/tests/singlebond_stretch/test_Cl_Cl.mmp new file mode 100755 index 000000000..5168cb9a0 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_Cl.mmp @@ -0,0 +1,20 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.801227) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (Cl_Cl_c4h) +info opengroup open = True +mol (Cl_Cl_c4h.pdb) def +atom 1 (17) (-120, 20, -887) def +atom 2 (17) (559, -306, 516) def +bond1 1 +egroup (Cl_Cl_c4h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_Cl_c4h + diff --git a/sim/src/tests/singlebond_stretch/test_Cl_Cl.test b/sim/src/tests/singlebond_stretch/test_Cl_Cl.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_Cl.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_Cl_Cl.xyzcmp b/sim/src/tests/singlebond_stretch/test_Cl_Cl.xyzcmp new file mode 100755 index 000000000..f441f26a2 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_Cl.xyzcmp @@ -0,0 +1,4 @@ +2 +Cl_Cl.mmp +Cl 0.000000 0.000000 -1.022000 +Cl 0.000000 0.000000 1.022000 diff --git a/sim/src/tests/singlebond_stretch/test_Cl_F.mmp b/sim/src/tests/singlebond_stretch/test_Cl_F.mmp new file mode 100755 index 000000000..f37f54f5e --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_F.mmp @@ -0,0 +1,20 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.663772) (-0.000000, -0.000000, 0.247000) (1.000000) +egroup (View Data) +group (Cl_F_c4v) +info opengroup open = True +mol (Cl_F_c4v.pdb) def +atom 1 (9) (195, 459, -1413) def +atom 2 (17) (-282, 322, 70) def +bond1 1 +egroup (Cl_F_c4v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_F_c4v + diff --git a/sim/src/tests/singlebond_stretch/test_Cl_F.test b/sim/src/tests/singlebond_stretch/test_Cl_F.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_F.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_Cl_F.xyzcmp b/sim/src/tests/singlebond_stretch/test_Cl_F.xyzcmp new file mode 100755 index 000000000..6ca3f4c2e --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_F.xyzcmp @@ -0,0 +1,4 @@ +2 +Cl_F.mmp +F 0.000000 0.000000 -1.082000 +Cl 0.000000 0.000000 0.588000 diff --git a/sim/src/tests/singlebond_stretch/test_Cl_NH2.mmp b/sim/src/tests/singlebond_stretch/test_Cl_NH2.mmp new file mode 100755 index 000000000..d492b2893 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_NH2.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.374000) (0.456000, 0.205000, -0.000000) (1.000000) +egroup (View Data) +group (Cl_NH2_cs) +info opengroup open = True +mol (Cl_NH2_cs.pdb) cpk +atom 1 (7) (-1396, 360, -339) def +atom 2 (17) (456, -74, -243) def +bond1 1 +atom 3 (1) (-682, -933, -742) def +bond1 1 +atom 4 (1) (-1543, -226, 775) def +bond1 1 +egroup (Cl_NH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_NH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_Cl_NH2.test b/sim/src/tests/singlebond_stretch/test_Cl_NH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_NH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_Cl_NH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_Cl_NH2.xyzcmp new file mode 100755 index 000000000..5ee8fd307 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_NH2.xyzcmp @@ -0,0 +1,6 @@ +4 +Cl_NH2.mmp +N -1.207000 0.068000 0.000000 +Cl 0.569000 0.000000 0.000000 +H -1.481000 -0.478000 -0.818000 +H -1.481000 -0.478000 0.818000 diff --git a/sim/src/tests/singlebond_stretch/test_Cl_OH.mmp b/sim/src/tests/singlebond_stretch/test_Cl_OH.mmp new file mode 100755 index 000000000..c739c1279 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_OH.mmp @@ -0,0 +1,22 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.022129) (0.420500, -0.405500, -0.000000) (1.000000) +egroup (View Data) +group (Cl_OH_cs) +info opengroup open = True +mol (Cl_OH_cs.pdb) def +atom 1 (8) (-973, 328, 331) def +atom 2 (17) (807, -56, -53) def +bond1 1 +atom 3 (1) (-1800, 1026, 189) def +bond1 1 +egroup (Cl_OH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_OH_cs + diff --git a/sim/src/tests/singlebond_stretch/test_Cl_OH.test b/sim/src/tests/singlebond_stretch/test_Cl_OH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_OH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_Cl_OH.xyzcmp b/sim/src/tests/singlebond_stretch/test_Cl_OH.xyzcmp new file mode 100755 index 000000000..3602912c7 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_OH.xyzcmp @@ -0,0 +1,5 @@ +3 +Cl_OH.mmp +O -1.158000 -0.064000 0.000000 +Cl 0.570000 0.004000 0.000000 +H -1.411000 0.875000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_Cl_PH2.mmp b/sim/src/tests/singlebond_stretch/test_Cl_PH2.mmp new file mode 100755 index 000000000..1252efd7d --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_PH2.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.684170) (0.124000, 0.422000, -0.000000) (1.000000) +egroup (View Data) +group (Cl_PH2_cs) +info opengroup open = True +mol (Cl_PH2_cs.pdb) def +atom 1 (15) (-1247, 451, -91) def +atom 2 (17) (1102, 308, -41) def +bond1 1 +atom 3 (1) (-1662, -1452, -1045) def +bond1 1 +atom 4 (1) (-977, -628, 823) def +bond1 1 +egroup (Cl_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_PH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_Cl_PH2.test b/sim/src/tests/singlebond_stretch/test_Cl_PH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_PH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_Cl_PH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_Cl_PH2.xyzcmp new file mode 100755 index 000000000..c40966187 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_PH2.xyzcmp @@ -0,0 +1,6 @@ +4 +Cl_PH2.mmp +P -1.080000 0.061000 0.000000 +Cl 1.030000 -0.002000 0.000000 +H -1.278000 -0.905000 -1.029000 +H -1.278000 -0.905000 1.029000 diff --git a/sim/src/tests/singlebond_stretch/test_Cl_SH.mmp b/sim/src/tests/singlebond_stretch/test_Cl_SH.mmp new file mode 100755 index 000000000..8b7be04e0 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_SH.mmp @@ -0,0 +1,22 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.230774) (0.112500, -0.621000, -0.000000) (1.000000) +egroup (View Data) +group (Cl_SH_cs) +info opengroup open = True +mol (Cl_SH_cs.pdb) def +atom 1 (16) (-768, 315, 32) def +atom 2 (17) (955, -129, 79) def +bond1 1 +atom 3 (1) (-964, 1486, 145) def +bond1 1 +egroup (Cl_SH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_SH_cs + diff --git a/sim/src/tests/singlebond_stretch/test_Cl_SH.test b/sim/src/tests/singlebond_stretch/test_Cl_SH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_SH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_Cl_SH.xyzcmp b/sim/src/tests/singlebond_stretch/test_Cl_SH.xyzcmp new file mode 100755 index 000000000..c06acb9f7 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_SH.xyzcmp @@ -0,0 +1,5 @@ +3 +Cl_SH.mmp +S -1.069000 -0.049000 0.000000 +Cl 1.012000 0.008000 0.000000 +H -1.238000 1.291000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_Cl_SiH3.mmp b/sim/src/tests/singlebond_stretch/test_Cl_SiH3.mmp new file mode 100755 index 000000000..40304d53a --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_SiH3.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.170703) (-0.351500, -0.000000, 0.275000) (1.000000) +egroup (View Data) +group (Cl_SiH3_c3v) +info opengroup open = True +mol (Cl_SiH3_c3v.pdb) def +atom 1 (14) (-183, -273, -1170) def +atom 2 (17) (-425, -27, 755) def +bond1 1 +atom 3 (1) (-991, 1626, -2044) def +bond1 1 +atom 4 (1) (-908, -1465, -1773) def +bond1 1 +atom 5 (1) (1251, -541, -1442) def +bond1 1 +egroup (Cl_SiH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part Cl_SiH3_c3v + diff --git a/sim/src/tests/singlebond_stretch/test_Cl_SiH3.test b/sim/src/tests/singlebond_stretch/test_Cl_SiH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_SiH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_Cl_SiH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_Cl_SiH3.xyzcmp new file mode 100755 index 000000000..70b7cd846 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_Cl_SiH3.xyzcmp @@ -0,0 +1,7 @@ +5 +Cl_SiH3.mmp +Si 0.000000 0.000000 -1.084000 +Cl 0.000000 0.000000 1.002000 +H -0.704000 1.219000 -1.552000 +H -0.704000 -1.219000 -1.552000 +H 1.407000 0.000000 -1.552000 diff --git a/sim/src/tests/singlebond_stretch/test_F_AlH2.mmp b/sim/src/tests/singlebond_stretch/test_F_AlH2.mmp new file mode 100755 index 000000000..1d71fd831 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_AlH2.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.758249) (0.150000, 0.007000, -0.000000) (1.000000) +egroup (View Data) +group (F_AlH2_cs) +info opengroup open = True +mol (F_AlH2_cs.pdb) def +atom 1 (13) (-73, -75, -601) def +atom 2 (9) (1037, 136, -12) def +bond1 1 +atom 3 (1) (-1000, 78, -1262) def +bond1 1 +atom 4 (1) (-964, -203, 1482) def +bond1 1 +egroup (F_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_AlH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_F_AlH2.test b/sim/src/tests/singlebond_stretch/test_F_AlH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_AlH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_F_AlH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_F_AlH2.xyzcmp new file mode 100755 index 000000000..61b229a86 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_AlH2.xyzcmp @@ -0,0 +1,6 @@ +4 +F_AlH2.mmp +Al -0.633000 -0.023000 0.000000 +F 1.042000 0.038000 0.000000 +H -1.342000 -0.052000 -1.407000 +H -1.342000 -0.052000 1.407000 diff --git a/sim/src/tests/singlebond_stretch/test_F_BH2.mmp b/sim/src/tests/singlebond_stretch/test_F_BH2.mmp new file mode 100755 index 000000000..2f980bc88 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_BH2.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.362095) (0.365500, 0.009500, -0.000000) (1.000000) +egroup (View Data) +group (F_BH2_cs) +info opengroup open = True +mol (F_BH2_cs.pdb) def +atom 1 (5) (-724, 94, -22) def +atom 2 (9) (539, -321, 18) def +bond1 1 +atom 3 (1) (-1361, -50, -872) def +bond1 1 +atom 4 (1) (-1240, -139, 1038) def +bond1 1 +egroup (F_BH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_BH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_F_BH2.test b/sim/src/tests/singlebond_stretch/test_F_BH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_BH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_F_BH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_F_BH2.xyzcmp new file mode 100755 index 000000000..cf57dd7b3 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_BH2.xyzcmp @@ -0,0 +1,6 @@ +4 +F_BH2.mmp +B -0.755000 -0.021000 0.000000 +F 0.576000 0.016000 0.000000 +H -1.307000 -0.035000 -1.060000 +H -1.307000 -0.035000 1.060000 diff --git a/sim/src/tests/singlebond_stretch/test_F_CH3.mmp b/sim/src/tests/singlebond_stretch/test_F_CH3.mmp new file mode 100755 index 000000000..6a126e79f --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_CH3.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.590813) (-0.259000, -0.000000, 0.225000) (1.000000) +egroup (View Data) +group (F_CH3_c3v) +info opengroup open = True +mol (F_CH3_c3v.pdb) def +atom 1 (6) (223, 152, -1146) def +atom 2 (9) (-385, 613, 1102) def +bond1 1 +atom 3 (1) (-596, 1207, -1670) def +bond1 1 +atom 4 (1) (-595, -1312, -811) def +bond1 1 +atom 5 (1) (1109, -10, -1681) def +bond1 1 +egroup (F_CH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_CH3_c3v + diff --git a/sim/src/tests/singlebond_stretch/test_F_CH3.test b/sim/src/tests/singlebond_stretch/test_F_CH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_CH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_F_CH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_F_CH3.xyzcmp new file mode 100755 index 000000000..ee2953840 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_CH3.xyzcmp @@ -0,0 +1,7 @@ +5 +F_CH3.mmp +C 0.000000 0.000000 -0.750000 +F 0.000000 0.000000 0.649000 +H -0.519000 0.898000 -1.099000 +H -0.519000 -0.898000 -1.099000 +H 1.037000 0.000000 -1.099000 diff --git a/sim/src/tests/singlebond_stretch/test_F_F.mmp b/sim/src/tests/singlebond_stretch/test_F_F.mmp new file mode 100755 index 000000000..3ef18d93e --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_F.mmp @@ -0,0 +1,20 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.571418) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (F_F_c4h) +info opengroup open = True +mol (F_F_c4h.pdb) def +atom 1 (9) (133, 34, -682) def +atom 2 (9) (-93, 230, 670) def +bond1 1 +egroup (F_F_c4h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_F_c4h + diff --git a/sim/src/tests/singlebond_stretch/test_F_F.test b/sim/src/tests/singlebond_stretch/test_F_F.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_F.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_F_F.xyzcmp b/sim/src/tests/singlebond_stretch/test_F_F.xyzcmp new file mode 100755 index 000000000..0963b515c --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_F.xyzcmp @@ -0,0 +1,4 @@ +2 +F_F.mmp +F 0.000000 0.000000 -0.705000 +F 0.000000 0.000000 0.705000 diff --git a/sim/src/tests/singlebond_stretch/test_F_NH2.mmp b/sim/src/tests/singlebond_stretch/test_F_NH2.mmp new file mode 100755 index 000000000..0ea4f4385 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_NH2.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.258376) (0.161000, 0.216500, -0.000000) (1.000000) +egroup (View Data) +group (F_NH2_cs) +info opengroup open = True +mol (F_NH2_cs.pdb) def +atom 1 (7) (-1097, -246, -37) def +atom 2 (9) (1092, -4, 378) def +bond1 1 +atom 3 (1) (-792, -656, -1106) def +bond1 1 +atom 4 (1) (-1285, -746, 459) def +bond1 1 +egroup (F_NH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_NH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_F_NH2.test b/sim/src/tests/singlebond_stretch/test_F_NH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_NH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_F_NH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_F_NH2.xyzcmp new file mode 100755 index 000000000..7492664cb --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_NH2.xyzcmp @@ -0,0 +1,6 @@ +4 +F_NH2.mmp +N -0.768000 0.071000 0.000000 +F 0.671000 0.001000 0.000000 +H -0.993000 -0.504000 -0.817000 +H -0.993000 -0.504000 0.817000 diff --git a/sim/src/tests/singlebond_stretch/test_F_OH.mmp b/sim/src/tests/singlebond_stretch/test_F_OH.mmp new file mode 100755 index 000000000..432078ec1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_OH.mmp @@ -0,0 +1,22 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.906946) (0.128500, -0.412000, -0.000000) (1.000000) +egroup (View Data) +group (F_OH_cs) +info opengroup open = True +mol (F_OH_cs.pdb) def +atom 1 (8) (-881, 499, 533) def +atom 2 (9) (289, 18, 573) def +bond1 1 +atom 3 (1) (-927, 898, -282) def +bond1 1 +egroup (F_OH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_OH_cs + diff --git a/sim/src/tests/singlebond_stretch/test_F_OH.test b/sim/src/tests/singlebond_stretch/test_F_OH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_OH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_F_OH.xyzcmp b/sim/src/tests/singlebond_stretch/test_F_OH.xyzcmp new file mode 100755 index 000000000..97d62153e --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_OH.xyzcmp @@ -0,0 +1,5 @@ +3 +F_OH.mmp +O -0.754000 -0.067000 0.000000 +F 0.685000 0.009000 0.000000 +H -0.942000 0.891000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_F_PH2.mmp b/sim/src/tests/singlebond_stretch/test_F_PH2.mmp new file mode 100755 index 000000000..46f96eb97 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_PH2.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.548831) (-0.124000, 0.424500, -0.000000) (1.000000) +egroup (View Data) +group (F_PH2_cs) +info opengroup open = True +mol (F_PH2_cs.pdb) def +atom 1 (15) (-766, -67, 347) def +atom 2 (9) (656, 588, 351) def +bond1 1 +atom 3 (1) (-217, -807, -1260) def +bond1 1 +atom 4 (1) (-1199, -923, 1054) def +bond1 1 +egroup (F_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_PH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_F_PH2.test b/sim/src/tests/singlebond_stretch/test_F_PH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_PH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_F_PH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_F_PH2.xyzcmp new file mode 100755 index 000000000..8727dd0a9 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_PH2.xyzcmp @@ -0,0 +1,6 @@ +4 +F_PH2.mmp +P -0.594000 0.060000 0.000000 +F 1.055000 -0.001000 0.000000 +H -0.807000 -0.909000 -1.031000 +H -0.807000 -0.909000 1.031000 diff --git a/sim/src/tests/singlebond_stretch/test_F_SH.mmp b/sim/src/tests/singlebond_stretch/test_F_SH.mmp new file mode 100755 index 000000000..647cc1353 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_SH.mmp @@ -0,0 +1,22 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.090311) (-0.142500, -0.623000, -0.000000) (1.000000) +egroup (View Data) +group (F_SH_cs) +info opengroup open = True +mol (F_SH_cs.pdb) def +atom 1 (16) (-1367, -395, -282) def +atom 2 (9) (1528, 355, -22) def +bond1 1 +atom 3 (1) (-664, 1235, -14) def +bond1 1 +egroup (F_SH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_SH_cs + diff --git a/sim/src/tests/singlebond_stretch/test_F_SH.test b/sim/src/tests/singlebond_stretch/test_F_SH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_SH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_F_SH.xyzcmp b/sim/src/tests/singlebond_stretch/test_F_SH.xyzcmp new file mode 100755 index 000000000..e27fd6639 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_SH.xyzcmp @@ -0,0 +1,5 @@ +3 +F_SH.mmp +S -0.605000 -0.048000 0.000000 +F 1.060000 0.012000 0.000000 +H -0.775000 1.294000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_F_SiH3.mmp b/sim/src/tests/singlebond_stretch/test_F_SiH3.mmp new file mode 100755 index 000000000..b9411eac7 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_SiH3.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.040725) (-0.353000, -0.000000, 0.005500) (1.000000) +egroup (View Data) +group (F_SiH3_c3v) +info opengroup open = True +mol (F_SiH3_c3v.pdb) def +atom 1 (14) (-339, 230, -57) def +atom 2 (9) (-120, -205, 1376) def +bond1 1 +atom 3 (1) (-700, 1415, -1064) def +bond1 1 +atom 4 (1) (-608, -863, -822) def +bond1 1 +atom 5 (1) (1683, -86, -721) def +bond1 1 +egroup (F_SiH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part F_SiH3_c3v + diff --git a/sim/src/tests/singlebond_stretch/test_F_SiH3.test b/sim/src/tests/singlebond_stretch/test_F_SiH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_SiH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_F_SiH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_F_SiH3.xyzcmp new file mode 100755 index 000000000..b55bfbe56 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_F_SiH3.xyzcmp @@ -0,0 +1,7 @@ +5 +F_SiH3.mmp +Si 0.000000 0.000000 -0.594000 +F 0.000000 0.000000 1.042000 +H -0.705000 1.222000 -1.053000 +H -0.705000 -1.222000 -1.053000 +H 1.411000 0.000000 -1.053000 diff --git a/sim/src/tests/singlebond_stretch/test_H2Al_AlH2.mmp b/sim/src/tests/singlebond_stretch/test_H2Al_AlH2.mmp new file mode 100755 index 000000000..35d3f9fc4 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2Al_AlH2.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.954839) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H2Al_AlH2_c2v) +info opengroup open = True +mol (H2Al_AlH2_c2v.pdb) def +atom 1 (13) (91, -44, -1260) def +atom 2 (13) (-112, -435, 1219) def +bond1 1 +atom 3 (1) (-1362, 116, -2487) def +bond1 1 +atom 4 (1) (1534, -82, -2323) def +bond1 1 +atom 5 (1) (-162, -1144, 2303) def +bond1 2 +atom 6 (1) (-52, 1110, 2031) def +bond1 2 +egroup (H2Al_AlH2_c2v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2Al_AlH2_c2v + diff --git a/sim/src/tests/singlebond_stretch/test_H2Al_AlH2.test b/sim/src/tests/singlebond_stretch/test_H2Al_AlH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2Al_AlH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2Al_AlH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2Al_AlH2.xyzcmp new file mode 100755 index 000000000..327f333bb --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2Al_AlH2.xyzcmp @@ -0,0 +1,8 @@ +6 +H2Al_AlH2.mmp +Al 0.000000 0.000000 -1.297000 +Al 0.000000 0.000000 1.297000 +H -1.351000 0.000000 -2.150000 +H 1.351000 0.000000 -2.150000 +H 0.000000 -1.351000 2.150000 +H 0.000000 1.351000 2.150000 diff --git a/sim/src/tests/singlebond_stretch/test_H2Al_CH3.mmp b/sim/src/tests/singlebond_stretch/test_H2Al_CH3.mmp new file mode 100755 index 000000000..56a8c8a09 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2Al_CH3.mmp @@ -0,0 +1,30 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.301435) (-0.120500, -0.264000, -0.000000) (1.000000) +egroup (View Data) +group (H2Al_CH3_cs) +info opengroup open = True +mol (H2Al_CH3_cs.pdb) def +atom 1 (6) (1207, -619, 27) def +atom 2 (13) (50, 369, 196) def +bond1 1 +atom 3 (1) (1310, 882, -148) def +bond1 1 +atom 4 (1) (1172, -673, 1101) def +bond1 1 +atom 5 (1) (1793, -285, -248) def +bond1 1 +atom 6 (1) (-1496, 229, -1814) def +bond1 2 +atom 7 (1) (-1345, -312, 1555) def +bond1 2 +egroup (H2Al_CH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2Al_CH3_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H2Al_CH3.test b/sim/src/tests/singlebond_stretch/test_H2Al_CH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2Al_CH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2Al_CH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2Al_CH3.xyzcmp new file mode 100755 index 000000000..de41e6a19 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2Al_CH3.xyzcmp @@ -0,0 +1,9 @@ +7 +H2Al_CH3.mmp +C 1.304000 -0.001000 0.000000 +Al -0.661000 -0.001000 0.000000 +H 1.704000 1.024000 0.000000 +H 1.713000 -0.496000 0.889000 +H 1.713000 -0.496000 -0.889000 +H -1.472000 0.006000 -1.369000 +H -1.472000 0.006000 1.369000 diff --git a/sim/src/tests/singlebond_stretch/test_H2Al_SiH3.mmp b/sim/src/tests/singlebond_stretch/test_H2Al_SiH3.mmp new file mode 100755 index 000000000..019fefaa3 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2Al_SiH3.mmp @@ -0,0 +1,30 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.656843) (0.159000, -0.368500, -0.000000) (1.000000) +egroup (View Data) +group (H2Al_SiH3_cs) +info opengroup open = True +mol (H2Al_SiH3_cs.pdb) def +atom 1 (14) (1503, 301, -360) def +atom 2 (13) (-917, 35, -51) def +bond1 1 +atom 3 (1) (1693, 1461, -23) def +bond1 1 +atom 4 (1) (1162, -852, 1539) def +bond1 1 +atom 5 (1) (2017, -1015, -1084) def +bond1 1 +atom 6 (1) (-1663, -117, -1273) def +bond1 2 +atom 7 (1) (-2076, 287, 1042) def +bond1 2 +egroup (H2Al_SiH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2Al_SiH3_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H2Al_SiH3.test b/sim/src/tests/singlebond_stretch/test_H2Al_SiH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2Al_SiH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2Al_SiH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2Al_SiH3.xyzcmp new file mode 100755 index 000000000..18bea56ba --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2Al_SiH3.xyzcmp @@ -0,0 +1,9 @@ +7 +H2Al_SiH3.mmp +Si 1.193000 -0.003000 0.000000 +Al -1.276000 -0.001000 0.000000 +H 1.695000 1.407000 0.000000 +H 1.771000 -0.670000 1.204000 +H 1.771000 -0.670000 -1.204000 +H -2.089000 0.016000 -1.367000 +H -2.089000 0.016000 1.367000 diff --git a/sim/src/tests/singlebond_stretch/test_H2B_AlH2.mmp b/sim/src/tests/singlebond_stretch/test_H2B_AlH2.mmp new file mode 100755 index 000000000..1399ab261 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_AlH2.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.555626) (-0.000000, -0.000000, -0.323500) (1.000000) +egroup (View Data) +group (H2B_AlH2_c2v) +info opengroup open = True +mol (H2B_AlH2_c2v.pdb) def +atom 1 (13) (106, 263, -502) def +atom 2 (5) (-237, -197, 1632) def +bond1 1 +atom 3 (1) (-1793, 163, -1059) def +bond1 1 +atom 4 (1) (1190, 481, -1300) def +bond1 1 +atom 5 (1) (190, -920, 2375) def +bond1 2 +atom 6 (1) (134, 1389, 1982) def +bond1 2 +egroup (H2B_AlH2_c2v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2B_AlH2_c2v + diff --git a/sim/src/tests/singlebond_stretch/test_H2B_AlH2.test b/sim/src/tests/singlebond_stretch/test_H2B_AlH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_AlH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2B_AlH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2B_AlH2.xyzcmp new file mode 100755 index 000000000..02eb6b0b9 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_AlH2.xyzcmp @@ -0,0 +1,8 @@ +6 +H2B_AlH2.mmp +Al 0.000000 0.000000 -0.650000 +B 0.000000 0.000000 1.474000 +H -1.364000 0.000000 -1.477000 +H 1.364000 0.000000 -1.477000 +H 0.000000 -1.008000 2.124000 +H 0.000000 1.008000 2.124000 diff --git a/sim/src/tests/singlebond_stretch/test_H2B_BH2.mmp b/sim/src/tests/singlebond_stretch/test_H2B_BH2.mmp new file mode 100755 index 000000000..18441203e --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_BH2.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.146411) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H2B_BH2_c2v) +info opengroup open = True +mol (H2B_BH2_c2v.pdb) def +atom 1 (5) (-126, 380, -1246) def +atom 2 (5) (217, 171, 1060) def +bond1 1 +atom 3 (1) (-895, 510, -888) def +bond1 1 +atom 4 (1) (1155, 821, -1294) def +bond1 1 +atom 5 (1) (106, -730, 1510) def +bond1 2 +atom 6 (1) (105, 746, 1349) def +bond1 2 +egroup (H2B_BH2_c2v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2B_BH2_c2v + diff --git a/sim/src/tests/singlebond_stretch/test_H2B_BH2.test b/sim/src/tests/singlebond_stretch/test_H2B_BH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_BH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2B_BH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2B_BH2.xyzcmp new file mode 100755 index 000000000..b8b3a3013 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_BH2.xyzcmp @@ -0,0 +1,8 @@ +6 +H2B_BH2.mmp +B 0.000000 0.000000 -0.820000 +B 0.000000 0.000000 0.820000 +H -1.016000 0.000000 -1.458000 +H 1.016000 0.000000 -1.458000 +H 0.000000 -1.016000 1.458000 +H 0.000000 1.016000 1.458000 diff --git a/sim/src/tests/singlebond_stretch/test_H2B_CH3.mmp b/sim/src/tests/singlebond_stretch/test_H2B_CH3.mmp new file mode 100755 index 000000000..6180b958b --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_CH3.mmp @@ -0,0 +1,30 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.920636) (0.132500, -0.302000, -0.000000) (1.000000) +egroup (View Data) +group (H2B_CH3_cs) +info opengroup open = True +mol (H2B_CH3_cs.pdb) def +atom 1 (6) (1481, -266, -103) def +atom 2 (5) (-1090, -253, 311) def +bond1 1 +atom 3 (1) (899, 780, -16) def +bond1 1 +atom 4 (1) (1246, -393, 1049) def +bond1 1 +atom 5 (1) (1458, 142, -495) def +bond1 1 +atom 6 (1) (-1534, 263, -1171) def +bond1 2 +atom 7 (1) (-1795, -673, 358) def +bond1 2 +egroup (H2B_CH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2B_CH3_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H2B_CH3.test b/sim/src/tests/singlebond_stretch/test_H2B_CH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_CH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2B_CH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2B_CH3.xyzcmp new file mode 100755 index 000000000..116ed26ce --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_CH3.xyzcmp @@ -0,0 +1,9 @@ +7 +H2B_CH3.mmp +C 0.726000 -0.021000 0.000000 +B -0.834000 0.001000 0.000000 +H 1.000000 1.052000 0.000000 +H 1.184000 -0.448000 0.898000 +H 1.184000 -0.448000 -0.898000 +H -1.449000 0.044000 -1.028000 +H -1.449000 0.044000 1.028000 diff --git a/sim/src/tests/singlebond_stretch/test_H2B_NH2.mmp b/sim/src/tests/singlebond_stretch/test_H2B_NH2.mmp new file mode 100755 index 000000000..74ced31b0 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_NH2.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.565348) (0.083000, 0.002000, -0.000000) (1.000000) +egroup (View Data) +group (H2B_NH2_cs) +info opengroup open = True +mol (H2B_NH2_cs.pdb) def +atom 1 (5) (-258, 547, -70) def +atom 2 (7) (653, 6, 291) def +bond1 1 +atom 3 (1) (-1689, -153, -1513) def +bond1 1 +atom 4 (1) (-741, -252, 529) def +bond1 1 +atom 5 (1) (998, 151, 656) def +bond1 2 +atom 6 (1) (1537, 111, -816) def +bond1 2 +egroup (H2B_NH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2B_NH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H2B_NH2.test b/sim/src/tests/singlebond_stretch/test_H2B_NH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_NH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2B_NH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2B_NH2.xyzcmp new file mode 100755 index 000000000..134b3efbc --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_NH2.xyzcmp @@ -0,0 +1,8 @@ +6 +H2B_NH2.mmp +B -0.768000 -0.018000 0.000000 +N 0.628000 0.015000 0.000000 +H -1.347000 -0.032000 -1.047000 +H -1.347000 -0.032000 1.047000 +H 1.181000 0.028000 0.845000 +H 1.181000 0.028000 -0.845000 diff --git a/sim/src/tests/singlebond_stretch/test_H2B_PH2.mmp b/sim/src/tests/singlebond_stretch/test_H2B_PH2.mmp new file mode 100755 index 000000000..7ee203210 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_PH2.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.864962) (0.479000, -0.337500, -0.000000) (1.000000) +egroup (View Data) +group (H2B_PH2_cs) +info opengroup open = True +mol (H2B_PH2_cs.pdb) def +atom 1 (5) (-1738, 324, 196) def +atom 2 (15) (616, -203, -156) def +bond1 1 +atom 3 (1) (-1891, 167, -1452) def +bond1 1 +atom 4 (1) (-1864, 44, 1409) def +bond1 1 +atom 5 (1) (951, 67, 915) def +bond1 2 +atom 6 (1) (806, 602, -1236) def +bond1 2 +egroup (H2B_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2B_PH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H2B_PH2.test b/sim/src/tests/singlebond_stretch/test_H2B_PH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_PH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2B_PH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2B_PH2.xyzcmp new file mode 100755 index 000000000..afa4cf835 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_PH2.xyzcmp @@ -0,0 +1,8 @@ +6 +H2B_PH2.mmp +B -1.333000 0.039000 0.000000 +P 0.536000 -0.060000 0.000000 +H -1.920000 -0.018000 -1.036000 +H -1.920000 -0.018000 1.036000 +H 0.962000 0.735000 1.087000 +H 0.962000 0.735000 -1.087000 diff --git a/sim/src/tests/singlebond_stretch/test_H2B_SiH3.mmp b/sim/src/tests/singlebond_stretch/test_H2B_SiH3.mmp new file mode 100755 index 000000000..7b40a6885 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_SiH3.mmp @@ -0,0 +1,30 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.365016) (0.435000, -0.389000, -0.000000) (1.000000) +egroup (View Data) +group (H2B_SiH3_cs) +info opengroup open = True +mol (H2B_SiH3_cs.pdb) def +atom 1 (14) (259, 444, -131) def +atom 2 (5) (-1166, -64, 612) def +bond1 1 +atom 3 (1) (974, 1540, -220) def +bond1 1 +atom 4 (1) (1421, -814, 1388) def +bond1 1 +atom 5 (1) (1314, -346, -1034) def +bond1 1 +atom 6 (1) (-2402, -513, -1197) def +bond1 2 +atom 7 (1) (-1794, 363, 1394) def +bond1 2 +egroup (H2B_SiH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2B_SiH3_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H2B_SiH3.test b/sim/src/tests/singlebond_stretch/test_H2B_SiH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_SiH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2B_SiH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2B_SiH3.xyzcmp new file mode 100755 index 000000000..106f2fcc7 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2B_SiH3.xyzcmp @@ -0,0 +1,9 @@ +7 +H2B_SiH3.mmp +Si 0.590000 -0.007000 0.000000 +B -1.433000 0.001000 0.000000 +H 1.020000 1.427000 0.000000 +H 1.181000 -0.649000 1.210000 +H 1.181000 -0.649000 -1.210000 +H -2.051000 0.028000 -1.022000 +H -2.051000 0.028000 1.022000 diff --git a/sim/src/tests/singlebond_stretch/test_H2N_AlH2.mmp b/sim/src/tests/singlebond_stretch/test_H2N_AlH2.mmp new file mode 100755 index 000000000..bb31a21bf --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_AlH2.mmp @@ -0,0 +1,29 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.977417) (0.188000, 0.001500, -0.000000) (1.000000) +egroup (View Data) +group (H2N_AlH2_cs) +info opengroup open = True +mol (H2N_AlH2_cs.pdb) def +atom 1 (7) (-1629, -230, 95) def +info atom atomtype = sp2 +atom 2 (13) (911, 79, 278) def +bond1 1 +atom 3 (1) (-1398, -126, -328) def +bond1 1 +atom 4 (1) (-1850, -365, 823) def +bond1 1 +atom 5 (1) (1428, 376, 1309) def +bond1 2 +atom 6 (1) (2058, 113, -1512) def +bond1 2 +egroup (H2N_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2N_AlH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H2N_AlH2.test b/sim/src/tests/singlebond_stretch/test_H2N_AlH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_AlH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2N_AlH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2N_AlH2.xyzcmp new file mode 100755 index 000000000..000890d7c --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_AlH2.xyzcmp @@ -0,0 +1,8 @@ +6 +H2N_AlH2.mmp +N -1.159000 -0.013000 0.000000 +Al 0.630000 0.007000 0.000000 +H -1.737000 -0.018000 -0.831000 +H -1.737000 -0.018000 0.831000 +H 1.361000 0.015000 1.403000 +H 1.361000 0.015000 -1.403000 diff --git a/sim/src/tests/singlebond_stretch/test_H2N_CH3.mmp b/sim/src/tests/singlebond_stretch/test_H2N_CH3.mmp new file mode 100755 index 000000000..337ea6bc8 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_CH3.mmp @@ -0,0 +1,30 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.732818) (-0.012000, -0.275000, -0.000000) (1.000000) +egroup (View Data) +group (H2N_CH3_cs) +info opengroup open = True +mol (H2N_CH3_cs.pdb) def +atom 1 (6) (905, 140, -314) def +atom 2 (7) (-689, 369, 61) def +bond1 1 +atom 3 (1) (761, 468, 16) def +bond1 1 +atom 4 (1) (696, -682, 1191) def +bond1 1 +atom 5 (1) (1511, -18, -1235) def +bond1 1 +atom 6 (1) (-1500, -39, -568) def +bond1 2 +atom 7 (1) (-990, -291, 1253) def +bond1 2 +egroup (H2N_CH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2N_CH3_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H2N_CH3.test b/sim/src/tests/singlebond_stretch/test_H2N_CH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_CH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2N_CH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2N_CH3.xyzcmp new file mode 100755 index 000000000..44b2f7718 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_CH3.xyzcmp @@ -0,0 +1,9 @@ +7 +H2N_CH3.mmp +C 0.742000 0.020000 0.000000 +N -0.721000 -0.075000 0.000000 +H 1.144000 1.047000 0.000000 +H 1.135000 -0.497000 0.881000 +H 1.135000 -0.497000 -0.881000 +H -1.120000 0.375000 -0.819000 +H -1.120000 0.375000 0.819000 diff --git a/sim/src/tests/singlebond_stretch/test_H2N_NH2.mmp b/sim/src/tests/singlebond_stretch/test_H2N_NH2.mmp new file mode 100755 index 000000000..21ab5da02 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_NH2.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.469991) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H2N_NH2_c2h) +info opengroup open = True +mol (H2N_NH2_c2h.pdb) def +atom 1 (7) (1034, -579, -8) def +atom 2 (7) (-768, 159, -29) def +bond1 1 +atom 3 (1) (1011, 275, 1032) def +bond1 1 +atom 4 (1) (-1134, -151, -825) def +bond1 2 +atom 5 (1) (1031, 360, -446) def +bond1 1 +atom 6 (1) (-1034, 160, 257) def +bond1 2 +egroup (H2N_NH2_c2h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2N_NH2_c2h + diff --git a/sim/src/tests/singlebond_stretch/test_H2N_NH2.test b/sim/src/tests/singlebond_stretch/test_H2N_NH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_NH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2N_NH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2N_NH2.xyzcmp new file mode 100755 index 000000000..1913ec8fb --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_NH2.xyzcmp @@ -0,0 +1,8 @@ +6 +H2N_NH2.mmp +N 0.735000 -0.101000 0.000000 +N -0.735000 0.101000 0.000000 +H 1.064000 0.439000 0.801000 +H -1.064000 -0.439000 -0.801000 +H 1.064000 0.439000 -0.801000 +H -1.064000 -0.439000 0.801000 diff --git a/sim/src/tests/singlebond_stretch/test_H2N_PH2.mmp b/sim/src/tests/singlebond_stretch/test_H2N_PH2.mmp new file mode 100755 index 000000000..87d4a99fe --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_PH2.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.785670) (0.377500, -0.261000, -0.000000) (1.000000) +egroup (View Data) +group (H2N_PH2_cs) +info opengroup open = True +mol (H2N_PH2_cs.pdb) def +atom 1 (7) (-1285, 609, -13) def +atom 2 (15) (459, -188, -203) def +bond1 1 +atom 3 (1) (-1670, -227, -792) def +bond1 1 +atom 4 (1) (-1610, 205, 958) def +bond1 1 +atom 5 (1) (1075, 1311, 954) def +bond1 2 +atom 6 (1) (873, 698, -688) def +bond1 2 +egroup (H2N_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2N_PH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H2N_PH2.test b/sim/src/tests/singlebond_stretch/test_H2N_PH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_PH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2N_PH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2N_PH2.xyzcmp new file mode 100755 index 000000000..1667aa63e --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_PH2.xyzcmp @@ -0,0 +1,8 @@ +6 +H2N_PH2.mmp +N -1.186000 0.107000 0.000000 +P 0.585000 -0.082000 0.000000 +H -1.590000 -0.350000 -0.816000 +H -1.590000 -0.350000 0.816000 +H 0.835000 0.872000 1.031000 +H 0.835000 0.872000 -1.031000 diff --git a/sim/src/tests/singlebond_stretch/test_H2N_SiH3.mmp b/sim/src/tests/singlebond_stretch/test_H2N_SiH3.mmp new file mode 100755 index 000000000..b9759351f --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_SiH3.mmp @@ -0,0 +1,30 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.256237) (0.244500, -0.343500, -0.000000) (1.000000) +egroup (View Data) +group (H2N_SiH3_cs) +info opengroup open = True +mol (H2N_SiH3_cs.pdb) def +atom 1 (14) (887, -304, -148) def +atom 2 (7) (-1569, 85, -338) def +bond1 1 +atom 3 (1) (786, 1250, -246) def +bond1 1 +atom 4 (1) (1336, -1087, 1280) def +bond1 1 +atom 5 (1) (698, -902, -1559) def +bond1 1 +atom 6 (1) (-1249, 153, -1601) def +bond1 2 +atom 7 (1) (-1012, 133, 643) def +bond1 2 +egroup (H2N_SiH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2N_SiH3_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H2N_SiH3.test b/sim/src/tests/singlebond_stretch/test_H2N_SiH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_SiH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2N_SiH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2N_SiH3.xyzcmp new file mode 100755 index 000000000..548a244eb --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2N_SiH3.xyzcmp @@ -0,0 +1,9 @@ +7 +H2N_SiH3.mmp +Si 0.583000 0.009000 0.000000 +N -1.161000 -0.047000 0.000000 +H 1.188000 1.378000 0.000000 +H 1.057000 -0.691000 1.224000 +H 1.057000 -0.691000 -1.224000 +H -1.677000 0.200000 -0.834000 +H -1.677000 0.200000 0.834000 diff --git a/sim/src/tests/singlebond_stretch/test_H2P_AlH2.mmp b/sim/src/tests/singlebond_stretch/test_H2P_AlH2.mmp new file mode 100755 index 000000000..30485427a --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2P_AlH2.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.219062) (-0.340500, 0.391000, -0.000000) (1.000000) +egroup (View Data) +group (H2P_AlH2_cs) +info opengroup open = True +mol (H2P_AlH2_cs.pdb) def +atom 1 (15) (-1068, -73, -29) def +atom 2 (13) (1771, -303, 602) def +bond1 1 +atom 3 (1) (-1321, -395, -860) def +bond1 1 +atom 4 (1) (-1374, -1027, 909) def +bond1 1 +atom 5 (1) (1476, -87, 1070) def +bond1 2 +atom 6 (1) (1874, 425, -1174) def +bond1 2 +egroup (H2P_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2P_AlH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H2P_AlH2.test b/sim/src/tests/singlebond_stretch/test_H2P_AlH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2P_AlH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2P_AlH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2P_AlH2.xyzcmp new file mode 100755 index 000000000..7e7073c84 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2P_AlH2.xyzcmp @@ -0,0 +1,8 @@ +6 +H2P_AlH2.mmp +P -1.112000 0.073000 0.000000 +Al 1.226000 -0.022000 0.000000 +H -1.320000 -0.855000 -1.058000 +H -1.320000 -0.855000 1.058000 +H 2.001000 0.027000 1.384000 +H 2.001000 0.027000 -1.384000 diff --git a/sim/src/tests/singlebond_stretch/test_H2P_CH3.mmp b/sim/src/tests/singlebond_stretch/test_H2P_CH3.mmp new file mode 100755 index 000000000..90d26f67e --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2P_CH3.mmp @@ -0,0 +1,30 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.904439) (-0.405000, -0.317500, -0.000000) (1.000000) +egroup (View Data) +group (H2P_CH3_cs) +info opengroup open = True +mol (H2P_CH3_cs.pdb) def +atom 1 (6) (1498, 432, 198) def +atom 2 (15) (-893, 159, 122) def +bond1 1 +atom 3 (1) (1563, 1443, 92) def +bond1 1 +atom 4 (1) (1847, -461, 550) def +bond1 1 +atom 5 (1) (1529, -801, -1008) def +bond1 1 +atom 6 (1) (-387, 969, -709) def +bond1 2 +atom 7 (1) (-755, 690, 672) def +bond1 2 +egroup (H2P_CH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2P_CH3_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H2P_CH3.test b/sim/src/tests/singlebond_stretch/test_H2P_CH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2P_CH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2P_CH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2P_CH3.xyzcmp new file mode 100755 index 000000000..81db4d6f7 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2P_CH3.xyzcmp @@ -0,0 +1,9 @@ +7 +H2P_CH3.mmp +C 1.274000 0.058000 0.000000 +P -0.599000 -0.084000 0.000000 +H 1.632000 1.090000 0.000000 +H 1.667000 -0.455000 0.883000 +H 1.667000 -0.455000 -0.883000 +H -0.857000 0.858000 -1.039000 +H -0.857000 0.858000 1.039000 diff --git a/sim/src/tests/singlebond_stretch/test_H2P_PH2.mmp b/sim/src/tests/singlebond_stretch/test_H2P_PH2.mmp new file mode 100755 index 000000000..c2d7c881f --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2P_PH2.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.987592) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H2P_PH2_c2h) +info opengroup open = True +mol (H2P_PH2_c2h.pdb) def +atom 1 (15) (1165, -541, -155) def +atom 2 (15) (-1275, -100, -143) def +bond1 1 +atom 3 (1) (1323, 564, 1113) def +bond1 1 +atom 4 (1) (-1283, -1197, -951) def +bond1 2 +atom 5 (1) (1206, 465, -945) def +bond1 1 +atom 6 (1) (-1369, -1196, 733) def +bond1 2 +egroup (H2P_PH2_c2h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2P_PH2_c2h + diff --git a/sim/src/tests/singlebond_stretch/test_H2P_PH2.test b/sim/src/tests/singlebond_stretch/test_H2P_PH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2P_PH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2P_PH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2P_PH2.xyzcmp new file mode 100755 index 000000000..9de60644f --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2P_PH2.xyzcmp @@ -0,0 +1,8 @@ +6 +H2P_PH2.mmp +P 1.131000 -0.095000 0.000000 +P -1.131000 0.095000 0.000000 +H 1.318000 0.872000 1.031000 +H -1.318000 -0.872000 -1.031000 +H 1.318000 0.872000 -1.031000 +H -1.318000 -0.872000 1.031000 diff --git a/sim/src/tests/singlebond_stretch/test_H2P_SiH3.mmp b/sim/src/tests/singlebond_stretch/test_H2P_SiH3.mmp new file mode 100755 index 000000000..d9ff3a7be --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2P_SiH3.mmp @@ -0,0 +1,30 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.296252) (-0.201000, -0.370500, -0.000000) (1.000000) +egroup (View Data) +group (H2P_SiH3_cs) +info opengroup open = True +mol (H2P_SiH3_cs.pdb) def +atom 1 (14) (1086, 334, -129) def +atom 2 (15) (-1020, 0, -167) def +bond1 1 +atom 3 (1) (1521, 1282, -58) def +bond1 1 +atom 4 (1) (1998, -736, 1363) def +bond1 1 +atom 5 (1) (1645, -393, -1297) def +bond1 1 +atom 6 (1) (-1478, 590, -903) def +bond1 2 +atom 7 (1) (-1223, 790, 936) def +bond1 2 +egroup (H2P_SiH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H2P_SiH3_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H2P_SiH3.test b/sim/src/tests/singlebond_stretch/test_H2P_SiH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2P_SiH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H2P_SiH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_H2P_SiH3.xyzcmp new file mode 100755 index 000000000..7654cf6ee --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H2P_SiH3.xyzcmp @@ -0,0 +1,9 @@ +7 +H2P_SiH3.mmp +Si 1.157000 0.031000 0.000000 +P -1.123000 -0.086000 0.000000 +H 1.698000 1.419000 0.000000 +H 1.651000 -0.678000 1.211000 +H 1.651000 -0.678000 -1.211000 +H -1.296000 0.870000 -1.042000 +H -1.296000 0.870000 1.042000 diff --git a/sim/src/tests/singlebond_stretch/test_H3C_CH3.mmp b/sim/src/tests/singlebond_stretch/test_H3C_CH3.mmp new file mode 100755 index 000000000..5cccb48ed --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H3C_CH3.mmp @@ -0,0 +1,32 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.894712) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H3C_CH3_d3d) +info opengroup open = True +mol (H3C_CH3_d3d.pdb) def +atom 1 (6) (-39, 308, 859) def +atom 2 (6) (-470, -454, -527) def +bond1 1 +atom 3 (1) (-975, -1011, -1346) def +bond1 2 +atom 4 (1) (586, -377, -1425) def +bond1 2 +atom 5 (1) (-8, -1221, 1362) def +bond1 1 +atom 6 (1) (735, 585, 1235) def +bond1 1 +atom 7 (1) (-933, 327, 1308) def +bond1 1 +atom 8 (1) (140, 1402, -1081) def +bond1 2 +egroup (H3C_CH3_d3d) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H3C_CH3_d3d + diff --git a/sim/src/tests/singlebond_stretch/test_H3C_CH3.test b/sim/src/tests/singlebond_stretch/test_H3C_CH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H3C_CH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H3C_CH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_H3C_CH3.xyzcmp new file mode 100755 index 000000000..671e80776 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H3C_CH3.xyzcmp @@ -0,0 +1,10 @@ +8 +H3C_CH3.mmp +C 0.000000 0.000000 0.767000 +C 0.000000 0.000000 -0.767000 +H -0.885000 -0.511000 -1.164000 +H 0.885000 -0.511000 -1.164000 +H 0.000000 -1.022000 1.164000 +H 0.885000 0.511000 1.164000 +H -0.885000 0.511000 1.164000 +H 0.000000 1.022000 -1.164000 diff --git a/sim/src/tests/singlebond_stretch/test_H3C_SiH3.mmp b/sim/src/tests/singlebond_stretch/test_H3C_SiH3.mmp new file mode 100755 index 000000000..5de7e0ef3 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H3C_SiH3.mmp @@ -0,0 +1,32 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.326195) (-0.185500, -0.000000, -0.269500) (1.000000) +egroup (View Data) +group (H3C_SiH3_c3v) +info opengroup open = True +mol (H3C_SiH3_c3v.pdb) def +atom 1 (14) (-151, -268, -842) def +atom 2 (6) (-419, 244, 1459) def +bond1 1 +atom 3 (1) (-722, 1595, -1158) def +bond1 1 +atom 4 (1) (-901, -1372, -1098) def +bond1 1 +atom 5 (1) (1132, -113, -881) def +bond1 1 +atom 6 (1) (-930, 78, 2058) def +bond1 2 +atom 7 (1) (76, -857, 1882) def +bond1 2 +atom 8 (1) (651, 1348, 1505) def +bond1 2 +egroup (H3C_SiH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H3C_SiH3_c3v + diff --git a/sim/src/tests/singlebond_stretch/test_H3C_SiH3.test b/sim/src/tests/singlebond_stretch/test_H3C_SiH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H3C_SiH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H3C_SiH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_H3C_SiH3.xyzcmp new file mode 100755 index 000000000..f8d4885cd --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H3C_SiH3.xyzcmp @@ -0,0 +1,10 @@ +8 +H3C_SiH3.mmp +Si 0.000000 0.000000 -0.608000 +C 0.000000 0.000000 1.281000 +H -0.697000 1.207000 -1.136000 +H -0.697000 -1.207000 -1.136000 +H 1.394000 0.000000 -1.136000 +H -1.022000 0.000000 1.675000 +H 0.511000 -0.886000 1.675000 +H 0.511000 0.886000 1.675000 diff --git a/sim/src/tests/singlebond_stretch/test_H3Si_SiH3.mmp b/sim/src/tests/singlebond_stretch/test_H3Si_SiH3.mmp new file mode 100755 index 000000000..fc567ed54 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H3Si_SiH3.mmp @@ -0,0 +1,32 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.614757) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H3Si_SiH3_d3d) +info opengroup open = True +mol (H3Si_SiH3_d3d.pdb) def +atom 1 (14) (153, 117, 1689) def +atom 2 (14) (-103, -108, -990) def +bond1 1 +atom 3 (1) (-2071, -1194, -1602) def +bond1 2 +atom 4 (1) (1666, -776, -1792) def +bond1 2 +atom 5 (1) (298, -1355, 1857) def +bond1 1 +atom 6 (1) (1361, 643, 1255) def +bond1 1 +atom 7 (1) (-1062, 228, 1780) def +bond1 1 +atom 8 (1) (389, 1323, -1584) def +bond1 2 +egroup (H3Si_SiH3_d3d) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H3Si_SiH3_d3d + diff --git a/sim/src/tests/singlebond_stretch/test_H3Si_SiH3.test b/sim/src/tests/singlebond_stretch/test_H3Si_SiH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H3Si_SiH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H3Si_SiH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_H3Si_SiH3.xyzcmp new file mode 100755 index 000000000..b0add7b76 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H3Si_SiH3.xyzcmp @@ -0,0 +1,10 @@ +8 +H3Si_SiH3.mmp +Si 0.000000 0.000000 1.179000 +Si 0.000000 0.000000 -1.179000 +H -1.209000 -0.698000 -1.701000 +H 1.209000 -0.698000 -1.701000 +H 0.000000 -1.396000 1.701000 +H 1.209000 0.698000 1.701000 +H -1.209000 0.698000 1.701000 +H 0.000000 1.396000 -1.701000 diff --git a/sim/src/tests/singlebond_stretch/test_HO_AlH2.mmp b/sim/src/tests/singlebond_stretch/test_HO_AlH2.mmp new file mode 100755 index 000000000..032fc23a2 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_AlH2.mmp @@ -0,0 +1,27 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.965431) (0.179500, -0.028500, -0.000000) (1.000000) +egroup (View Data) +group (HO_AlH2_cs) +info opengroup open = True +mol (HO_AlH2_cs.pdb) def +atom 1 (8) (-958, 119, -333) def +info atom atomtype = sp2 +atom 2 (13) (686, 171, 169) def +bond1 1 +atom 3 (1) (-1722, 678, -30) def +bond1 1 +atom 4 (1) (1468, 1480, -227) def +bond1 2 +atom 5 (1) (1524, -1178, -212) def +bond1 2 +egroup (HO_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_AlH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_HO_AlH2.test b/sim/src/tests/singlebond_stretch/test_HO_AlH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_AlH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HO_AlH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_HO_AlH2.xyzcmp new file mode 100755 index 000000000..ac474551d --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_AlH2.xyzcmp @@ -0,0 +1,7 @@ +5 +HO_AlH2.mmp +O -1.100000 -0.071000 0.000000 +Al 0.616000 0.015000 0.000000 +H -1.722000 0.662000 0.000000 +H 1.330000 1.429000 0.000000 +H 1.363000 -1.372000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_HO_BH2.mmp b/sim/src/tests/singlebond_stretch/test_HO_BH2.mmp new file mode 100755 index 000000000..dfebe7dc3 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_BH2.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.526175) (-0.146500, -0.067000, -0.000000) (1.000000) +egroup (View Data) +group (HO_BH2_cs) +info opengroup open = True +mol (HO_BH2_cs.pdb) def +atom 1 (8) (-586, -55, -44) def +atom 2 (5) (197, 308, 155) def +bond1 1 +atom 3 (1) (-1323, 800, 132) def +bond1 1 +atom 4 (1) (770, 683, -426) def +bond1 2 +atom 5 (1) (1437, -1107, -411) def +bond1 2 +egroup (HO_BH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_BH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_HO_BH2.test b/sim/src/tests/singlebond_stretch/test_HO_BH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_BH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HO_BH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_HO_BH2.xyzcmp new file mode 100755 index 000000000..24d3ffb12 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_BH2.xyzcmp @@ -0,0 +1,7 @@ +5 +HO_BH2.mmp +O -0.609000 -0.081000 0.000000 +B 0.743000 0.035000 0.000000 +H -1.075000 0.765000 0.000000 +H 1.264000 1.116000 0.000000 +H 1.368000 -0.982000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_HO_CH3.mmp b/sim/src/tests/singlebond_stretch/test_HO_CH3.mmp new file mode 100755 index 000000000..05bbe6825 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_CH3.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.804391) (0.043500, -0.092500, -0.000000) (1.000000) +egroup (View Data) +group (HO_CH3_cs) +info opengroup open = True +mol (HO_CH3_cs.pdb) def +atom 1 (6) (-117, 498, -250) def +atom 2 (8) (409, -324, 152) def +bond1 1 +atom 3 (1) (-610, 1233, -325) def +bond1 1 +atom 4 (1) (-1259, -668, 1069) def +bond1 1 +atom 5 (1) (-1096, -442, -1325) def +bond1 1 +atom 6 (1) (1238, -1113, 30) def +bond1 2 +egroup (HO_CH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_CH3_cs + diff --git a/sim/src/tests/singlebond_stretch/test_HO_CH3.test b/sim/src/tests/singlebond_stretch/test_HO_CH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_CH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HO_CH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_HO_CH3.xyzcmp new file mode 100755 index 000000000..c9926d68b --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_CH3.xyzcmp @@ -0,0 +1,8 @@ +6 +HO_CH3.mmp +C -0.732000 -0.002000 0.000000 +O 0.694000 0.053000 0.000000 +H -1.083000 1.033000 0.000000 +H -1.126000 -0.503000 0.895000 +H -1.126000 -0.503000 -0.895000 +H 1.039000 -0.848000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_HO_NH2.mmp b/sim/src/tests/singlebond_stretch/test_HO_NH2.mmp new file mode 100755 index 000000000..5602d0a5e --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_NH2.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.552590) (-0.003000, -0.199000, -0.000000) (1.000000) +egroup (View Data) +group (HO_NH2_cs) +info opengroup open = True +mol (HO_NH2_cs.pdb) def +atom 1 (8) (1310, -61, -360) def +atom 2 (7) (-594, 154, -327) def +bond1 1 +atom 3 (1) (938, 1119, 72) def +bond1 1 +atom 4 (1) (-1000, -230, -759) def +bond1 2 +atom 5 (1) (-1240, -115, 1112) def +bond1 2 +egroup (HO_NH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_NH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_HO_NH2.test b/sim/src/tests/singlebond_stretch/test_HO_NH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_NH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HO_NH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_HO_NH2.xyzcmp new file mode 100755 index 000000000..dc42ad5ed --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_NH2.xyzcmp @@ -0,0 +1,7 @@ +5 +HO_NH2.mmp +O 0.702000 -0.115000 0.000000 +N -0.726000 0.130000 0.000000 +H 1.068000 0.780000 0.000000 +H -1.062000 -0.382000 -0.817000 +H -1.062000 -0.382000 0.817000 diff --git a/sim/src/tests/singlebond_stretch/test_HO_OH.mmp b/sim/src/tests/singlebond_stretch/test_HO_OH.mmp new file mode 100755 index 000000000..11afc9b65 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_OH.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.248799) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (HO_OH_c2h) +info opengroup open = True +mol (HO_OH_c2h.pdb) def +atom 1 (8) (636, -62, -104) def +atom 2 (8) (-784, -208, -680) def +bond1 1 +atom 3 (1) (838, -1173, 164) def +bond1 1 +atom 4 (1) (-841, 1195, 329) def +bond1 2 +egroup (HO_OH_c2h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_OH_c2h + diff --git a/sim/src/tests/singlebond_stretch/test_HO_OH.test b/sim/src/tests/singlebond_stretch/test_HO_OH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_OH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HO_OH.xyzcmp b/sim/src/tests/singlebond_stretch/test_HO_OH.xyzcmp new file mode 100755 index 000000000..54946c0f6 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_OH.xyzcmp @@ -0,0 +1,6 @@ +4 +HO_OH.mmp +O 0.730000 0.067000 0.000000 +O -0.730000 -0.067000 0.000000 +H 0.969000 -0.873000 0.000000 +H -0.969000 0.873000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_HO_PH2.mmp b/sim/src/tests/singlebond_stretch/test_HO_PH2.mmp new file mode 100755 index 000000000..f55c43282 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_PH2.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.878838) (-0.332000, 0.055500, -0.000000) (1.000000) +egroup (View Data) +group (HO_PH2_cs) +info opengroup open = True +mol (HO_PH2_cs.pdb) def +atom 1 (8) (1109, -583, 44) def +atom 2 (15) (-928, -314, -206) def +bond1 1 +atom 3 (1) (1993, 1318, 188) def +bond1 1 +atom 4 (1) (-716, -664, -1374) def +bond1 2 +atom 5 (1) (-891, -557, 984) def +bond1 2 +egroup (HO_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_PH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_HO_PH2.test b/sim/src/tests/singlebond_stretch/test_HO_PH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_PH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HO_PH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_HO_PH2.xyzcmp new file mode 100755 index 000000000..fcb33857e --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_PH2.xyzcmp @@ -0,0 +1,7 @@ +5 +HO_PH2.mmp +O 1.109000 -0.139000 0.000000 +P -0.565000 0.102000 0.000000 +H 1.561000 0.714000 0.000000 +H -0.897000 -0.825000 -1.033000 +H -0.897000 -0.825000 1.033000 diff --git a/sim/src/tests/singlebond_stretch/test_HO_SiH3.mmp b/sim/src/tests/singlebond_stretch/test_HO_SiH3.mmp new file mode 100755 index 000000000..abf5fe36b --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_SiH3.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.227165) (-0.244000, -0.313000, -0.000000) (1.000000) +egroup (View Data) +group (HO_SiH3_cs) +info opengroup open = True +mol (HO_SiH3_cs.pdb) def +atom 1 (14) (-331, 551, 335) def +atom 2 (8) (1180, 131, -269) def +bond1 1 +atom 3 (1) (-551, 1750, 306) def +bond1 1 +atom 4 (1) (-764, -731, 1369) def +bond1 1 +atom 5 (1) (-960, -942, -1179) def +bond1 1 +atom 6 (1) (1967, -364, -378) def +bond1 2 +egroup (HO_SiH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HO_SiH3_cs + diff --git a/sim/src/tests/singlebond_stretch/test_HO_SiH3.test b/sim/src/tests/singlebond_stretch/test_HO_SiH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_SiH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HO_SiH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_HO_SiH3.xyzcmp new file mode 100755 index 000000000..5f7b9a79a --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HO_SiH3.xyzcmp @@ -0,0 +1,8 @@ +6 +HO_SiH3.mmp +Si -0.574000 0.001000 0.000000 +O 1.106000 0.047000 0.000000 +H -1.014000 1.415000 0.000000 +H -1.096000 -0.701000 1.207000 +H -1.096000 -0.701000 -1.207000 +H 1.584000 -0.789000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_HS_AlH2.mmp b/sim/src/tests/singlebond_stretch/test_HS_AlH2.mmp new file mode 100755 index 000000000..46bcefef4 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_AlH2.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.000129) (-0.324000, -0.060500, -0.000000) (1.000000) +egroup (View Data) +group (HS_AlH2_cs) +info opengroup open = True +mol (HS_AlH2_cs.pdb) def +atom 1 (16) (-1030, 86, 123) def +atom 2 (13) (573, 17, -31) def +bond1 1 +atom 3 (1) (-940, 1485, 288) def +bond1 1 +atom 4 (1) (1706, 1403, -481) def +bond1 2 +atom 5 (1) (2012, -1153, -248) def +bond1 2 +egroup (HS_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_AlH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_HS_AlH2.test b/sim/src/tests/singlebond_stretch/test_HS_AlH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_AlH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HS_AlH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_HS_AlH2.xyzcmp new file mode 100755 index 000000000..dc0fe1ac3 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_AlH2.xyzcmp @@ -0,0 +1,7 @@ +5 +HS_AlH2.mmp +S -1.048000 -0.075000 0.000000 +Al 1.149000 0.037000 0.000000 +H -1.267000 1.258000 0.000000 +H 1.830000 1.464000 0.000000 +H 1.915000 -1.343000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_HS_BH2.mmp b/sim/src/tests/singlebond_stretch/test_HS_BH2.mmp new file mode 100755 index 000000000..ba07b0754 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_BH2.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.646765) (-0.495500, -0.142000, -0.000000) (1.000000) +egroup (View Data) +group (HS_BH2_cs) +info opengroup open = True +mol (HS_BH2_cs.pdb) def +atom 1 (16) (-515, -649, -109) def +atom 2 (5) (1491, 267, -264) def +bond1 1 +atom 3 (1) (-1141, 1206, -27) def +bond1 1 +atom 4 (1) (2059, 718, -196) def +bond1 2 +atom 5 (1) (1944, -1401, -370) def +bond1 2 +egroup (HS_BH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_BH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_HS_BH2.test b/sim/src/tests/singlebond_stretch/test_HS_BH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_BH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HS_BH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_HS_BH2.xyzcmp new file mode 100755 index 000000000..9848308f2 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_BH2.xyzcmp @@ -0,0 +1,7 @@ +5 +HS_BH2.mmp +S -0.521000 -0.072000 0.000000 +B 1.257000 0.078000 0.000000 +H -0.865000 1.234000 0.000000 +H 1.794000 1.139000 0.000000 +H 1.856000 -0.950000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_HS_CH3.mmp b/sim/src/tests/singlebond_stretch/test_HS_CH3.mmp new file mode 100755 index 000000000..f5da05ef8 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_CH3.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.010206) (0.415000, 0.130000, -0.000000) (1.000000) +egroup (View Data) +group (HS_CH3_cs) +info opengroup open = True +mol (HS_CH3_cs.pdb) def +atom 1 (6) (-896, 83, -141) def +atom 2 (16) (572, 164, 217) def +bond1 1 +atom 3 (1) (-1260, 1157, -482) def +bond1 1 +atom 4 (1) (-1581, -1099, 954) def +bond1 1 +atom 5 (1) (-2039, -652, -169) def +bond1 1 +atom 6 (1) (1487, -1280, 322) def +bond1 2 +egroup (HS_CH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_CH3_cs + diff --git a/sim/src/tests/singlebond_stretch/test_HS_CH3.test b/sim/src/tests/singlebond_stretch/test_HS_CH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_CH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HS_CH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_HS_CH3.xyzcmp new file mode 100755 index 000000000..f97685749 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_CH3.xyzcmp @@ -0,0 +1,8 @@ +6 +HS_CH3.mmp +C -1.243000 -0.010000 0.000000 +S 0.594000 0.043000 0.000000 +H -1.579000 1.030000 0.000000 +H -1.627000 -0.502000 0.896000 +H -1.627000 -0.502000 -0.896000 +H 0.797000 -1.290000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_HS_NH2.mmp b/sim/src/tests/singlebond_stretch/test_HS_NH2.mmp new file mode 100755 index 000000000..d86a77785 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_NH2.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.754485) (0.321000, -0.484000, -0.000000) (1.000000) +egroup (View Data) +group (HS_NH2_cs) +info opengroup open = True +mol (HS_NH2_cs.pdb) def +atom 1 (16) (144, -44, 190) def +atom 2 (7) (-1522, 308, -327) def +bond1 1 +atom 3 (1) (919, 1580, -176) def +bond1 1 +atom 4 (1) (-1364, -241, -991) def +bond1 2 +atom 5 (1) (-1778, -475, 588) def +bond1 2 +egroup (HS_NH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_NH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_HS_NH2.test b/sim/src/tests/singlebond_stretch/test_HS_NH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_NH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HS_NH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_HS_NH2.xyzcmp new file mode 100755 index 000000000..4fc01288d --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_NH2.xyzcmp @@ -0,0 +1,7 @@ +5 +HS_NH2.mmp +S 0.573000 -0.094000 0.000000 +N -1.150000 0.162000 0.000000 +H 0.929000 1.211000 0.000000 +H -1.571000 -0.243000 -0.830000 +H -1.571000 -0.243000 0.830000 diff --git a/sim/src/tests/singlebond_stretch/test_HS_OH.mmp b/sim/src/tests/singlebond_stretch/test_HS_OH.mmp new file mode 100755 index 000000000..b91163d69 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_OH.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.458553) (-0.354500, -0.224000, -0.000000) (1.000000) +egroup (View Data) +group (HS_OH_cs) +info opengroup open = True +mol (HS_OH_cs.pdb) def +atom 1 (16) (-455, -223, -480) def +atom 2 (8) (969, 428, -692) def +bond1 1 +atom 3 (1) (-1046, 1680, -70) def +bond1 1 +atom 4 (1) (1484, -1047, 55) def +bond1 2 +egroup (HS_OH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_OH_cs + diff --git a/sim/src/tests/singlebond_stretch/test_HS_OH.test b/sim/src/tests/singlebond_stretch/test_HS_OH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_OH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HS_OH.xyzcmp b/sim/src/tests/singlebond_stretch/test_HS_OH.xyzcmp new file mode 100755 index 000000000..16f2f5e4b --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_OH.xyzcmp @@ -0,0 +1,6 @@ +4 +HS_OH.mmp +S -0.590000 -0.051000 0.000000 +O 1.134000 0.073000 0.000000 +H -0.751000 1.287000 0.000000 +H 1.460000 -0.839000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_HS_PH2.mmp b/sim/src/tests/singlebond_stretch/test_HS_PH2.mmp new file mode 100755 index 000000000..12c273a0b --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_PH2.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.084203) (0.005500, -0.202500, -0.000000) (1.000000) +egroup (View Data) +group (HS_PH2_cs) +info opengroup open = True +mol (HS_PH2_cs.pdb) def +atom 1 (16) (1234, -253, 486) def +atom 2 (15) (-2036, -151, -144) def +bond1 1 +atom 3 (1) (1309, 1364, 106) def +bond1 1 +atom 4 (1) (-1605, -1095, -648) def +bond1 2 +atom 5 (1) (-1203, -550, 728) def +bond1 2 +egroup (HS_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_PH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_HS_PH2.test b/sim/src/tests/singlebond_stretch/test_HS_PH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_PH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HS_PH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_HS_PH2.xyzcmp new file mode 100755 index 000000000..cebf034db --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_PH2.xyzcmp @@ -0,0 +1,7 @@ +5 +HS_PH2.mmp +S 1.080000 -0.116000 0.000000 +P -1.070000 0.133000 0.000000 +H 1.351000 1.204000 0.000000 +H -1.362000 -0.799000 -1.035000 +H -1.362000 -0.799000 1.035000 diff --git a/sim/src/tests/singlebond_stretch/test_HS_SH.mmp b/sim/src/tests/singlebond_stretch/test_HS_SH.mmp new file mode 100755 index 000000000..6f9be501e --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_SH.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.672292) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (HS_SH_c2h) +info opengroup open = True +mol (HS_SH_c2h.pdb) def +atom 1 (16) (1548, -72, -420) def +atom 2 (16) (-706, -535, -91) def +bond1 1 +atom 3 (1) (1344, -1559, 113) def +bond1 1 +atom 4 (1) (-953, 1025, -485) def +bond1 2 +egroup (HS_SH_c2h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_SH_c2h + diff --git a/sim/src/tests/singlebond_stretch/test_HS_SH.test b/sim/src/tests/singlebond_stretch/test_HS_SH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_SH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HS_SH.xyzcmp b/sim/src/tests/singlebond_stretch/test_HS_SH.xyzcmp new file mode 100755 index 000000000..6122d62b1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_SH.xyzcmp @@ -0,0 +1,6 @@ +4 +HS_SH.mmp +S 1.075000 0.051000 0.000000 +S -1.075000 -0.051000 0.000000 +H 1.206000 -1.291000 0.000000 +H -1.206000 1.291000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_HS_SiH3.mmp b/sim/src/tests/singlebond_stretch/test_HS_SiH3.mmp new file mode 100755 index 000000000..5dd5d1395 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_SiH3.mmp @@ -0,0 +1,28 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.417931) (0.202500, -0.059000, -0.000000) (1.000000) +egroup (View Data) +group (HS_SiH3_cs) +info opengroup open = True +mol (HS_SiH3_cs.pdb) def +atom 1 (14) (-1022, 35, 501) def +atom 2 (16) (823, -698, -424) def +bond1 1 +atom 3 (1) (-1064, 1522, 107) def +bond1 1 +atom 4 (1) (-1649, -986, 1299) def +bond1 1 +atom 5 (1) (-1863, -910, -1250) def +bond1 1 +atom 6 (1) (1385, -1030, 426) def +bond1 2 +egroup (HS_SiH3_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part HS_SiH3_cs + diff --git a/sim/src/tests/singlebond_stretch/test_HS_SiH3.test b/sim/src/tests/singlebond_stretch/test_HS_SiH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_SiH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_HS_SiH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_HS_SiH3.xyzcmp new file mode 100755 index 000000000..e220699a5 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_HS_SiH3.xyzcmp @@ -0,0 +1,8 @@ +6 +HS_SiH3.mmp +Si -1.097000 -0.006000 0.000000 +S 1.072000 0.045000 0.000000 +H -1.527000 1.414000 0.000000 +H -1.619000 -0.697000 1.209000 +H -1.619000 -0.697000 -1.209000 +H 1.214000 -1.296000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_H_AlH2.mmp b/sim/src/tests/singlebond_stretch/test_H_AlH2.mmp new file mode 100755 index 000000000..87510e0b5 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_AlH2.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.840244) (0.374500, 0.131000, -0.000000) (1.000000) +egroup (View Data) +group (H_AlH2_cs) +info opengroup open = True +mol (H_AlH2_cs.pdb) def +atom 1 (13) (130, 179, 196) def +atom 2 (1) (-1627, 358, -85) def +bond1 1 +atom 3 (1) (188, 888, -1243) def +bond1 1 +atom 4 (1) (749, 364, 955) def +bond1 1 +egroup (H_AlH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_AlH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H_AlH2.test b/sim/src/tests/singlebond_stretch/test_H_AlH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_AlH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H_AlH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H_AlH2.xyzcmp new file mode 100755 index 000000000..665aa543d --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_AlH2.xyzcmp @@ -0,0 +1,6 @@ +4 +H_AlH2.mmp +Al 0.000000 0.000000 0.000000 +H -1.498000 -0.522000 0.000000 +H 0.749000 0.260000 -1.375000 +H 0.749000 0.260000 1.375000 diff --git a/sim/src/tests/singlebond_stretch/test_H_BH2.mmp b/sim/src/tests/singlebond_stretch/test_H_BH2.mmp new file mode 100755 index 000000000..0ae75b7a8 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_BH2.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.372820) (0.292500, 0.060500, -0.000000) (1.000000) +egroup (View Data) +group (H_BH2_cs) +info opengroup open = True +mol (H_BH2_cs.pdb) def +atom 1 (5) (105, 113, -348) def +atom 2 (1) (-1368, 165, -529) def +bond1 1 +atom 3 (1) (97, -89, -1363) def +bond1 1 +atom 4 (1) (985, 236, 1147) def +bond1 1 +egroup (H_BH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_BH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H_BH2.test b/sim/src/tests/singlebond_stretch/test_H_BH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_BH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H_BH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H_BH2.xyzcmp new file mode 100755 index 000000000..456b90a5b --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_BH2.xyzcmp @@ -0,0 +1,6 @@ +4 +H_BH2.mmp +B 0.000000 0.000000 0.000000 +H -1.169000 -0.242000 0.000000 +H 0.584000 0.121000 -1.034000 +H 0.584000 0.121000 1.034000 diff --git a/sim/src/tests/singlebond_stretch/test_H_CH3.mmp b/sim/src/tests/singlebond_stretch/test_H_CH3.mmp new file mode 100755 index 000000000..9b8c2bcd6 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_CH3.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.501770) (-0.257500, -0.000000, -0.365000) (1.000000) +egroup (View Data) +group (H_CH3_c3v) +info opengroup open = True +mol (H_CH3_c3v.pdb) def +atom 1 (6) (-106, 406, -130) def +atom 2 (1) (-489, 615, 515) def +bond1 1 +atom 3 (1) (-573, 1160, -148) def +bond1 1 +atom 4 (1) (-536, -1069, -686) def +bond1 1 +atom 5 (1) (889, 1, -722) def +bond1 1 +egroup (H_CH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_CH3_c3v + diff --git a/sim/src/tests/singlebond_stretch/test_H_CH3.test b/sim/src/tests/singlebond_stretch/test_H_CH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_CH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H_CH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_H_CH3.xyzcmp new file mode 100755 index 000000000..73eb56dac --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_CH3.xyzcmp @@ -0,0 +1,7 @@ +5 +H_CH3.mmp +C 0.000000 0.000000 0.000000 +H 0.000000 0.000000 1.093000 +H -0.516000 0.893000 -0.363000 +H -0.516000 -0.893000 -0.363000 +H 1.031000 0.000000 -0.363000 diff --git a/sim/src/tests/singlebond_stretch/test_H_Cl.mmp b/sim/src/tests/singlebond_stretch/test_H_Cl.mmp new file mode 100755 index 000000000..5d7ac8cab --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_Cl.mmp @@ -0,0 +1,20 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.528554) (-0.000000, -0.000000, 0.607500) (1.000000) +egroup (View Data) +group (H_Cl_c4v) +info opengroup open = True +mol (H_Cl_c4v.pdb) def +atom 1 (1) (-360, -25, -1825) def +atom 2 (17) (-322, 164, -126) def +bond1 1 +egroup (H_Cl_c4v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_Cl_c4v + diff --git a/sim/src/tests/singlebond_stretch/test_H_Cl.test b/sim/src/tests/singlebond_stretch/test_H_Cl.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_Cl.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H_Cl.xyzcmp b/sim/src/tests/singlebond_stretch/test_H_Cl.xyzcmp new file mode 100755 index 000000000..d288c894a --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_Cl.xyzcmp @@ -0,0 +1,4 @@ +2 +H_Cl.mmp +H 0.000000 0.000000 -1.251000 +Cl 0.000000 0.000000 0.036000 diff --git a/sim/src/tests/singlebond_stretch/test_H_F.mmp b/sim/src/tests/singlebond_stretch/test_H_F.mmp new file mode 100755 index 000000000..187dbe964 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_F.mmp @@ -0,0 +1,20 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.406713) (-0.000000, -0.000000, 0.417000) (1.000000) +egroup (View Data) +group (H_F_c4v) +info opengroup open = True +mol (H_F_c4v.pdb) def +atom 1 (1) (-20, -47, -785) def +atom 2 (9) (-422, 293, 56) def +bond1 1 +egroup (H_F_c4v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_F_c4v + diff --git a/sim/src/tests/singlebond_stretch/test_H_F.test b/sim/src/tests/singlebond_stretch/test_H_F.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_F.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H_F.xyzcmp b/sim/src/tests/singlebond_stretch/test_H_F.xyzcmp new file mode 100755 index 000000000..70072cfd4 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_F.xyzcmp @@ -0,0 +1,4 @@ +2 +H_F.mmp +H 0.000000 0.000000 -0.881000 +F 0.000000 0.000000 0.047000 diff --git a/sim/src/tests/singlebond_stretch/test_H_H.mmp b/sim/src/tests/singlebond_stretch/test_H_H.mmp new file mode 100755 index 000000000..d9e73e869 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_H.mmp @@ -0,0 +1,19 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.346279) (-0.000000, -0.000000, -0.000000) (1.000000) +egroup (View Data) +group (H_H_c4h) +info opengroup open = True +mol (H_H_c4h.pdb) def +atom 1 (1) (-223, -65, -578) def +atom 2 (1) (42, 318, 18) def +egroup (H_H_c4h) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_H_c4h + diff --git a/sim/src/tests/singlebond_stretch/test_H_H.test b/sim/src/tests/singlebond_stretch/test_H_H.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_H.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H_H.xyzcmp b/sim/src/tests/singlebond_stretch/test_H_H.xyzcmp new file mode 100755 index 000000000..b8d49ad4c --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_H.xyzcmp @@ -0,0 +1,4 @@ +2 +H_H.mmp +H 0.000000 0.000000 -0.372000 +H 0.000000 0.000000 0.372000 diff --git a/sim/src/tests/singlebond_stretch/test_H_NH2.mmp b/sim/src/tests/singlebond_stretch/test_H_NH2.mmp new file mode 100755 index 000000000..9892afb45 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_NH2.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (0.852421, -0.338636, -0.364016, 0.161851) (4.149152) (0.332500, -0.183500, -0.000000) (1.000000) +egroup (View Data) +group (H_NH2_cs) +info opengroup open = True +mol (H_NH2_cs.pdb) def +atom 1 (7) (-50, -20, 54) def +atom 2 (1) (-880, -331, -124) def +bond1 1 +atom 3 (1) (251, 914, -196) def +bond1 1 +atom 4 (1) (213, 528, 604) def +bond1 1 +egroup (H_NH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_NH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H_NH2.test b/sim/src/tests/singlebond_stretch/test_H_NH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_NH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H_NH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H_NH2.xyzcmp new file mode 100755 index 000000000..1de002db4 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_NH2.xyzcmp @@ -0,0 +1,6 @@ +4 +H_NH2.mmp +N 0.024000 -0.059000 0.000000 +H -0.991000 -0.088000 0.000000 +H 0.326000 0.455000 -0.823000 +H 0.326000 0.455000 0.823000 diff --git a/sim/src/tests/singlebond_stretch/test_H_OH.mmp b/sim/src/tests/singlebond_stretch/test_H_OH.mmp new file mode 100755 index 000000000..506a1804c --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_OH.mmp @@ -0,0 +1,22 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (3.796143) (-0.234500, -0.376500, -0.000000) (1.000000) +egroup (View Data) +group (H_OH_cs) +info opengroup open = True +mol (H_OH_cs.pdb) def +atom 1 (8) (301, -312, 22) def +atom 2 (1) (1204, 512, 330) def +bond1 1 +atom 3 (1) (-3, 597, -179) def +bond1 1 +egroup (H_OH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_OH_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H_OH.test b/sim/src/tests/singlebond_stretch/test_H_OH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_OH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H_OH.xyzcmp b/sim/src/tests/singlebond_stretch/test_H_OH.xyzcmp new file mode 100755 index 000000000..9aa45b97d --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_OH.xyzcmp @@ -0,0 +1,5 @@ +3 +H_OH.mmp +O -0.030000 -0.058000 0.000000 +H 0.920000 0.112000 0.000000 +H -0.451000 0.811000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_H_PH2.mmp b/sim/src/tests/singlebond_stretch/test_H_PH2.mmp new file mode 100755 index 000000000..b5d66925b --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_PH2.mmp @@ -0,0 +1,24 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.477057) (0.577000, -0.415500, -0.000000) (1.000000) +egroup (View Data) +group (H_PH2_cs) +info opengroup open = True +mol (H_PH2_cs.pdb) def +atom 1 (15) (437, -294, -272) def +atom 2 (1) (-1375, -47, -146) def +bond1 1 +atom 3 (1) (177, 694, -1068) def +bond1 1 +atom 4 (1) (189, 1349, 833) def +bond1 1 +egroup (H_PH2_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_PH2_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H_PH2.test b/sim/src/tests/singlebond_stretch/test_H_PH2.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_PH2.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H_PH2.xyzcmp b/sim/src/tests/singlebond_stretch/test_H_PH2.xyzcmp new file mode 100755 index 000000000..d5c714a6a --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_PH2.xyzcmp @@ -0,0 +1,6 @@ +4 +H_PH2.mmp +P 0.030000 -0.061000 0.000000 +H -1.385000 0.102000 0.000000 +H 0.231000 0.892000 -1.039000 +H 0.231000 0.892000 1.039000 diff --git a/sim/src/tests/singlebond_stretch/test_H_SH.mmp b/sim/src/tests/singlebond_stretch/test_H_SH.mmp new file mode 100755 index 000000000..0184cd45c --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_SH.mmp @@ -0,0 +1,22 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (4.030966) (-0.428000, -0.596500, -0.000000) (1.000000) +egroup (View Data) +group (H_SH_cs) +info opengroup open = True +mol (H_SH_cs.pdb) def +atom 1 (16) (-471, 291, -124) def +atom 2 (1) (1156, 25, -39) def +bond1 1 +atom 3 (1) (-102, 825, -213) def +bond1 1 +egroup (H_SH_cs) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_SH_cs + diff --git a/sim/src/tests/singlebond_stretch/test_H_SH.test b/sim/src/tests/singlebond_stretch/test_H_SH.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_SH.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H_SH.xyzcmp b/sim/src/tests/singlebond_stretch/test_H_SH.xyzcmp new file mode 100755 index 000000000..c9497771e --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_SH.xyzcmp @@ -0,0 +1,5 @@ +3 +H_SH.mmp +S -0.027000 -0.048000 0.000000 +H 1.280000 0.284000 0.000000 +H -0.424000 1.241000 0.000000 diff --git a/sim/src/tests/singlebond_stretch/test_H_SiH3.mmp b/sim/src/tests/singlebond_stretch/test_H_SiH3.mmp new file mode 100755 index 000000000..cbf0a73e0 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_SiH3.mmp @@ -0,0 +1,26 @@ +mmpformat 050502 required; 050706 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (5.000772) (-0.350500, -0.000000, -0.495500) (1.000000) +egroup (View Data) +group (H_SiH3_c3v) +info opengroup open = True +mol (H_SiH3_c3v.pdb) def +atom 1 (14) (425, -16, -301) def +atom 2 (1) (295, 498, 1650) def +bond1 1 +atom 3 (1) (-613, 1321, -324) def +bond1 1 +atom 4 (1) (-686, -1021, -222) def +bond1 1 +atom 5 (1) (1761, 10, -606) def +bond1 1 +egroup (H_SiH3_c3v) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part H_SiH3_c3v + diff --git a/sim/src/tests/singlebond_stretch/test_H_SiH3.test b/sim/src/tests/singlebond_stretch/test_H_SiH3.test new file mode 100755 index 000000000..eec4e94a1 --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_SiH3.test @@ -0,0 +1 @@ +TYPE struct diff --git a/sim/src/tests/singlebond_stretch/test_H_SiH3.xyzcmp b/sim/src/tests/singlebond_stretch/test_H_SiH3.xyzcmp new file mode 100755 index 000000000..085bb9ffd --- /dev/null +++ b/sim/src/tests/singlebond_stretch/test_H_SiH3.xyzcmp @@ -0,0 +1,7 @@ +5 +H_SiH3.mmp +Si 0.000000 0.000000 0.000000 +H 0.000000 0.000000 1.487000 +H -0.701000 1.214000 -0.496000 +H -0.701000 -1.214000 -0.496000 +H 1.402000 0.000000 -0.496000 diff --git a/sim/src/tests/temperature_tests/001_two_methanes_9A_apart_vdw_5.mmp b/sim/src/tests/temperature_tests/001_two_methanes_9A_apart_vdw_5.mmp new file mode 100755 index 000000000..9175e7fbb --- /dev/null +++ b/sim/src/tests/temperature_tests/001_two_methanes_9A_apart_vdw_5.mmp @@ -0,0 +1,38 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (12.911797) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (001_two_methanes_9A_apart_vdw_5) +info opengroup open = True +mol (Chunk-C17287) def +atom 1 (6) (-257, -12, 0) def +atom 2 (1) (370, 615, 627) def +bond1 1 +atom 3 (1) (-885, 615, -627) def +bond1 1 +atom 4 (1) (-885, -639, 627) def +bond1 1 +atom 5 (1) (370, -639, -627) def +bond1 1 +thermo (Thermo-46) (153, 0, 51) 1 5 1 +mol (Chunk-C17297) def +atom 6 (6) (8821, 42, 0) def +atom 7 (1) (9446, 666, 624) def +bond1 6 +atom 8 (1) (8197, 666, -624) def +bond1 6 +atom 9 (1) (8197, -582, 624) def +bond1 6 +atom 10 (1) (9446, -582, -624) def +bond1 6 +thermo (Thermo-48) (153, 0, 51) 6 10 6 +mdistance (Distance-49) (0, 0, 0) (Helvetica) 10 1 6 +egroup (001_two_methanes_9A_apart_vdw_5) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 001_two_methanes_9A_apart_vdw_5 diff --git a/sim/src/tests/temperature_tests/002_two_methanes_10A_apart_vdw_6.mmp b/sim/src/tests/temperature_tests/002_two_methanes_10A_apart_vdw_6.mmp new file mode 100755 index 000000000..8e91a31bb --- /dev/null +++ b/sim/src/tests/temperature_tests/002_two_methanes_10A_apart_vdw_6.mmp @@ -0,0 +1,38 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (12.911797) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (002_two_methanes_10A_apart_vdw_6) +info opengroup open = True +mol (Chunk-C17287) def +atom 1 (6) (-257, -12, 0) def +atom 2 (1) (370, 615, 627) def +bond1 1 +atom 3 (1) (-885, 615, -627) def +bond1 1 +atom 4 (1) (-885, -639, 627) def +bond1 1 +atom 5 (1) (370, -639, -627) def +bond1 1 +thermo (Thermo-46) (153, 0, 51) 1 5 1 +mol (Chunk-C17297) def +atom 6 (6) (9804, 137, 0) def +atom 7 (1) (10428, 761, 624) def +bond1 6 +atom 8 (1) (9179, 761, -624) def +bond1 6 +atom 9 (1) (9179, -487, 624) def +bond1 6 +atom 10 (1) (10428, -487, -624) def +bond1 6 +thermo (Thermo-48) (153, 0, 51) 6 10 6 +mdistance (Distance-49) (0, 0, 0) (Helvetica) 10 1 6 +egroup (002_two_methanes_10A_apart_vdw_6) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 002_two_methanes_10A_apart_vdw_6 diff --git a/sim/src/tests/temperature_tests/003_thermostat_test.mmp b/sim/src/tests/temperature_tests/003_thermostat_test.mmp new file mode 100755 index 000000000..abbc6909e --- /dev/null +++ b/sim/src/tests/temperature_tests/003_thermostat_test.mmp @@ -0,0 +1,25 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.464043) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (004_one_thermostat_enabled_other_disabled) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) def +atom 2 (1) (560, 14, 0) def +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +stat (Stat-1- 10K) (0, 0, 153) (10) 1 2 1 +forward_ref (226651232) # stat (Stat-2-500K) +egroup (004_one_thermostat_enabled_other_disabled) +end1 +group (Clipboard) +info opengroup open = False +stat (Stat-2-500K) (0, 0, 153) (300) 1 2 1 +info leaf disabled = True +info leaf forwarded = 226651232 +egroup (Clipboard) +end molecular machine part 004_one_thermostat_enabled_other_disabled diff --git a/sim/src/tests/temperature_tests/003_thermostat_test_1.mmp b/sim/src/tests/temperature_tests/003_thermostat_test_1.mmp new file mode 100755 index 000000000..0b7f17575 --- /dev/null +++ b/sim/src/tests/temperature_tests/003_thermostat_test_1.mmp @@ -0,0 +1,25 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.464043) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (003_thermostat_test) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) def +atom 2 (1) (560, 14, 0) def +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +stat (Stat-1- 10K) (0, 0, 153) (10) 1 2 1 +forward_ref (245407792) # stat (Stat-2-500K) +egroup (003_thermostat_test) +end1 +group (Clipboard) +info opengroup open = False +stat (Stat-2-500K) (0, 0, 153) (300) 1 2 1 +info leaf disabled = True +info leaf forwarded = 245407792 +egroup (Clipboard) +end molecular machine part 003_thermostat_test diff --git a/sim/src/tests/temperature_tests/003_thermostat_test_2.mmp b/sim/src/tests/temperature_tests/003_thermostat_test_2.mmp new file mode 100755 index 000000000..d2282fb20 --- /dev/null +++ b/sim/src/tests/temperature_tests/003_thermostat_test_2.mmp @@ -0,0 +1,21 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.464043) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (003_thermostat_test-3) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) def +atom 2 (1) (560, 14, 0) def +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +stat (Stat-1- 10K) (0, 0, 153) (250) 1 2 1 +egroup (003_thermostat_test-3) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 003_thermostat_test-3 diff --git a/sim/src/tests/temperature_tests/003_thermostat_test_3.mmp b/sim/src/tests/temperature_tests/003_thermostat_test_3.mmp new file mode 100755 index 000000000..27b822e87 --- /dev/null +++ b/sim/src/tests/temperature_tests/003_thermostat_test_3.mmp @@ -0,0 +1,25 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.464043) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (003_thermostat_test-1) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) def +atom 2 (1) (560, 14, 0) def +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +forward_ref (245395048) # stat (Stat-1- 10K) +stat (Stat-2-500K) (0, 0, 153) (300) 1 2 1 +egroup (003_thermostat_test-1) +end1 +group (Clipboard) +info opengroup open = False +stat (Stat-1- 10K) (0, 0, 153) (10) 1 2 1 +info leaf disabled = True +info leaf forwarded = 245395048 +egroup (Clipboard) +end molecular machine part 003_thermostat_test-1 diff --git a/sim/src/tests/temperature_tests/003_thermostat_test_4.mmp b/sim/src/tests/temperature_tests/003_thermostat_test_4.mmp new file mode 100755 index 000000000..9b6512dd7 --- /dev/null +++ b/sim/src/tests/temperature_tests/003_thermostat_test_4.mmp @@ -0,0 +1,21 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.464043) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (003_thermostat_test-2) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) def +atom 2 (1) (560, 14, 0) def +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +stat (Stat-1- 10K) (0, 0, 153) (0) 1 2 1 +egroup (003_thermostat_test-2) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 003_thermostat_test-2 diff --git a/sim/src/tests/temperature_tests/003_thermostat_test_5.mmp b/sim/src/tests/temperature_tests/003_thermostat_test_5.mmp new file mode 100755 index 000000000..68d0e22f7 --- /dev/null +++ b/sim/src/tests/temperature_tests/003_thermostat_test_5.mmp @@ -0,0 +1,21 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (View Data) +info opengroup open = True +csys (HomeView) (1.000000, 0.000000, 0.000000, 0.000000) (10.000000) (0.000000, 0.000000, 0.000000) (1.000000) +csys (LastView) (1.000000, 0.000000, 0.000000, 0.000000) (1.464043) (0.000000, 0.000000, 0.000000) (1.000000) +egroup (View Data) +group (003_thermostat_test-4) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) def +atom 2 (1) (560, 14, 0) def +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +stat (Stat-1- 10K) (0, 0, 153) (350) 1 2 1 +egroup (003_thermostat_test-4) +end1 +group (Clipboard) +info opengroup open = False +egroup (Clipboard) +end molecular machine part 003_thermostat_test-4 diff --git a/sim/src/tests/temperature_tests/readme.txt b/sim/src/tests/temperature_tests/readme.txt new file mode 100755 index 000000000..1571d5891 --- /dev/null +++ b/sim/src/tests/temperature_tests/readme.txt @@ -0,0 +1,24 @@ +001_two_methanes_9A_apart_vdw_5.mmp + +-Two CH4 molecules , 9.08 Angstrom apart (distance between Carbon centers) +- Their vdw distance is 5.4 A +- Simulate this file for ~ 4 picoseconds at 0 K +- see the temperature reading + + +002_two_methanes_10A_apart_vdw_6.mmp + +-Two Ch4 molecules ,10.06 Angstrom apart (distance between Carbon centers) +- Their vdw distance is 6.38 A +- Simulate this file for ~ 4 picoseconds at 0 K +- see the temperature reading + +003_thermostat_test.mmp (003 1 to 5) +003-1: +- 2 thermostats attached to the same chunk +- First one will set temperature to 10K during a simulation run and the other at 500 K +- Thermostat#2 is disabled +- It is expected that the temperature plot will show temperatures around 10 K +- Run this simulation at 1000 K +003-2 to 003-5: +- Other thermostat tests with various temperatures
\ No newline at end of file diff --git a/sim/src/tests/temperature_tests/test_001_two_methanes_9A_apart_vdw_5.mmp b/sim/src/tests/temperature_tests/test_001_two_methanes_9A_apart_vdw_5.mmp new file mode 100755 index 000000000..b9b486bc8 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_001_two_methanes_9A_apart_vdw_5.mmp @@ -0,0 +1,29 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (001_two_methanes_9A_apart_vdw_5) +info opengroup open = True +mol (Chunk-C17287) - +atom 1 (6) (-257, -12, 0) - +atom 2 (1) (370, 615, 627) - +bond1 1 +atom 3 (1) (-885, 615, -627) - +bond1 1 +atom 4 (1) (-885, -639, 627) - +bond1 1 +atom 5 (1) (370, -639, -627) - +bond1 1 +thermo (Thermo-46) (153, 0, 51) 1 5 1 +mol (Chunk-C17297) - +atom 6 (6) (8821, 42, 0) - +atom 7 (1) (9446, 666, 624) - +bond1 6 +atom 8 (1) (8197, 666, -624) - +bond1 6 +atom 9 (1) (8197, -582, 624) - +bond1 6 +atom 10 (1) (9446, -582, -624) - +bond1 6 +thermo (Thermo-48) (153, 0, 51) 6 10 6 +mdistance (Distance-49) (0, 0, 0) (Helvetica) 10 1 6 +egroup (001_two_methanes_9A_apart_vdw_5) +end molecular machine part 001_two_methanes_9A_apart_vdw_5 diff --git a/sim/src/tests/temperature_tests/test_001_two_methanes_9A_apart_vdw_5.trc b/sim/src/tests/temperature_tests/test_001_two_methanes_9A_apart_vdw_5.trc new file mode 100755 index 000000000..66543b8c4 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_001_two_methanes_9A_apart_vdw_5.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_001_two_methanes_9A_apart_vdw_5.trc test_001_two_methanes_9A_apart_vdw_5.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_001_two_methanes_9A_apart_vdw_5.mmp +# Output File: test_001_two_methanes_9A_apart_vdw_5.xyz +# Trace File: test_001_two_methanes_9A_apart_vdw_5.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 10 +# +# 3 columns: +# Thermo-46: temperature (K) +# Thermo-48: temperature (K) +# Distance-49: distance (angstroms) +# +# Time T.meter T.meter Distance +# picosec Thermo-46 Thermo-48 Distance-49 +# + 0.0100 420.17 207.14 9.0390 +# Done: diff --git a/sim/src/tests/temperature_tests/test_001_two_methanes_9A_apart_vdw_5.xyzcmp b/sim/src/tests/temperature_tests/test_001_two_methanes_9A_apart_vdw_5.xyzcmp new file mode 100755 index 000000000..5073cba05 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_001_two_methanes_9A_apart_vdw_5.xyzcmp @@ -0,0 +1,12 @@ +10 +Frame 0, Iteration: 100 +C -0.246632 -0.002954 -0.004834 +H 0.308686 0.740884 0.578264 +H -0.863595 0.556869 -0.702457 +H -0.903214 -0.576645 0.654979 +H 0.479052 -0.589608 -0.572437 +C 8.811530 0.033982 -0.000926 +H 9.407557 0.634181 0.684721 +H 8.173357 0.575740 -0.702429 +H 8.170053 -0.568624 0.633288 +H 9.473412 -0.665045 -0.505362 diff --git a/sim/src/tests/temperature_tests/test_002_two_methanes_10A_apart_vdw_6.mmp b/sim/src/tests/temperature_tests/test_002_two_methanes_10A_apart_vdw_6.mmp new file mode 100755 index 000000000..7977f7cf2 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_002_two_methanes_10A_apart_vdw_6.mmp @@ -0,0 +1,29 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (002_two_methanes_10A_apart_vdw_6) +info opengroup open = True +mol (Chunk-C17287) - +atom 1 (6) (-257, -12, 0) - +atom 2 (1) (370, 615, 627) - +bond1 1 +atom 3 (1) (-885, 615, -627) - +bond1 1 +atom 4 (1) (-885, -639, 627) - +bond1 1 +atom 5 (1) (370, -639, -627) - +bond1 1 +thermo (Thermo-46) (153, 0, 51) 1 5 1 +mol (Chunk-C17297) - +atom 6 (6) (9804, 137, 0) - +atom 7 (1) (10428, 761, 624) - +bond1 6 +atom 8 (1) (9179, 761, -624) - +bond1 6 +atom 9 (1) (9179, -487, 624) - +bond1 6 +atom 10 (1) (10428, -487, -624) - +bond1 6 +thermo (Thermo-48) (153, 0, 51) 6 10 6 +mdistance (Distance-49) (0, 0, 0) (Helvetica) 10 1 6 +egroup (002_two_methanes_10A_apart_vdw_6) +end molecular machine part 002_two_methanes_10A_apart_vdw_6 diff --git a/sim/src/tests/temperature_tests/test_002_two_methanes_10A_apart_vdw_6.trc b/sim/src/tests/temperature_tests/test_002_two_methanes_10A_apart_vdw_6.trc new file mode 100755 index 000000000..a8eb42051 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_002_two_methanes_10A_apart_vdw_6.trc @@ -0,0 +1,30 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_002_two_methanes_10A_apart_vdw_6.trc test_002_two_methanes_10A_apart_vdw_6.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_002_two_methanes_10A_apart_vdw_6.mmp +# Output File: test_002_two_methanes_10A_apart_vdw_6.xyz +# Trace File: test_002_two_methanes_10A_apart_vdw_6.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 10 +# +# 3 columns: +# Thermo-46: temperature (K) +# Thermo-48: temperature (K) +# Distance-49: distance (angstroms) +# +# Time T.meter T.meter Distance +# picosec Thermo-46 Thermo-48 Distance-49 +# + 0.0100 420.17 207.10 10.0220 +# Done: diff --git a/sim/src/tests/temperature_tests/test_002_two_methanes_10A_apart_vdw_6.xyzcmp b/sim/src/tests/temperature_tests/test_002_two_methanes_10A_apart_vdw_6.xyzcmp new file mode 100755 index 000000000..612f7ee64 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_002_two_methanes_10A_apart_vdw_6.xyzcmp @@ -0,0 +1,12 @@ +10 +Frame 0, Iteration: 100 +C -0.246632 -0.002954 -0.004834 +H 0.308686 0.740884 0.578264 +H -0.863595 0.556869 -0.702457 +H -0.903214 -0.576645 0.654979 +H 0.479052 -0.589608 -0.572437 +C 9.794290 0.128987 -0.000927 +H 10.390293 0.729221 0.684772 +H 9.156036 0.670648 -0.702368 +H 9.152798 -0.473573 0.633263 +H 10.456116 -0.570097 -0.505436 diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test.mmp b/sim/src/tests/temperature_tests/test_003_thermostat_test.mmp new file mode 100755 index 000000000..3c6cec411 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test.mmp @@ -0,0 +1,13 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (004_one_thermostat_enabled_other_disabled) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) - +atom 2 (1) (560, 14, 0) - +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +stat (Stat-1- 10K) (0, 0, 153) (10) 1 2 1 +forward_ref (226651232) # stat (Stat-2-500K) +egroup (004_one_thermostat_enabled_other_disabled) +end molecular machine part 004_one_thermostat_enabled_other_disabled diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test.trc b/sim/src/tests/temperature_tests/test_003_thermostat_test.trc new file mode 100755 index 000000000..bb02a9142 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_003_thermostat_test.trc test_003_thermostat_test.mmp +# Date and Time: Wed Apr 19 10:53:24 2006 +# Input File: test_003_thermostat_test.mmp +# Output File: test_003_thermostat_test.xyz +# Trace File: test_003_thermostat_test.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Thermo-1: temperature (K) +# Stat-1- 10K: energy added (zJ) +# +# Time T.meter T.stat +# picosec Thermo-1 Stat-1- 10K +# + 0.0100 200.49 -0.02 +# Done: diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test.xyzcmp b/sim/src/tests/temperature_tests/test_003_thermostat_test.xyzcmp new file mode 100755 index 000000000..dd55c6217 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H -0.153438 0.046539 0.070874 +H 0.561608 -0.028992 -0.064084 diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_1.mmp b/sim/src/tests/temperature_tests/test_003_thermostat_test_1.mmp new file mode 100755 index 000000000..0c7daa419 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_1.mmp @@ -0,0 +1,13 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (003_thermostat_test) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) - +atom 2 (1) (560, 14, 0) - +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +stat (Stat-1- 10K) (0, 0, 153) (10) 1 2 1 +forward_ref (245407792) # stat (Stat-2-500K) +egroup (003_thermostat_test) +end molecular machine part 003_thermostat_test diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_1.trc b/sim/src/tests/temperature_tests/test_003_thermostat_test_1.trc new file mode 100755 index 000000000..e8da6355c --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_1.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_003_thermostat_test_1.trc test_003_thermostat_test_1.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_003_thermostat_test_1.mmp +# Output File: test_003_thermostat_test_1.xyz +# Trace File: test_003_thermostat_test_1.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Thermo-1: temperature (K) +# Stat-1- 10K: energy added (zJ) +# +# Time T.meter T.stat +# picosec Thermo-1 Stat-1- 10K +# + 0.0100 200.49 -0.02 +# Done: diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_1.xyzcmp b/sim/src/tests/temperature_tests/test_003_thermostat_test_1.xyzcmp new file mode 100755 index 000000000..dd55c6217 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_1.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H -0.153438 0.046539 0.070874 +H 0.561608 -0.028992 -0.064084 diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_2.mmp b/sim/src/tests/temperature_tests/test_003_thermostat_test_2.mmp new file mode 100755 index 000000000..3dc8e592e --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_2.mmp @@ -0,0 +1,12 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (003_thermostat_test-3) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) - +atom 2 (1) (560, 14, 0) - +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +stat (Stat-1- 10K) (0, 0, 153) (250) 1 2 1 +egroup (003_thermostat_test-3) +end molecular machine part 003_thermostat_test-3 diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_2.trc b/sim/src/tests/temperature_tests/test_003_thermostat_test_2.trc new file mode 100755 index 000000000..37e361b5a --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_2.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_003_thermostat_test_2.trc test_003_thermostat_test_2.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_003_thermostat_test_2.mmp +# Output File: test_003_thermostat_test_2.xyz +# Trace File: test_003_thermostat_test_2.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Thermo-1: temperature (K) +# Stat-1- 10K: energy added (zJ) +# +# Time T.meter T.stat +# picosec Thermo-1 Stat-1- 10K +# + 0.0100 406.00 -0.01 +# Done: diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_2.xyzcmp b/sim/src/tests/temperature_tests/test_003_thermostat_test_2.xyzcmp new file mode 100755 index 000000000..978972855 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_2.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H -0.088624 0.004885 0.089497 +H 0.621471 -0.029152 -0.055548 diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_3.mmp b/sim/src/tests/temperature_tests/test_003_thermostat_test_3.mmp new file mode 100755 index 000000000..d982c917c --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_3.mmp @@ -0,0 +1,13 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (003_thermostat_test-1) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) - +atom 2 (1) (560, 14, 0) - +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +forward_ref (245395048) # stat (Stat-1- 10K) +stat (Stat-2-500K) (0, 0, 153) (300) 1 2 1 +egroup (003_thermostat_test-1) +end molecular machine part 003_thermostat_test-1 diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_3.trc b/sim/src/tests/temperature_tests/test_003_thermostat_test_3.trc new file mode 100755 index 000000000..5333219ec --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_3.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_003_thermostat_test_3.trc test_003_thermostat_test_3.mmp +# Date and Time: Wed Apr 19 10:53:24 2006 +# Input File: test_003_thermostat_test_3.mmp +# Output File: test_003_thermostat_test_3.xyz +# Trace File: test_003_thermostat_test_3.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Thermo-1: temperature (K) +# Stat-2-500K: energy added (zJ) +# +# Time T.meter T.stat +# picosec Thermo-1 Stat-2-500K +# + 0.0100 450.72 -0.00 +# Done: diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_3.xyzcmp b/sim/src/tests/temperature_tests/test_003_thermostat_test_3.xyzcmp new file mode 100755 index 000000000..d55e8806d --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_3.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H -0.080789 -0.000154 0.091690 +H 0.628511 -0.029102 -0.054501 diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_4.mmp b/sim/src/tests/temperature_tests/test_003_thermostat_test_4.mmp new file mode 100755 index 000000000..752176e4b --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_4.mmp @@ -0,0 +1,12 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (003_thermostat_test-2) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) - +atom 2 (1) (560, 14, 0) - +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +stat (Stat-1- 10K) (0, 0, 153) (0) 1 2 1 +egroup (003_thermostat_test-2) +end molecular machine part 003_thermostat_test-2 diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_4.trc b/sim/src/tests/temperature_tests/test_003_thermostat_test_4.trc new file mode 100755 index 000000000..3de7707a2 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_4.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_003_thermostat_test_4.trc test_003_thermostat_test_4.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_003_thermostat_test_4.mmp +# Output File: test_003_thermostat_test_4.xyz +# Trace File: test_003_thermostat_test_4.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Thermo-1: temperature (K) +# Stat-1- 10K: energy added (zJ) +# +# Time T.meter T.stat +# picosec Thermo-1 Stat-1- 10K +# + 0.0100 196.19 -0.02 +# Done: diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_4.xyzcmp b/sim/src/tests/temperature_tests/test_003_thermostat_test_4.xyzcmp new file mode 100755 index 000000000..e5d4d6458 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_4.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H -0.169424 0.056769 0.066167 +H 0.546424 -0.028769 -0.066167 diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_5.mmp b/sim/src/tests/temperature_tests/test_003_thermostat_test_5.mmp new file mode 100755 index 000000000..0a15bd956 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_5.mmp @@ -0,0 +1,12 @@ +mmpformat 050920 required; 051103 preferred +kelvin 300 +group (003_thermostat_test-4) +info opengroup open = True +mol (Chunk-H18) tub +atom 1 (1) (-183, 14, 0) - +atom 2 (1) (560, 14, 0) - +bond1 1 +thermo (Thermo-1) (153, 0, 51) 1 2 1 +stat (Stat-1- 10K) (0, 0, 153) (350) 1 2 1 +egroup (003_thermostat_test-4) +end molecular machine part 003_thermostat_test-4 diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_5.trc b/sim/src/tests/temperature_tests/test_003_thermostat_test_5.trc new file mode 100755 index 000000000..303620c49 --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_5.trc @@ -0,0 +1,29 @@ +# nanoENGINEER-1.com Simulator Trace File, Version 050310 +# +# uname -a: Linux localhost 2.6.12-12mdk #1 Fri Sep 9 18:15:22 CEST 2005 i686 AMD Athlon(tm) XP 3000+ unknown GNU/Linux +# +# CFLAGS: -g -Wmissing-prototypes -Wall +# LDFLAGS: -L/usr/lib -lm +# +# Command Line: ./simulator -i100 -f1 --dump-as-text --trace-file test_003_thermostat_test_5.trc test_003_thermostat_test_5.mmp +# Date and Time: Wed Apr 19 10:53:25 2006 +# Input File: test_003_thermostat_test_5.mmp +# Output File: test_003_thermostat_test_5.xyz +# Trace File: test_003_thermostat_test_5.trc +# +# Run type: Dynamics. +# +# Number of Frames: 1 +# Steps per Frame: 100 +# Temperature: 300.0 +# Number of Atoms: 2 +# +# 2 columns: +# Thermo-1: temperature (K) +# Stat-1- 10K: energy added (zJ) +# +# Time T.meter T.stat +# picosec Thermo-1 Stat-1- 10K +# + 0.0100 495.67 0.00 +# Done: diff --git a/sim/src/tests/temperature_tests/test_003_thermostat_test_5.xyzcmp b/sim/src/tests/temperature_tests/test_003_thermostat_test_5.xyzcmp new file mode 100755 index 000000000..b0b98e31e --- /dev/null +++ b/sim/src/tests/temperature_tests/test_003_thermostat_test_5.xyzcmp @@ -0,0 +1,4 @@ +2 +Frame 0, Iteration: 100 +H -0.073563 -0.004799 0.093700 +H 0.634964 -0.029045 -0.053530 diff --git a/sim/src/writemovie.c b/sim/src/writemovie.c new file mode 100755 index 000000000..f9053b3ae --- /dev/null +++ b/sim/src/writemovie.c @@ -0,0 +1,650 @@ +// Copyright 2004-2007 Nanorex, Inc. See LICENSE file for details. + +#include "simulator.h" + +#if defined(__GNUC__) || defined(__MWERKS__) +// GCC and kin +typedef long long int_64; +#else // #elif defined(WIN32) ??? +// Microsoft +typedef __int64 int_64; +#endif + +static char const rcsid[] = "$Id$"; + +// arrays of 3 times part->num_atoms +static int *ixyz = NULL; +static int *previxyz = NULL; + +static int flushWriteWarning = 0; + +static void flushOutputFile(FILE *f) +{ + if (fflush(f) < 0 && !flushWriteWarning) { + /* it's a good bet that this will fail too, but we'll try... */ + WARNING_ERRNO1("Unable to write to file %s", OutputFileName); + flushWriteWarning = 1; + } +} + +void initializeDeltaBuffers(struct part *part) +{ + int i; + int j; + struct xyz *pos = part->positions; + + if (ixyz != NULL) { + free(ixyz); + } + ixyz=(int *)allocate(sizeof(int) * 3 * part->num_atoms); + if (previxyz != NULL) { + free(previxyz); + } + previxyz=(int *)allocate(sizeof(int) * 3 * part->num_atoms); + for (i=0, j=0; i<3*part->num_atoms; i+=3, j++) { + previxyz[i+0] = (int)pos[j].x; + previxyz[i+1] = (int)pos[j].y; + previxyz[i+2] = (int)pos[j].z; + } +} + +static void writeXYZOutputHeader(FILE *f, struct part *part) +{ +} + +// .xyz files are in angstroms (1e-10 m) +#define XYZ (1.0e-2) + +static void writeXYZFrame(FILE *f, struct part *part, struct xyz *pos) +{ + int i; + + for (i=0; i<part->num_atoms; i++) { + fprintf(f, "%s %f %f %f\n", part->atoms[i]->type->symbol, + pos[i].x*XYZ, pos[i].y*XYZ, pos[i].z*XYZ); + } +} + +static void writeXYZOutputTrailer(FILE *f, struct part *part, int frameNumber) +{ +} + +static void writeOldOutputHeader(FILE *f, struct part *part) +{ + fwrite(&NumFrames, sizeof(int), 1, f); +} + +static void writeOldFrame(FILE *f, struct part *part, struct xyz *pos) +{ + int i; + int j; + int *tmp; + char c0, c1, c2; + + for (i=0, j=0; i<3*part->num_atoms; i+=3, j++) { + ixyz[i+0] = (int)pos[j].x; + ixyz[i+1] = (int)pos[j].y; + ixyz[i+2] = (int)pos[j].z; + + c0=(char)(ixyz[i+0] - previxyz[i+0]); + fwrite(&c0, sizeof(char), 1, f); + + c1=(char)(ixyz[i+1] - previxyz[i+1]); + fwrite(&c1, sizeof(char), 1, f); + + c2=(char)(ixyz[i+2] - previxyz[i+2]); + fwrite(&c2, sizeof(char), 1, f); + + //fprintf(stderr, "%d %d %d\n", (int)c0, (int)c1, (int)c2); + + } + + tmp = previxyz; + previxyz = ixyz; + ixyz = tmp; +} + +static void writeOldOutputTrailer(FILE *f, struct part *part, int frameNumber) +{ + if (frameNumber != NumFrames) { + rewind(f); + fwrite(&frameNumber, sizeof(int), 1, f); + } +} + +#define DPB_SYNC_WORD 0xffffffff +#define DPB_BYTE_ORDER_MAGIC 0x01020304 +#define DPB_DELTA_RECORD_MAGIC 0x44656c01 +#define DPB_DELTA_RECORD_TYPE 0x44656c02 +#define DPB_KEY_RECORD_MAGIC 0x4b657901 +#define DPB_KEY_RECORD_TYPE 0x4b657902 +#define DPB_INDEX_RECORD_MAGIC 0x496e6401 +#define DPB_INDEX_RECORD_TYPE 0x496e6402 +#define DPB_END_RECORD_MAGIC 0x456f6601 +#define DPB_END_RECORD_TYPE 0x456f6602 + +struct dpb_record_header +{ + int byte_order; + int record_type; + int record_length; +}; + +static int frame_number; +static int deltaRecordsBeforeNextKeyRecord; + +static int_64 offsetToFirstRecord; +static int_64 offsetToIndexRecord; + +static void writeNewKeyRecord(FILE *f, struct part *part); + +static void writeNewOutputHeader(FILE *f, struct part *part) +{ + int sync_word = DPB_SYNC_WORD; + + frame_number = 0; + + fprintf(f, "#!/usr/local/bin/NanoEngineer1-viewer\n"); + fprintf(f, "#@ NanoEngineer-1 atom trajectory file, format version 050404\n"); + fprintf(f, "# molecular dynamics movie file produced by NanoEngineer-1\n"); + fprintf(f, "# see http://www.NanoEngineer-1.com\n"); + //fprintf(f, "# generated by simulator version 0.94"); + + if (IDKey != NULL && IDKey[0] != '\0') { + fprintf(f, "IDKey = %s\n", IDKey); + } + fprintf(f, "NumberOfAtoms = %d\n", part->num_atoms); + fprintf(f, "ExpectedFrames = %d\n", NumFrames); + fprintf(f, "KeyRecordInterval = %d\n", KeyRecordInterval); + //fprintf(f, "Command = %s\n", "do we need this?"); + fprintf(f, "SpaceResolution = %e\n", 1e-10); // or is it Dx? + fprintf(f, "FrameTimeInterval = %e\n", IterPerFrame * Dt); + + fprintf(f, "# pad to 4 byte boundary:."); + while ((ftell(f)+1L) % 4L != 0) { + fprintf(f, "."); + } + fprintf(f, "\n"); + fwrite(&sync_word, 4, 1, f); + offsetToFirstRecord = (int_64)ftell(f); + writeNewKeyRecord(f, part); +} + +struct indexEntry +{ + int record_type; + int frame_number; + int offset_high; + int offset_low; +}; + +static struct indexEntry *frameIndex = NULL; +static int indexBufferLength = 0; +static int indexRecordCount = 0; + +static void buildIndex(FILE *f, int recordType) +{ + int_64 offset; + + if (indexRecordCount >= indexBufferLength) { + if (indexBufferLength == 0) { + indexBufferLength = NumFrames + NumFrames / KeyRecordInterval + 20; + } else { + indexBufferLength *= 2; + } + frameIndex = realloc(frameIndex, indexBufferLength * sizeof(struct indexEntry)); + if (frameIndex == NULL) { + ERROR("out of memory"); + } + } + frameIndex[indexRecordCount].record_type = recordType; + frameIndex[indexRecordCount].frame_number = frame_number; + offset = (int_64)ftell(f); + frameIndex[indexRecordCount].offset_high = (offset >> 32) & 0xffffffff; + frameIndex[indexRecordCount].offset_low = offset & 0xffffffff; + indexRecordCount++; +} + +static void writeNewIndex(FILE *f) +{ + struct dpb_record_header hdr; + + // this puts the index record in the index, optional... + buildIndex(f, DPB_INDEX_RECORD_TYPE); + + offsetToIndexRecord = (int_64)ftell(f); + + hdr.byte_order = DPB_BYTE_ORDER_MAGIC; + hdr.record_type = DPB_INDEX_RECORD_MAGIC; + hdr.record_length = 8 + (indexRecordCount * sizeof(struct indexEntry)); + fwrite(&hdr, sizeof(struct dpb_record_header), 1, f); + fwrite(&frame_number, 4, 1, f); + fwrite(&indexRecordCount, 4, 1, f); + fwrite(frameIndex, sizeof(struct indexEntry), indexRecordCount, f); +} + +static void writeNewKeyRecord(FILE *f, struct part *part) +{ + struct dpb_record_header hdr; + + buildIndex(f, DPB_KEY_RECORD_TYPE); + + hdr.byte_order = DPB_BYTE_ORDER_MAGIC; + hdr.record_type = DPB_KEY_RECORD_MAGIC; + hdr.record_length = 4 + (part->num_atoms * 12); + fwrite(&hdr, sizeof(struct dpb_record_header), 1, f); + fwrite(&frame_number, 4, 1, f); + fwrite(previxyz, 4, 3*part->num_atoms, f); + deltaRecordsBeforeNextKeyRecord = KeyRecordInterval; +} + +static void writeNewDeltaRecord(FILE *f, struct part *part) +{ + int i; + struct dpb_record_header hdr; + int pad = 0; + int delta; + char c; + + buildIndex(f, DPB_DELTA_RECORD_TYPE); + + hdr.byte_order = DPB_BYTE_ORDER_MAGIC; + hdr.record_type = DPB_DELTA_RECORD_MAGIC; + hdr.record_length = 4 + (part->num_atoms * 3); + while (hdr.record_length % 4 != 0) { + pad++; + hdr.record_length++; + } + + fwrite(&hdr, sizeof(struct dpb_record_header), 1, f); + fwrite(&frame_number, 4, 1, f); + for (i=0; i<(part->num_atoms*3); i++) { + delta = ixyz[i] - previxyz[i]; + if (delta < -128) { + delta = -128; + } + if (delta > 127) { + delta = 127; + } + c = (char)delta; + fwrite(&c, 1, 1, f); + } + c = '\0'; + while (pad-- > 0) { + fwrite(&c, 1, 1, f); + } +} + +static void writeNewFrame(FILE *f, struct part *part, struct xyz *pos) +{ + int i; + int j; + int *tmp; + + for (i=0, j=0; i<3*part->num_atoms; i+=3, j++) { + ixyz[i+0] = (int)pos[j].x; + ixyz[i+1] = (int)pos[j].y; + ixyz[i+2] = (int)pos[j].z; + } + if (KeyRecordInterval > 1) { + writeNewDeltaRecord(f, part); + } + + tmp = previxyz; + previxyz = ixyz; + ixyz = tmp; + + if (deltaRecordsBeforeNextKeyRecord-- < 0) { + writeNewKeyRecord(f, part); + } + flushOutputFile(f); + frame_number++; +} + +static void writeNewEndRecord(FILE *f) +{ + struct dpb_record_header hdr; + int_64 offset; + int_64 offsetToEndOfFile; + int high, low; + + offsetToEndOfFile = (int_64)(ftell(f) + 28L); + + hdr.byte_order = DPB_BYTE_ORDER_MAGIC; + hdr.record_type = DPB_END_RECORD_MAGIC; + hdr.record_length = 16; + fwrite(&hdr, sizeof(struct dpb_record_header), 1, f); + + offset = offsetToFirstRecord - offsetToEndOfFile; + high = (offset >> 32) & 0xffffffff; + low = offset & 0xffffffff; + fwrite(&high, 4, 1, f); + fwrite(&low, 4, 1, f); + + offset = offsetToIndexRecord - offsetToEndOfFile; + high = (offset >> 32) & 0xffffffff; + low = offset & 0xffffffff; + fwrite(&high, 4, 1, f); + fwrite(&low, 4, 1, f); + flushOutputFile(f); +} + +static void writeNewOutputTrailer(FILE *f, struct part *part, int frameNumber) +{ + if (deltaRecordsBeforeNextKeyRecord != KeyRecordInterval) { + frameNumber--; + writeNewKeyRecord(f, part); + frameNumber++; + } + writeNewIndex(f); + writeNewEndRecord(f); +} + + +void writeOutputHeader(FILE *f, struct part *part) +{ + if (DEBUG(D_DYNAMICS_SIMPLE_MOVIE)) { // -D15 + return; + } + if (!DumpAsText) { + initializeDeltaBuffers(part); + } + switch (OutputFormat) { + case 0: + writeXYZOutputHeader(f, part); + break; + case 1: + writeOldOutputHeader(f, part); + break; + case 2: + writeNewOutputHeader(f, part); + break; + default: + ERROR1("Invalid OutputFormat: %d", OutputFormat); + } +} + +void writeOutputTrailer(FILE *f, struct part *part, int frameNumber) +{ + if (DEBUG(D_DYNAMICS_SIMPLE_MOVIE)) { // -D15 + return; + } + switch (OutputFormat) { + case 0: + writeXYZOutputTrailer(f, part, frameNumber); + break; + case 1: + writeOldOutputTrailer(f, part, frameNumber); + break; + case 2: + writeNewOutputTrailer(f, part, frameNumber); + break; + default: + ERROR1("Invalid OutputFormat: %d", OutputFormat); + } +} + +static float atomColors[10][3] = { + { 1.0, 0.0, 0.0 }, // X red + { 0.0, 1.0, 1.0 }, // H cyan + { 1.0, 1.0, 1.0 }, // He white + { 1.0, 1.0, 1.0 }, // Li white + { 1.0, 1.0, 1.0 }, // Be white + { 1.0, 1.0, 1.0 }, // B white + { 0.0, 1.0, 0.0 }, // C green + { 1.0, 0.0, 1.0 }, // N magenta + { 0.5, 0.0, 0.0 }, // O red + { 1.0, 1.0, 1.0 }, // white +}; + +#define RADIUS_SCALE 5 +void +writeSimpleAtomPosition(struct part *part, struct xyz *positions, int i) +{ + struct atom *a = part->atoms[i]; + double vdwr = a->type->vanDerWaalsRadius; + int protons = a->type->protons; + + if (protons > 9) { + protons = 9; // don't overrun the atomColors table above + } + + // sphere x y z radius r g b + fprintf(OutputFile, "s %f %f %f %f %f %f %f\n", + positions[i].x, + positions[i].y, + positions[i].z, + vdwr * RADIUS_SCALE, + atomColors[protons][0], + atomColors[protons][1], + atomColors[protons][2] + ); +} + +void +writeSimplePositionMarker(struct xyz *position, float radius, float r, float g, float b) +{ + fprintf(OutputFile, "s %f %f %f %f %f %f %f\n", + position->x, + position->y, + position->z, + radius, + r, g, b); +} + +static float forceColors[13][3] = { + { 1.0, 1.0, 1.0 }, // 0 white: total force on atom + { 1.0, 0.0, 0.0 }, // 1 red: stretch force + { 0.0, 1.0, 0.0 }, // 2 green: bend force on central atom + { 0.0, 0.0, 1.0 }, // 3 blue: bend force on non-central atom + { 0.0, 1.0, 1.0 }, // 4 cyan: vdw force + { 1.0, 0.0, 1.0 }, // 5 magenta: + { 1.0, 1.0, 0.0 }, // 6 yellow: total force on atom from potential deltas + { 1.0, 1.0, 0.5 }, // 7 + { 1.0, 0.5, 1.0 }, // 8 + { 0.5, 1.0, 1.0 }, // 9 + { 0.5, 0.5, 1.0 }, // 10 + { 0.5, 1.0, 0.5 }, // 11 + { 1.0, 0.5, 0.5 } // 12 +}; + +void +writeSimpleForceVector(struct xyz *positions, int i, struct xyz *force, int color, double scale) +{ + double fSquared; + struct xyz f; + + if (1 /*!atom[i].inJig*/) { + fprintf(OutputFile, "l %f %f %f %f %f %f %f %f %f\n", + positions[i].x, + positions[i].y, + positions[i].z, + positions[i].x + (force->x * scale * SimpleMovieForceScale), + positions[i].y + (force->y * scale * SimpleMovieForceScale), + positions[i].z + (force->z * scale * SimpleMovieForceScale), + forceColors[color][0], + forceColors[color][1], + forceColors[color][2]); + if (color != 0) { + f = *force; + fSquared = vdot(f, f); + fprintf(stderr, "force: %f type: %d\n", sqrt(fSquared), color); + } + } +} + +void +writeSimpleForceVectorOffset(struct xyz *positions, int i, struct xyz *force, int color, double scale, struct xyz offset) +{ + double fSquared; + struct xyz f; + + if (1 /*!atom[i].inJig*/) { + fprintf(OutputFile, "l %f %f %f %f %f %f %f %f %f\n", + positions[i].x + offset.x, + positions[i].y + offset.y, + positions[i].z + offset.z, + positions[i].x + offset.x + (force->x * scale * SimpleMovieForceScale), + positions[i].y + offset.y + (force->y * scale * SimpleMovieForceScale), + positions[i].z + offset.z + (force->z * scale * SimpleMovieForceScale), + forceColors[color][0], + forceColors[color][1], + forceColors[color][2]); + if (color != 0) { + f = *force; + fSquared = vdot(f, f); + fprintf(stderr, "force: %f type: %d\n", sqrt(fSquared), color); + } + } +} + +void +writeSimpleStressVector(struct xyz *positions, int a1, int a2, int ac, double stress, double min, double max) +{ + float r; + float b; + float intensity; + int sign = stress < 0.0; +#define MIN_INTENSITY 0.2 + + intensity = (fabs(stress) - min) / (max - min); + if (intensity < 0) { + return; + } + intensity = MIN_INTENSITY + intensity / (1.0 - MIN_INTENSITY); + if (intensity > 1.0) { + intensity = 1.0; + } + if (sign) { + r = intensity; + b = 0.0; + } else { + r = 0.0; + b = intensity; + } + fprintf(OutputFile, "l %f %f %f %f %f %f %f %f %f\n", + positions[a1].x, + positions[a1].y, + positions[a1].z, + positions[a2].x, + positions[a2].y, + positions[a2].z, + r, 0.0, b); + if (ac >= 0) { + fprintf(OutputFile, "l %f %f %f %f %f %f %f %f %f\n", + positions[ac].x, + positions[ac].y, + positions[ac].z, + (positions[a1].x + positions[a2].x) / 2.0, + (positions[a1].y + positions[a2].y) / 2.0, + (positions[a1].z + positions[a2].z) / 2.0, + r, 0.0, b); + } +} + +void +writeSimpleMovieFrame(struct part *part, struct xyz *positions, struct xyz *forces, const char *format, ...) +{ + int i; + va_list args; + + for (i=0; i<part->num_atoms; i++) { + writeSimpleAtomPosition(part, positions, i); + if (forces != NULL && !part->atoms[i]->isGrounded) { + writeSimpleForceVector(positions, i, &forces[i], 0, 1.0); + } + } + fprintf(OutputFile, "f "); + va_start(args, format); + vfprintf(OutputFile, format, args); + va_end(args); + fprintf(OutputFile, "\n"); + fflush(OutputFile); +} + +/** + */ +void writeDynamicsMovieFrame(FILE *outf, int n, struct part *part, struct xyz *pos, int last_frame, struct xyz *currentPositions) +{ + if (DEBUG(D_DYNAMICS_SIMPLE_MOVIE)) { // -D15 + return; + } + callback_writeFrame(part, pos, last_frame); + if (outf != NULL) { + switch (OutputFormat) { + case 0: + fprintf(outf, "%d\nFrame %d, Iteration: %d\n", part->num_atoms, n, Iteration); + writeXYZFrame(outf, part, pos); + break; + case 1: + writeOldFrame(outf, part, pos); + break; + case 2: + writeNewFrame(outf, part, pos); + break; + } + traceJigData(part, currentPositions); + flushOutputFile(OutputFile); + } + // fprintf(stderr, "found Ke = %e\n",FoundKE); +} + +/** + */ +int writeMinimizeMovieFrame(FILE *outf, + struct part *part, + int final, + struct xyz *pos, + double rms, + double max_force, + int frameNumber, + int last_frame, + char *callLocation, + char *message, + double potential) +{ + callback_writeFrame(part, pos, last_frame); + switch (OutputFormat) { + case 0: + if (final || DumpIntermediateText) { + fprintf(outf, "%d\nRMS=%f\n", part->num_atoms, rms); + writeXYZFrame(outf, part, pos); + } + break; + case 1: + if (frameNumber < NumFrames) { + writeOldFrame(outf, part, pos); + } + break; + case 2: + writeNewFrame(outf, part, pos); + break; + } + flushOutputFile(outf); + + if (message == NULL) { + message = ""; + } + // wware 060102 callback for trace file + // cad code depends on first 4 fields when callLocation=="gradient" + write_traceline("%4d %20f %20f %s %20.10f %s\n", frameNumber, rms, max_force, callLocation, potential, message); + DPRINT6(D_MINIMIZE, "%4d %20e %20e %s %20e %s\n", frameNumber, rms, max_force, callLocation, potential, message); + if (message[0] != '\0') { + message[0] = '\0'; + } + if (final) { + writeOutputTrailer(outf, part, frameNumber); + } + if (Interrupted && !InterruptionWarning) { + WARNING("minimizer run was interrupted"); + InterruptionWarning = 1; + } + return InterruptionWarning; +} + +/* + * Local Variables: + * c-basic-offset: 4 + * tab-width: 8 + * End: + */ diff --git a/sim/src/writemovie.h b/sim/src/writemovie.h new file mode 100755 index 000000000..d2f2dc8f2 --- /dev/null +++ b/sim/src/writemovie.h @@ -0,0 +1,29 @@ +// Copyright 2005-2006 Nanorex, Inc. See LICENSE file for details. +#ifndef WRITEMOVIE_H_INCLUDED +#define WRITEMOVIE_H_INCLUDED + +#define RCSID_WRITEMOVIE_H "$Id$" + +extern void initializeDeltaBuffers(struct part *part); + +extern void writeOutputHeader(FILE *f, struct part *part); + +extern void writeOutputTrailer(FILE *f, struct part *part, int frameNumber); + +extern void writeSimpleAtomPosition(struct part *part, struct xyz *positions, int i); + +extern void writeSimplePositionMarker(struct xyz *position, float radius, float r, float g, float b); + +extern void writeSimpleForceVector(struct xyz *positions, int i, struct xyz *force, int color, double scale); + +extern void writeSimpleForceVectorOffset(struct xyz *positions, int i, struct xyz *force, int color, double scale, struct xyz offset); + +extern void writeSimpleStressVector(struct xyz *positions, int a1, int a2, int ac, double stress, double min, double max); + +extern void writeSimpleMovieFrame(struct part *part, struct xyz *positions, struct xyz *forces, const char *format, ...); + +extern void writeDynamicsMovieFrame(FILE *f, int n, struct part *part, struct xyz *pos, int last_frame, struct xyz *currentPositions); + +extern int writeMinimizeMovieFrame(FILE *f, struct part *part, int final, struct xyz *pos, double rms, double max_force, int frameNumber, int last_frame, char *callLocation, char *message, double potential); + +#endif |