Skip to content

Commit

Permalink
Merge 'trilinos/Trilinos:develop' (69fa195) into 'tcad-charon/Trilino…
Browse files Browse the repository at this point in the history
…s:develop' (51084e8).

* trilinos-develop:
  Panzer: Fix for ghost orientations in worksets.
  Implement getHostBasis() in newer Basis subclasses (trilinos#8811)
  Teuchos core: Reorder noreturn and DLL export
  tpetra:  removed Doxygen comments with incorrect advice on including _decl files
  STK: Snapshot 02-24-21 10:53
  Piro: solve a bug when more than 1 response is used
  MueLu: Minor fix to AggregateQualityFactory
  Framework: Update STALE issue closer
  NOX:NodeType not specified in type being cast to. Fixes inability to compile using clang.
  MueLu: Fix missing parameters in ML2MueLuParameterTranslator
  sems-rhel7 env:  Add clang-10.0.0
  • Loading branch information
Charonops Jenkins Pipeline committed Mar 2, 2021
2 parents 51084e8 + 69fa195 commit 090471e
Show file tree
Hide file tree
Showing 63 changed files with 1,711 additions and 884 deletions.
7 changes: 5 additions & 2 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected].14
- uses: actions/[email protected].17
with:
debug-only: false
ascending: true
Expand All @@ -35,7 +35,7 @@ jobs:
# We specifically DO NOT exempt PR's from autoclosing.
#exempt-pr-labels: ''
remove-stale-when-updated: true
operations-per-run: 50
operations-per-run: 52
stale-issue-message: >
This issue has had no activity for **365** days and is marked for
closure. It will be closed after an additional **30** days of inactivity.
Expand Down Expand Up @@ -63,6 +63,9 @@ jobs:
close-pr-message: >
This Pull Request has been automatically closed due to **395** days of inactivity.
# start-date : only consider issues/PR's created after this date.
start-date: '2001-01-01T00:00:00Z'




4 changes: 2 additions & 2 deletions cmake/std/atdm/sems-rhel7/all_supported_builds.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
export ATDM_CONFIG_CTEST_S_BUILD_NAME_PREFIX=Trilinos-atdm-

export ATDM_CONFIG_ALL_SUPPORTED_BUILDS=(
sems-rhel7-clang-7.0.1-openmp-shared-release
sems-rhel7-clang-7.0.1-openmp-shared-release-debug
sems-rhel7-clang-10.0.0-openmp-shared-release
sems-rhel7-clang-10.0.0-openmp-shared-release-debug
sems-rhel7-cuda-9.2-Volta70-complex-shared-release-debug
sems-rhel7-gnu-7.2.0-openmp-complex-shared-release-debug
sems-rhel7-intel-18.0.5-openmp-complex-shared-release-debug
Expand Down
19 changes: 15 additions & 4 deletions cmake/std/atdm/sems-rhel7/environment.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,18 @@
if [ "$ATDM_CONFIG_COMPILER" == "DEFAULT" ] ; then
export ATDM_CONFIG_COMPILER=GNU-7.2.0
elif [[ "$ATDM_CONFIG_COMPILER" == "CLANG"* ]]; then
if [[ "$ATDM_CONFIG_COMPILER" == "CLANG" ]] ; then
if [[ "$ATDM_CONFIG_COMPILER" == "CLANG" || \
"$ATDM_CONFIG_COMPILER" == "CLANG-10.0.0" ]] ; then
export ATDM_CONFIG_COMPILER=CLANG-10.0.0
elif [[ "$ATDM_CONFIG_COMPILER" == "CLANG-7.0.1" ]] ; then
export ATDM_CONFIG_COMPILER=CLANG-7.0.1
elif [[ "$ATDM_CONFIG_COMPILER" != "CLANG-7.0.1" ]] ; then
else
echo
echo "***"
echo "*** ERROR: CLANG COMPILER=$ATDM_CONFIG_COMPILER is not supported!"
echo "*** Only CLANG compilers supported on this system are:"
echo "*** clang (defaults to clang-7.0.1)"
echo "*** clang (defaults to clang-10.0.0)"
echo "*** clang-10.0.0"
echo "*** clang-7.0.1"
echo "***"
return
Expand Down Expand Up @@ -144,7 +148,14 @@ else
export OMP_NUM_THREADS=1
fi

if [[ "$ATDM_CONFIG_COMPILER" == "CLANG-7.0.1" ]] ; then
if [[ "$ATDM_CONFIG_COMPILER" == "CLANG-10.0.0" ]] ; then
module load sems-clang/10.0.0
export OMPI_CXX=`which clang++`
export OMPI_CC=`which clang`
export OMPI_FC=`which gfortran`
export ATDM_CONFIG_LAPACK_LIBS="/usr/lib64/liblapack.so.3"
export ATDM_CONFIG_BLAS_LIBS="/usr/lib64/libblas.so.3"
elif [[ "$ATDM_CONFIG_COMPILER" == "CLANG-7.0.1" ]] ; then
module load sems-clang/7.0.1
export OMPI_CXX=`which clang++`
export OMPI_CC=`which clang`
Expand Down
2 changes: 2 additions & 0 deletions cmake/std/atdm/utils/set_build_options.sh
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,8 @@ elif atdm_match_buildname_keyword clang-5.0.1; then
export ATDM_CONFIG_COMPILER=CLANG-5.0.1
elif atdm_match_buildname_keyword clang-7.0.1; then
export ATDM_CONFIG_COMPILER=CLANG-7.0.1
elif atdm_match_buildname_keyword clang-10.0.0; then
export ATDM_CONFIG_COMPILER=CLANG-10.0.0
elif atdm_match_buildname_keyword clang; then
export ATDM_CONFIG_COMPILER=CLANG
else
Expand Down
15 changes: 10 additions & 5 deletions packages/intrepid2/src/Discretization/Basis/Intrepid2_Basis.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,11 @@ class Basis;
template <typename DeviceType = void, typename OutputType = double, typename PointType = double>
using BasisPtr = Teuchos::RCP<Basis<DeviceType,OutputType,PointType> >;

/** \brief Pointer to a Basis whose device type is on the host (Kokkos::HostSpace::device_type), allowing host access to input and output views, and ensuring host execution of basis evaluation.
*/
template <typename OutputType = double, typename PointType = double>
using HostBasisPtr = BasisPtr<typename Kokkos::HostSpace::device_type, OutputType, PointType>;

/** \class Intrepid2::Basis
\brief An abstract base class that defines interface for concrete basis implementations for
Finite Element (FEM) and Finite Volume/Finite Difference (FVD) discrete spaces.
Expand Down Expand Up @@ -898,11 +903,11 @@ using BasisPtr = Teuchos::RCP<Basis<DeviceType,OutputType,PointType> >;
">>> ERROR (Basis::getSubCellRefBasis): this method is not supported or should be overridden accordingly by derived classes.");
}

/** \brief creates and returns a basis object allocated on host.
\return pointer to a basis allocated on host.
*/
virtual BasisPtr<typename Kokkos::HostSpace::device_type, OutputValueType, PointValueType>
/** \brief Creates and returns a Basis object whose DeviceType template argument is Kokkos::HostSpace::device_type, but is otherwise identical to this.
\return Pointer to the new Basis object.
*/
virtual HostBasisPtr<OutputValueType, PointValueType>
getHostBasis() const {
INTREPID2_TEST_FOR_EXCEPTION( true, std::logic_error,
">>> ERROR (Basis::getHostBasis): this method is not supported or should be overridden accordingly by derived classes.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ namespace Intrepid2
using OutputValueType = typename LineBasisHGRAD::OutputValueType;
using PointValueType = typename LineBasisHGRAD::PointValueType;

using Basis = ::Intrepid2::Basis<ExecutionSpace,OutputValueType,PointValueType>;
using Basis = typename LineBasisHGRAD::BasisBase;
using BasisPtr = Teuchos::RCP<Basis>;

// line bases
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,7 @@ namespace Intrepid2
{
template<class HGRAD_LINE, class HVOL_LINE>
class Basis_Derived_HCURL_Family1_HEX
: public Basis_TensorBasis3<HVOL_LINE,
HGRAD_LINE,
HGRAD_LINE>
: public Basis_TensorBasis3<typename HGRAD_LINE::BasisBase>
{
public:
using OutputViewType = typename HGRAD_LINE::OutputViewType;
Expand All @@ -79,7 +77,7 @@ namespace Intrepid2
using LineGradBasis = HGRAD_LINE;
using LineVolBasis = HVOL_LINE;

using TensorBasis3 = Basis_TensorBasis3<LineVolBasis, LineGradBasis, LineGradBasis>;
using TensorBasis3 = Basis_TensorBasis3<typename HGRAD_LINE::BasisBase>;
public:
/** \brief Constructor.
\param [in] polyOrder_x - the polynomial order in the x dimension.
Expand Down Expand Up @@ -224,9 +222,7 @@ namespace Intrepid2

template<class HGRAD_LINE, class HVOL_LINE>
class Basis_Derived_HCURL_Family2_HEX
: public Basis_TensorBasis3<HGRAD_LINE,
HVOL_LINE,
HGRAD_LINE>
: public Basis_TensorBasis3<typename HGRAD_LINE::BasisBase>
{
public:
using OutputViewType = typename HGRAD_LINE::OutputViewType;
Expand All @@ -236,7 +232,7 @@ namespace Intrepid2
using LineGradBasis = HGRAD_LINE;
using LineVolBasis = HVOL_LINE;

using TensorBasis3 = Basis_TensorBasis3<LineGradBasis, LineVolBasis, LineGradBasis>;
using TensorBasis3 = Basis_TensorBasis3<typename HGRAD_LINE::BasisBase>;
public:
/** \brief Constructor.
\param [in] polyOrder_x - the polynomial order in the x dimension.
Expand Down Expand Up @@ -388,9 +384,7 @@ namespace Intrepid2

template<class HGRAD_LINE, class HVOL_LINE>
class Basis_Derived_HCURL_Family3_HEX
: public Basis_TensorBasis3<HGRAD_LINE,
HGRAD_LINE,
HVOL_LINE>
: public Basis_TensorBasis3<typename HGRAD_LINE::BasisBase>
{
using OutputViewType = typename HGRAD_LINE::OutputViewType;
using PointViewType = typename HGRAD_LINE::PointViewType ;
Expand All @@ -399,7 +393,7 @@ namespace Intrepid2
using LineGradBasis = HGRAD_LINE;
using LineVolBasis = HVOL_LINE;

using TensorBasis3 = Basis_TensorBasis3<LineGradBasis, LineGradBasis, LineVolBasis>;
using TensorBasis3 = Basis_TensorBasis3<typename HGRAD_LINE::BasisBase>;
public:
/** \brief Constructor.
\param [in] polyOrder_x - the polynomial order in the x dimension.
Expand Down Expand Up @@ -540,11 +534,11 @@ namespace Intrepid2

template<class HGRAD_LINE, class HVOL_LINE>
class Basis_Derived_HCURL_Family1_Family2_HEX
: public Basis_DirectSumBasis <typename HGRAD_LINE::ExecutionSpace, typename HGRAD_LINE::OutputValueType, typename HGRAD_LINE::PointValueType>
: public Basis_DirectSumBasis <typename HGRAD_LINE::BasisBase>
{
using Family1 = Basis_Derived_HCURL_Family1_HEX<HGRAD_LINE, HVOL_LINE>;
using Family2 = Basis_Derived_HCURL_Family2_HEX<HGRAD_LINE, HVOL_LINE>;
using DirectSumBasis = Basis_DirectSumBasis <typename HGRAD_LINE::ExecutionSpace, typename HGRAD_LINE::OutputValueType, typename HGRAD_LINE::PointValueType>;
using DirectSumBasis = Basis_DirectSumBasis <typename HGRAD_LINE::BasisBase>;
public:
/** \brief Constructor.
\param [in] polyOrder_x - the polynomial order in the x dimension.
Expand All @@ -560,11 +554,11 @@ namespace Intrepid2

template<class HGRAD_LINE, class HVOL_LINE>
class Basis_Derived_HCURL_HEX
: public Basis_DirectSumBasis <typename HGRAD_LINE::ExecutionSpace, typename HGRAD_LINE::OutputValueType, typename HGRAD_LINE::PointValueType>
: public Basis_DirectSumBasis <typename HGRAD_LINE::BasisBase>
{
using Family12 = Basis_Derived_HCURL_Family1_Family2_HEX<HGRAD_LINE, HVOL_LINE>;
using Family3 = Basis_Derived_HCURL_Family3_HEX <HGRAD_LINE, HVOL_LINE>;
using DirectSumBasis = Basis_DirectSumBasis <typename HGRAD_LINE::ExecutionSpace, typename HGRAD_LINE::OutputValueType, typename HGRAD_LINE::PointValueType>;
using DirectSumBasis = Basis_DirectSumBasis <typename HGRAD_LINE::BasisBase>;

std::string name_;
ordinal_type order_x_;
Expand All @@ -577,6 +571,8 @@ namespace Intrepid2
using ExecutionSpace = typename HGRAD_LINE::ExecutionSpace;
using OutputValueType = typename HGRAD_LINE::OutputValueType;
using PointValueType = typename HGRAD_LINE::PointValueType;

using BasisBase = typename HGRAD_LINE::BasisBase;

/** \brief Constructor.
\param [in] polyOrder_x - the polynomial order in the x dimension.
Expand Down Expand Up @@ -631,7 +627,7 @@ namespace Intrepid2
\param [in] subCellOrd - position of the subCell among of the subCells having the same dimension
\return pointer to the subCell basis of dimension subCellDim and position subCellOrd
*/
BasisPtr<ExecutionSpace, OutputValueType, PointValueType>
Teuchos::RCP<BasisBase>
getSubCellRefBasis(const ordinal_type subCellDim, const ordinal_type subCellOrd) const override{

using LineBasis = HVOL_LINE;
Expand Down Expand Up @@ -674,7 +670,18 @@ namespace Intrepid2

INTREPID2_TEST_FOR_EXCEPTION(true,std::invalid_argument,"Input parameters out of bounds");
}

/** \brief Creates and returns a Basis object whose DeviceType template argument is Kokkos::HostSpace::device_type, but is otherwise identical to this.
\return Pointer to the new Basis object.
*/
virtual HostBasisPtr<OutputValueType, PointValueType>
getHostBasis() const override {
using HostBasis = Basis_Derived_HCURL_HEX<typename HGRAD_LINE::HostBasis, typename HVOL_LINE::HostBasis>;

auto hostBasis = Teuchos::rcp(new HostBasis(order_x_, order_y_, order_z_, pointType_));

return hostBasis;
}
};
} // end namespace Intrepid2

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ namespace Intrepid2
{
template<class HGRAD_LINE, class HVOL_LINE>
class Basis_Derived_HCURL_Family1_QUAD
: public Basis_TensorBasis<typename HGRAD_LINE::ExecutionSpace, typename HGRAD_LINE::OutputValueType, typename HGRAD_LINE::PointValueType>
: public Basis_TensorBasis<typename HGRAD_LINE::BasisBase>
{
public:
using ExecutionSpace = typename HGRAD_LINE::ExecutionSpace;
Expand All @@ -77,10 +77,12 @@ namespace Intrepid2
using PointViewType = typename HGRAD_LINE::PointViewType ;
using ScalarViewType = typename HGRAD_LINE::ScalarViewType;

using BasisBase = typename HGRAD_LINE::BasisBase;

using LineGradBasis = HGRAD_LINE;
using LineHVolBasis = HVOL_LINE;

using TensorBasis = Basis_TensorBasis<ExecutionSpace, OutputValueType, PointValueType>;
using TensorBasis = Basis_TensorBasis<BasisBase>;
public:
/** \brief Constructor.
\param [in] polyOrder_x - the polynomial order in the x dimension.
Expand Down Expand Up @@ -191,7 +193,7 @@ namespace Intrepid2

template<class HGRAD_LINE, class HVOL_LINE>
class Basis_Derived_HCURL_Family2_QUAD
: public Basis_TensorBasis<typename HGRAD_LINE::ExecutionSpace, typename HGRAD_LINE::OutputValueType, typename HGRAD_LINE::PointValueType>
: public Basis_TensorBasis<typename HGRAD_LINE::BasisBase>
{

public:
Expand All @@ -206,7 +208,9 @@ namespace Intrepid2
using LineGradBasis = HGRAD_LINE;
using LineHVolBasis = HVOL_LINE;

using TensorBasis = Basis_TensorBasis<ExecutionSpace, OutputValueType, PointValueType>;
using BasisBase = typename HGRAD_LINE::BasisBase;

using TensorBasis = Basis_TensorBasis<BasisBase>;

/** \brief Constructor.
\param [in] polyOrder_x - the polynomial order in the x dimension.
Expand Down Expand Up @@ -317,11 +321,13 @@ namespace Intrepid2

template<class HGRAD_LINE, class HVOL_LINE>
class Basis_Derived_HCURL_QUAD
: public Basis_DirectSumBasis <typename HGRAD_LINE::ExecutionSpace, typename HGRAD_LINE::OutputValueType, typename HGRAD_LINE::PointValueType>
: public Basis_DirectSumBasis <typename HGRAD_LINE::BasisBase>
{
using Family1 = Basis_Derived_HCURL_Family1_QUAD<HGRAD_LINE, HVOL_LINE>;
using Family2 = Basis_Derived_HCURL_Family2_QUAD<HGRAD_LINE, HVOL_LINE>;
using DirectSumBasis = Basis_DirectSumBasis <typename HGRAD_LINE::ExecutionSpace, typename HGRAD_LINE::OutputValueType, typename HGRAD_LINE::PointValueType>;
using DirectSumBasis = Basis_DirectSumBasis <typename HGRAD_LINE::BasisBase>;

using BasisBase = typename HGRAD_LINE::BasisBase;

protected:
std::string name_;
Expand Down Expand Up @@ -388,7 +394,7 @@ namespace Intrepid2
\param [in] subCellOrd - position of the subCell among of the subCells having the same dimension
\return pointer to the subCell basis of dimension subCellDim and position subCellOrd
*/
BasisPtr<ExecutionSpace, OutputValueType, PointValueType>
Teuchos::RCP<BasisBase>
getSubCellRefBasis(const ordinal_type subCellDim, const ordinal_type subCellOrd) const override{
if(subCellDim == 1) {
switch(subCellOrd) {
Expand All @@ -404,6 +410,18 @@ namespace Intrepid2
INTREPID2_TEST_FOR_EXCEPTION(true,std::invalid_argument,"Input parameters out of bounds");
}

/** \brief Creates and returns a Basis object whose DeviceType template argument is Kokkos::HostSpace::device_type, but is otherwise identical to this.
\return Pointer to the new Basis object.
*/
virtual HostBasisPtr<OutputValueType, PointValueType>
getHostBasis() const override {
using HostBasis = Basis_Derived_HCURL_QUAD<typename HGRAD_LINE::HostBasis, typename HVOL_LINE::HostBasis>;

auto hostBasis = Teuchos::rcp(new HostBasis(order_x_, order_y_, pointType_));

return hostBasis;
}
};
} // end namespace Intrepid2

Expand Down
Loading

0 comments on commit 090471e

Please sign in to comment.