[Users] Instabilities with Summation by Parts 4th order operator
Miguel Zilhão
miguel.zilhao.nogueira at tecnico.ulisboa.pt
Thu Apr 9 13:08:47 CDT 2020
hi all,
i've been working on implementing the Summation by Parts (SBP) operators on some evolution codes i
have and i was seeing some instabilities when using the 4th order accurate 2nd derivative operator.
in order to try to understand the problem better, i've coded a very simple thorn that evolves the
wave equation in first-order in time, second-order in space form. i can evolve the system just fine
without any problems with the SBP operators of order 2, 6 and 8. with order 4, however, there are
instabilities propagating from the boundary that crash the code very early on. has anyone seen
something like this before? could there be a bug in the 4th order 2nd derivative SBP operators, or
am i doing something wrong? i find it very strange that it only crashes with the 4th order accurate
2nd derivative SBP stencils (the code also seems to run fine with the parameter
SummationByParts::sbp_2nd_deriv = no)...
i've uploaded this thorn (called IST_WaveToy) here: https://github.com/mzilhao/IST_WaveToy
i tried to keep everything as simple as possible. i'm attaching the thornlist used to checkout and
compile the code, and in the repository i've also added the parameter files i tried with the
different SBP orders (under ./par).
any help or comments would be appreciated.
thanks,
Miguel
-------------- next part --------------
# Component list for the Einstein Toolkit <http://einsteintoolkit.org/>
# $Revision$
# $Date$
# $HeadURL$
!CRL_VERSION = 1.0
!DEFINE ROOT = Cactus
!DEFINE ARR = $ROOT/arrangements
!DEFINE COMPONENTLIST_TARGET = $ROOT/thornlists/
!DEFINE ET_RELEASE = ET_2019_03
# A note on CUDA and OpenCL:
# The thorns supporting and using CUDA and OpenCL are working and are
# part of the Einstein Toolkit. However, these thorns are currently
# commented out in this thorn list because most machines do not have
# CUDA or OpenCL libraries installed, and there are no good, free CUDA
# or OpenCL implementations yet which could be shipped with Cactus.
# If you want to experiment with CUDA or OpenCL and use these thorns
# (or look at their documentation), then uncomment these thorns in
# this thorn list, and use GetComponents to download these thorns.
# You have to uncomment these thorns (not here, but further below):
# - CactusExamples/HelloWorldCUDA
# - CactusExamples/HelloWorldOpenCL
# - CactusExamples/WaveToyOpenCL
# - CactusUtils/OpenCLRunTime
# - CactusUtils/Accelerator
# - ExternalLibraries/OpenCL
# - McLachlan/ML_WaveToy_CL
# To download these thorns via GetComponents, use then the following
# command (on the same system where you originally used
# GetComponents):
# cd Cactus (or whatever your source tree is called)
# bin/GetComponents --update --root=. manifest/einsteintoolkit.th
# Cactus Flesh
!TARGET = $ROOT
!TYPE = git
!URL = https://bitbucket.org/cactuscode/cactus.git
!NAME = flesh
!REPO_BRANCH = $ET_RELEASE
!CHECKOUT = .clang-format CONTRIBUTORS COPYRIGHT doc lib Makefile src
# CactusBase thorns
!TARGET = $ARR
!TYPE = git
!URL = https://bitbucket.org/cactuscode/cactusbase.git
!REPO_PATH= $2
!REPO_BRANCH = $ET_RELEASE
!CHECKOUT =
CactusBase/Boundary
CactusBase/CartGrid3D
CactusBase/CoordBase
CactusBase/Fortran
CactusBase/InitBase
CactusBase/IOASCII
CactusBase/IOBasic
CactusBase/IOUtil
CactusBase/SymBase
CactusBase/Time
# CactusIO thorns
!TARGET = $ARR
!TYPE = git
!URL = https://bitbucket.org/cactuscode/cactusio.git
!REPO_PATH= $2
!REPO_BRANCH = $ET_RELEASE
!CHECKOUT =
CactusIO/IOJpeg
# CactusNumerical thorns
!TARGET = $ARR
!TYPE = git
!URL = https://bitbucket.org/cactuscode/cactusnumerical.git
!REPO_PATH= $2
!REPO_BRANCH = $ET_RELEASE
!CHECKOUT =
CactusNumerical/Cartoon2D
CactusNumerical/Dissipation
CactusNumerical/InterpToArray
CactusNumerical/LocalInterp
CactusNumerical/LocalInterp2
CactusNumerical/LocalReduce
CactusNumerical/MoL
CactusNumerical/Noise
CactusNumerical/Norms
CactusNumerical/Periodic
CactusNumerical/ReflectionSymmetry
CactusNumerical/RotatingSymmetry180
CactusNumerical/RotatingSymmetry90
CactusNumerical/Slab
CactusNumerical/SlabTest
CactusNumerical/SpaceMask
CactusNumerical/SphericalSurface
CactusNumerical/SummationByParts
CactusNumerical/TensorTypes
CactusNumerical/TestLocalInterp2
CactusNumerical/TestLocalReduce
# CactusPUGH thorns
!TARGET = $ARR
!TYPE = git
!URL = https://bitbucket.org/cactuscode/cactuspugh.git
!REPO_PATH= $2
!REPO_BRANCH = $ET_RELEASE
!CHECKOUT =
CactusPUGH/PUGH
CactusPUGH/PUGHInterp
CactusPUGH/PUGHReduce
CactusPUGH/PUGHSlab
# CactusPUGHIO thorns
!TARGET = $ARR
!TYPE = git
!URL = https://bitbucket.org/cactuscode/cactuspughio.git
!REPO_PATH= $2
!REPO_BRANCH = $ET_RELEASE
!CHECKOUT =
CactusPUGHIO/IOHDF5
CactusPUGHIO/IOHDF5Util
# CactusUtils thorns
!TARGET = $ARR
!TYPE = git
!URL = https://bitbucket.org/cactuscode/cactusutils.git
!REPO_PATH= $2
!REPO_BRANCH = $ET_RELEASE
!CHECKOUT = CactusUtils/Accelerator CactusUtils/OpenCLRunTime
#DISABLED CactusUtils/Accelerator
# CactusUtils/Formaline
CactusUtils/MemSpeed
CactusUtils/NaNCatcher
CactusUtils/NaNChecker
CactusUtils/Nice
CactusUtils/NoMPI
#DISABLED CactusUtils/OpenCLRunTime
CactusUtils/SystemStatistics
CactusUtils/SystemTopology
CactusUtils/TerminationTrigger
CactusUtils/TimerReport
CactusUtils/Trigger
CactusUtils/Vectors
CactusUtils/WatchDog
# Carpet, the AMR driver
!TARGET = $ARR
!TYPE = git
!URL = https://bitbucket.org/eschnett/carpet.git
!REPO_PATH= $2
!REPO_BRANCH = $ET_RELEASE
!CHECKOUT = Carpet/doc
Carpet/Carpet
Carpet/CarpetEvolutionMask
Carpet/CarpetIOASCII
Carpet/CarpetIOBasic
Carpet/CarpetIOHDF5
Carpet/CarpetIOScalar
# Carpet/CarpetIntegrateTest
Carpet/CarpetInterp
Carpet/CarpetInterp2
Carpet/CarpetLib
Carpet/CarpetMask
# Carpet/CarpetProlongateTest
Carpet/CarpetReduce
Carpet/CarpetRegrid
Carpet/CarpetRegrid2
# Carpet/CarpetRegridTest
Carpet/CarpetSlab
Carpet/CarpetTracker
Carpet/CycleClock
# Carpet/HighOrderWaveTest
Carpet/LoopControl
Carpet/PeriodicCarpet
# Carpet/ReductionTest
# Carpet/ReductionTest2
# Carpet/ReductionTest3
# Carpet/RegridSyncTest
# Carpet/TestCarpetGridInfo
# Carpet/TestLoopControl
Carpet/Timers
# EinsteinUtils
!TARGET = $ARR
!TYPE = git
!URL = https://bitbucket.org/einsteintoolkit/einsteinutils.git
!REPO_PATH= $2
!REPO_BRANCH = $ET_RELEASE
!CHECKOUT =
# EinsteinUtils/SetMask_SphericalSurface
EinsteinUtils/TGRtensor
# Additional Cactus thorns
!TARGET = $ARR
!TYPE = svn
!URL = https://github.com/EinsteinToolkit/$1-$2.git/trunk
!REPO_BRANCH = $ET_RELEASE
!CHECKOUT =
# ExternalLibraries/OpenBLAS
# ExternalLibraries/OpenCL
# ExternalLibraries/pciutils
# ExternalLibraries/PETSc
ExternalLibraries/BLAS
ExternalLibraries/FFTW3
ExternalLibraries/GSL
ExternalLibraries/HDF5
ExternalLibraries/hwloc
ExternalLibraries/LAPACK
ExternalLibraries/libjpeg
# ExternalLibraries/LORENE
ExternalLibraries/MPI
#DISABLED ExternalLibraries/OpenBLAS
#DISABLED ExternalLibraries/OpenCL
ExternalLibraries/OpenSSL
ExternalLibraries/PAPI
#DISABLED ExternalLibraries/pciutils
#DISABLED ExternalLibraries/PETSc
ExternalLibraries/pthreads
ExternalLibraries/zlib
# From Kranc (required e.g. by McLachlan)
!TARGET = $ARR
!TYPE = git
!URL = https://github.com/ianhinder/Kranc.git
!REPO_PATH= Auxiliary/Cactus
!REPO_BRANCH = $ET_RELEASE
!CHECKOUT =
KrancNumericalTools/GenericFD
# Llama
!TARGET = $ARR
!TYPE = git
!AUTH_URL = https://bitbucket.org/llamacode/llama.git
!URL = https://bitbucket.org/llamacode/llama.git
!REPO_PATH= $2
!REPO_BRANCH = $ET_RELEASE
!CHECKOUT =
# Llama/ADMDerivatives
Llama/Coordinates
Llama/CoordinatesSymmetry
Llama/GlobalDerivative
Llama/Interpolate2
Llama/LlamaWaveToy
# Llama/WaveExtractL
# Numerical
!TARGET = $ARR
!TYPE = git
!URL = https://bitbucket.org/cactuscode/numerical.git
!REPO_PATH= $2
!REPO_BRANCH = $ET_RELEASE
!CHECKOUT =
Numerical/AEILocalInterp
# IST_WaveToy
!TARGET = $ARR
!TYPE = git
!URL = git at github.com:mzilhao/IST_WaveToy.git
!REPO_PATH = ../$2
!NAME = IST_WaveToy
!REPO_BRANCH = master
!CHECKOUT =
ISTThorns/IST_WaveToy
More information about the Users
mailing list