11#include "Thyra_DefaultSpmdVectorSpace.hpp"
14#include "Tempus_Stepper_ErrorNorm.hpp"
16#include "../TestModels/DahlquistTestModel.hpp"
27 Teuchos::RCP<const Thyra::VectorSpaceBase<double> > xSpace =
28 Thyra::defaultSpmdVectorSpace<double>(N);
29 auto x = Thyra::createMember(xSpace);
30 auto xNext = Thyra::createMember(xSpace);
31 auto eVec = Thyra::createMember(xSpace);
33 auto tol = Tempus::numericalTol<double>();
36 Thyra::assign(x.ptr(), 0.0);
37 Thyra::assign(xNext.ptr(), 0.0);
38 Thyra::assign(eVec.ptr(), 0.0);
39 double rmsNorm = eNorm->computeWRMSNorm(x, xNext, eVec);
40 TEST_FLOATING_EQUALITY(rmsNorm, 0.0, 1.0e-12);
42 Thyra::assign(x.ptr(), 1.0);
43 Thyra::assign(xNext.ptr(), 1.0+tol);
44 Thyra::assign(eVec.ptr(), tol);
45 rmsNorm = eNorm->computeWRMSNorm(x, xNext, eVec);
46 TEST_FLOATING_EQUALITY(rmsNorm, 1.0/std::sqrt(N), 1.0e-12);
55 Teuchos::RCP<const Thyra::VectorSpaceBase<double> > xSpace =
56 Thyra::defaultSpmdVectorSpace<double>(3);
57 auto x = Thyra::createMember(xSpace);
59 auto tol = Tempus::numericalTol<double>();
62 Thyra::assign(x.ptr(), 0.0);
63 double norm = eNorm->errorNorm(x);
64 TEST_FLOATING_EQUALITY(norm, tol, 1.0e-12);
66 Thyra::assign(x.ptr(), 1.0);
67 norm = eNorm->errorNorm(x);
68 TEST_FLOATING_EQUALITY(norm, 1.0/(2.0*tol), 1.0e-12);
Stepper_ErrorNorm provides error norm calcualtions for variable time stepping.
TEUCHOS_UNIT_TEST(BackwardEuler, Default_Construction)