diff --git a/cmake/dependencies/TrilinosPackageDependencies.xml b/cmake/dependencies/TrilinosPackageDependencies.xml
index d00b2b531bab..b74c14770dce 100644
--- a/cmake/dependencies/TrilinosPackageDependencies.xml
+++ b/cmake/dependencies/TrilinosPackageDependencies.xml
@@ -1427,20 +1427,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/stk/cmake/Dependencies.cmake b/packages/stk/cmake/Dependencies.cmake
index 31f4bba72d6d..47926cc1d0ae 100644
--- a/packages/stk/cmake/Dependencies.cmake
+++ b/packages/stk/cmake/Dependencies.cmake
@@ -1,5 +1,4 @@
SET(SUBPACKAGES_DIRS_CLASSIFICATIONS_OPTREQS
- Classic stk_classic EX OPTIONAL
Util stk_util PT OPTIONAL
Simd stk_simd PT OPTIONAL
Topology stk_topology PT OPTIONAL
diff --git a/packages/stk/stk_classic/CMakeLists.txt b/packages/stk/stk_classic/CMakeLists.txt
deleted file mode 100644
index 17ea7cb943ca..000000000000
--- a/packages/stk/stk_classic/CMakeLists.txt
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-#
-# A) Define the package
-#
-
-# ENABLE_SHADOWING_WARNINGS not possible, because of TBB
-TRIBITS_SUBPACKAGE(Classic)
-
-#
-# B) Set up package-specific options
-#
-
-TRIBITS_ADD_OPTION_AND_DEFINE(
- ${PACKAGE_NAME}_Trilinos
- HAVE_STK_Trilinos
- "Building as a Trilinos package"
- ON
- )
-
-## set fortran mangling options
-#
-#IF("${FC_FN_UNDERSCORE}" STREQUAL "NO_UNDER")
-# SET(FORTRAN_NO_UNDERSCORE ON)
-#ELSEIF("${FC_FN_UNDERSCORE}" STREQUAL "UNDER")
-# SET(FORTRAN_ONE_UNDERSCORE ON)
-#ELSEIF("${FC_FN_UNDERSCORE}" STREQUAL "SECOND_UNDER")
-# SET(FORTRAN_TWO_UNDERSCORES ON)
-#ELSE()
-# MESSAGE("Could not determine the Fortran mangling defaulting to no underscore.")
-# SET(FORTRAN_NO_UNDERSCORE ON)
-#ENDIF()
-
-#
-# C) Add the libraries, tests, and examples
-#
-
-ADD_SUBDIRECTORY(stk_util)
-
-ADD_SUBDIRECTORY(stk_mesh)
-
-ADD_SUBDIRECTORY(stk_algsup)
-
-IF (${PACKAGE_NAME}_ENABLE_Sacado)
- ADD_SUBDIRECTORY(stk_expreval)
-ENDIF()
-
-IF( ${PACKAGE_NAME}_ENABLE_SEACASIoss )
- ADD_SUBDIRECTORY(stk_io)
-ENDIF()
-
-IF( ${PACKAGE_NAME}_ENABLE_FEI AND ${PACKAGE_NAME}_ENABLE_AztecOO )
- ADD_SUBDIRECTORY(stk_linsys)
-ENDIF()
-
-IF( ${PACKAGE_NAME}_ENABLE_Zoltan AND TPL_ENABLE_MPI )
- ADD_SUBDIRECTORY(stk_rebalance)
-ENDIF()
-
-ADD_SUBDIRECTORY(stk_transfer)
-
-IF( ${PACKAGE_NAME}_ENABLE_ThreadPool )
- ADD_SUBDIRECTORY(stk_search)
- ADD_SUBDIRECTORY(stk_search_util)
-ENDIF()
-
-IF( ${PACKAGE_NAME}_ENABLE_IntrepidCore AND ${PACKAGE_NAME}_ENABLE_SEACASIoss AND ${PACKAGE_NAME}_ENABLE_ThreadPool )
- ADD_SUBDIRECTORY(stk_percept)
- ADD_SUBDIRECTORY(stk_adapt)
-ENDIF()
-
-IF ( ${PACKAGE_NAME}_ENABLE_BoostLib AND ${PACKAGE_NAME}_ENABLE_TESTS )
- ADD_SUBDIRECTORY(stk_usecases)
-ENDIF()
-
-#
-# D) Do standard postprocessing
-#
-
-TRIBITS_SUBPACKAGE_POSTPROCESS()
diff --git a/packages/stk/stk_classic/README_stk_trilinos b/packages/stk/stk_classic/README_stk_trilinos
deleted file mode 100644
index 79d439b69bbd..000000000000
--- a/packages/stk/stk_classic/README_stk_trilinos
+++ /dev/null
@@ -1,19 +0,0 @@
-
-The STK package in Trilinos is a work in progress.
-
-stk_mesh and stk_linsys are building, a portion of stk_util is building
-(only the portion needed to build stk_mesh), and stk_mesh/unit_tests tests
-are building and running.
-
-To enable the STK package in your cmake configure script, add these directives:
- -D Trilinos_ENABLE_STK:BOOL=ON
- -D TPL_ENABLE_Boost:BOOL=ON
- -D TPL_ENABLE_MPI:BOOL=ON
- -D Boost_INCLUDE_DIRS:PATH=/sierra/Dev/william/sierra_code/TPLs_src/boost/1.38.0
-
-STK currently has a mandatory dependence on those TPLs (MPI and Boost). This will be
-re-visited as time permits.
-
-Note that the Boost path above is specific to the engsci scico lan, and may be
-volatile. You should provide your own boost path...
-
diff --git a/packages/stk/stk_classic/cmake/Dependencies.cmake b/packages/stk/stk_classic/cmake/Dependencies.cmake
deleted file mode 100644
index 0c1650291bd6..000000000000
--- a/packages/stk/stk_classic/cmake/Dependencies.cmake
+++ /dev/null
@@ -1,8 +0,0 @@
-SET(LIB_REQUIRED_DEP_PACKAGES Shards Teuchos)
-SET(LIB_OPTIONAL_DEP_PACKAGES SEACASIoss FEI AztecOO ThreadPool Zoltan Intrepid Sacado)
-SET(TEST_REQUIRED_DEP_PACKAGES SEACASExodus)
-SET(TEST_OPTIONAL_DEP_PACKAGES)
-SET(LIB_REQUIRED_DEP_TPLS Boost BoostLib)
-SET(LIB_OPTIONAL_DEP_TPLS OpenNURBS)
-SET(TEST_REQUIRED_DEP_TPLS)
-SET(TEST_OPTIONAL_DEP_TPLS gtest)
diff --git a/packages/stk/stk_classic/cmake/STKClassic_config.h.in b/packages/stk/stk_classic/cmake/STKClassic_config.h.in
deleted file mode 100644
index 9ba66f79dbb6..000000000000
--- a/packages/stk/stk_classic/cmake/STKClassic_config.h.in
+++ /dev/null
@@ -1,11 +0,0 @@
-
-/* Define to indicate that STK is in Trilinos (rather than in Sierra) */
-#cmakedefine HAVE_STK_Trilinos
-
-#cmakedefine HAVE_MPI
-
-#cmakedefine FORTRAN_NO_UNDERSCORE
-
-#cmakedefine FORTRAN_ONE_UNDERSCORE
-
-#cmakedefine FORTRAN_TWO_UNDERSCORES
diff --git a/packages/stk/stk_classic/conversion_scripts/stk_to_stk_classic b/packages/stk/stk_classic/conversion_scripts/stk_to_stk_classic
deleted file mode 100755
index 845889fe6a39..000000000000
--- a/packages/stk/stk_classic/conversion_scripts/stk_to_stk_classic
+++ /dev/null
@@ -1,3 +0,0 @@
-base_dir=`dirname $0`
-
-find . -type f -exec sed -i -f $base_dir/stk_to_stk_classic.sed {} \;
diff --git a/packages/stk/stk_classic/conversion_scripts/stk_to_stk_classic.sed b/packages/stk/stk_classic/conversion_scripts/stk_to_stk_classic.sed
deleted file mode 100644
index 0b339ca8ddd4..000000000000
--- a/packages/stk/stk_classic/conversion_scripts/stk_to_stk_classic.sed
+++ /dev/null
@@ -1,3 +0,0 @@
-s/namespace stk\([^a-zA-Z0-9_-]\)/namespace stk_classic\1/g
-s/namespace stk$/namespace stk_classic/g
-s/stk\([ \t]*::\)/stk_classic\1/g
diff --git a/packages/stk/stk_classic/doc/.gitignore b/packages/stk/stk_classic/doc/.gitignore
deleted file mode 100644
index e237d1a6e7fd..000000000000
--- a/packages/stk/stk_classic/doc/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/html/
-/tags
diff --git a/packages/stk/stk_classic/doc/Doxyfile b/packages/stk/stk_classic/doc/Doxyfile
deleted file mode 100644
index 68b45641129c..000000000000
--- a/packages/stk/stk_classic/doc/Doxyfile
+++ /dev/null
@@ -1,4 +0,0 @@
-@INCLUDE = Doxyfile.common.config
-@INCLUDE = Doxyfile.input
-
-# Do not edit this file, put local configuration overrides in Doxyfile.input
diff --git a/packages/stk/stk_classic/doc/Doxyfile.common.config b/packages/stk/stk_classic/doc/Doxyfile.common.config
deleted file mode 100644
index 3133070f1a29..000000000000
--- a/packages/stk/stk_classic/doc/Doxyfile.common.config
+++ /dev/null
@@ -1,1455 +0,0 @@
-# This file contains every configuration parameter known to doxygen along
-# with some documentation for the paramter. The settings in this file represent
-# the default settings for STK products' doxygen.
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME = "Sierra Toolkit"
-
-# 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 = "Version of the Day"
-
-# 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.
-
-# We will default to current directory and allow this to be overridden with
-# the STK_FORCE_DOX_OUTPUT_DIR environment variable
-OUTPUT_DIRECTORY = $(STK_FORCE_DOX_OUTPUT_DIR)
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written.
-
-OUTPUT_LANGUAGE = English
-
-# 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
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF =
-
-# 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. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful if your file system
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES = NO
-
-# 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 regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF = NO
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_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 INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES = 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 = 2
-
-# 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 =
-
-# 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 = NO
-
-# 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 OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL = NO
-
-# Doxygen selects the parser to use depending on the extension of the
-# files it parses. With this tag you can assign which parser to use
-# for a given extension. Doxygen has a built-in mapping, but you can
-# override or extend it using this tag. The format is ext=language,
-# where ext is a file extension, and language is one of the parsers
-# supported by doxygen: IDL, Java, Javascript, CSharp, C, C++, D, PHP,
-# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
-# doxygen treat .inc files as Fortran files (default is PHP), and .f
-# files as C (default is Fortran), use: inc=Fortran f=C. Note that for
-# custom extensions you also need to set FILE_PATTERNS otherwise the
-# files are not read by doxygen.
-
-EXTENSION_MAPPING =
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also makes the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip
-# sources only. Doxygen will parse them like normal C++ but will
-# assume all classes use public instead of private inheritance when no
-# explicit protection keyword is present.
-
-SIP_SUPPORT = NO
-
-# For Microsoft's IDL there are propget and propput attributes to
-# indicate getter and setter methods for a property. Setting this
-# option to YES (the default) will make doxygen replace the get and
-# set methods by a property in the documentation. This will only work
-# if the methods are indeed getting or setting a simple type. If this
-# is not the case, or you want to show the methods anyway, you should
-# set this option to NO.
-
-IDL_PROPERTY_SUPPORT = 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
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING = YES
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT = NO
-
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use
-# to determine which symbols to keep in memory and which to flush to
-# disk. When the cache is full, less often used symbols will be
-# written to disk. For small to medium size projects (<1000 input
-# files) the default value is probably good enough. For larger
-# projects a too small cache size can cause doxygen to be busy
-# swapping symbols to and from disk most of the time causing a
-# significant performance penality. If the system has enough physical
-# memory increasing the cache will improve the performance by keeping
-# more symbols in memory. Note that the value works on a logarithmic
-# scale so increasing the size by one will roughly double the memory
-# usage. The cache size is given by this formula:
-# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
-# corresponding to a cache size of 2^16 = 65536 symbols
-
-SYMBOL_CACHE_SIZE = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# 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 = NO
-
-# 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 = YES
-
-# 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 = NO
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespaces are hidden.
-
-EXTRACT_ANON_NSPACES = NO
-
-# 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 classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = YES
-
-# 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 HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS = NO
-
-# 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
-
-# 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
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# 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 SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
-# will list include files with double quotes in the documentation
-# rather than with sharp brackets.
-
-FORCE_LOCAL_INCLUDES = NO
-
-# 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 = NO
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
-# will sort the (brief and detailed) documentation of class members so that
-# constructors and destructors are listed first. If set to NO (the default)
-# the constructors will appear in the respective orders defined by
-# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
-# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
-# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME = NO
-
-# 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
-
-# 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 macro consists 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 macros in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES = 30
-
-# 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
-
-# If the sources in your project are distributed over multiple
-# directories then setting the SHOW_DIRECTORIES tag to YES will show
-# the directory hierarchy in the documentation. The default is NO.
-
-SHOW_DIRECTORIES = YES
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
-
-SHOW_FILES = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page.
-# This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
-
-SHOW_NAMESPACES = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or
-# script that doxygen should invoke to get the current version for
-# each file (typically from the version control system). Doxygen will
-# invoke the program by executing (via popen()) the command
-# , where is the value of the
-# FILE_VERSION_FILTER tag, and is the name of an input
-# file provided by doxygen. Whatever the program writes to standard
-# output is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. The create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option.
-# You can optionally specify a file name after the option, if omitted
-# DoxygenLayout.xml will be used as the name of the layout file.
-
-LAYOUT_FILE =
-
-#---------------------------------------------------------------------------
-# 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
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR = YES
-
-# The WARN_NO_PARAMDOC option can be enabled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC = NO
-
-# 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. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-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 = ./index.dox
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
-
-INPUT_ENCODING = UTF-8
-
-# 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++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
-# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
-# *.f90 *.f *.vhd *.vhdl
-
-FILE_PATTERNS = *.dox *.cpp *.hpp *.h
-
-# 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 = YES
-
-# 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. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS =
-
-# 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 , where
-# is the value of the INPUT_FILTER tag, and is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-# If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis.
-# Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match.
-# The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
-# is applied to all files.
-
-FILTER_PATTERNS =
-
-# 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. Note: To get rid of all source code in the generated
-# output, make sure also VERBATIM_HEADERS is set to NO.
-
-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
-
-# 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 REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.
-# Otherwise they will link to the documentation.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS = 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
-
-#---------------------------------------------------------------------------
-# 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 = YES
-
-# 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 = 4
-
-# 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 = html
-
-# 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. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
-# Doxygen will adjust the colors in the stylesheet and background images
-# according to this color. Hue is specified as an angle on a colorwheel,
-# see http://en.wikipedia.org/wiki/Hue for more information.
-# For instance the value 0 represents red, 60 is yellow, 120 is green,
-# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
-# The allowed range is 0 to 359.
-
-HTML_COLORSTYLE_HUE = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
-# the colors in the HTML output. For a value of 0 the output will use
-# grayscales only. A value of 255 will produce the most vivid colors.
-
-HTML_COLORSTYLE_SAT = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
-# the luminance component of the colors in the HTML output. Values below
-# 100 gradually make the output lighter, whereas values above 100 make
-# the output darker. The value divided by 100 is the actual gamma applied,
-# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
-# and 100 does not change the gamma.
-
-HTML_COLORSTYLE_GAMMA = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each
-# generated HTML page will contain the date and time when the page was
-# generated. Setting this to NO can help when comparing the output of
-# multiple runs.
-
-HTML_TIMESTAMP = YES
-
-# 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 HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-HTML_DYNAMIC_SECTIONS = NO
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-
-GENERATE_DOCSET = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name
-# of the feed. A documentation feed provides an umbrella under which
-# multiple documentation sets from a single provider (such as a
-# company or product suite) can be grouped.
-
-DOCSET_FEEDNAME = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID = org.doxygen.Project
-
-# When GENERATE_PUBLISHER_ID tag specifies a string that should
-# uniquely identify the documentation publisher. This should be a
-# reverse domain-name style string,
-# e.g. com.mycompany.MyDocSet.documentation.
-
-DOCSET_PUBLISHER_ID = org.doxygen.Publisher
-
-# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
-
-DOCSET_PUBLISHER_NAME = Publisher
-
-# 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 compiled 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 directory.
-
-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 CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING =
-
-# 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
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
-# that can be used as input for Qt's qhelpgenerator to generate a
-# Qt Compressed Help (.qch) of the generated HTML documentation.
-
-GENERATE_QHP = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
-# be used to specify the file name of the resulting .qch file.
-# The path specified is relative to the HTML output folder.
-
-QCH_FILE =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-QHP_NAMESPACE = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
-# add. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME =
-
-# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see
-#
-# Qt Help Project / Custom Filters.
-
-QHP_CUST_FILTER_ATTRS =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's
-# filter section matches.
-#
-# Qt Help Project / Filter Attributes.
-
-QHP_SECT_FILTER_ATTRS =
-
-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
-# be used to specify the location of Qt's qhelpgenerator.
-# If non-empty doxygen will try to run qhelpgenerator on the generated
-# .qhp file.
-
-QHG_LOCATION =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-# will be generated, which together with the HTML files, form an Eclipse help
-# plugin. To install this plugin and make it available under the help contents
-# menu in Eclipse, the contents of the directory containing the HTML and XML
-# files needs to be copied into the plugins directory of eclipse. The name of
-# the directory within the plugins directory should be the same as
-# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
-# the help appears.
-
-GENERATE_ECLIPSEHELP = NO
-
-# A unique identifier for the eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have
-# this name.
-
-ECLIPSE_DOC_ID = org.doxygen.Project
-
-# 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 [0,1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-# Note that a value of 0 will completely suppress the enum values from appearing in the overview section.
-
-ENUM_VALUES_PER_LINE = 1
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value 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, DHTML, CSS and frames is required (i.e. any modern browser).
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW = YES
-
-# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
-# and Class Hierarchy pages using a tree view instead of an ordered list.
-
-USE_INLINE_TREES = 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
-
-# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
-# links to external symbols imported via tag files in a separate window.
-
-EXT_LINKS_IN_WINDOW = NO
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
-
-FORMULA_FONTSIZE = 10
-
-# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are
-# not supported properly for IE 6.0, but are supported on all modern browsers.
-# Note that when changing this option you need to delete any form_*.png files
-# in the HTML output before the changes have effect.
-
-FORMULA_TRANSPARENT = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
-# (see http://www.mathjax.org) which uses client side Javascript for the
-# rendering instead of using prerendered bitmaps. Use this if you do not
-# have LaTeX installed or if you want to formulas look prettier in the HTML
-# output. When enabled you also need to install MathJax separately and
-# configure the path to it using the MATHJAX_RELPATH option.
-
-USE_MATHJAX = NO
-
-# When MathJax is enabled you need to specify the location relative to
-# the HTML output directory using the MATHJAX_RELPATH option. The
-# destination directory should contain the MathJax.js script. For
-# instance, if the mathjax directory is located at the same level as
-# the HTML output directory, then MATHJAX_RELPATH should be
-# ../mathjax. The default value points to the mathjax.org site, so you
-# can quickly see the result without installing MathJax, but it is
-# strongly recommended to install a local copy of MathJax before
-# deployment.
-
-MATHJAX_RELPATH = http://www.mathjax.org/mathjax
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box
-# for the HTML output. The underlying search engine uses javascript
-# and DHTML and should work on any modern browser. Note that when using
-# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
-# (GENERATE_DOCSET) there is already a search function so this one should
-# typically be disabled. For large projects the javascript based search engine
-# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
-
-SEARCHENGINE = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a PHP enabled web server instead of at the web client
-# using Javascript. Doxygen will generate the search PHP script and index
-# file to put on the web server. The advantage of the server
-# based approach is that it scales better to large projects and allows
-# full text search. The disadvantages are that it is more difficult to setup
-# and does not have live searching capabilities.
-
-SERVER_BASED_SEARCH = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-
-# SKIPPED THE REST
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# SKIPPED
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# SKIPPED
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# SKIPPED
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# SKIPPED
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# SKIPPED
-
-#---------------------------------------------------------------------------
-# 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 = YES
-
-# 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_DEFINED 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. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED += DOXYGEN_COMPILE STK_HAS_MPI
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF 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::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-#
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-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 = ./tags
-
-# 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 = YES
-
-# 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 also works with HAVE_DOT disabled, but it is recommended to
-# install and use dot, since it yields more powerful graphs.
-
-CLASS_DIAGRAMS = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH =
-
-# 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 = YES
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
-# allowed to run in parallel. When set to 0 (the default) doxygen will
-# base this on the number of processors available in the system. You can set it
-# explicitly to a value larger than 0 to get control over the balance
-# between CPU load and processing speed.
-
-DOT_NUM_THREADS = 0
-
-# By default doxygen will write a font called FreeSans.ttf to the
-# output directory and reference it in all dot files that doxygen
-# generates. This font does not include all possible unicode
-# characters however, so when you need these (or just want a
-# differently looking font) you can specify the font name using
-# DOT_FONTNAME. You need need to make sure dot is able to find the
-# font, which can be done by putting it in a standard location or by
-# setting the DOTFONTPATH environment variable or by setting
-# DOT_FONTPATH to the directory containing the font.
-
-DOT_FONTNAME = FreeSans.ttf
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE = 10
-
-# By default doxygen will tell dot to use the output directory to look for the
-# FreeSans.ttf font (which doxygen will put there itself). If you specify a
-# different font using DOT_FONTNAME you can set the path where dot
-# can find it using this tag.
-
-DOT_FONTPATH =
-
-# 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 the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK = NO
-
-# 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 CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will generate a graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH = 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 in 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 MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the
-# \mscfile command).
-
-MSCFILE_DIRS =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS = NO
-
-# 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 intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP = YE
diff --git a/packages/stk/stk_classic/doc/build_docs b/packages/stk/stk_classic/doc/build_docs
deleted file mode 100755
index 0e5032dca513..000000000000
--- a/packages/stk/stk_classic/doc/build_docs
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-
-rm -f Doxyfile.input
-rm -f index.dox
-
-# Create Doxyfile.input
-
-echo "# DO NOT EDIT THIS FILE, IT IS GENERATED BY ./build_docs" >> Doxyfile.input
-echo >> Doxyfile.input
-
-for i in ../stk_*/doc/Doxyfile.input; do
- echo "@INCLUDE = $i" >> Doxyfile.input
-done
-echo >> Doxyfile.input
-
-echo "# OVERRIDES, CHANGE ./build_docs IF YOU NEED TO CHANGE THESE" >> Doxyfile.input
-echo "# If there needs to be a different configuration when generating doxygen" >> Doxyfile.input
-echo "# STK-wide via build_docs versus generating doxygen for individual STK" >> Doxyfile.input
-echo "# products, express that here" >> Doxyfile.input
-
-# Create index.dox
-
-echo "/** \mainpage Sierra Toolkit" > index.dox
-echo " *" >> index.dox
-
-echo " * @section stk_products The Sierra Toolkit contains the following products:" >> index.dox
-echo " *" >> index.dox
-for i in ../stk_*/doc/Doxyfile.input; do
- gawk -- '/#BANNER/{print " * - "substr($0, 8)}' $i >> index.dox
- echo " *" >> index.dox
-done
-echo " *" >> index.dox
-
-echo " * @section stk_howto How to..." >> index.dox
-echo " *" >> index.dox
-for i in ../stk_*/doc/Doxyfile.input; do
- gawk -- '/#HOWTO/{print " * - "substr($0, 7)}' $i >> index.dox
- echo " *" >> index.dox
-done
-echo " *" >> index.dox
-
-echo " */" >> index.dox
-
-doxygen
diff --git a/packages/stk/stk_classic/stk_adapt/CMakeLists.txt b/packages/stk/stk_classic/stk_adapt/CMakeLists.txt
deleted file mode 100644
index f94a3e8dca37..000000000000
--- a/packages/stk/stk_classic/stk_adapt/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-
-ADD_SUBDIRECTORY(stk_adapt)
-
-IF( TPL_ENABLE_Netcdf)
- IF (NOT CMAKE_BUILD_TYPE STREQUAL DEBUG)
- TRIBITS_ADD_TEST_DIRECTORIES(unit_tests)
-# TRIBITS_ADD_TEST_DIRECTORIES(regression_tests)
- ENDIF()
-ENDIF()
diff --git a/packages/stk/stk_classic/stk_adapt/regression_tests/CMakeLists.txt b/packages/stk/stk_classic/stk_adapt/regression_tests/CMakeLists.txt
deleted file mode 100644
index efd604a8521f..000000000000
--- a/packages/stk/stk_classic/stk_adapt/regression_tests/CMakeLists.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-
-INCLUDE(TribitsAddExecutableAndTest)
-
-ASSERT_DEFINED(PACKAGE_SOURCE_DIR CMAKE_CURRENT_SOURCE_DIR)
-
-FILE(GLOB SOURCES *.cpp)
-
-
-# An input exodus file is required to run these regression tests.
-
-#TRIBITS_ADD_EXECUTABLE_AND_TEST(
-# adapt_RegressionTest
-# SOURCES ${SOURCES}
-# COMM serial mpi
-# STANDARD_PASS_OUTPUT
-# )
-
diff --git a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestFileLoc.hpp b/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestFileLoc.hpp
deleted file mode 100644
index cdf2aa547573..000000000000
--- a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestFileLoc.hpp
+++ /dev/null
@@ -1,8 +0,0 @@
-#if 1
- const std::string path_sep = "._.";
- const std::string input_files_loc="./input_files"+path_sep;
- const std::string output_files_loc="./output_files"+path_sep;
-#else
- const std::string input_files_loc="./input_files/";
- const std::string output_files_loc="./output_files/";
-#endif
diff --git a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestLocalRefiner.cpp b/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestLocalRefiner.cpp
deleted file mode 100644
index d5900f360402..000000000000
--- a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestLocalRefiner.cpp
+++ /dev/null
@@ -1,992 +0,0 @@
-/*--------------------------------------------------------------------*/
-/* Copyright 2009 Sandia Corporation. */
-/* Under the terms of Contract DE-AC04-94AL85000, there is a */
-/* non-exclusive license for use of this work by or on behalf */
-/* of the U.S. Government. Export of this program may require */
-/* a license from the United States Government. */
-/*--------------------------------------------------------------------*/
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#if defined( STK_HAS_MPI )
-#include
-#endif
-
-#include
-
-#include
-#include
-
-#include
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include
-
-namespace stk_classic
-{
- namespace adapt
- {
- namespace regression_tests
- {
-
-#if !defined(__IBMCPP__)
- bool DO_TESTS=true;
-#else
- // maybe it takes too long on dawn so we turn off these long-running tests...
- bool DO_TESTS=false;
-#endif
-
- bool LARGE_TEST_ONLY=false;
-
-#include "RegressionTestFileLoc.hpp"
-
-// const std::string input_files_loc="./input_files/";
-// const std::string output_files_loc="./output_files/";
-
- static std::string post_fix[9] = {"np0", "np1", "np2", "np3", "np4", "np5", "np6", "np7", "np8"};
-
-#define EXTRA_PRINT 0
-
- //=============================================================================
- //=============================================================================
- //=============================================================================
-
-
- static void normalize(double input_normal[3], double normal[3])
- {
- double sum = std::sqrt(input_normal[0]*input_normal[0]+
- input_normal[1]*input_normal[1]+
- input_normal[2]*input_normal[2]);
- normal[0] = input_normal[0] / sum;
- normal[1] = input_normal[1] / sum;
- normal[2] = input_normal[2] / sum;
- }
-
- static void normalize(double input_output_normal[3])
- {
- normalize(input_output_normal, input_output_normal);
- }
-
- static double distance(double c0[3], double c1[3])
- {
- return std::sqrt((c0[0]-c1[0])*(c0[0]-c1[0]) + (c0[1]-c1[1])*(c0[1]-c1[1]) + (c0[2]-c1[2])*(c0[2]-c1[2]) );
- }
-
- static void difference(double v01[3], double c0[3], double c1[3])
- {
- v01[0] = c0[0] - c1[0];
- v01[1] = c0[1] - c1[1];
- v01[2] = c0[2] - c1[2];
- }
- static double dot(double c0[3], double c1[3])
- {
- return c0[0]*c1[0] + c0[1]*c1[1] + c0[2]*c1[2];
- }
-
- static double plane_dot_product(double plane_point[3], double plane_normal[3], double point[3])
- {
- double normal[3]={0,0,0};
- normalize(plane_normal, normal);
- double dot = 0.0;
- for (int i = 0; i < 3; i++)
- {
- dot += (point[i] - plane_point[i])*normal[i];
- }
- return dot;
- }
-
-
-#if 0
- static void project_point_to_plane(double plane_point[3], double plane_normal[3], double point[3], double projected_point[3])
- {
- double normal[3]={0,0,0};
- normalize(plane_normal, normal);
- double dot = plane_dot_product(plane_point, plane_normal, point);
- for (int i = 0; i < 3; i++)
- {
- projected_point[i] = plane_point[i] + (point[i] - dot*normal[i]);
- }
- }
-#endif
-
- class SetRefineField : public percept::ElementOp
- {
- percept::PerceptMesh& m_eMesh;
- public:
- SetRefineField(percept::PerceptMesh& eMesh) : m_eMesh(eMesh) {
- }
-
- virtual bool operator()(const stk_classic::mesh::Entity& element, stk_classic::mesh::FieldBase *field, const mesh::BulkData& bulkData)
- {
- double plane_point[3] = {2,0,0};
- double plane_normal[3] = {1, .5, -.5};
-
- const mesh::PairIterRelation elem_nodes = element.relations( stk_classic::mesh::fem::FEMMetaData::NODE_RANK );
- unsigned num_node = elem_nodes.size();
- double *f_data = PerceptMesh::field_data_entity(field, element);
- VectorFieldType* coordField = m_eMesh.get_coordinates_field();
-
- bool found = false;
- for (unsigned inode=0; inode < num_node-1; inode++)
- {
- mesh::Entity & node_i = * elem_nodes[ inode ].entity();
- double *coord_data_i = PerceptMesh::field_data(coordField, node_i);
-
- for (unsigned jnode=inode+1; jnode < num_node; jnode++)
- {
- mesh::Entity & node_j = * elem_nodes[ jnode ].entity();
- double *coord_data_j = PerceptMesh::field_data(coordField, node_j);
-
- double dot_0 = plane_dot_product(plane_point, plane_normal, coord_data_i);
- double dot_1 = plane_dot_product(plane_point, plane_normal, coord_data_j);
-
- // if edge crosses the plane...
- if (dot_0*dot_1 < 0)
- {
- found=true;
- break;
- }
- }
- }
- if (found)
- f_data[0] = 1.0;
- else
- f_data[0] = 0.0;
-
- return false; // don't terminate the loop
- }
- virtual void init_elementOp() {}
- virtual void fini_elementOp() {}
- };
-
- class SetUnrefineField : public percept::ElementOp
- {
- percept::PerceptMesh& m_eMesh;
- public:
- SetUnrefineField(percept::PerceptMesh& eMesh) : m_eMesh(eMesh) {}
- virtual bool operator()(const stk_classic::mesh::Entity& element, stk_classic::mesh::FieldBase *field, const mesh::BulkData& bulkData)
- {
- const mesh::PairIterRelation elem_nodes = element.relations( stk_classic::mesh::fem::FEMMetaData::NODE_RANK );
- unsigned num_node = elem_nodes.size();
- double *f_data = PerceptMesh::field_data_entity(field, element);
- VectorFieldType* coordField = m_eMesh.get_coordinates_field();
-
- bool found = true;
- for (unsigned inode=0; inode < num_node; inode++)
- {
- mesh::Entity & node = * elem_nodes[ inode ].entity();
- double *coord_data = PerceptMesh::field_data(coordField, node);
-
- if (coord_data[0] < 0.0 || coord_data[1] < 0.0) // || coord_data[2] > 1.1)
- {
- found=false;
- break;
- }
- }
- if (found)
- f_data[0] = -1.0;
- else
- f_data[0] = 0.0;
-
- return false; // don't terminate the loop
- }
- virtual void init_elementOp() {}
- virtual void fini_elementOp() {}
- };
-
- STKUNIT_UNIT_TEST(regr_localRefiner, break_tet_to_tet_N_5_ElementBased)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- if (LARGE_TEST_ONLY || !DO_TESTS) return;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- // start_demo_local_refiner_break_tet_to_tet_2
-
- percept::PerceptMesh eMesh;
- eMesh.open(input_files_loc+"cylinder_with_5_holes.e");
-
- Local_Tet4_Tet4_N break_tet_to_tet_N(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- stk_classic::mesh::FieldBase* refine_field = eMesh.add_field("refine_field", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- SetRefineField set_ref_field(eMesh);
- eMesh.elementOpLoop(set_ref_field, refine_field);
-
- SetUnrefineField set_unref_field(eMesh);
- //eMesh.elementOpLoop(set_ref_field, refine_field);
-
- eMesh.save_as( output_files_loc+"local_tet_N_5_ElementBased_0_"+post_fix[p_size]+".e");
-
- ElementRefinePredicate erp(0, refine_field, 0.0);
-
- PredicateBasedElementAdapter
- breaker(erp,
- eMesh, break_tet_to_tet_N, proc_rank_field);
-
- breaker.setRemoveOldElements(false);
- breaker.setAlwaysInitializeNodeRegistry(false);
- for (int ipass=0; ipass < 3; ipass++)
- {
- eMesh.elementOpLoop(set_ref_field, refine_field);
-
- std::cout << "P[" << eMesh.get_rank() << "] ipass= " << ipass << std::endl;
- breaker.doBreak();
- std::cout << "P[" << eMesh.get_rank() << "] done... ipass= " << ipass << std::endl;
- eMesh.save_as(output_files_loc+"local_tet_N_5_ElementBased_1_ipass_"+toString(ipass)+"_"+post_fix[p_size]+".e");
- }
-
- breaker.deleteParentElements();
- eMesh.save_as(output_files_loc+"local_tet_N_5_ElementBased_1_"+post_fix[p_size]+".e");
-
-#if 0
- for (int iunref_pass=0; iunref_pass < 4; iunref_pass++)
- {
- eMesh.elementOpLoop(set_unref_field, refine_field);
- std::cout << "P[" << eMesh.get_rank() << "] iunref_pass= " << iunref_pass << std::endl;
- ElementUnrefineCollection elements_to_unref = breaker.buildUnrefineList();
- breaker.unrefineTheseElements(elements_to_unref);
- eMesh.save_as(output_files_loc+"local_tet_N_5_ElementBased_1_unref_ipass_"+toString(iunref_pass)+"_"+post_fix[p_size]+".e");
- }
-
- eMesh.save_as( output_files_loc+"local_tet_N_5_ElementBased_1_unref_"+post_fix[p_size]+".e");
-#endif
- // end_demo
- }
-
- }
-
- //=============================================================================
- //=============================================================================
- //=============================================================================
-
- struct MyEdgeBasedRefinePredicate : public IEdgeBasedAdapterPredicate {
-
- MyEdgeBasedRefinePredicate(stk_classic::mesh::Selector * selector=0, stk_classic::mesh::FieldBase *field=0, double tolerance=0.0) :
- IEdgeBasedAdapterPredicate(selector, field, tolerance) {}
-
- /// Return DO_NOTHING, DO_REFINE, DO_UNREFINE or sum of these
- int operator()(const stk_classic::mesh::Entity& element, unsigned which_edge, stk_classic::mesh::Entity & node0, stk_classic::mesh::Entity & node1,
- double *coord0, double *coord1, std::vector* existing_edge_marks)
- {
- int mark = 0;
- if (0 == m_selector || (*m_selector)(element))
- {
- double plane_point[3] = {2,0,0};
- double plane_normal[3] = {1, 0, 0};
-
- double dot_0 = plane_dot_product(plane_point, plane_normal, coord0);
- double dot_1 = plane_dot_product(plane_point, plane_normal, coord1);
-
- // if edge crosses the plane...
- if (dot_0 * dot_1 < 0)
- {
- mark |= DO_REFINE;
- }
-
- if (coord0[1] < 0 && coord1[1] < 0)
- {
- mark |= DO_UNREFINE;
- }
- }
-
- return mark;
- }
- };
-
- STKUNIT_UNIT_TEST(regr_localRefiner, break_tet_to_tet_N_5_EdgeBased)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- if (LARGE_TEST_ONLY || !DO_TESTS) return;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- // start_demo_local_refiner_break_tet_to_tet_2
-
- percept::PerceptMesh eMesh;
- eMesh.open(input_files_loc+"cylinder_with_5_holes.e");
-
- Local_Tet4_Tet4_N break_tet_to_tet_N(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- stk_classic::mesh::FieldBase* refine_field = eMesh.add_field("refine_field", eMesh.element_rank(), scalarDimension);
- eMesh.commit();
-
- if (0)
- {
- SetRefineField set_ref_field(eMesh);
- eMesh.elementOpLoop(set_ref_field, refine_field);
- }
-
- eMesh.save_as( output_files_loc+"local_tet_N_5_EdgeBased_0_"+post_fix[p_size]+".e");
-
- MyEdgeBasedRefinePredicate mrp(0, refine_field, 0.0);
-
- PredicateBasedEdgeAdapter
- breaker(mrp,
- eMesh, break_tet_to_tet_N, proc_rank_field);
-
- breaker.setRemoveOldElements(false);
- breaker.setAlwaysInitializeNodeRegistry(false);
- for (int ipass=0; ipass < 5; ipass++)
- {
- //eMesh.elementOpLoop(set_ref_field, refine_field);
-
- std::cout << "P[" << eMesh.get_rank() << "] ipass= " << ipass << std::endl;
- breaker.doBreak();
- std::cout << "P[" << eMesh.get_rank() << "] done... ipass= " << ipass << std::endl;
- eMesh.save_as(output_files_loc+"local_tet_N_5_EdgeBased_1_ipass_"+toString(ipass)+"_"+post_fix[p_size]+".e");
- }
-
- //breaker.deleteParentElements();
- eMesh.save_as(output_files_loc+"local_tet_N_5_EdgeBased_1_"+post_fix[p_size]+".e");
-
-#if 1
- for (int iunref_pass=0; iunref_pass < 5; iunref_pass++)
- {
- std::cout << "P[" << eMesh.get_rank() << "] iunref_pass= " << iunref_pass << std::endl;
- ElementUnrefineCollection elements_to_unref = breaker.buildUnrefineList();
- breaker.unrefineTheseElements(elements_to_unref);
- eMesh.save_as(output_files_loc+"local_tet_N_5_EdgeBased_1_unref_ipass_"+toString(iunref_pass)+"_"+post_fix[p_size]+".e");
- }
-
- eMesh.save_as( output_files_loc+"local_tet_N_5_EdgeBased_1_unref_"+post_fix[p_size]+".e");
-#endif
- // end_demo
- }
-
- }
-
- //=============================================================================
- //=============================================================================
- //=============================================================================
-
- struct PlaneShock
- {
- double plane_point_init[3]; // = {2 + shock_displacement,0,0};
- double plane_normal[3]; // = {1, 0, 0};
- double plane_point[3]; // = {2 + shock_displacement,0,0};
-
- PlaneShock()
- {
- plane_point_init[0]=0;
- plane_point_init[1]=0;
- plane_point_init[2]=0;
- plane_point[0]=0;
- plane_point[1]=0;
- plane_point[2]=0;
- plane_normal[0]=1;
- plane_normal[1]=0;
- plane_normal[2]=0;
- }
-
- void setCurrentPlanePoint(double shock_displacement)
- {
- normalize(plane_normal);
- plane_point[0] = plane_point_init[0] + shock_displacement*plane_normal[0];
- plane_point[1] = plane_point_init[1] + shock_displacement*plane_normal[1];
- plane_point[2] = plane_point_init[2] + shock_displacement*plane_normal[2];
- }
-
- };
-
- static double shock_width = 1./5.0;
-
- static double shock_function(double x)
- {
- // normalize by width
- double width = shock_width; // 1./5.0;
- x /= width;
- return std::tanh(x);
- }
-
-
- static double shock_diff(stk_classic::mesh::FieldBase* nodal_refine_field, percept::PerceptMesh& eMesh,
- stk_classic::mesh::Entity & node0, stk_classic::mesh::Entity & node1, double *coord0, double *coord1, PlaneShock& shock, double shock_displacement)
- {
- shock.setCurrentPlanePoint(shock_displacement);
- double *plane_point = shock.plane_point;
- double *plane_normal = shock.plane_normal;
-
-#if 0
- double proj_pt_0[3]={0,0,0};
- double proj_pt_1[3]={0,0,0};
- project_point_to_plane(plane_point, plane_normal, coord0, proj_pt_0);
- project_point_to_plane(plane_point, plane_normal, coord1, proj_pt_1);
-#endif
-
- double dot_0 = plane_dot_product(plane_point, plane_normal, coord0);
- double dot_1 = plane_dot_product(plane_point, plane_normal, coord1);
-
- double v01[3] = {0,0,0};
- difference(v01, coord1, coord0);
- normalize(v01);
- normalize(plane_normal);
- double v01dotn = std::abs(dot(v01, plane_normal));
-
- double d01p = std::abs(dot_0)+std::abs(dot_1);
- dot_0 = shock_function(dot_0);
- dot_1 = shock_function(dot_1);
-
- if (nodal_refine_field)
- {
- double *fd0 = eMesh.field_data(nodal_refine_field, node0);
- double *fd1 = eMesh.field_data(nodal_refine_field, node1);
- fd0[0] = dot_0;
- fd1[0] = dot_1;
- }
-
- double d01 = distance(coord0, coord1);
-
- return (1 + 0*d01 + 0*d01p + 0*v01dotn)*std::abs(dot_0 - dot_1);
- }
-
- struct ShockBasedRefinePredicate : public IEdgeBasedAdapterPredicate {
-
- percept::PerceptMesh& m_eMesh;
- stk_classic::mesh::FieldBase * m_nodal_refine_field;
- PlaneShock m_shock;
- double m_shock_displacement;
- double m_shock_diff_criterion;
-
- ShockBasedRefinePredicate(stk_classic::mesh::FieldBase* nodal_refine_field, percept::PerceptMesh& eMesh, stk_classic::mesh::Selector* selector, stk_classic::mesh::FieldBase *field, double tolerance,
- PlaneShock shock, double shock_displacement=0, double shock_diff_criterion=0.4) :
- IEdgeBasedAdapterPredicate(selector, field, tolerance), m_eMesh(eMesh),m_nodal_refine_field(nodal_refine_field), m_shock(shock), m_shock_displacement(shock_displacement),
- m_shock_diff_criterion(shock_diff_criterion) {}
-
-
- /// Return DO_NOTHING, DO_REFINE, DO_UNREFINE or sum of these
- int operator()(const stk_classic::mesh::Entity& element, unsigned which_edge, stk_classic::mesh::Entity & node0, stk_classic::mesh::Entity & node1,
- double *coord0, double *coord1, std::vector* existing_edge_marks)
- {
- int mark=0;
- if (0 == m_selector || (*m_selector)(element))
- {
-
- // refine check
- double d01 = shock_diff(m_nodal_refine_field, m_eMesh, node0, node1, coord0, coord1, m_shock, m_shock_displacement);
- if ( d01 > m_shock_diff_criterion) // 0.05, 0.2
- {
- mark |= DO_REFINE;
- }
-
- // unrefine check
- d01 = shock_diff(0, m_eMesh, node0, node1, coord0, coord1, m_shock, m_shock_displacement);
- if ( d01 <= m_shock_diff_criterion/2.0 ) // 0.05, 0.2
- {
- mark |= DO_UNREFINE;
- }
-
- }
- return mark;
- }
-
- //double *fdata = stk_classic::mesh::field_data( *static_cast(m_field) , entity );
- //return m_selector(entity) && fdata[0] > 0;
- };
-
-
- STKUNIT_UNIT_TEST(regr_localRefiner, break_tet_to_tet_N_5_EdgeBased_shock)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- if (LARGE_TEST_ONLY || !DO_TESTS) return;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- // start_demo_local_refiner_break_tet_to_tet_2
-
- percept::PerceptMesh eMesh;
- eMesh.open(input_files_loc+"cylinder_with_5_holes.e");
-
- Local_Tet4_Tet4_N break_tet_to_tet_N(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- stk_classic::mesh::FieldBase* refine_field = eMesh.add_field("refine_field", eMesh.element_rank(), scalarDimension);
- stk_classic::mesh::FieldBase* nodal_refine_field = eMesh.add_field("nodal_refine_field", eMesh.node_rank(), scalarDimension);
- eMesh.commit();
-
- if (0)
- {
- SetRefineField set_ref_field(eMesh);
- eMesh.elementOpLoop(set_ref_field, refine_field);
- }
-
- eMesh.save_as( output_files_loc+"local_tet_N_5_EdgeBased_shock_0_"+post_fix[p_size]+".e");
-
- PlaneShock shock;
-
- ShockBasedRefinePredicate srp(nodal_refine_field, eMesh, 0, refine_field, 0.0, shock, 0.0);
-
- PredicateBasedEdgeAdapter
- breaker(srp,
- eMesh, break_tet_to_tet_N, proc_rank_field);
-
- breaker.setRemoveOldElements(false);
- breaker.setAlwaysInitializeNodeRegistry(false);
-
- for (int ipass=0; ipass < 3; ipass++)
- {
- //eMesh.elementOpLoop(set_ref_field, refine_field);
-
- std::cout << "P[" << eMesh.get_rank() << "] ipass= " << ipass << std::endl;
- breaker.doBreak();
- std::cout << "P[" << eMesh.get_rank() << "] done... ipass= " << ipass << std::endl;
- eMesh.save_as(output_files_loc+"local_tet_N_5_EdgeBased_shock_1_ipass_"+toString(ipass)+"_"+post_fix[p_size]+".e");
- }
-
- breaker.deleteParentElements();
- eMesh.save_as(output_files_loc+"local_tet_N_5_EdgeBased_shock_1_"+post_fix[p_size]+".e");
-
-#if 0
- for (int iunref_pass=0; iunref_pass < 4; iunref_pass++)
- {
- std::cout << "P[" << eMesh.get_rank() << "] iunref_pass= " << iunref_pass << std::endl;
- ElementUnrefineCollection elements_to_unref = breaker.buildUnrefineList();
- breaker.unrefineTheseElements(elements_to_unref);
- eMesh.save_as(output_files_loc+"local_tet_N_5_EdgeBased_shock_1_unref_ipass_"+toString(iunref_pass)+"_"+post_fix[p_size]+".e");
- }
-
- eMesh.save_as( output_files_loc+"local_tet_N_5_EdgeBased_shock_1_unref_"+post_fix[p_size]+".e");
-#endif
- // end_demo
- }
-
- }
-
- //=============================================================================
- //=============================================================================
- //=============================================================================
-
-
- static void do_moving_shock_test(int num_time_steps, bool save_intermediate=false, bool delete_parents=false)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- shock_width = 1./5.0;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- // start_demo_local_refiner_break_tet_to_tet_2
-
- percept::PerceptMesh eMesh;
- eMesh.open(input_files_loc+"cylinder_with_5_holes.e");
-
- Local_Tet4_Tet4_N break_tet_to_tet_N(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- stk_classic::mesh::FieldBase* refine_field = eMesh.add_field("refine_field", eMesh.element_rank(), scalarDimension);
- stk_classic::mesh::FieldBase* nodal_refine_field = eMesh.add_field("nodal_refine_field", eMesh.node_rank(), scalarDimension);
- eMesh.commit();
-
- std::cout << "moving_shock initial number elements= " << eMesh.get_number_elements() << std::endl;
-
- eMesh.save_as( output_files_loc+"moving_shock_"+post_fix[p_size]+".e.0");
-
- PlaneShock shock;
- shock.plane_point_init[0] = 2.0;
- shock.plane_point_init[1] = 0.0;
- shock.plane_point_init[2] = 0.0;
- shock.plane_normal[0] = 1;
- shock.plane_normal[1] = 0;
- shock.plane_normal[2] = 0;
-
- ShockBasedRefinePredicate srp(nodal_refine_field, eMesh, 0, refine_field, 0.0, shock, 0.0, 0.4);
-
- PredicateBasedEdgeAdapter
- breaker(srp,
- eMesh, break_tet_to_tet_N, proc_rank_field);
-
- breaker.setRemoveOldElements(false);
- breaker.setAlwaysInitializeNodeRegistry(false);
-
- double delta_shock_displacement = 0.2;
- double shock_displacement = -2.0;
- int num_ref_passes = 2;
- int num_unref_passes = 3;
-
- for (int istep = 0; istep < num_time_steps; istep++)
- {
- std::cout << "P[" << eMesh.get_rank() << "] istep= " << istep << std::endl;
-
- breaker.getRefinePredicate().m_shock_displacement = shock_displacement;
-
- for (int ipass=0; ipass < num_ref_passes; ipass++)
- {
- std::cout << "P[" << eMesh.get_rank() << "] ipass= " << ipass << std::endl;
- breaker.doBreak();
- std::cout << "P[" << eMesh.get_rank() << "] done... ipass= " << ipass << std::endl;
- if (save_intermediate)
- eMesh.save_as(output_files_loc+"tmp_moving_shock_ref_istep_ipass_"+toString(istep)+"_"+toString(ipass)+"_"+post_fix[p_size]+".e");
- }
-
- //breaker.getNodeRegistry().init_entity_repo();
- for (int iunref_pass=0; iunref_pass < num_unref_passes; iunref_pass++)
- {
- ElementUnrefineCollection elements_to_unref = breaker.buildUnrefineList();
- std::cout << "P[" << eMesh.get_rank() << "] iunref_pass= " << iunref_pass << " unref list size= " << elements_to_unref.size() << std::endl;
- breaker.unrefineTheseElements(elements_to_unref);
- if (save_intermediate)
- eMesh.save_as(output_files_loc+"tmp_moving_shock_unref_istep_ipass_"+toString(istep)+"_"+toString(iunref_pass)+"_"+post_fix[p_size]+".e");
- }
-
- if (delete_parents && istep == num_time_steps-1)
- {
- breaker.deleteParentElements();
- }
- if (istep == num_time_steps-1 || save_intermediate)
- eMesh.save_as(output_files_loc+"moving_shock_"+post_fix[p_size]+".e."+toString(istep+1) );
-
- shock_displacement += delta_shock_displacement;
-
- }
-
- eMesh.save_as(output_files_loc+"final_moving_shock_"+post_fix[p_size]+".e."+toString(num_time_steps) );
- for (int iunref=0; iunref < 10; iunref++)
- {
- breaker.unrefineAll();
- }
- breaker.deleteParentElements();
- std::cout << "moving_shock final number elements= " << eMesh.get_number_elements() << std::endl;
- eMesh.save_as(output_files_loc+"final_unrefed_moving_shock_"+post_fix[p_size]+".e."+toString(num_time_steps) );
-
- // end_demo
- }
-
- }
-
- STKUNIT_UNIT_TEST(regr_localRefiner, break_tet_to_tet_N_5_EdgeBased_moving_shock)
- {
- //if (1) return;
- const bool do_full_demo = false;
- if (LARGE_TEST_ONLY || !DO_TESTS) return;
- if (do_full_demo)
- {
- int num_time_steps = 10; // 10 for stress testing
- for (int istep=1; istep <= num_time_steps; istep++)
- do_moving_shock_test(istep, false, true);
- }
- else
- // normal regression testing
- {
- int num_time_steps = 3; // 10 for stress testing
- bool save_intermediate=true;
- do_moving_shock_test(num_time_steps, save_intermediate);
- }
- }
-
- //=============================================================================
- //=============================================================================
- //=============================================================================
-
-
- static void do_moving_shock_test_cyl_sidesets(int num_time_steps, bool save_intermediate=false, bool delete_parents=false)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- shock_width = 1./25.0;
- double shock_diff_criterion = 0.04;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size==1 || p_size == 3)
- {
- percept::PerceptMesh eMesh;
- eMesh.open(input_files_loc+"cylinder_tet4_0.e");
-
- Local_Tet4_Tet4_N break_tet_to_tet_N(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- stk_classic::mesh::FieldBase* refine_field = eMesh.add_field("refine_field", eMesh.element_rank(), scalarDimension);
- stk_classic::mesh::FieldBase* nodal_refine_field = eMesh.add_field("nodal_refine_field", eMesh.node_rank(), scalarDimension);
- eMesh.commit();
-
- std::cout << "moving_shock initial number elements= " << eMesh.get_number_elements() << std::endl;
-
- eMesh.save_as( output_files_loc+"cyl_sidesets_moving_shock_"+post_fix[p_size]+".e.0");
-
- PlaneShock shock;
- shock.plane_point_init[0] = 0.0;
- shock.plane_point_init[1] = 0.0;
- shock.plane_point_init[2] = 0.0;
- shock.plane_normal[0] = 1;
- shock.plane_normal[1] = 0;
- shock.plane_normal[2] = 0;
-
- ShockBasedRefinePredicate srp(nodal_refine_field, eMesh, 0, refine_field, 0.0, shock, 0.0, shock_diff_criterion);
-
- PredicateBasedEdgeAdapter
- breaker(srp,
- eMesh, break_tet_to_tet_N, proc_rank_field);
-
- breaker.setRemoveOldElements(false);
- breaker.setAlwaysInitializeNodeRegistry(false);
-
- // x,y,z: [-.08,.08],[-.08,.08],[-.5,-.2]
- double delta_shock_displacement = 0.2;
- double shock_displacement = 0.0;
- int num_ref_passes = 3;
- int num_unref_passes = 3;
-
- for (int istep = 0; istep < num_time_steps; istep++)
- {
- std::cout << "P[" << eMesh.get_rank() << "] istep= " << istep << std::endl;
-
- breaker.getRefinePredicate().m_shock_displacement = shock_displacement;
-
- for (int ipass=0; ipass < num_ref_passes; ipass++)
- {
- std::cout << "P[" << eMesh.get_rank() << "] ipass= " << ipass << std::endl;
- breaker.doBreak();
- std::cout << "P[" << eMesh.get_rank() << "] done... ipass= " << ipass << " moving_shock number elements= " << eMesh.get_number_elements() << std::endl;
- }
-
- //breaker.deleteParentElements();
- eMesh.save_as(output_files_loc+"tmp_cyl_sidesets_moving_shock_"+post_fix[p_size]+".e");
- //exit(123);
-
- //breaker.getNodeRegistry().init_entity_repo();
- for (int iunref_pass=0; iunref_pass < num_unref_passes; iunref_pass++)
- {
- std::cout << "P[" << eMesh.get_rank() << "] iunref_pass= " << iunref_pass << std::endl;
- ElementUnrefineCollection elements_to_unref = breaker.buildUnrefineList();
- breaker.unrefineTheseElements(elements_to_unref);
- std::cout << "P[" << eMesh.get_rank() << "] done... iunref_pass= " << iunref_pass << " moving_shock number elements= " << eMesh.get_number_elements() << std::endl;
- }
-
-// breaker.deleteParentElements();
- eMesh.save_as(output_files_loc+"tmp_cyl_sidesets_moving_shock_"+post_fix[p_size]+".e");
- //exit(123);
-
- if (delete_parents && istep == num_time_steps-1)
- {
- breaker.deleteParentElements();
- }
- if (istep == num_time_steps-1 || save_intermediate)
- eMesh.save_as(output_files_loc+"cyl_sidesets_moving_shock_"+post_fix[p_size]+".e."+toString(istep+1) );
-
- shock_displacement += delta_shock_displacement;
-
- }
-
- eMesh.save_as(output_files_loc+"cyl_sidesets_final_moving_shock_"+post_fix[p_size]+".e."+toString(num_time_steps) );
- for (int iunref=0; iunref < 10; iunref++)
- {
- breaker.unrefineAll();
- eMesh.save_as(output_files_loc+"cyl_sidesets_final_moving_shock_"+post_fix[p_size]+"_unrefAll_pass_"+toString(iunref)+".e."+toString(num_time_steps) );
- }
-
- if (0)
- breaker.deleteParentElements();
- std::cout << "moving_shock final number elements= " << eMesh.get_number_elements() << std::endl;
- eMesh.save_as(output_files_loc+"cyl_sidesets_final_unrefed_moving_shock_"+post_fix[p_size]+".e."+toString(num_time_steps) );
- //exit(123);
-
- // end_demo
- }
- }
-
- STKUNIT_UNIT_TEST(regr_localRefiner, break_tet_to_tet_N_5_EdgeBased_moving_shock_cyl_sidesets)
- {
- const bool do_full_demo = false;
- if (LARGE_TEST_ONLY || !DO_TESTS) return;
- if (do_full_demo)
- {
- int num_time_steps = 10; // 10 for stress testing
- for (int istep=1; istep <= num_time_steps; istep++)
- do_moving_shock_test_cyl_sidesets(istep, false, true);
- }
- else
- // normal regression testing
- {
- int num_time_steps = 1; // 10 for stress testing
- do_moving_shock_test_cyl_sidesets(num_time_steps);
- }
- }
-
-
- //=============================================================================
- //=============================================================================
- //=============================================================================
-
-
- static void do_moving_shock_test_large_test(int num_time_steps, bool save_intermediate=false, bool delete_parents=false)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- // shock_width = 1./50.; //1./25.0;
- // shock_diff_criterion = 0.1;
- shock_width = 1./500.; //1./25.0;
- double shock_diff_criterion = 0.1;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size==1 || p_size == 2 || p_size == 8)
- {
- percept::PerceptMesh eMesh;
- eMesh.open(input_files_loc+"large_testh1tet.g");
-
- Local_Tet4_Tet4_N break_tet_to_tet_N(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- stk_classic::mesh::FieldBase* refine_field = eMesh.add_field("refine_field", eMesh.element_rank(), scalarDimension);
- stk_classic::mesh::FieldBase* nodal_refine_field = eMesh.add_field("nodal_refine_field", eMesh.node_rank(), scalarDimension);
- eMesh.commit();
-
- //eMesh.delete_side_sets();
-
- std::cout << "moving_shock initial number elements= " << eMesh.get_number_elements() << std::endl;
-
- eMesh.save_as( output_files_loc+"large_scale_moving_shock_"+post_fix[p_size]+".e.0");
-
- stk_classic::mesh::Selector univ_selector(eMesh.get_fem_meta_data()->universal_part());
-
- PlaneShock shock;
- shock.plane_point_init[0] = 0.0;
- shock.plane_point_init[1] = -0.07;
- shock.plane_point_init[2] = -0.35;
- shock.plane_normal[0] = 0;
- shock.plane_normal[1] = .25/std::sqrt(.25*.25+1.);
- shock.plane_normal[2] = 1./std::sqrt(.25*.25+1.);
-
- ShockBasedRefinePredicate srp(nodal_refine_field, eMesh, &univ_selector, refine_field, 0.0, shock, 0.0, shock_diff_criterion);
-
- PredicateBasedEdgeAdapter
- breaker(srp,
- eMesh, break_tet_to_tet_N, proc_rank_field);
-
- breaker.setRemoveOldElements(false);
- breaker.setAlwaysInitializeNodeRegistry(false);
- //breaker.setIgnoreSideSets(true);
-
- // x,y,z: [-.08,.08],[-.08,.08],[-.5,-.2]
- double delta_shock_displacement = 0.2*0.08*(10./((double)num_time_steps));
- double shock_displacement = 0.0;
- int num_ref_passes = 2;
- int num_unref_passes = 3;
-
- for (int istep = 0; istep < num_time_steps; istep++)
- {
- std::cout << "P[" << eMesh.get_rank() << "] istep= " << istep << std::endl;
-
- breaker.getRefinePredicate().m_shock_displacement = shock_displacement;
-
- for (int ipass=0; ipass < num_ref_passes; ipass++)
- {
- std::cout << "P[" << eMesh.get_rank() << "] ipass= " << ipass << std::endl;
- breaker.doBreak();
- std::cout << "P[" << eMesh.get_rank() << "] done... ipass= " << ipass << " moving_shock number elements= " << eMesh.get_number_elements() << std::endl;
- }
-
- eMesh.save_as(output_files_loc+"large_scale_moving_shock_"+post_fix[p_size]+"_ref.e");
- //exit(123);
-
- breaker.getNodeRegistry().init_entity_repo();
- for (int iunref_pass=0; iunref_pass < num_unref_passes; iunref_pass++)
- {
- ElementUnrefineCollection elements_to_unref = breaker.buildUnrefineList();
- std::cout << "P[" << eMesh.get_rank() << "] iunref_pass= " << iunref_pass << std::endl;
- breaker.unrefineTheseElements(elements_to_unref);
- std::cout << "P[" << eMesh.get_rank() << "] done... iunref_pass= " << iunref_pass << " moving_shock number elements= " << eMesh.get_number_elements() << std::endl;
- }
-
- if (delete_parents && istep == num_time_steps-1)
- {
- breaker.deleteParentElements();
- }
- if (istep == num_time_steps-1 || save_intermediate)
- eMesh.save_as(output_files_loc+"large_scale_moving_shock_"+post_fix[p_size]+".e."+toString(istep+1) );
-
- shock_displacement += delta_shock_displacement;
-
- }
-
- eMesh.save_as(output_files_loc+"large_scale_final_moving_shock_"+post_fix[p_size]+".e."+toString(num_time_steps) );
- for (int iunref=0; iunref < 10; iunref++)
- {
- breaker.unrefineAll();
- }
- breaker.deleteParentElements();
- std::cout << "moving_shock final number elements= " << eMesh.get_number_elements() << std::endl;
- eMesh.save_as(output_files_loc+"large_scale_final_unrefed_moving_shock_"+post_fix[p_size]+".e."+toString(num_time_steps) );
-
- // end_demo
- }
- }
-
- STKUNIT_UNIT_TEST(regr_localRefiner, break_tet_to_tet_N_5_EdgeBased_moving_shock_large_test)
- {
- const bool do_full_demo = false;
- if (!LARGE_TEST_ONLY || !DO_TESTS) return;
- if (do_full_demo)
- {
- int num_time_steps = 10; // 10 for stress testing
- for (int istep=1; istep <= num_time_steps; istep++)
- do_moving_shock_test_large_test(istep, false, true);
- }
- else
- // normal regression testing
- {
- int num_time_steps = 30; // 10 for stress testing
- do_moving_shock_test_large_test(num_time_steps, true);
- //int num_time_steps = 3; // 10 for stress testing
- //do_moving_shock_test_large_test(num_time_steps);
- }
- }
-
- }
- }
-}
diff --git a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestMain.cpp b/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestMain.cpp
deleted file mode 100644
index 63cada2acd51..000000000000
--- a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestMain.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-/*------------------------------------------------------------------------*/
-/* Copyright 2010 Sandia Corporation. */
-/* Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive */
-/* license for use of this work by or on behalf of the U.S. Government. */
-/* Export of this program may require a license from the */
-/* United States Government. */
-/*------------------------------------------------------------------------*/
-
-#include
-#include
-#include
-#include
-
-#if defined( STK_HAS_MPI )
-#include
-#endif
-
-#include
-
-#include
-#include
-
-#include
-
-#if !PY_PERCEPT
-STKUNIT_MAIN(argc, argv)
-#else
- int main() {return 0;}
-#endif
diff --git a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestMeshColorer.cpp b/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestMeshColorer.cpp
deleted file mode 100644
index 729df177cebe..000000000000
--- a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestMeshColorer.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-/*--------------------------------------------------------------------*/
-/* Copyright 2009 Sandia Corporation. */
-/* Under the terms of Contract DE-AC04-94AL85000, there is a */
-/* non-exclusive license for use of this work by or on behalf */
-/* of the U.S. Government. Export of this program may require */
-/* a license from the United States Government. */
-/*--------------------------------------------------------------------*/
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-
-#include
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-#include
-#include
-
-#include
-
-#include
-
-#include
-#include
-#include
-
-
-namespace stk_classic
-{
- namespace adapt
- {
- namespace unit_tests
- {
-
-#include "RegressionTestFileLoc.hpp"
-
- static stk_classic::diag::Writer &
- dw()
- {
- //static stk_classic::diag::Writer s_diagWriter(dwout().rdbuf(), 0);
- int dw_enabled = 1;
- static stk_classic::diag::Writer s_diagWriter(std::cout.rdbuf(), dw_enabled);
-
- s_diagWriter.setPrintMask(percept::LOG_NORM | percept::LOG_ALWAYS);
-
- return s_diagWriter;
- }
-
-#define EXTRA_PRINT 0
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(mesh_colorer, test1)
- {
- EXCEPTWATCH;
-
- dw().m(percept::LOG_MESH_COLORER) << "STKUNIT_UNIT_TEST::mesh_colorer::test1 " << stk_classic::diag::dendl;
-
- percept::PerceptMesh eMesh(3u);
- if (eMesh.get_parallel_size() <= 3)
- {
- const size_t numxyz=3;
- const size_t num_x = numxyz;
- const size_t num_y = numxyz;
- const size_t num_z = numxyz;
- std::string config_mesh =
- Ioss::Utils::to_string(num_x) + "x" +
- Ioss::Utils::to_string(num_y) + "x" +
- Ioss::Utils::to_string(num_z) + "|bbox:0,0,0,1,1,1";
-
- eMesh.new_mesh(percept::GMeshSpec(config_mesh));
- int vectorDimension = 0;
- stk_classic::mesh::FieldBase *element_color_field = eMesh.add_field("element_colors", eMesh.element_rank(), vectorDimension);
- eMesh.commit();
-
- std::vector mer; mer.push_back(eMesh.element_rank());
- Colorer meshColorer(mer);
- unsigned elementType = 0u;
- meshColorer.color(eMesh, &elementType, 0, element_color_field);
- eMesh.save_as(output_files_loc+"cube_colored.e");
- //std::cout << "Mesh coloring info: " << meshColorer.getElementColors() << std::endl;
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(mesh_colorer, test_quad)
- {
- EXCEPTWATCH;
-
- dw().m(percept::LOG_MESH_COLORER) << "STKUNIT_UNIT_TEST::mesh_colorer::test_quad " << stk_classic::diag::dendl;
-
- percept::PerceptMesh eMesh(2u);
- if (eMesh.get_parallel_size() == 1 || eMesh.get_parallel_size() == 3)
- {
- eMesh.open(input_files_loc+"break_test._.quad._.square._.square_quad4.e");
- int vectorDimension = 0;
- stk_classic::mesh::FieldBase *element_color_field = eMesh.add_field("element_colors", eMesh.element_rank(), vectorDimension);
- eMesh.commit();
-
- std::vector mer; mer.push_back(eMesh.face_rank());
- Colorer meshColorer(mer);
- unsigned elementType = 0u;
- meshColorer.color(eMesh, &elementType, 0, element_color_field);
- //std::cout << "Mesh coloring info: " << meshColorer.getElementColors() << std::endl;
- eMesh.print_info();
- eMesh.dump();
- eMesh.save_as(output_files_loc+"square_quad4_colored.e");
- }
- }
-
- }
- }
-}
diff --git a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestNodeRegistry.cpp b/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestNodeRegistry.cpp
deleted file mode 100644
index 1a34e5f757bf..000000000000
--- a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestNodeRegistry.cpp
+++ /dev/null
@@ -1,511 +0,0 @@
-/*--------------------------------------------------------------------*/
-/* Copyright 2009, 2011 Sandia Corporation. */
-/* Under the terms of Contract DE-AC04-94AL85000, there is a */
-/* non-exclusive license for use of this work by or on behalf */
-/* of the U.S. Government. Export of this program may require */
-/* a license from the United States Government. */
-/*--------------------------------------------------------------------*/
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-
-#include
-#include
-
-#include
-
-#include
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-
-namespace stk_classic
-{
- namespace adapt
- {
- namespace regression_tests
- {
-
-#include "RegressionTestFileLoc.hpp"
-
-
-#define EXTRA_PRINT 0
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-#if 1
- STKUNIT_UNIT_TEST(nodeRegistry_regr, test_parallel_0)
- {
- using namespace mesh;
- using namespace fem;
-
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_nodeRegistry_test_parallel_1
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if ( p_size == 3)
- {
-
- // Set up meta and bulk data
- const unsigned spatial_dim = 2;
- FEMMetaData meta_data(spatial_dim);
- meta_data.commit();
- BulkData mesh(FEMMetaData::get_meta_data(meta_data), pm);
- //unsigned p_rank = mesh.parallel_rank();
- //unsigned p_size = mesh.parallel_size();
- const EntityRank elem_rank = meta_data.element_rank();
-
- // Begin modification cycle so we can create the entities and relations
- mesh.modification_begin();
-
- // We're just going to add everything to the universal part
- stk_classic::mesh::PartVector empty_parts;
- stk_classic::mesh::Part * owned_part = & meta_data.locally_owned_part();
- stk_classic::mesh::Part * shared_part = & meta_data.globally_shared_part();
- stk_classic::mesh::PartVector owned_parts(1,owned_part);
- stk_classic::mesh::PartVector shared_parts(1,shared_part);
-
- // Create nodes
- Entity *node=0;
- node = &mesh.declare_entity(0,
- p_rank+1,
- empty_parts);
-
-
- Entity& elem = mesh.declare_entity(elem_rank,
- p_rank+1,
- empty_parts);
-
-
- if (p_rank==0 || p_rank==2)
- {
- node = &mesh.declare_entity(0,
- 2,
- empty_parts);
- mesh.declare_relation(elem, *node, 0);
- }
- else
- {
- mesh.declare_relation(elem, *node, 0);
- }
-
-
-
- mesh.modification_end();
- }
-
- //exit(123);
- }
-#endif
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-#if 1
- STKUNIT_UNIT_TEST(nodeRegistry_regr, test_parallel_1)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_nodeRegistry_test_parallel_1
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
-
- percept::PerceptMesh eMesh(2u);
- eMesh.open(input_files_loc+"break_test._.quad._.square._.square_quad4.e");
- eMesh.commit();
-
- //eMesh.print_info("square_quad4 before dist");
- //eMesh.save_as("./cube_hex9-orig.e");
-
- //unsigned p_size = eMesh.get_parallel_size();
- unsigned p_rank = eMesh.get_rank();
- Util::setRank(eMesh.get_rank());
-
- if (p_size != 3) // FIXME
- return;
-
- bool useGhosting = true;
- NodeRegistry nodeRegistry(eMesh, useGhosting);
- nodeRegistry.initialize();
-
- if (p_size == 3)
- {
- //if (p_rank != 0)
- {
- // pick an element on the processor boundary
- /* P[1] element_local = 1 Elem: 5 nodes: 9 11 12 10
- * P[1] element_ghost = 0 Elem: 11 nodes: 12 25 26 10
- * P[2] element_local = 1 Elem: 11 nodes: 12 25 26 10
- * P[2] element_ghost = 0 Elem: 5 nodes: 9 11 12 10
- */
-
- // for proc 1
- unsigned elem_num_local = 11; // edge #3
- unsigned elem_num_ghost = 5; // edge #2
- unsigned elem_20 = 20;
-
- stk_classic::mesh::Entity* element_local_p = eMesh.get_bulk_data()->get_entity(eMesh.element_rank(), elem_num_local);
- stk_classic::mesh::Entity* element_ghost_p = eMesh.get_bulk_data()->get_entity(eMesh.element_rank(), elem_num_ghost);
- if (p_rank == 2)
- {
- element_local_p = eMesh.get_bulk_data()->get_entity(eMesh.element_rank(), elem_num_ghost);
- element_ghost_p = eMesh.get_bulk_data()->get_entity(eMesh.element_rank(), elem_num_local);
- }
- if (p_rank == 0)
- {
- element_local_p = eMesh.get_bulk_data()->get_entity(eMesh.element_rank(), elem_20);
- element_ghost_p = eMesh.get_bulk_data()->get_entity(eMesh.element_rank(), elem_20);
- }
-
- dw() << "P["< needed_entity_ranks(1, needed_entity_rank);
-
- /*
- * 1st of three steps to create and associate new nodes - register need for new nodes, then check if node is remote, then get
- * from remote proc if necessary; finally, the local node database is ready to be queried
- *
- * The pattern is to begin the step, loop over all elements (including ghosts) and invoke the local operation
- * The method doForAllSubEntities is a utility for performing the operation on all the sub entities.
- * If more granularity is desired, the member functions can be invoked directly for a particular sub-entity.
- */
- nodeRegistry.beginRegistration();
- if (p_rank)
- {
- nodeRegistry.doForAllSubEntities(&NodeRegistry::registerNeedNewNode, element_local, needed_entity_ranks);
- nodeRegistry.doForAllSubEntities(&NodeRegistry::registerNeedNewNode, element_ghost, needed_entity_ranks);
- }
- nodeRegistry.endRegistration();
-
- std::cout << "P["<get_entity(stk_classic::mesh::fem::FEMMetaData::NODE_RANK, nodeIds_onSE.m_entity_id_vector[0]);
-
- //EXPECT_EQ(nodeIds_onSE.m_entity_id_vector[0], 42u);
- EXPECT_EQ(nodeIds_onSE.m_entity_id_vector[0], 41u);
- // should be the same node on each proc
- std::cout << "P[" << p_rank << "] nodeId = " << nodeIds_onSE << " node= " << node << std::endl;
- }
-
- // end_demo
-
- }
- //std::cout << "P[" << p_rank << "] exiting " << std::endl;
- //Util::pause(true);
- //eMesh.save_as("./cube_hex9.e");
- if (0)
- {
- MPI_Barrier( MPI_COMM_WORLD );
- exit(1);
- }
- }
- }
- //exit(123);
-
- }
-#endif
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-#if 1
- STKUNIT_UNIT_TEST(nodeRegistry_regr, test_parallel_2)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_nodeRegistry_test_parallel_2
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- std::cout << "nodeRegistry_regr.test_parallel_2: p_size = " << p_size << std::endl;
-
- if (p_size == 1 || p_size == 3)
- {
-
- percept::PerceptMesh eMesh(2u);
- eMesh.open(input_files_loc+"break_test._.quad._.square._.square_quad4.e");
-
- eMesh.commit();
-
- //eMesh.print_info("square_quad4 before dist");
- //eMesh.save_as("./cube_hex9-orig.e");
-
- //unsigned p_size = eMesh.get_parallel_size();
- unsigned p_rank = eMesh.get_rank();
- Util::setRank(eMesh.get_rank());
-
- if (p_size != 3) // FIXME
- return;
-
- bool useGhosting = true;
- NodeRegistry nodeRegistry(eMesh, useGhosting);
- nodeRegistry.initialize();
-
- if (p_size == 3)
- {
- //if (p_rank != 0)
- {
- // pick an element on the processor boundary
- /* P[1] element_local = 1 Elem: 5 nodes: 9 11 12 10
- * P[1] element_ghost = 0 Elem: 11 nodes: 12 25 26 10
- * P[2] element_local = 1 Elem: 11 nodes: 12 25 26 10
- * P[2] element_ghost = 0 Elem: 5 nodes: 9 11 12 10
- */
-
- // for proc 1
- unsigned elem_num_local = 11; // edge #3
- unsigned elem_num_ghost = 5; // edge #2
- unsigned elem_20 = 20;
-
- unsigned elem_num_local_proc_0 = elem_20;
- unsigned elem_num_local_proc_1 = elem_num_local;
- unsigned elem_num_local_proc_2 = elem_num_ghost;
-
- stk_classic::mesh::Entity* element_local_p = eMesh.get_bulk_data()->get_entity(eMesh.element_rank(), elem_num_local_proc_1);
- stk_classic::mesh::Entity* element_ghost_p = eMesh.get_bulk_data()->get_entity(eMesh.element_rank(), elem_num_local_proc_2);
- if (p_rank == 2)
- {
- element_local_p = eMesh.get_bulk_data()->get_entity(eMesh.element_rank(), elem_num_local_proc_2);
- element_ghost_p = eMesh.get_bulk_data()->get_entity(eMesh.element_rank(), elem_num_local_proc_1);
- }
- if (p_rank == 0)
- {
- element_local_p = eMesh.get_bulk_data()->get_entity(eMesh.element_rank(), elem_num_local_proc_0);
- element_ghost_p = eMesh.get_bulk_data()->get_entity(eMesh.element_rank(), elem_num_local_proc_0);
- }
-
- dw() << "P["< needed_entity_ranks(2);
- needed_entity_ranks[0] = NeededEntityType(eMesh.edge_rank(), 1u);
- needed_entity_ranks[1] = NeededEntityType(eMesh.element_rank(), 1u);
-
- /*
- * 1st of three steps to create and associate new nodes - register need for new nodes, then check if node is remote, then get
- * from remote proc if necessary; finally, the local node database is ready to be queried
- *
- * The pattern is to begin the step, loop over all elements (including ghosts) and invoke the local operation
- * The method doForAllSubEntities is a utility for performing the operation on all the sub entities.
- * If more granularity is desired, the member functions can be invoked directly for a particular sub-entity.
- */
- nodeRegistry.beginRegistration();
- if (p_rank)
- {
- nodeRegistry.doForAllSubEntities(&NodeRegistry::registerNeedNewNode, element_local, needed_entity_ranks);
- nodeRegistry.doForAllSubEntities(&NodeRegistry::registerNeedNewNode, element_ghost, needed_entity_ranks);
- }
- nodeRegistry.endRegistration();
-
- std::cout << "P["<get_entity(stk_classic::mesh::fem::FEMMetaData::NODE_RANK, nodeIds_onSE[0]->identifier());
-
- //EXPECT_EQ(nodeId, 42u);
- // should be the same node on each proc
- std::cout << "P[" << p_rank << "] nodeId = " << nodeIds_onSE << " node= " << node << std::endl;
- }
-
- if (1)
- {
- if (p_rank)
- {
- NodeIdsOnSubDimEntityType& nodeIds_onSE_1 = *(nodeRegistry.getNewNodesOnSubDimEntity(element_local, needed_entity_ranks[1].first, 0u));
- if (!nodeIds_onSE_1[0])
- throw std::logic_error("nodeRegistry_regr.parallel_2 logic err2");
-
- stk_classic::mesh::Entity* node_1 = eMesh.get_bulk_data()->get_entity(stk_classic::mesh::fem::FEMMetaData::NODE_RANK, nodeIds_onSE_1[0]->identifier());
-
- std::cout << "P[" << p_rank << "] nodeId_1 = " << nodeIds_onSE_1 << " node_1= " << node_1 << std::endl;
-
-
- unsigned expectedId= 37u;
-#if NODE_REGISTRY_MAP_TYPE_BOOST
-#endif
-#if NODE_REGISTRY_MAP_TYPE_STD
- expectedId= 38u;
-#endif
-#if NODE_REGISTRY_MAP_TYPE_GOOGLE
- expectedId= 39u;
-#endif
-#if SDS_ENTITY_TYPE_ID
- expectedId= 37u;
-#else
- expectedId= 37u;
-#endif
-
-
- unsigned expectedId_p2= 41u;
-#if SDS_ENTITY_TYPE_ID
- expectedId_p2= 41u;
-#else
- expectedId_p2= 41u;
-#endif
-
- if (p_rank==1) std::cout << "P["<identifier(), expectedId);
- if (p_rank==2) EXPECT_EQ(nodeIds_onSE_1[0]->identifier(), expectedId_p2);
- }
-
- }
-
- // end_demo
- }
- //std::cout << "P[" << p_rank << "] exiting " << std::endl;
- //Util::pause(true);
- //eMesh.save_as("./cube_hex9.e");
- if (0)
- {
- MPI_Barrier( MPI_COMM_WORLD );
- exit(1);
- }
- }
- }
- }
-#endif
-
- }// namespace unit_tests
- }// namespace adapt
-}// namespace stk_classic
-
diff --git a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestSTKMeshMemory.cpp b/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestSTKMeshMemory.cpp
deleted file mode 100644
index ca1420f1e623..000000000000
--- a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestSTKMeshMemory.cpp
+++ /dev/null
@@ -1,166 +0,0 @@
-/*--------------------------------------------------------------------*/
-/* Copyright 2009, 2011 Sandia Corporation. */
-/* Under the terms of Contract DE-AC04-94AL85000, there is a */
-/* non-exclusive license for use of this work by or on behalf */
-/* of the U.S. Government. Export of this program may require */
-/* a license from the United States Government. */
-/*--------------------------------------------------------------------*/
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-
-#include
-
-#include
-
-#include
-
-#include
-#include
-
-#include
-#include
-
-#include
-
-#include
-#include
-#include
-
-
-namespace stk_classic
-{
- namespace adapt
- {
- namespace regression_tests
- {
-
-
-#define DO_MEMORY_ACCOUNTING 1
-
-typedef uint64_t MemorySizeType;
-
-struct MemoryInfo
-{
- MemorySizeType m_malloc_used;
- MemorySizeType m_malloc_footprint;
- MemorySizeType m_malloc_max_footprint;
- static const MemorySizeType MB = 1024*1024;
-
- MemoryInfo() { get_memory_usage(); }
-
- void get_memory_usage()
- {
-#if DO_MEMORY_ACCOUNTING
-#if !defined(SIERRA_PTMALLOC3_ALLOCATOR) && !defined(SIERRA_PTMALLOC2_ALLOCATOR)
- std::cout << "WARNING: ptmalloc2|3 not compiled in so malloc_used info unavailable. Recompile with e.g. 'bake allocator=ptmalloc2 (or 3)'. Printing zeros..." << std::endl;
-#else
-
-#endif
- m_malloc_used = malloc_used();
- m_malloc_footprint = malloc_footprint();
- m_malloc_max_footprint = malloc_max_footprint();
-#else
- m_malloc_used = 0;
- m_malloc_footprint = 0;
- m_malloc_max_footprint = 0;
-#endif
- }
- void set_state() { get_memory_usage(); }
- void get_increment() {
- MemoryInfo old_state = *this;
- get_memory_usage();
- m_malloc_used -= old_state.m_malloc_used;
- m_malloc_footprint -= old_state.m_malloc_footprint;
- }
-
-};
-
-inline double MegaByte(MemorySizeType x) { return ((double)x/1024.0/1024.0); }
-
-std::ostream& operator<<(std::ostream& os, const MemoryInfo& mem)
-{
- char buf[1024];
- sprintf(buf, "\n%20s %20s %20s\n%20g %20g %20g\n", "used [MB]", "footprint [MB]", "max_footprint [MB]",
- MegaByte(mem.m_malloc_used), MegaByte(mem.m_malloc_footprint), MegaByte(mem.m_malloc_max_footprint) );
- os << buf;
- return os;
-}
-
-
-STKUNIT_UNIT_TEST(adapt, count_memory)
-{
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1)
- {
- const unsigned n = 20;
- //const unsigned nx = n , ny = n , nz = p_size*n ;
- const unsigned nx = n , ny = n;
-
- percept::QuadFixture > fixture( pm , nx , ny, false);
- fixture.meta_data.commit();
- fixture.generate_mesh();
-
- percept::PerceptMesh eMesh(&fixture.meta_data, &fixture.bulk_data);
- //eMesh.print_info("quad mesh",2);
-
- //const size_t num_new_tris = 2000*2000;
- const size_t num_new_tris = 20*20;
- const size_t num_nodes_per_tri = 3;
- const size_t num_new_nodes = num_new_tris*num_nodes_per_tri;
- MemoryInfo mem_delta_node;
- double time = -stk_classic::percept::Util::cpu_time();
-
- std::vector new_nodes, new_elements;
-
- eMesh.get_bulk_data()->modification_begin();
- eMesh.createEntities(eMesh.node_rank(), num_new_nodes, new_nodes);
- eMesh.get_bulk_data()->modification_end();
-
- mem_delta_node.get_increment();
- double mem_per_node = double(mem_delta_node.m_malloc_used)/double(num_new_nodes);
- std::cout << "\nstk_mesh count_memory mem_per_node = " << mem_per_node << "\n" << std::endl;
-
- MemoryInfo mem_delta_elem_0, mem_delta_elem_1;
-
- eMesh.get_bulk_data()->modification_begin();
- eMesh.createEntities(eMesh.element_rank(), num_new_tris, new_elements);
- eMesh.get_bulk_data()->modification_end();
-
- mem_delta_elem_0.get_increment();
-
- eMesh.get_bulk_data()->modification_begin();
- size_t i_node=0;
- for (size_t i=0; ideclare_relation(*new_elements[i],*new_nodes[i_node],ordinal);
- ++ordinal;
- ++i_node;
- }
- }
- eMesh.get_bulk_data()->modification_end();
-
- mem_delta_elem_1.get_increment();
- double mem_per_elem_0 = double(mem_delta_elem_0.m_malloc_used)/double(num_new_tris);
- double mem_per_elem_1 = double(mem_delta_elem_1.m_malloc_used)/double(num_new_tris);
-
- time += stk_classic::percept::Util::cpu_time();
-
- std::cout << "\nstk_mesh count_memory mem_per_elem (no connectivity) = " << mem_per_elem_0 << " with connectivity= " << mem_per_elem_1 << " cpu= " << time << std::endl;
-
- }
-}
-
-
- }
- }
-}
diff --git a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestUniformRefiner.cpp b/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestUniformRefiner.cpp
deleted file mode 100644
index 0b8c83298b0b..000000000000
--- a/packages/stk/stk_classic/stk_adapt/regression_tests/RegressionTestUniformRefiner.cpp
+++ /dev/null
@@ -1,3200 +0,0 @@
-/*--------------------------------------------------------------------*/
-/* Copyright 2009 Sandia Corporation. */
-/* Under the terms of Contract DE-AC04-94AL85000, there is a */
-/* non-exclusive license for use of this work by or on behalf */
-/* of the U.S. Government. Export of this program may require */
-/* a license from the United States Government. */
-/*--------------------------------------------------------------------*/
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#if defined( STK_HAS_MPI )
-#include
-#endif
-
-#include
-
-#include
-#include
-
-#include
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-
-// smoothing tests
-#define StackTraceTmp StackTrace
-#undef StackTrace
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#define StackTrace StackTraceTmp
-
-// this is for testing the local-refine refactoring
-#define UNIFORM_REFINER UniformRefiner
-//#define UNIFORM_REFINER TestLocalRefiner
-
-#define DO_SMOOTHING_TEST 0
-
-namespace stk_classic
-{
- namespace adapt
- {
- namespace regression_tests
- {
-
-#include "RegressionTestFileLoc.hpp"
-
-#define EXTRA_PRINT 0
-
- static std::string procs_string[9] = {"np0", "np1", "np2", "np3", "np4", "np5", "np6", "np7", "np8"};
-
- static void output_draw(std::string filename, std::string toFile)
- {
- std::ofstream file(filename.c_str());
- file << toFile;
- }
-
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
- //========= AREA for tests in progress of being debugged
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, pyramid_mesh)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- // start_demo_heterogeneous_mesh
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( MPI_COMM_WORLD);
- const unsigned p_size = stk_classic::parallel_machine_size( MPI_COMM_WORLD);
-
- bool do_sidesets = true;
-
- if (p_size <= 1)
- {
- // create the mesh
- {
- bool doCommit = false;
- stk_classic::percept::PyramidFixture mesh(MPI_COMM_WORLD, doCommit, do_sidesets);
- mesh.m_metaData.commit();
- mesh.populate();
-
- bool isCommitted = true;
- percept::PerceptMesh em1(&mesh.m_metaData, &mesh.m_bulkData, isCommitted);
-
- em1.save_as(input_files_loc+"pyramid_0.e");
- em1.close();
- }
-
- std::string input_mesh = input_files_loc+"pyramid_0.e";
- if (p_size > 1)
- {
- RunEnvironment::doLoadBalance(pm, input_mesh);
- }
-
- // refine the mesh
- if (1)
- {
- percept::PerceptMesh eMesh1(3);
-
- eMesh1.open(input_files_loc+"pyramid_0.e");
-
- //URP_Heterogeneous_3D break_pattern(eMesh1);
- Pyramid5_Pyramid5_10 break_pattern(eMesh1);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh1.add_field("proc_rank", eMesh1.element_rank(), scalarDimension);
- eMesh1.commit();
-
- UNIFORM_REFINER breaker(eMesh1, break_pattern, proc_rank_field);
-
- //breaker.setRemoveOldElements(false);
- breaker.setIgnoreSideSets(!do_sidesets);
- breaker.doBreak();
-
- eMesh1.save_as(output_files_loc+"pyramid_1.e");
- eMesh1.close();
- }
- }
- // end_demo
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
-
-#if 0
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad4_to_quad9_to_quad9_shell_1)
- {
- EXCEPTWATCH;
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
-
- // this case can't be load balanced (I presume there are too few elements)
-
- if (p_size <= 1)
- {
- // start_demo_break_quad4_to_quad9_to_quad9_shell
- std::string input_mesh = input_files_loc+"shell-tests"+path_sep+"freshell_quad4.g";
- if (p_size > 1)
- {
- RunEnvironment::doLoadBalance(pm, input_mesh);
- }
-
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_mesh);
-
- ShellQuad4_ShellQuad9_1 break_quad4_to_quad9_1(eMesh);
-
- int scalarDimension = 0; // a scalar
- // int vectorDimension = 3;
-
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- eMesh.print_info("quad mesh");
- eMesh.save_as(output_files_loc+"freshell_quad4_quad9_0.g");
-
- UNIFORM_REFINER breaker(eMesh, break_quad4_to_quad9_1, proc_rank_field);
- //breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- //eMesh.print_info("quad mesh refined", 5);
- eMesh.print_info("quad shell mesh enriched");
- eMesh.save_as(output_files_loc+"freshell_quad4_quad9_1.g");
- eMesh.save_as(input_files_loc+"freshell_quad9_quad9_0.g");
-
- }
- }
-#endif
-
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, beam_enrich)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- const unsigned p_size = stk_classic::parallel_machine_size(pm);
-
- if (p_size <= 1)
- {
- // create the mesh
- {
-
- stk_classic::percept::BeamFixture mesh(pm, false);
- stk_classic::io::put_io_part_attribute( mesh.m_block_beam );
- mesh.m_metaData.commit();
- mesh.populate();
-
- bool isCommitted = true;
- percept::PerceptMesh em1(&mesh.m_metaData, &mesh.m_bulkData, isCommitted);
- em1.save_as(input_files_loc+"beam_enrich_0.e");
-
- }
-
- // enrich
- {
- stk_classic::percept::PerceptMesh eMesh(3u);
- eMesh.open(input_files_loc+"beam_enrich_0.e");
- //URP_Heterogeneous_3D break_pattern(eMesh);
- Beam2_Beam3_1 break_pattern(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh.commit();
-
- eMesh.save_as(output_files_loc+"beam_enrich_0.e");
-
- eMesh.print_info("beam", 2);
-
- UNIFORM_REFINER breaker(eMesh, break_pattern, proc_rank_field);
- //breaker.setRemoveOldElements(false);
- breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"beam_enrich_1.e");
-
- }
- }
- }
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, beam_refine)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- const unsigned p_size = stk_classic::parallel_machine_size(pm);
-
- if (p_size <= 1)
- {
- // create the mesh
- {
-
- stk_classic::percept::BeamFixture mesh(pm, false);
- stk_classic::io::put_io_part_attribute( mesh.m_block_beam );
- mesh.m_metaData.commit();
- mesh.populate();
-
- bool isCommitted = true;
- percept::PerceptMesh em1(&mesh.m_metaData, &mesh.m_bulkData, isCommitted);
- em1.save_as(input_files_loc+"beam_0.e");
-
- }
-
- // refine
- {
- stk_classic::percept::PerceptMesh eMesh(3u);
- eMesh.open(input_files_loc+"beam_0.e");
- //URP_Heterogeneous_3D break_pattern(eMesh);
- Beam2_Beam2_2 break_pattern(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh.commit();
-
- eMesh.save_as(output_files_loc+"beam_0.e");
-
- eMesh.print_info("beam", 2);
-
- UNIFORM_REFINER breaker(eMesh, break_pattern, proc_rank_field);
- //breaker.setRemoveOldElements(false);
- breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"beam_1.e");
-
- }
- }
- }
-
-
- //======================================================================================================================
- //======================================================================================================================
- //===================== Table generation
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, generate_tables)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
- Elem::StdMeshObjTopologies::bootstrap();
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1)
- {
- std::ofstream file("./generated_refinement_tables.hpp");
-
- file << "#ifndef STK_ADAPT_GENERATED_REFINEMENT_TABLES_HPP" << std::endl;
- file << "#define STK_ADAPT_GENERATED_REFINEMENT_TABLES_HPP" << std::endl;
-
- file <<
- "/** New ref topo info \n"
- "* ------------------\n"
- "*\n"
- "* {Ord, Rnk-assoc, Ord-rnk-assoc, Ord-node-on-subcell, num-rnk-assoc, param-coord}\n"
- "*\n"
- "* struct RefinementTopologyExtraEntry\n"
- "* {\n"
- "* unsigned ordinal_of_node; // ordinal of node in the total list of nodes - corresponds to the shards node ordinal\n"
- "* unsigned rank_of_subcell; // rank of the subcell this node is associated with \n"
- "* unsigned ordinal_of_subcell; // ordinal of the subcell in the shards numbering (e.g. edge # 3)\n"
- "* unsigned ordinal_of_node_on_subcell; // ordinal of the node on the subcell (whcih node it is on a subcell that has multiple nodes)\n"
- "* unsigned num_nodes_on_subcell; // how many nodes exist on the subcell \n"
- "* double parametric_coordinates[3];\n"
- "* };\n"
- "* \n"
- "* Bootstrapping this file: to create this file, run the regression test RegressionTestUniformRefiner.cpp :: generate_tables after putting in\n"
- "* a dummy entry in ./sierra_element/GeneratedRefinementTable.hpp. The run will produce a local file, generated_refinement_tables.hpp \n"
- "* which can be checked against the gold copy of GeneratedRefinementTable.hpp, then copied over it. Add a call below to generate the \n"
- "* actual new table data. \n"
- "*/\n\n"
- << std::endl;
-
- // FIXME
-#if !(defined(__PGI) && defined(USE_PGI_7_1_COMPILER_BUG_WORKAROUND))
-
- Line2_Line2_2 :: printRefinementTopoX_Table(file);
-
- Beam2_Beam2_2 :: printRefinementTopoX_Table(file);
-
- ShellLine2_ShellLine2_2 :: printRefinementTopoX_Table(file);
- ShellLine3_ShellLine3_2 :: printRefinementTopoX_Table(file);
- Quad4_Quad4_4 :: printRefinementTopoX_Table(file);
- Tri3_Tri3_4 :: printRefinementTopoX_Table(file);
- ShellTri3_ShellTri3_4 :: printRefinementTopoX_Table(file);
- ShellTri6_ShellTri6_4 :: printRefinementTopoX_Table(file);
- ShellQuad4_ShellQuad4_4 :: printRefinementTopoX_Table(file);
- ShellQuad8_ShellQuad8_4 :: printRefinementTopoX_Table(file);
- Tet4_Tet4_8 :: printRefinementTopoX_Table(file);
- Hex8_Hex8_8 :: printRefinementTopoX_Table(file);
- Wedge6_Wedge6_8 :: printRefinementTopoX_Table(file);
- Wedge15_Wedge15_8 :: printRefinementTopoX_Table(file);
-
- //Pyramid5_Pyramid5_10 :: printRefinementTopoX_Table(file);
- //Pyramid13_Pyramid13_10 :: printRefinementTopoX_Table(file);
-
- // Not supported by Sierra
- // Wedge18_Wedge18_8 :: printRefinementTopoX_Table(file);
-
- Line3_Line3_2 :: printRefinementTopoX_Table(file);
- Beam3_Beam3_2 :: printRefinementTopoX_Table(file);
-
- Tri6_Tri6_4 :: printRefinementTopoX_Table(file);
- Quad8_Quad8_4 :: printRefinementTopoX_Table(file);
- Quad9_Quad9_4 :: printRefinementTopoX_Table(file);
- Hex27_Hex27_8 :: printRefinementTopoX_Table(file);
- Hex20_Hex20_8 :: printRefinementTopoX_Table(file);
- Tet10_Tet10_8 :: printRefinementTopoX_Table(file);
-
-#endif
- file << "#endif" << std::endl;
- }
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //===================== Shell elements testing
- //======================================================================================================================
- //======================================================================================================================
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad4_to_quad8_to_quad8_shell)
- {
- EXCEPTWATCH;
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
-
- // this case can't be load balanced (I presume there are too few elements)
-
- if (p_size <= 1)
- {
- // start_demo_break_quad4_to_quad8_to_quad8_shell
- std::string input_mesh = input_files_loc+"shell-tests"+path_sep+"freshell_quad4.g";
- if (p_size > 1)
- {
- RunEnvironment::doLoadBalance(pm, input_mesh);
- }
-
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_mesh);
-
- ShellQuad4_ShellQuad8_1 break_quad4_to_quad8_1(eMesh);
-
- int scalarDimension = 0; // a scalar
- // int vectorDimension = 3;
-
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- eMesh.print_info("quad mesh");
- eMesh.save_as(output_files_loc+"freshell_quad4_quad8_0.g");
-
- UNIFORM_REFINER breaker(eMesh, break_quad4_to_quad8_1, proc_rank_field);
- //breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- //eMesh.print_info("quad mesh refined", 5);
- eMesh.print_info("quad shell mesh enriched");
- eMesh.save_as(output_files_loc+"freshell_quad4_quad8_1.g");
- eMesh.save_as(input_files_loc+"freshell_quad8_quad8_0.g");
-
- }
-
- if (1 && p_size <= 1)
- {
-
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_files_loc+"freshell_quad8_quad8_0.g");
-
- ShellQuad8_ShellQuad8_4 break_quad8_to_quad_8(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- //eMesh.print_info("quad mesh");
- //eMesh.save_as(output_files_loc+"freshell_quad4_quad8_0.g");
-
- UNIFORM_REFINER breaker(eMesh, break_quad8_to_quad_8, proc_rank_field);
- //breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- //eMesh.print_info("quad mesh refined", 5);
- eMesh.print_info("quad shell mesh enriched and refined");
- eMesh.save_as(output_files_loc+"freshell_quad8_quad8_1.g");
- // end_demo
-
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
-
-#if 0
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad4_to_quad9_to_quad9_shell)
- {
- EXCEPTWATCH;
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
-
- // this case can't be load balanced (I presume there are too few elements)
-
- if (p_size <= 1)
- {
- // start_demo_break_quad4_to_quad9_to_quad9_shell
- std::string input_mesh = input_files_loc+"shell-tests"+path_sep+"freshell_quad4.g";
- if (p_size > 1)
- {
- RunEnvironment::doLoadBalance(pm, input_mesh);
- }
-
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_mesh);
-
- ShellQuad4_ShellQuad9_1 break_quad4_to_quad9_1(eMesh);
-
- int scalarDimension = 0; // a scalar
- // int vectorDimension = 3;
-
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- eMesh.print_info("quad mesh");
- eMesh.save_as(output_files_loc+"freshell_quad4_quad9_0.g");
-
- UNIFORM_REFINER breaker(eMesh, break_quad4_to_quad9_1, proc_rank_field);
- //breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- //eMesh.print_info("quad mesh refined", 5);
- eMesh.print_info("quad shell mesh enriched");
- eMesh.save_as(output_files_loc+"freshell_quad4_quad9_1.g");
- eMesh.save_as(input_files_loc+"freshell_quad9_quad9_0.g");
-
- }
-
-#if 0
- if (1 && p_size <= 1)
- {
-
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_files_loc+"freshell_quad9_quad9_0.g");
-
- ShellQuad9_ShellQuad9_4 break_quad9_to_quad_9(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- //eMesh.print_info("quad mesh");
- //eMesh.save_as(output_files_loc+"freshell_quad4_quad9_0.g");
-
- UNIFORM_REFINER breaker(eMesh, break_quad9_to_quad_9, proc_rank_field);
- //breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- //eMesh.print_info("quad mesh refined", 5);
- eMesh.print_info("quad shell mesh enriched and refined");
- eMesh.save_as(output_files_loc+"freshell_quad9_quad9_1.g");
- // end_demo
-
- }
-#endif
- }
-#endif
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad_to_quad_shell)
- {
- EXCEPTWATCH;
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
-
- // this case can't be load balanced (I presume there are too few elements)
-
- if (p_size <= 1)
- {
- // start_demo_break_quad_to_quad_shell
- std::string input_mesh = input_files_loc+"shell-tests"+path_sep+"freshell_quad4.g";
- if (p_size > 1)
- {
- RunEnvironment::doLoadBalance(pm, input_mesh);
- }
-
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_mesh);
-
- ShellQuad4_ShellQuad4_4 break_quad_to_quad_4(eMesh);
-
- int scalarDimension = 0; // a scalar
- // int vectorDimension = 3;
-
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- eMesh.print_info("quad mesh");
- eMesh.save_as(output_files_loc+"freshell_quad4_0.g");
-
- UNIFORM_REFINER breaker(eMesh, break_quad_to_quad_4, proc_rank_field);
- //breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- //eMesh.print_info("quad mesh refined", 5);
- eMesh.print_info("quad shell mesh refined");
- eMesh.save_as(output_files_loc+"freshell_quad4_1.g");
- // end_demo
-
- }
- }
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_tri_to_tri_shell)
- {
- EXCEPTWATCH;
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- // this case can't be load balanced (I presume there are too few elements)
-
- if (p_size <= 1)
- {
- // start_demo_break_tri_to_tri_shell
-
- std::string input_mesh = input_files_loc+"shell-tests"+path_sep+"freshell_tri3.g";
- if (p_size > 1)
- {
- RunEnvironment::doLoadBalance(pm, input_mesh);
- }
-
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_mesh);
-
-
- ShellTri3_ShellTri3_4 break_tri_to_tri_4(eMesh);
-
- int scalarDimension = 0; // a scalar
- // int vectorDimension = 3;
-
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- eMesh.print_info("tri mesh");
- eMesh.save_as(output_files_loc+"freshell_tri3_0.g");
-
- UNIFORM_REFINER breaker(eMesh, break_tri_to_tri_4, proc_rank_field);
- //breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- //eMesh.print_info("tri mesh refined", 5);
- eMesh.print_info("tri shell mesh refined");
- eMesh.save_as(output_files_loc+"freshell_tri3_1.g");
- // end_demo
-
- }
-
- }
-
-
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, draw1)
- {
- //std::cout << Quad4_Quad4_4::draw() << std::endl;
- std::string dir = "./";
- output_draw(dir+"quad4.dot", Quad4_Quad4_4::draw(true) );
- output_draw(dir+"tet4.dot", Tet4_Tet4_8::draw() );
- output_draw(dir+"hex8.dot", Hex8_Hex8_8::draw(true) );
- output_draw(dir+"hex27.dot", Hex27_Hex27_8::draw(true, true) );
- output_draw(dir+"hex20.dot", Hex20_Hex20_8::draw(true, true) );
- output_draw(dir+"wedge6.dot", Wedge6_Wedge6_8::draw() );
-
- output_draw(dir+"quad9.dot", Quad9_Quad9_4::draw(true, true));
- }
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, draw)
- {
- //std::cout << Quad4_Quad4_4::draw() << std::endl;
- std::string dir = "./";
- output_draw(dir+"quad4.dot", Quad4_Quad4_4::draw(true) );
- output_draw(dir+"tet4.dot", Tet4_Tet4_8::draw() );
- output_draw(dir+"hex8.dot", Hex8_Hex8_8::draw(true) );
- output_draw(dir+"wedge6.dot", Wedge6_Wedge6_8::draw() );
-
- output_draw(dir+"quad9.dot", Quad9_Quad9_4::draw(true));
-
- // refine
-#if 0
- std::cout << Line2_Line2_2::draw() << std::endl;
- std::cout << Tri3_Tri3_4::draw() << std::endl;
- std::cout << Tet4_Tet4_8::draw() << std::endl;
- std::cout << Hex8_Hex8_8::draw() << std::endl;
-#endif
- // enrich
- // typedef UniformRefinerPattern, shards::Quadrilateral<9>, 1, SierraPort > Quad4_Quad9_1;
- // typedef UniformRefinerPattern, shards::Quadrilateral<8>, 1, SierraPort > Quad4_Quad8_1;
- // typedef UniformRefinerPattern, shards::Triangle<6>, 1, SierraPort > Tri3_Tri6_1;
- // typedef UniformRefinerPattern, shards::Tetrahedron<10>, 1, SierraPort > Tet4_Tet10_1;
- // typedef UniformRefinerPattern, shards::Hexahedron<27>, 1, SierraPort > Hex8_Hex27_1;
- // typedef UniformRefinerPattern, shards::Hexahedron<20>, 1, SierraPort > Hex8_Hex20_1;
-
- // // convert
- // typedef UniformRefinerPattern, shards::Triangle<3>, 6 > Quad4_Tri3_6;
- // typedef UniformRefinerPattern, shards::Triangle<3>, 4, Specialization > Quad4_Tri3_4;
- // typedef UniformRefinerPattern, shards::Tetrahedron<4>, 24 > Hex8_Tet4_24;
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad_to_tri_6)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- // start_demo_uniformRefiner_break_quad_to_tri
- percept::PerceptMesh eMesh(2u);
- eMesh.open(input_files_loc+"break_test"+path_sep+"quad"+path_sep+"square"+path_sep+"square_quad4.e");
-
- typedef UniformRefinerPattern, shards::Triangle<3>, 6 > Quad4_Tri3_6;
-
- UniformRefinerPattern, shards::Triangle<3>, 6 > break_quad_to_tri_6(eMesh);
-
- int scalarDimension = 0; // a scalar
- // int vectorDimension = 3;
-
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- eMesh.print_info("quad mesh");
-
- //UniformRefinerPattern, shards::Triangle<3>, 6 > break_quad_to_tri_6;
- UNIFORM_REFINER breaker(eMesh, break_quad_to_tri_6, proc_rank_field);
- breaker.setRemoveOldElements(false);
- breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- //eMesh.save_as(output_files_loc+"break_test"+path_sep+"quad"+path_sep+"square"+path_sep+"square_quad4_out.e");
- eMesh.save_as(output_files_loc+"square_quad4_out.e");
- // end_demo
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad_to_tri_4)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
-
- // start_demo_uniformRefiner_break_quad_to_tri
- percept::PerceptMesh eMesh(2u);
- eMesh.open(input_files_loc+"break_test"+path_sep+"quad"+path_sep+"square"+path_sep+"square_quad4.e");
-
- UniformRefinerPattern, shards::Triangle<3>, 4, Specialization > break_quad_to_tri_4(eMesh);
-
- int scalarDimension = 0; // a scalar
-
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- eMesh.print_info("quad mesh");
-
- //UniformRefinerPattern, shards::Triangle<3>, 6 > break_quad_to_tri_6;
- UNIFORM_REFINER breaker(eMesh, break_quad_to_tri_4, proc_rank_field);
- breaker.setRemoveOldElements(false);
- breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- //eMesh.save_as(input_files_loc+"break_test"+path_sep+"quad"+path_sep+"square"+path_sep+"square_quad4_out.e");
- eMesh.save_as(output_files_loc+"square_quad4_tri3_4_out.e");
- // end_demo
- }
- }
-
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad_to_quad)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- // start_demo_uniformRefiner_break_quad_to_quad
- percept::PerceptMesh eMesh(2u);
- eMesh.open(input_files_loc+"break_test"+path_sep+"quad"+path_sep+"square"+path_sep+"square_quad4.e");
-
- UniformRefinerPattern, shards::Quadrilateral<4>, 4 > break_quad_to_quad_4(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh.commit();
-
- eMesh.print_info("quad mesh");
-
- UNIFORM_REFINER breaker(eMesh, break_quad_to_quad_4, proc_rank_field);
- //breaker.setRemoveOldElements(false);
- breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"square_quad4_ref_out.e");
- // end_demo
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- /// uses the Sierra-ported tables from framework/{element,mesh_modification}
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad_to_quad_sierra)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- // start_demo_uniformRefiner_break_quad_to_quad
- percept::PerceptMesh eMesh(2u);
- eMesh.open(input_files_loc+"break_test"+path_sep+"quad"+path_sep+"square"+path_sep+"square_quad4.e");
-
- UniformRefinerPattern, shards::Quadrilateral<4>, 4, SierraPort > break_quad_to_quad_4(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh.commit();
-
- eMesh.print_info("quad mesh");
-
- UNIFORM_REFINER breaker(eMesh, break_quad_to_quad_4, proc_rank_field);
- //breaker.setRemoveOldElements(false);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"square_quad4_ref_sierra_out.e");
- // end_demo
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- /// uses the Sierra-ported tables from framework/{element,mesh_modification}
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad_to_quad_sierra_sidesets)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
-
- //FIXME
- if (0)
- {
- percept::PerceptMesh eMesh(2u);
- eMesh.open(input_files_loc+"break_test"+path_sep+"quad"+path_sep+"sidesets"+path_sep+"quad_sidesets.e");
- eMesh.commit();
- eMesh.print_info("quad mesh");
- }
-
- if (p_size == 1 || p_size == 2)
- {
- // start_demo_uniformRefiner_break_quad_to_quad
- percept::PerceptMesh eMesh(2u);
- eMesh.open(input_files_loc+"break_test"+path_sep+"quad"+path_sep+"sidesets"+path_sep+"quad_sidesets.e");
-
- UniformRefinerPattern, shards::Quadrilateral<4>, 4, SierraPort > break_quad_to_quad_4(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh.commit();
-
- eMesh.print_info("quad mesh");
-
- UNIFORM_REFINER breaker(eMesh, break_quad_to_quad_4, proc_rank_field);
- //breaker.setRemoveOldElements(false);
- breaker.doBreak();
-
- eMesh.print_info("after refinement break_quad_to_quad_sierra_sidesets");
-
- eMesh.save_as(output_files_loc+"quad_sidesets_sierra_out.e");
- }
- // end_demo
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
- // FIXME - move and/or copy to unit tests
- STKUNIT_UNIT_TEST(regr_uniformRefiner, hex8_tet4_24_1)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_uniformRefiner_hex8_tet4_24_1
-
- percept::PerceptMesh eMesh(3u);
-
- unsigned p_size = eMesh.get_parallel_size();
- //unsigned p_rank = eMesh.get_rank();
- Util::setRank(eMesh.get_rank());
-
- std::string gmesh_spec = std::string("1x1x")+toString(p_size)+std::string("|bbox:0,0,0,1,1,"+toString(p_size) );
- eMesh.new_mesh(percept::GMeshSpec(gmesh_spec));
-
- UniformRefinerPattern, shards::Tetrahedron<4>, 24 > break_hex_to_tet(eMesh);
-
- int scalarDimension = 0; // a scalar
- // int vectorDimension = 3;
-
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- // eMesh.add_field("velocity", mesh::Node, vectorDimension);
- // eMesh.add_field("element_volume", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.print_info();
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex_tet_24_cube1x1x")+toString(p_size)+std::string("-orig.e"));
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_tet, proc_rank_field);
- breaker.setRemoveOldElements(true);
-
- breaker.doBreak();
-
- //eMesh.save_as(input_files_loc+"break_test"+path_sep+"quad"+path_sep+"square"+path_sep+"square_quad4_out.e");
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex_tet_24_cube1x1x")+toString(p_size)+std::string(".e"));
-
- // end_demo
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, hex8_tet4_6_12_1)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_uniformRefiner_hex8_tet4_6_12_1
-
- percept::PerceptMesh eMesh(3u);
-
- unsigned p_size = eMesh.get_parallel_size();
-
- std::string gmesh_spec = std::string("1x1x")+toString(p_size)+std::string("|bbox:0,0,0,1,1,"+toString(p_size) );
- eMesh.new_mesh(percept::GMeshSpec(gmesh_spec));
-
- Hex8_Tet4_6_12 break_hex_to_tet(eMesh);
-
- int scalarDimension = 0; // a scalar
- // int vectorDimension = 3;
-
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- // eMesh.add_field("velocity", mesh::Node, vectorDimension);
- // eMesh.add_field("element_volume", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.print_info();
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex_tet_6_12_cube1x1x")+toString(p_size)+std::string("-orig.e"));
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_tet, proc_rank_field);
- breaker.setRemoveOldElements(true);
- //breaker.setIgnoreSideSets(true);
-
- breaker.doBreak();
-
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex_tet_6_12_cube1x1x")+toString(p_size)+std::string(".e"));
-
- // end_demo
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, hex8_tet4_6_12_2)
- {
-
- EXCEPTWATCH;
-
- // start_demo_uniformRefiner_hex8_tet4_6_12_2
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- percept::PerceptMesh eMesh(3u);
-
- eMesh.open(input_files_loc+"break_test"+path_sep+"hex"+path_sep+"cylinder"+path_sep+"cylinder_hex8.e");
-
- Hex8_Tet4_6_12 break_hex_to_tet(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- //eMesh.print_info("test",2);
- eMesh.print_info();
- eMesh.save_as(output_files_loc+"cylinder_hex8_tet4_6_12_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_tet, proc_rank_field);
- //breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"cylinder_hex8_tet4_6_12_1.e");
-
- // end_demo
- }
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, quad4_quad4_4_test_1)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- //if (p_size == 1 || p_size == 3)
- if (p_size <= 3)
- {
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- //const unsigned p_size = stk_classic::parallel_machine_size( pm );
-
- const unsigned n = 12;
- //const unsigned nx = n , ny = n , nz = p_size*n ;
- const unsigned nx = n , ny = n;
-
- percept::QuadFixture fixture( pm , nx , ny, true);
- fixture.meta_data.commit();
- fixture.generate_mesh();
-
- percept::PerceptMesh eMesh(&fixture.meta_data, &fixture.bulk_data);
- eMesh.print_info("quad fixture");
- eMesh.save_as(output_files_loc+"quad_fixture.e");
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad_to_quad_sierra_1)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- bool doGenSideSets = true;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- //if (p_size == 1 || p_size == 3)
- if (p_size == 1 || p_size == 3)
- {
- const unsigned n = 12;
- //const unsigned nx = n , ny = n , nz = p_size*n ;
- const unsigned nx = n , ny = n;
-
- percept::QuadFixture fixture( pm , nx , ny, doGenSideSets);
-
- // Adopt the meta/bulk data
- bool isCommitted = false;
- percept::PerceptMesh eMesh(&fixture.meta_data, &fixture.bulk_data, isCommitted);
-
- eMesh.commit();
-
- fixture.generate_mesh();
-
- //eMesh.print_info("quad mesh");
-
- eMesh.save_as(output_files_loc+"quad_fixture_0.e");
- eMesh.close();
-
- for (int iBreak = 0; iBreak < 2; iBreak++)
- {
- std::cout << "\n\n\n ================ tmp Refine Pass = " << iBreak << std::endl;
-
- percept::PerceptMesh eMesh1(2);
- std::string fileName = std::string(input_files_loc+"quad_fixture_")+toString(iBreak)+std::string(".e");
- eMesh1.open(fileName);
- UniformRefinerPattern, shards::Quadrilateral<4>, 4, SierraPort > break_quad_to_quad_4(eMesh1);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh1.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh1.commit();
-
- // if (iBreak != 0)
- // proc_rank_field = eMesh1.get_field("proc_rank");
-
- UNIFORM_REFINER breaker(eMesh1, break_quad_to_quad_4, proc_rank_field);
-
- //breaker.setRemoveOldElements(false);
- breaker.doBreak();
- std::string fileName1 = std::string(output_files_loc+"quad_fixture_")+toString(iBreak+1)+std::string(".e");
- //eMesh1.save_as(fileName+"_ref.e");
- //eMesh1.print_info("quad_fixture_1.e");
-
- eMesh1.save_as(fileName1);
- eMesh1.close();
-
- if (0 && iBreak==0)
- {
- percept::PerceptMesh e1(2);
- std::cout << "\n\n\n ================ tmp eMesh1.open_read_only(quad_fixture_1.e) \n\n\n " << std::endl;
- e1.open_read_only(input_files_loc+"quad_fixture_1.e");
- e1.print_info("quad_fixture_1_read.e");
- e1.close();
- }
- }
-
- // end_demo
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad_to_quad_sierra_2)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- //if (p_size == 1 || p_size == 3)
- if (p_size <= 3)
- {
- const unsigned n = 12;
- //const unsigned nx = n , ny = n , nz = p_size*n ;
- const unsigned nx = n , ny = n;
-
- bool doGenSideSets = true;
- percept::QuadFixture fixture( pm , nx , ny, doGenSideSets);
-
- // Adopt the meta/bulk data
- bool isCommitted = false;
- percept::PerceptMesh eMesh(&fixture.meta_data, &fixture.bulk_data, isCommitted);
-
- eMesh.commit();
-
- fixture.generate_mesh();
-
- //eMesh.print_info("quad mesh");
-
- eMesh.save_as(output_files_loc+"quad_fixture_mbreak_0.e");
- eMesh.close();
-
-
- percept::PerceptMesh eMesh1(2);
- std::string fileName = std::string(input_files_loc+"quad_fixture_mbreak_0.e");
- eMesh1.open(fileName);
- UniformRefinerPattern, shards::Quadrilateral<4>, 4, SierraPort > break_quad_to_quad_4(eMesh1);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh1.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh1.commit();
-
- UNIFORM_REFINER breaker(eMesh1, break_quad_to_quad_4, proc_rank_field);
-
- for (int iBreak = 0; iBreak < 2; iBreak++)
- {
- std::cout << "\n\n\n ================ tmp Refine Pass = " << iBreak << std::endl;
-
- breaker.doBreak();
- std::string fileName1 = std::string(output_files_loc+"quad_fixture_mbreak_")+toString(iBreak+1)+std::string(".e");
- eMesh1.save_as(fileName1);
- }
-
- // end_demo
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad4_to_quad9)
- {
- EXCEPTWATCH;
-
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- //if (p_size == 1 || p_size == 3)
- if (p_size <= 3)
- {
- const unsigned n = 12;
- //const unsigned nx = n , ny = n , nz = p_size*n ;
- const unsigned nx = n , ny = n;
-
- bool doGenSideSets = true;
- percept::QuadFixture fixture( pm , nx , ny, doGenSideSets);
-
- // Adopt the meta/bulk data
- bool isCommitted = false;
- percept::PerceptMesh eMesh(&fixture.meta_data, &fixture.bulk_data, isCommitted);
-
- Quad4_Quad9_1 break_quad4_to_quad9_1(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- fixture.generate_mesh();
-
- eMesh.save_as(output_files_loc+"quad_fixture_quad9_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_quad4_to_quad9_1, proc_rank_field);
-
- breaker.doBreak();
- eMesh.save_as(output_files_loc+"quad_fixture_quad9_1.e");
-
- // end_demo
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad4_to_quad8)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- //if (p_size == 1 || p_size == 3)
- if (p_size <= 3)
- {
- const unsigned n = 12;
- //const unsigned nx = n , ny = n , nz = p_size*n ;
- const unsigned nx = n , ny = n;
-
- bool doGenSideSets = true;
- percept::QuadFixture fixture( pm , nx , ny, doGenSideSets);
-
- // Adopt the meta/bulk data
- bool isCommitted = false;
- percept::PerceptMesh eMesh(&fixture.meta_data, &fixture.bulk_data, isCommitted);
-
- Quad4_Quad8_1 break_quad4_to_quad8_1(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- fixture.generate_mesh();
-
- eMesh.save_as(output_files_loc+"quad_fixture_quad8_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_quad4_to_quad8_1, proc_rank_field);
-
- breaker.doBreak();
- eMesh.save_as(output_files_loc+"quad_fixture_quad8_1.e");
- eMesh.save_as(input_files_loc+"quad_fixture_quad8_quad8_0.e");
-
- // end_demo
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad8_to_quad8)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- //if (p_size == 1 || p_size == 3)
- if (p_size <= 3)
- {
- percept::PerceptMesh eMesh(2u);
- eMesh.open(input_files_loc+"quad_fixture_quad8_quad8_0.e");
-
- Quad8_Quad8_4 break_quad8_to_quad8_4(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- UNIFORM_REFINER breaker(eMesh, break_quad8_to_quad8_4, proc_rank_field);
- breaker.setIgnoreSideSets(false);
-
- breaker.doBreak();
- eMesh.save_as(output_files_loc+"quad_fixture_quad8_quad8_1.e");
-
- }
- }
-
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad4_to_quad9_to_quad9_0)
- {
- EXCEPTWATCH;
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- bool doGenSideSets = false;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- //if (p_size == 1 || p_size == 3)
- if (p_size <= 1)
- {
- {
- const unsigned n = 1;
- //const unsigned nx = n , ny = n , nz = p_size*n ;
- const unsigned nx = n , ny = n;
-
- percept::QuadFixture fixture( pm , nx , ny, doGenSideSets);
-
- // Adopt the meta/bulk data
- bool isCommitted = false;
- percept::PerceptMesh eMesh(&fixture.meta_data, &fixture.bulk_data, isCommitted);
-
- Quad4_Quad9_1 break_quad4_to_quad9_1(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- fixture.generate_mesh();
-
- //eMesh.save_as(output_files_loc+"quad_fixture_quad9_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_quad4_to_quad9_1, proc_rank_field);
-
- breaker.doBreak();
- eMesh.save_as(input_files_loc+"quad_1x1_quad9_quad9_0.e");
- }
-
- {
- percept::PerceptMesh em1(2);
- em1.open(input_files_loc+"quad_1x1_quad9_quad9_0.e");
- Quad9_Quad9_4 break_q9_q9(em1);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = em1.add_field("proc_rank", em1.element_rank(), scalarDimension);
-
- em1.commit();
-
- //em1.save_as(output_files_loc+"quad_1x1_quad9_0.e");
-
- UNIFORM_REFINER breaker(em1, break_q9_q9, proc_rank_field);
- breaker.setIgnoreSideSets(!doGenSideSets);
-
- breaker.doBreak();
- em1.save_as(output_files_loc+"quad_1x1_quad9_quad9_1.e");
-
- }
- // end_demo
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_quad4_to_quad9_to_quad9)
- {
- EXCEPTWATCH;
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- bool doGenSideSets = true;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- //if (p_size == 1 || p_size == 3)
- if (p_size <= 3)
- {
- {
- //FIXME const unsigned n = 12;
- const unsigned n = 2;
- //const unsigned nx = n , ny = n , nz = p_size*n ;
- const unsigned nx = n , ny = n;
-
- percept::QuadFixture fixture( pm , nx , ny, doGenSideSets);
-
- // Adopt the meta/bulk data
- bool isCommitted = false;
- percept::PerceptMesh eMesh(&fixture.meta_data, &fixture.bulk_data, isCommitted);
-
- Quad4_Quad9_1 break_quad4_to_quad9_1(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- fixture.generate_mesh();
-
- //eMesh.save_as(output_files_loc+"quad_fixture_quad9_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_quad4_to_quad9_1, proc_rank_field);
- std::cout << "break_quad4_to_quad9_1.fixSurfaceAndEdgeSetNamesMap().size()= "
- << break_quad4_to_quad9_1.fixSurfaceAndEdgeSetNamesMap().size() << std::endl;
-
- breaker.doBreak();
- eMesh.save_as(input_files_loc+"quad_fixture_quad9_quad9_0.e");
- //eMesh.print_info("quad_fixture_quad9_quad9_0.e", 2);
- }
-
- {
- percept::PerceptMesh em1(2);
- em1.open(input_files_loc+"quad_fixture_quad9_quad9_0.e");
- Quad9_Quad9_4 break_q9_q9(em1);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = em1.add_field("proc_rank", em1.element_rank(), scalarDimension);
-
- em1.commit();
-
- //em1.save_as(output_files_loc+"quad_fixture_quad9_0.e");
-
- UNIFORM_REFINER breaker(em1, break_q9_q9, proc_rank_field);
- breaker.setIgnoreSideSets(!doGenSideSets);
-
- breaker.doBreak();
- em1.save_as(output_files_loc+"quad_fixture_quad9_quad9_1.e");
-
- }
- // end_demo
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_tri_to_tri_sierra_0)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size <= 3)
- {
- const unsigned n = 12;
- //const unsigned nx = n , ny = n , nz = p_size*n ;
- const unsigned nx = n , ny = n;
-
- percept::QuadFixture > fixture( pm , nx , ny, true);
-
- percept::PerceptMesh eMesh(&fixture.meta_data, &fixture.bulk_data, false);
-
- eMesh.commit();
-
- fixture.generate_mesh();
-
- eMesh.print_info("tri mesh");
-
- eMesh.save_as(output_files_loc+"quad_fixture_tri3.e");
- // end_demo
- }
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_tri_to_tri_sierra_1)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size <= 3)
- {
- const unsigned n = 12;
- //const unsigned nx = n , ny = n , nz = p_size*n ;
- const unsigned nx = n , ny = n;
-
- bool createEdgeSets = true;
- percept::QuadFixture > fixture( pm , nx , ny, createEdgeSets);
-
- bool isCommitted = false;
- percept::PerceptMesh eMesh(&fixture.meta_data, &fixture.bulk_data, isCommitted);
-
- Tri3_Tri3_4 break_tri_to_tri_4(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- //stk_classic::mesh::FieldBase* proc_rank_field_edge =
- eMesh.add_field("proc_rank_edge", eMesh.edge_rank(), scalarDimension);
-
- // std::cout << "proc_rank_field rank= " << proc_rank_field->rank() << std::endl;
- // std::cout << "proc_rank_field_edge rank= " << proc_rank_field_edge->rank() << std::endl;
-
- //fixture.meta_data.commit();
- eMesh.commit();
-
- fixture.generate_mesh();
-
- //eMesh.print_info("tri mesh", 5);
- eMesh.print_info("tri mesh");
- eMesh.save_as(output_files_loc+"quad_fixture_tri3_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_tri_to_tri_4, proc_rank_field);
- breaker.doBreak();
-
- //eMesh.print_info("tri mesh refined", 5);
- eMesh.print_info("tri mesh refined");
- eMesh.save_as(output_files_loc+"quad_fixture_tri3_1.e");
-
- if (0)
- {
- percept::PerceptMesh e1(2);
- e1.open_read_only(input_files_loc+"quad_fixture_tri3_1.e");
- e1.print_info("after read", 3);
- }
- // end_demo
- }
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_tri3_to_tri6_sierra)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size <= 3)
- {
- const unsigned n = 12;
- //const unsigned nx = n , ny = n , nz = p_size*n ;
- const unsigned nx = n , ny = n;
-
- bool createEdgeSets = true;
- percept::QuadFixture > fixture( pm , nx , ny, createEdgeSets);
-
- bool isCommitted = false;
- percept::PerceptMesh eMesh(&fixture.meta_data, &fixture.bulk_data, isCommitted);
-
- Tri3_Tri6_1 break_tri3_to_tri6(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- //stk_classic::mesh::FieldBase* proc_rank_field_edge =
- eMesh.add_field("proc_rank_edge", eMesh.edge_rank(), scalarDimension);
-
- // std::cout << "proc_rank_field rank= " << proc_rank_field->rank() << std::endl;
- // std::cout << "proc_rank_field_edge rank= " << proc_rank_field_edge->rank() << std::endl;
-
- //fixture.meta_data.commit();
- eMesh.commit();
-
- fixture.generate_mesh();
-
- //eMesh.print_info("tri mesh", 5);
- eMesh.print_info("tri mesh tri6");
- eMesh.save_as(output_files_loc+"quad_fixture_tri3_tri6_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_tri3_to_tri6, proc_rank_field);
- breaker.doBreak();
-
- //eMesh.print_info("tri mesh refined", 5);
- eMesh.print_info("tri mesh enriched");
- eMesh.save_as(output_files_loc+"quad_fixture_tri3_tri6_1.e");
- eMesh.save_as(input_files_loc+"quad_fixture_tri6_tri6_0.e");
-
- if (0)
- {
- percept::PerceptMesh e1(2);
- e1.open_read_only(input_files_loc+"quad_fixture_tri3_1.e");
- e1.print_info("after read", 3);
- }
- // end_demo
- }
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_tri3_to_tri6_to_tri6_sierra)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size <= 3)
- {
- // start_demo_break_tri3_to_tri6_to_tri6_sierra
-
- percept::PerceptMesh eMesh(2u);
- eMesh.open(input_files_loc+"quad_fixture_tri6_tri6_0.e");
-
- Tri6_Tri6_4 break_tri6_to_tri6(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- //stk_classic::mesh::FieldBase* proc_rank_field_edge =
- eMesh.add_field("proc_rank_edge", eMesh.edge_rank(), scalarDimension);
- eMesh.commit();
-
- eMesh.print_info("tri mesh tri6");
- eMesh.save_as(output_files_loc+"quad_fixture_tri6_tri6_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_tri6_to_tri6, proc_rank_field);
- breaker.doBreak();
-
- eMesh.print_info("tri mesh refined");
- eMesh.save_as(output_files_loc+"quad_fixture_tri6_tri6_1.e");
- // end_demo
- }
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_tet4_tet4_0)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- // start_demo_uniformRefiner_break_tet4_tet4
- percept::PerceptMesh eMesh(3u);
- eMesh.open_read_only(input_files_loc+"break_test"+path_sep+"tet"+path_sep+"cylinder-from-hex"+path_sep+"cylinder_tet4.e");
-
- eMesh.save_as(output_files_loc+"cylinder_tet4_0.e");
- // end_demo
-
- }
- }
-
-#if 1
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_tet4_tet4_1)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- // start_demo_uniformRefiner_break_tet4_tet4_1
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_files_loc+"break_test"+path_sep+"tet"+path_sep+"cylinder-from-hex"+path_sep+"cylinder_tet4_0.e");
-
- Tet4_Tet4_8 break_tet_tet(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.print_info("tet mesh");
-
- UNIFORM_REFINER breaker(eMesh, break_tet_tet, proc_rank_field);
- //breaker.setRemoveOldElements(false);
- //breaker.setIgnoreSideSets(true);
- breaker.doBreak();
- eMesh.save_as(output_files_loc+"cylinder_tet4_1.e");
-
- breaker.doBreak();
- eMesh.save_as(output_files_loc+"cylinder_tet4_2.e");
- // end_demo
-
- }
- }
-#endif
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_tet4_tet10_1)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- // start_demo_uniformRefiner_break_tet4_tet4_1
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_files_loc+"break_test"+path_sep+"tet"+path_sep+"cylinder-from-hex"+path_sep+"cylinder_tet4_0.e");
-
- Tet4_Tet10_1 break_tet_tet(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.print_info("tet mesh");
-
- UNIFORM_REFINER breaker(eMesh, break_tet_tet, proc_rank_field);
- //breaker.setRemoveOldElements(false);
- //breaker.setIgnoreSideSets(true);
- breaker.doBreak();
- eMesh.save_as(output_files_loc+"cylinder_tet10_1.e");
- // end_demo
-
-
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_tet4_tet10_tet10_1)
- {
- // FIXME
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- // start_demo_uniformRefiner_break_tet4_tet4_1
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_files_loc+"break_test"+path_sep+"tet"+path_sep+"cylinder-from-hex"+path_sep+"cylinder_tet4_0.e");
-
- Tet4_Tet10_1 break_tet_tet(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.print_info("tet mesh");
-
- UNIFORM_REFINER breaker(eMesh, break_tet_tet, proc_rank_field);
- //breaker.setRemoveOldElements(false);
- //breaker.setIgnoreSideSets(true);
- breaker.doBreak();
- eMesh.save_as(input_files_loc+"cylinder_tet10_1.e");
- eMesh.print_info("cylinder_tet10_1");
- // end_demo
-
- }
-
- if (p_size == 1 || p_size == 3)
- {
- // start_demo_uniformRefiner_break_tet4_tet4_1
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_files_loc+"cylinder_tet10_1.e");
-
- Tet10_Tet10_8 break_tet_tet(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- //eMesh.print_info("tet mesh");
-
- UNIFORM_REFINER breaker(eMesh, break_tet_tet, proc_rank_field);
- //breaker.setRemoveOldElements(false);
- //breaker.setIgnoreSideSets(true);
- //breaker.doBreak();
-
- unsigned numRefines = 1;
- for (unsigned iBreak = 0; iBreak < numRefines; iBreak++)
- {
- breaker.doBreak();
- }
-
- eMesh.save_as(output_files_loc+"cylinder_tet10_tet10_"+toString(numRefines)+"_"+procs_string[p_size]+".e");
- // end_demo
-
-
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, hex8_hex8_8_1)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_uniformRefiner_hex8_hex8_8_1
-
- percept::PerceptMesh eMesh(3u);
-
- unsigned p_size = eMesh.get_parallel_size();
-
- std::string gmesh_spec = std::string("1x1x")+toString(p_size)+std::string("|bbox:0,0,0,1,1,"+toString(p_size) );
- eMesh.new_mesh(percept::GMeshSpec(gmesh_spec));
-
- Hex8_Hex8_8 break_hex_to_hex(eMesh);
-
- int scalarDimension = 0; // a scalar
- // int vectorDimension = 3;
-
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- // eMesh.add_field("velocity", mesh::Node, vectorDimension);
- // eMesh.add_field("element_volume", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.print_info();
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex_hex_cube1x1x")+toString(p_size)+std::string("-orig.e"));
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_hex, proc_rank_field);
- breaker.setRemoveOldElements(true);
-
- breaker.doBreak();
-
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex_hex_cube1x1x")+toString(p_size)+std::string(".e"));
-
- // end_demo
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, hex8_hex8_8_2)
- {
- EXCEPTWATCH;
-
- // start_demo_uniformRefiner_hex8_hex8_8_2
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- percept::PerceptMesh eMesh(3u);
-
- eMesh.open(input_files_loc+"break_test"+path_sep+"hex"+path_sep+"cylinder"+path_sep+"cylinder_hex8.e");
-
- Hex8_Hex8_8 break_hex_to_hex(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.print_info();
- eMesh.save_as(output_files_loc+"cylinder_hex8_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_hex, proc_rank_field);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"cylinder_hex8_1.e");
-
- breaker.doBreak();
- eMesh.save_as(output_files_loc+"cylinder_hex8_2.e");
-
- // end_demo
- }
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, hex8_hex27_1_1)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_uniformRefiner_hex8_hex27_1_1
-
- percept::PerceptMesh eMesh(3u);
-
- unsigned p_size = eMesh.get_parallel_size();
-
- std::string gmesh_spec = std::string("1x1x")+toString(p_size)+std::string("|bbox:0,0,0,1,1,"+toString(p_size) );
- eMesh.new_mesh(percept::GMeshSpec(gmesh_spec));
-
- Hex8_Hex27_1 break_hex_to_hex(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.print_info();
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex8_hex27_cube1x1x")+toString(p_size)+std::string("-orig.e"));
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_hex, proc_rank_field);
- breaker.setRemoveOldElements(true);
-
- breaker.doBreak();
-
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex8_hex27_cube1x1x")+toString(p_size)+std::string(".e"));
-
- // end_demo
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, hex8_hex27_1_2)
- {
- EXCEPTWATCH;
-
- // start_demo_uniformRefiner_hex8_hex27_1_2
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- percept::PerceptMesh eMesh(3u);
-
- eMesh.open(input_files_loc+"break_test"+path_sep+"hex"+path_sep+"cylinder"+path_sep+"cylinder_hex8.e");
-
- Hex8_Hex27_1 break_hex_to_hex(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.print_info();
- eMesh.save_as(output_files_loc+"cylinder_hex27_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_hex, proc_rank_field);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"cylinder_hex27_1.e");
-
-
- // end_demo
- }
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, hex8_hex20_1_1)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_uniformRefiner_hex8_hex20_1_1
-
- percept::PerceptMesh eMesh(3u);
-
- unsigned p_size = eMesh.get_parallel_size();
-
- std::string gmesh_spec = std::string("1x1x")+toString(p_size)+std::string("|bbox:0,0,0,1,1,"+toString(p_size) );
- eMesh.new_mesh(percept::GMeshSpec(gmesh_spec));
-
- Hex8_Hex20_1 break_hex_to_hex(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.print_info();
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex8_hex20_cube1x1x")+toString(p_size)+std::string("-orig.e"));
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_hex, proc_rank_field);
- breaker.setRemoveOldElements(true);
-
- breaker.doBreak();
-
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex8_hex20_cube1x1x")+toString(p_size)+std::string(".e"));
- eMesh.save_as(std::string(input_files_loc+"")+std::string("hex20_hex20_cube1x1x")+toString(p_size)+std::string("_0.e"));
-
-
- // end_demo
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, hex8_hex20_1_2)
- {
- EXCEPTWATCH;
-
- // start_demo_uniformRefiner_hex8_hex20_1_2
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- percept::PerceptMesh eMesh(3u);
-
- eMesh.open(input_files_loc+"break_test"+path_sep+"hex"+path_sep+"cylinder"+path_sep+"cylinder_hex8.e");
-
- Hex8_Hex20_1 break_hex_to_hex(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.print_info();
- eMesh.save_as(output_files_loc+"cylinder_hex20_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_hex, proc_rank_field);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"cylinder_hex20_1.e");
- eMesh.save_as(input_files_loc+"cylinder_hex20_hex20_0.e");
-
-
- // end_demo
- }
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, hex20_hex20_1)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_uniformRefiner_hex20_hex20_1
-
- percept::PerceptMesh eMesh(3u);
-
- unsigned p_size = eMesh.get_parallel_size();
-
- if (p_size <= 3)
- {
- eMesh.open(std::string(input_files_loc+"")+std::string("hex20_hex20_cube1x1x")+toString(p_size)+std::string("_0.e"));
-
- Hex20_Hex20_8 break_hex_to_hex(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex20_hex20_cube1x1x")+toString(p_size)+std::string("_0.e"));
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_hex, proc_rank_field);
- breaker.setRemoveOldElements(true);
-
- breaker.doBreak();
-
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex20_hex20_cube1x1x")+toString(p_size)+std::string("_1.e"));
- }
-
- // end_demo
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, hex20_hex20_1_2)
- {
- EXCEPTWATCH;
-
- // start_demo_uniformRefiner_hex20_hex20_1_2
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- percept::PerceptMesh eMesh(3u);
-
- eMesh.open(input_files_loc+"cylinder_hex20_hex20_0.e");
-
- Hex20_Hex20_8 break_hex_to_hex(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.save_as(output_files_loc+"cylinder_hex20_hex20_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_hex, proc_rank_field);
- //breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"cylinder_hex20_hex20_1.e");
-
-
- // end_demo
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, hex27_hex27_0)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_uniformRefiner_hex27_hex27_0
-
- int scalarDimension = 0; // a scalar
- {
- percept::PerceptMesh eMesh(3u);
-
- unsigned p_size = eMesh.get_parallel_size();
-
- std::string gmesh_spec = std::string("1x1x")+toString(p_size)+std::string("|bbox:0,0,0,1,1,"+toString(p_size) );
- eMesh.new_mesh(percept::GMeshSpec(gmesh_spec));
-
- Hex8_Hex27_1 break_hex_to_hex(eMesh);
-
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.print_info();
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex27_hex27_cube1x1x")+toString(p_size)+std::string("-orig.e"));
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_hex, proc_rank_field);
- breaker.setRemoveOldElements(true);
-
- breaker.doBreak();
-
- eMesh.save_as(std::string(input_files_loc+"")+std::string("hex27_hex27_cube1x1x")+toString(p_size)+std::string("_0.e"));
- }
-
-
- {
- percept::PerceptMesh eMesh(3u);
-
- unsigned p_size = eMesh.get_parallel_size();
- eMesh.open(std::string(input_files_loc+"")+std::string("hex27_hex27_cube1x1x")+toString(p_size)+std::string("_0.e"));
-
- Hex27_Hex27_8 break_hex_to_hex(eMesh);
-
- //stk_classic::mesh::FieldBase* proc_rank_field = eMesh.get_field("proc_rank");
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- //eMesh.print_info();
- //eMesh.save_as(std::string(output_files_loc+"")+std::string("hex27_hex27_cube1x1x")+toString(p_size)+std::string("-orig.e"));
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_hex, proc_rank_field);
- // FIXME
- breaker.setIgnoreSideSets(true);
- breaker.setRemoveOldElements(true);
-
- breaker.doBreak();
-
- eMesh.save_as(std::string(output_files_loc+"")+std::string("hex27_hex27_cube1x1x")+toString(p_size)+std::string("_1.e"));
- }
-
- // end_demo
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, hex8_hex27_hex27_1)
- {
- EXCEPTWATCH;
-
- // start_demo_uniformRefiner_hex8_hex27_1_2
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- if (p_size == 1 || p_size == 3)
- {
- {
- percept::PerceptMesh eMesh(3u);
-
- eMesh.open(input_files_loc+"break_test"+path_sep+"hex"+path_sep+"cylinder"+path_sep+"cylinder_hex8.e");
-
- Hex8_Hex27_1 break_hex_to_hex(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- eMesh.print_info();
- eMesh.save_as(output_files_loc+"cylinder_hex8_hex27_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_hex, proc_rank_field);
- breaker.doBreak();
-
- eMesh.save_as(input_files_loc+"cylinder_hex8_hex27_1.e");
- }
-
- {
- percept::PerceptMesh eMesh(3u);
-
- eMesh.open(input_files_loc+"cylinder_hex8_hex27_1.e");
-
- Hex27_Hex27_8 break_hex_to_hex(eMesh);
-
- //stk_classic::mesh::FieldBase* proc_rank_field = eMesh.get_field("proc_rank");
- int scalarDimension = 0;
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- UNIFORM_REFINER breaker(eMesh, break_hex_to_hex, proc_rank_field);
- //FIXME breaker.setIgnoreSideSets(false);
- breaker.setRemoveOldElements(true);
-
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"cylinder_hex8_hex27_hex27_1.e");
-
- }
-
- // end_demo
- }
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, wedge6_2)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_regr_uniformRefiner_wedge6_1
-
- percept::PerceptMesh eMesh(3u);
-
- unsigned p_size = eMesh.get_parallel_size();
- if (p_size == 1)
- {
-
- // void createMesh(stk_classic::ParallelMachine parallel_machine,
- // unsigned n_nodes_x, unsigned n_nodes_y, unsigned n_nodes_z,
- // double xmin, double xmax,
- // double ymin, double ymax,
- // double zmin, double zmax,
- // std::string output_filename
- // )
- percept::WedgeFixture wedgeFixture;
-
- wedgeFixture.createMesh(MPI_COMM_WORLD,
- 4, 3, 2,
- 0, 1,
- 0, 1,
- 0, 1,
- std::string("swept-wedge_0.e") );
-
- eMesh.open("swept-wedge_0.e");
-
- Wedge6_Wedge6_8 break_wedge(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- UNIFORM_REFINER breaker(eMesh, break_wedge, proc_rank_field);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"swept-wedge_1.e");
-
- }
- // end_demo
-
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, wedge6_enrich_1)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_regr_uniformRefiner_wedge6_enrich_1
-
- percept::PerceptMesh eMesh(3u);
-
- unsigned p_size = eMesh.get_parallel_size();
- if (p_size == 1)
- {
- // void createMesh(stk_classic::ParallelMachine parallel_machine,
- // unsigned n_nodes_x, unsigned n_nodes_y, unsigned n_nodes_z,
- // double xmin, double xmax,
- // double ymin, double ymax,
- // double zmin, double zmax,
- // std::string output_filename
- // )
- percept::WedgeFixture wedgeFixture;
-
- wedgeFixture.createMesh(MPI_COMM_WORLD,
- 4, 3, 2,
- 0, 1,
- 0, 1,
- 0, 1,
- std::string("swept-wedge_enrich_0.e") );
-
- eMesh.open("swept-wedge_enrich_0.e");
-
- Wedge6_Wedge15_1 break_wedge(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- UNIFORM_REFINER breaker(eMesh, break_wedge, proc_rank_field);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"swept-wedge_enrich_1.e");
- eMesh.save_as(input_files_loc+"swept-wedge_enrich_refine_0.e");
-
- }
- // end_demo
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, wedge6_enrich_refine)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_regr_uniformRefiner_wedge6_enrich_refine
-
- const unsigned p_size = stk_classic::parallel_machine_size( MPI_COMM_WORLD );
-
- if (p_size == 1)
- {
- PerceptMesh eMesh(3u);
- percept::WedgeFixture wedgeFixture;
-
- wedgeFixture.createMesh(MPI_COMM_WORLD,
- 4, 2, 2,
- 0, 1,
- 0, 1,
- 0, 1,
- std::string("tmp-swept-wedge_enrich_0.e") );
-
- eMesh.open("tmp-swept-wedge_enrich_0.e");
-
- Wedge6_Wedge15_1 break_wedge(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh.commit();
- UNIFORM_REFINER breaker(eMesh, break_wedge, proc_rank_field);
- breaker.doBreak();
- eMesh.save_as(input_files_loc+"swept-wedge_enrich_refine_0.e");
- }
-
- percept::PerceptMesh eMesh(3u);
-
- if (p_size == 1)
- {
- eMesh.open(input_files_loc+"swept-wedge_enrich_refine_0.e");
-
- Wedge15_Wedge15_8 break_wedge(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- UNIFORM_REFINER breaker(eMesh, break_wedge, proc_rank_field);
- breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"swept-wedge_enrich_refine_1.e");
-
- }
- // end_demo
-
- }
-
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, heterogeneous_mesh)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- // start_demo_heterogeneous_mesh
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( MPI_COMM_WORLD);
- const unsigned p_size = stk_classic::parallel_machine_size( MPI_COMM_WORLD);
-
- if (p_size <= 1)
- {
- // create the mesh
- {
- stk_classic::percept::HeterogeneousFixture mesh(MPI_COMM_WORLD, false);
-
- mesh.m_metaData.commit();
- mesh.populate();
-
- bool isCommitted = true;
- percept::PerceptMesh em1(&mesh.m_metaData, &mesh.m_bulkData, isCommitted);
-
- //em1.print_info("heterogeneous", 4);
-
- em1.save_as(input_files_loc+"heterogeneous_0.e");
- em1.close();
- }
-
- std::string input_mesh = input_files_loc+"heterogeneous_0.e";
- if (p_size > 1)
- {
- RunEnvironment::doLoadBalance(pm, input_mesh);
- }
-
- // refine the mesh
- if (1)
- {
- percept::PerceptMesh eMesh1(3);
-
- eMesh1.open(input_files_loc+"heterogeneous_0.e");
-
- URP_Heterogeneous_3D break_pattern(eMesh1);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh1.add_field("proc_rank", eMesh1.element_rank(), scalarDimension);
- eMesh1.commit();
-
- UNIFORM_REFINER breaker(eMesh1, break_pattern, proc_rank_field);
-
- //breaker.setRemoveOldElements(false);
- breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- eMesh1.save_as(output_files_loc+"heterogeneous_1.e");
- eMesh1.close();
- }
- }
- // end_demo
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, heterogeneous_mesh_sidesets)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- // start_demo_heterogeneous_mesh
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( MPI_COMM_WORLD);
- const unsigned p_size = stk_classic::parallel_machine_size( MPI_COMM_WORLD);
-
- if (p_size <= 1)
- {
- // create the mesh
- {
- stk_classic::percept::HeterogeneousFixture mesh(MPI_COMM_WORLD, false, true);
-
- mesh.m_metaData.commit();
- mesh.populate();
-
- bool isCommitted = true;
- percept::PerceptMesh em1(&mesh.m_metaData, &mesh.m_bulkData, isCommitted);
-
- //em1.print_info("heterogeneous", 4);
-
- em1.save_as(input_files_loc+"heterogeneous_sideset_0.e");
- em1.close();
- }
-
- std::string input_mesh = input_files_loc+"heterogeneous_sideset_0.e";
- if (p_size > 1)
- {
- RunEnvironment::doLoadBalance(pm, input_mesh);
- }
-
- // refine the mesh
- if (1)
- {
- percept::PerceptMesh eMesh1(3);
-
- eMesh1.open(input_files_loc+"heterogeneous_sideset_0.e");
-
- URP_Heterogeneous_3D break_pattern(eMesh1);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh1.add_field("proc_rank", eMesh1.element_rank(), scalarDimension);
- eMesh1.commit();
-
- UNIFORM_REFINER breaker(eMesh1, break_pattern, proc_rank_field);
-
- //breaker.setRemoveOldElements(false);
- breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- eMesh1.save_as(output_files_loc+"heterogeneous_sideset_1.e");
- eMesh1.close();
- }
- }
- // end_demo
- }
-
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, pyramid_mesh_enrich)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- // start_demo_heterogeneous_mesh_enrich
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( MPI_COMM_WORLD);
- const unsigned p_size = stk_classic::parallel_machine_size( MPI_COMM_WORLD);
-
- if (p_size <= 1)
- {
- // create the mesh
- {
- stk_classic::percept::PyramidFixture mesh(MPI_COMM_WORLD, false);
- mesh.m_metaData.commit();
- mesh.populate();
-
- bool isCommitted = true;
- percept::PerceptMesh em1(&mesh.m_metaData, &mesh.m_bulkData, isCommitted);
-
- //em1.print_info("hetero_enrich", 4);
-
- em1.save_as(input_files_loc+"pyramid_enrich_0.e");
- em1.close();
- }
-
- std::string input_mesh = input_files_loc+"pyramid_enrich_0.e";
- if (p_size > 1)
- {
- RunEnvironment::doLoadBalance(pm, input_mesh);
- }
-
- // enrich the mesh
- if (1)
- {
- percept::PerceptMesh eMesh1(3);
-
- eMesh1.open(input_files_loc+"pyramid_enrich_0.e");
- //eMesh1.print_info("hetero_enrich_2", 4);
-
- URP_Heterogeneous_Enrich_3D break_pattern(eMesh1);
- //int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = 0; //eMesh1.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh1.commit();
- //eMesh1.print_info("hetero_enrich_2", 4);
-
- UNIFORM_REFINER breaker(eMesh1, break_pattern, proc_rank_field);
-
- //breaker.setRemoveOldElements(false);
- breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- eMesh1.save_as(output_files_loc+"pyramid_enrich_1.e");
- eMesh1.save_as(input_files_loc+"pyramid_quadratic_refine_0.e");
- eMesh1.close();
- }
- }
- // end_demo
- }
-
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
-#if 0
- STKUNIT_UNIT_TEST(regr_uniformRefiner, beam_refine)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- const unsigned p_size = stk_classic::parallel_machine_size(pm);
-
- if (p_size <= 1)
- {
- // create the mesh
- {
-
- stk_classic::percept::BeamFixture mesh(pm, false);
- stk_classic::io::put_io_part_attribute( mesh.m_block_beam );
- mesh.m_metaData.commit();
- mesh.populate();
-
- bool isCommitted = true;
- percept::PerceptMesh em1(&mesh.m_metaData, &mesh.m_bulkData, isCommitted);
- em1.save_as(input_files_loc+"beam_0.e");
-
- }
-
- // refine
- {
- stk_classic::percept::PerceptMesh eMesh(3u);
- eMesh.open(input_files_loc+"beam_0.e");
- //URP_Heterogeneous_3D break_pattern(eMesh);
- Beam2_Beam2_2 break_pattern(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh.commit();
-
- eMesh.save_as(output_files_loc+"beam_0.e");
-
- eMesh.print_info("beam", 2);
-
- UNIFORM_REFINER breaker(eMesh, break_pattern, proc_rank_field);
- //breaker.setRemoveOldElements(false);
- breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"beam_1.e");
-
- }
- }
- }
-
-#endif
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-#if 1
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, biplane_refine)
- {
- EXCEPTWATCH;
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
-
- // this case can't be load balanced?
-
- if (p_size <= 1)
- {
- // start_demo_biplane_refine
- std::string input_mesh = input_files_loc+"salinas"+path_sep+"biplane.e";
-
- if (p_size > 1)
- {
- RunEnvironment::doLoadBalance(pm, input_mesh);
- }
-
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_mesh);
-
- URP_Heterogeneous_3D break_pattern(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh.commit();
-
- eMesh.print_info("biplane", 2);
- eMesh.save_as(output_files_loc+"biplane_0.e");
-
- UNIFORM_REFINER breaker(eMesh, break_pattern, proc_rank_field);
- //breaker.setRemoveOldElements(false);
- breaker.setIgnoreSideSets(false);
- breaker.doBreak();
-
- //eMesh.print_info("biplane", 2);
- eMesh.save_as(output_files_loc+"biplane_1.e");
-
- }
- }
-
-#endif
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_tet_shell3_tet)
- {
- EXCEPTWATCH;
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- std::cout << "p_size= " << p_size << std::endl;
- // this case can't be load balanced (I presume there are too few elements)
- if (p_size <= 1)
- {
- // start_demo_break_tet_shell3_tet
-
- std::string input_mesh = input_files_loc+"shell-tests"+path_sep+"tet_shell3_tet.g";
- if (p_size > 1)
- {
- RunEnvironment::doLoadBalance(pm, input_mesh);
- }
-
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_mesh);
-
- URP_Heterogeneous_3D break_pattern(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh.commit();
-
- UNIFORM_REFINER breaker(eMesh, break_pattern, proc_rank_field);
-
- //breaker.setRemoveOldElements(false);
- //breaker.setIgnoreSideSets(true);
- unsigned numRefines = 2;
- for (unsigned iBreak = 0; iBreak < numRefines; iBreak++)
- {
- breaker.doBreak();
- }
-
- eMesh.save_as(output_files_loc+"tet_shell3_tet_"+toString(numRefines)+".g");
- eMesh.close();
-
- // end_demo
-
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, break_hex_shell4_hex)
- {
- EXCEPTWATCH;
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- // this case can't be load balanced (I presume there are too few elements)
- //if (p_size <= 3)
- if (p_size == 1)
- {
- // start_demo_break_hex_shell4_hex
- std::string input_mesh = input_files_loc+"shell-tests"+path_sep+"hex_shell4_hex.g";
- if (p_size > 1)
- {
- RunEnvironment::doLoadBalance(pm, input_mesh);
- }
-
- percept::PerceptMesh eMesh(3u);
- eMesh.open(input_mesh);
-
- URP_Heterogeneous_3D break_pattern(eMesh);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh.commit();
-
- UNIFORM_REFINER breaker(eMesh, break_pattern, proc_rank_field);
-
- //breaker.setRemoveOldElements(false);
- //breaker.setIgnoreSideSets(true);
- breaker.doBreak();
- eMesh.save_as(output_files_loc+"hex_shell4_hex_1.g");
- eMesh.close();
-
- // end_demo
-
- }
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, heterogeneous_mesh_enrich)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- // start_demo_heterogeneous_mesh_enrich
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( MPI_COMM_WORLD);
- const unsigned p_size = stk_classic::parallel_machine_size( MPI_COMM_WORLD);
-
- if (p_size <= 1)
- {
- // create the mesh
- {
- stk_classic::percept::HeterogeneousFixture mesh(MPI_COMM_WORLD, false);
-
- mesh.m_metaData.commit();
- mesh.populate();
-
- bool isCommitted = true;
- percept::PerceptMesh em1(&mesh.m_metaData, &mesh.m_bulkData, isCommitted);
-
- //em1.print_info("hetero_enrich", 4);
-
-
- em1.save_as(input_files_loc+"heterogeneous_enrich_0.e");
- em1.close();
- }
-
- std::string input_mesh = input_files_loc+"heterogeneous_enrich_0.e";
- if (p_size > 1)
- {
- RunEnvironment::doLoadBalance(pm, input_mesh);
- }
-
- // enrich the mesh
- if (1)
- {
- percept::PerceptMesh eMesh1(3);
-
- eMesh1.open(input_files_loc+"heterogeneous_enrich_0.e");
- //eMesh1.print_info("hetero_enrich_2", 4);
-
- URP_Heterogeneous_Enrich_3D break_pattern(eMesh1);
- //int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = 0; //eMesh1.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
- eMesh1.commit();
- //eMesh1.print_info("hetero_enrich_2", 4);
-
- UNIFORM_REFINER breaker(eMesh1, break_pattern, proc_rank_field);
-
- //breaker.setRemoveOldElements(false);
- breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- eMesh1.save_as(output_files_loc+"heterogeneous_enrich_1.e");
- eMesh1.save_as(input_files_loc+"heterogeneous_quadratic_refine_0.e");
- eMesh1.close();
- }
- }
- // end_demo
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, heterogeneous_quadratic_refine)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- // start_demo_heterogeneous_quadratic_refine
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( MPI_COMM_WORLD);
- const unsigned p_size = stk_classic::parallel_machine_size(pm);
-
- if (p_size <= 1)
- {
- // refine the mesh
- if (1)
- {
- percept::PerceptMesh eMesh1(3);
-
- eMesh1.open(input_files_loc+"heterogeneous_quadratic_refine_0.e");
-
- URP_Heterogeneous_QuadraticRefine_3D break_pattern(eMesh1);
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh1.add_field("proc_rank", eMesh1.element_rank(), scalarDimension);
- eMesh1.commit();
-
- UNIFORM_REFINER breaker(eMesh1, break_pattern, proc_rank_field);
-
- //breaker.setRemoveOldElements(false);
- breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- eMesh1.save_as(output_files_loc+"heterogeneous_quadratic_refine_1.e");
- eMesh1.close();
- }
- }
- // end_demo
- }
-
- //here
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, wedge6_wedge18_enrich)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_regr_uniformRefiner_wedge6_wedge18_enrich
-
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
-
- //const unsigned p_rank = stk_classic::parallel_machine_rank( MPI_COMM_WORLD);
- const unsigned p_size = stk_classic::parallel_machine_size(pm);
-
-
- //unsigned p_size = eMesh.get_parallel_size();
- if (p_size == 1)
- {
- // void createMesh(stk_classic::ParallelMachine parallel_machine,
- // unsigned n_nodes_x, unsigned n_nodes_y, unsigned n_nodes_z,
- // double xmin, double xmax,
- // double ymin, double ymax,
- // double zmin, double zmax,
- // std::string output_filename
- // )
- percept::WedgeFixture wedgeFixture;
-
- mesh::BulkData *bulk =
- wedgeFixture.createMesh(MPI_COMM_WORLD,
- 4, 3, 2,
- 0, 1,
- 0, 1,
- 0, 1,
- std::string(""));
- //std::string("swept-wedge6_18_enrich_0.e") );
-
- percept::PerceptMesh eMesh(wedgeFixture.getMetaData(), bulk, false);
- //percept::PerceptMesh eMesh;
- //eMesh.open("swept-wedge6_18_enrich_0.e");
-
- Wedge6_Wedge18_1 break_wedge(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
- //eMesh.print_info();
-
- wedgeFixture.createBulkAfterMetaCommit(MPI_COMM_WORLD);
-
- UNIFORM_REFINER breaker(eMesh, break_wedge, proc_rank_field);
- breaker.doBreak();
-
- //eMesh.save_as(output_files_loc+"swept-wedge6_18_enrich_0.e");
- //eMesh.save_as(input_files_loc+"swept-wedge6_18_enrich_refine_0.e");
- }
- // end_demo
- }
-
- //======================================================================================================================
- //======================================================================================================================
- //======================================================================================================================
-
-#if 0
-
- STKUNIT_UNIT_TEST(regr_uniformRefiner, wedge6_18_enrich_refine)
- {
- EXCEPTWATCH;
- MPI_Barrier( MPI_COMM_WORLD );
-
- // start_demo_regr_uniformRefiner_wedge6_18_enrich_refine
-
- percept::PerceptMesh eMesh(3u);
-
- unsigned p_size = eMesh.get_parallel_size();
- if (p_size == 1)
- {
- eMesh.open(input_files_loc+"swept-wedge_enrich_refine_0.e");
-
- Wedge15_Wedge15_8 break_wedge(eMesh);
-
- int scalarDimension = 0; // a scalar
- stk_classic::mesh::FieldBase* proc_rank_field = eMesh.add_field("proc_rank", eMesh.element_rank(), scalarDimension);
-
- eMesh.commit();
-
- UNIFORM_REFINER breaker(eMesh, break_wedge, proc_rank_field);
- breaker.setIgnoreSideSets(true);
- breaker.doBreak();
-
- eMesh.save_as(output_files_loc+"swept-wedge_enrich_refine_1.e");
- }
- // end_demo
- }
-#endif
-
- //=============================================================================
- //=============================================================================
- //=============================================================================
-#if DO_SMOOTHING_TEST
-
- // A cube with an indented bump on the bottom, new parallel smoother, convert to tet
-
- STKUNIT_UNIT_TEST(regr_perceptMesquite, tet_4)
- {
- EXCEPTWATCH;
- stk_classic::ParallelMachine pm = MPI_COMM_WORLD ;
- MPI_Barrier( MPI_COMM_WORLD );
-
- const unsigned p_rank = stk_classic::parallel_machine_rank( pm );
- const unsigned p_size = stk_classic::parallel_machine_size( pm );
- //if (p_size == 1 || p_size == 3)
- if (p_size <= 2)
- {
- unsigned n = 12;
- std::cout << "P["< & buckets = eMesh.get_bulk_data()->buckets( stk_classic::mesh::fem::FEMMetaData::NODE_RANK );
-
- // cluster the mesh towards the bump
- for ( std::vector::const_iterator k = buckets.begin() ; k != buckets.end() ; ++k )
- {
- //if (boundarySelector_5(**k))
- {
- stk_classic::mesh::Bucket & bucket = **k ;
-
- const unsigned num_elements_in_bucket = bucket.size();
-
- for (unsigned iEntity = 0; iEntity < num_elements_in_bucket; iEntity++)
- {
- stk_classic::mesh::Entity& entity = bucket[iEntity];
-
- double * data = stk_classic::mesh::field_data( *eMesh.get_coordinates_field() , entity );
- data[2] = data[2]*data[2];
- }
- }
- }
- eMesh.save_as(input_files_loc+"tet_4_smooth.0.e");
-
- // save state of original mesh
- // field, dst, src:
- eMesh.copy_field(eMesh.get_field("coordinates_NM1"), eMesh.get_coordinates_field());
-
- for ( std::vector::const_iterator k = buckets.begin() ; k != buckets.end() ; ++k )
- {
- if (boundarySelector_5(**k))
- {
- stk_classic::mesh::Bucket & bucket = **k ;
-
- const unsigned num_elements_in_bucket = bucket.size();
-
- for (unsigned iEntity = 0; iEntity < num_elements_in_bucket; iEntity++)
- {
- stk_classic::mesh::Entity& entity = bucket[iEntity];
-
- double * data = stk_classic::mesh::field_data( *eMesh.get_coordinates_field() , entity );
- double ix = data[0];
- double iy = data[1];
- data[2] = (ix)*(1.0-ix)*(iy)*(1.0-iy)*2.0*4.;
- }
- }
- }
- // save state of projected mesh
- // field, dst, src:
- eMesh.copy_field(eMesh.get_field("coordinates_N"), eMesh.get_coordinates_field());
-
- eMesh.save_as(input_files_loc+"tet_4_smooth.0_perturbed.e");
-
- std::cout << "tmp srk doing Shape smoothing for tet_4 case..." << std::endl;
-
- //bool do_jacobi = true;
- Mesquite::MsqDebug::disable(1);
- //Mesquite::MsqDebug::enable(2);
- //Mesquite::MsqDebug::enable(3);
-
- int msq_debug = 0; // 1,2,3 for more debug info
- bool always_smooth = true;
- int innerIter = 1001;
-
- {
- PerceptMesquiteMesh pmm(&eMesh, 0, &boundarySelector);
- stk_classic::percept::PMMParallelShapeImprover pmmpsi(innerIter, 1.e-4, 1);
- pmmpsi.run(pmm, 0, always_smooth, msq_debug);
- }
-
- eMesh.save_as(output_files_loc+"tet_4_si_smooth.1.e");
-
- }
-
- }
-#endif
-
-
- }// namespace regression_tests
- }// namespace adapt
-}// namespace stk_classic
-
diff --git a/packages/stk/stk_classic/stk_adapt/stk_adapt/Allocate.cpp b/packages/stk/stk_classic/stk_adapt/stk_adapt/Allocate.cpp
deleted file mode 100644
index 93f7c002c29a..000000000000
--- a/packages/stk/stk_classic/stk_adapt/stk_adapt/Allocate.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Allocate.cpp
- *
- * Created on: Jan 22, 2011
- * Author: kdcopps
- */
-
-// this is here only to avoid a warning on Mac builds - it was complaining about no symbols existing in this file
-
-namespace stk_classic {
- namespace adapt {
- void dummyAllocateMethodForMacBuildWarning()
- {
- }
- }
-}
-
-#ifdef STK_ADAPT_REPLACE_NEW_DELETE
-
-#ifdef STK_HAVE_TBB
-#include
-
-#pragma GCC visibility push(hidden)
-
-extern "C++"
-{
- void* operator new(std::size_t) throw (std::bad_alloc);
- void* operator new[](std::size_t) throw (std::bad_alloc);
- void* operator new(std::size_t, const std::nothrow_t&) throw();
- void* operator new[](std::size_t, const std::nothrow_t&) throw();
- void operator delete(void*) throw();
- void operator delete[](void*) throw();
- void operator delete(void*, const std::nothrow_t&) throw();
- void operator delete[](void*, const std::nothrow_t&) throw();
-} // extern "C++"
-
-#pragma GCC visibility pop
-
-
-// See Intel Threading Building Blocks, James Reinders (2007).
-// chapter 11.11.1. Replacing new and delete
-//
-// No retry loop because we assume that scalable_malloc does
-// all it takes to allocate the memory, so calling it repeatedly
-// will not improve the situation at all
-//
-// No use of std::new_handler because it cannot be done in portable
-// and thread-safe way (see sidebar)
-//
-// We throw std::bad_alloc() when scalable_malloc returns NULL
-//(we return NULL if it is a no-throw implementation)
-
-
-void* operator new (size_t size) throw (std::bad_alloc) {
- if (size == 0) size = 1;
- if (void* ptr = scalable_malloc (size))
- return ptr;
- throw std::bad_alloc ();
-}
-
-void* operator new[] (size_t size) throw (std::bad_alloc) {
- return operator new (size);
-}
-
-void* operator new (size_t size, const std::nothrow_t&) throw () {
- if (size == 0) size = 1;
- if (void* ptr = scalable_malloc (size))
- return ptr;
- return NULL;
-}
-
-void* operator new[] (size_t size, const std::nothrow_t&) throw () {
- return operator new (size, std::nothrow);
-}
-
-void operator delete (void* ptr) throw () {
- if (ptr != 0) scalable_free (ptr);
-}
-
-void operator delete[] (void* ptr) throw () {
- operator delete (ptr);
-}
-
-void operator delete (void* ptr, const std::nothrow_t&) throw () {
- if (ptr != 0) scalable_free (ptr);
-}
-
-void operator delete[] (void* ptr, const std::nothrow_t&) throw () {
- operator delete (ptr, std::nothrow);
-}
-
-#endif // STK_HAVE_TBB
-
-#endif // STK_ADAPT_REPLACE_NEW_DELETE
diff --git a/packages/stk/stk_classic/stk_adapt/stk_adapt/CMakeLists.txt b/packages/stk/stk_classic/stk_adapt/stk_adapt/CMakeLists.txt
deleted file mode 100644
index 695b21d4bb9d..000000000000
--- a/packages/stk/stk_classic/stk_adapt/stk_adapt/CMakeLists.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-
-INCLUDE(TribitsLibraryMacros)
-
-ADD_SUBDIRECTORY(sierra_element)
-
-TRIBITS_CONFIGURE_FILE(${PACKAGE_NAME}_config.h)
-
-SET(HEADERS "")
-SET(SOURCES "")
-
-SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR})
-APPEND_GLOB(HEADERS ${DIR}/*.hpp)
-APPEND_GLOB(SOURCES ${DIR}/*.cpp)
-
-#SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/main)
-#APPEND_GLOB(HEADERS ${DIR}/*.hpp)
-#APPEND_GLOB(SOURCES ${DIR}/*.cpp)
-
-#IF( TPL_ENABLE_OpenNURBS)
-IF( STK_ADAPT_HAS_GEOMETRY )
- SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/geometry)
- APPEND_GLOB(HEADERS ${DIR}/*.hpp)
- APPEND_GLOB(SOURCES ${DIR}/*.cpp)
-ENDIF()
-
-SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/sierra_element)
-APPEND_GLOB(HEADERS ${DIR}/*.hpp)
-APPEND_GLOB(SOURCES ${DIR}/*.cpp)
-
-# Must glob the binary dir last to get all of the auto-generated headers
-SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_BINARY_DIR})
-APPEND_GLOB(HEADERS ${DIR}/*.hpp)
-APPEND_SET(HEADERS ${DIR}/${PACKAGE_NAME}_config.h )
-
-#SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/../stk_util/stk_util/unit_test_support/)
-#APPEND_GLOB(HEADERS ${DIR}/*.hpp)
-#APPEND_GLOB(SOURCES ${DIR}/*.cpp)
-
-SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/..)
-
-TRIBITS_ADD_LIBRARY(
- stkclassic_adapt
- HEADERS ${HEADERS}
- DEPLIBS stkclassic_percept
- SOURCES ${SOURCES}
-)
-
-INSTALL(FILES ${HEADERS} DESTINATION
-${CMAKE_INSTALL_PREFIX}/${${PROJECT_NAME}_INSTALL_INCLUDE_DIR}/stk_adapt/)
-
-ADD_SUBDIRECTORY(main)
-
-#INCLUDE(TribitsAddExecutableAndTest)
-
-#TRIBITS_ADD_EXECUTABLE(
-# adapt
-# COMM serial mpi
-# SOURCES ${SOURCES}
-# DIRECTORY .
-#)
diff --git a/packages/stk/stk_classic/stk_adapt/stk_adapt/Colorer.cpp b/packages/stk/stk_classic/stk_adapt/stk_adapt/Colorer.cpp
deleted file mode 100644
index 8d2020c2284b..000000000000
--- a/packages/stk/stk_classic/stk_adapt/stk_adapt/Colorer.cpp
+++ /dev/null
@@ -1,186 +0,0 @@
-#include
-
-#include
-
-
-
-namespace stk_classic {
- namespace adapt {
-
- using namespace std;
-
- template bool contains(STD_Set& set, Key key) { return set.find(key) != set.end(); }
-
- Colorer::Colorer(std::vector< ColorerSetType >& element_colors, std::vector ranks ) : m_element_colors(element_colors), m_entityRanks(),
- m_noColoring(true)
- {
- if (ranks.size())
- {
- m_entityRanks = ranks;
- }
- else
- {
- throw std::runtime_error("Colorer:: you must pass in non-zero length ranks");
- }
- }
-
- Colorer::Colorer(std::vector ranks ) : m_element_colors(m_element_colors_internal), m_entityRanks(), m_noColoring(true)
- {
- if (ranks.size())
- {
- m_entityRanks = ranks;
- }
- else
- {
- throw std::runtime_error("Colorer:: you must pass in non-zero length ranks");
- }
- }
-
- void Colorer::setNoColoring(bool no_coloring) { m_noColoring = no_coloring; }
- bool Colorer::getNoColoring() { return m_noColoring; }
-
- std::vector< ColorerSetType >& Colorer::
- getElementColors() { return m_element_colors; }
-
- void Colorer::
- color(percept::PerceptMesh& eMesh, unsigned * elementType, stk_classic::mesh::PartVector* fromParts, stk_classic::mesh::FieldBase *element_color_field)
- {
- const unsigned MAX_COLORS=1000;
- vector< ColorerNodeSetType > node_colors(MAX_COLORS+1);
- ColorerElementSetType all_elements;
-
- mesh::Selector selector(eMesh.get_fem_meta_data()->universal_part());
- if (fromParts)
- {
- if (0)
- {
- std::cout << "tmp Colorer::color fromParts= " << *fromParts << std::endl;
- std::cout << "tmp Colorer::color elementType= " << *elementType << std::endl;
- for (unsigned i_part = 0; i_part < fromParts->size(); i_part++)
- {
- std::cout << "tmp Colorer::color i_part = " << i_part << " fromParts= " << (*fromParts)[i_part]->name() << std::endl;
- }
- }
-
- selector = mesh::selectUnion(*fromParts);
- }
-
- stk_classic::mesh::BulkData& bulkData = *eMesh.get_bulk_data();
- unsigned ncolor = 0;
- int nelem = 0;
- unsigned num_max_colors = MAX_COLORS;
- if (m_noColoring)
- num_max_colors = 1;
-
- m_element_colors = vector< ColorerSetType > (num_max_colors+1);
-
- for (unsigned icolor = 0; icolor < num_max_colors; icolor++)
- {
- int num_colored_this_pass = 0;
- for (unsigned irank = 0; irank < m_entityRanks.size(); irank++)
- {
- const vector & buckets = bulkData.buckets( m_entityRanks[irank] );
- for ( vector::const_iterator k = buckets.begin() ; k != buckets.end() ; ++k )
- {
- if (selector(**k))
- {
- stk_classic::mesh::Bucket & bucket = **k ;
-
- bool doThisBucket = true;
- const CellTopologyData * const bucket_cell_topo_data = stk_classic::percept::PerceptMesh::get_cell_topology(bucket);
- shards::CellTopology topo(bucket_cell_topo_data);
- if (elementType && (topo.getKey() != *elementType))
- {
- doThisBucket = false;
- }
-
- if (0 && doThisBucket)
- {
- std::cout << "tmp color = " << icolor << " bucket topo name= " << topo.getName() << " key= " << topo.getKey()
- << " elementType= " << (elementType? *elementType : 0) << " doThisBucket= " << doThisBucket << std::endl;
- }
-
- if (doThisBucket)
- {
- const unsigned num_elements_in_bucket = bucket.size();
- nelem += num_elements_in_bucket;
-
- for (unsigned iElement = 0; iElement < num_elements_in_bucket; iElement++)
- {
- stk_classic::mesh::Entity& element = bucket[iElement];
-
- if (0)
- std::cout << "tmp color = " << icolor << " bucket topo name= " << topo.getName() << " key= " << topo.getKey()
- << " elementId = " << element.identifier() << " element = " << element << std::endl;
-
- stk_classic::mesh::EntityId elem_id = element.identifier();
-
- if (!m_noColoring && contains(all_elements, elem_id))
- continue;
-
- bool none_in_this_color = true;
- static std::vector node_ids(100);
- unsigned num_node = 0;
-
- if (!m_noColoring)
- {
- const stk_classic::mesh::PairIterRelation elem_nodes = element.relations( stk_classic::mesh::fem::FEMMetaData::NODE_RANK );
- num_node = elem_nodes.size();
- node_ids.reserve(num_node);
- for (unsigned inode=0; inode < num_node; inode++)
- {
- stk_classic::mesh::Entity & node = *elem_nodes[ inode ].entity();
- stk_classic::mesh::EntityId nid = node.identifier();
- node_ids[inode] = nid;
- if (contains(node_colors[icolor], nid))
- {
- none_in_this_color = false;
- break;
- }
- }
- }
- if (none_in_this_color)
- {
- ++num_colored_this_pass;
- if (element_color_field)
- {
- double *fdata = stk_classic::mesh::field_data( *static_cast(element_color_field) , element );
- fdata[0] = double(icolor);
- }
-#if STK_ADAPT_COLORER_SET_TYPE_USE_VECTOR
- m_element_colors[icolor].push_back(&element);
-#else
- m_element_colors[icolor].insert(&element);
-#endif
- if (!m_noColoring)
- {
- all_elements.insert(elem_id);
- for (unsigned inode=0; inode < num_node; inode++)
- {
- node_colors[icolor].insert(node_ids[inode]);
- }
- }
- }
- } // elements in bucket
- } // doThisBucket
- } // selection
- } // buckets
- } // irank
- if (0 == num_colored_this_pass)
- {
- break;
- }
- ++ncolor;
- if (ncolor == num_max_colors-1)
- {
- throw std::runtime_error("broken algorithm in mesh colorer");
- }
- } // icolor
-
- //std::cout << "tmp ncolor = " << ncolor << " nelem= " << nelem << std::endl;
-
- m_element_colors.resize(ncolor);
- }
-
- } // namespace adapt
-} // namespace stk_classic
diff --git a/packages/stk/stk_classic/stk_adapt/stk_adapt/Colorer.hpp b/packages/stk/stk_classic/stk_adapt/stk_adapt/Colorer.hpp
deleted file mode 100644
index 71181546c360..000000000000
--- a/packages/stk/stk_classic/stk_adapt/stk_adapt/Colorer.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-#ifndef stk_adapt_Colorer_hpp
-#define stk_adapt_Colorer_hpp
-
-#include
-#include
-#include
-#include