7 #include <gtest/gtest.h>
8 #include <gmock/gmock.h>
9 using namespace ::testing;
13 #define PFASST_UNIT_TESTING
14 #include "../examples/scalar/scalar_sdc.cpp"
15 #undef PFASST_UNIT_TESTING
23 :
public TestWithParam<pfasst::quadrature::QuadratureType>
28 const complex<double> lambda = complex<double>(-1.0,1.0);
29 const double dt = 0.2;
30 const size_t nsteps = 1;
31 const size_t niters = 30;
32 const size_t nnodes = 8;
38 switch (this->nodetype)
41 this->nnodes_in_call = this->nnodes;
45 this->nnodes_in_call = this->nnodes + 2;
49 this->nnodes_in_call = this->nnodes + 1;
53 this->nnodes_in_call = this->nnodes + 1;
57 this->nnodes_in_call = this->nnodes + 1;
68 this->nodetype = GetParam();
69 this->set_parameters();
71 this->niters, this->lambda, this->nodetype);
80 EXPECT_THAT(err, Le<double>(9e-12)) <<
"Failed to bring relative error below 9e-12";
91 int main(
int argc,
char** argv)
93 testing::InitGoogleTest(&argc, argv);
94 return RUN_ALL_TESTS();
int main(int argc, char **argv)
QuadratureType
Quadrature type descriptors.
Clenshaw-Curtis quadrature
pfasst::quadrature::QuadratureType nodetype
INSTANTIATE_TEST_CASE_P(ScalarSDC, HighPrecisionTest, Values(pfasst::quadrature::QuadratureType::GaussLobatto, pfasst::quadrature::QuadratureType::GaussLegendre, pfasst::quadrature::QuadratureType::GaussRadau, pfasst::quadrature::QuadratureType::ClenshawCurtis, pfasst::quadrature::QuadratureType::Uniform))
Gauss-Legendre quadrature
double run_scalar_sdc(const size_t nsteps, const double dt, const size_t nnodes, const size_t niters, const complex< double > lambda, const quadrature::QuadratureType nodetype)
Scalar test equation example using an encapsulated IMEX sweeper.
TEST_P(HighPrecisionTest, AllNodes)