1111 */
1212
1313#include < complex>
14+ using namespace std ;
1415
1516#include < pfasst.hpp>
1617#include < pfasst/config.hpp>
2021
2122#include " scalar_sweeper.hpp"
2223
23- double run_scalar_sdc (const size_t nsteps, const double dt, const size_t nnodes,
24- const size_t niters, const complex <double > lambda,
25- const pfasst::quadrature::QuadratureType nodetype)
24+ namespace pfasst
2625{
27- pfasst::SDC<> sdc;
26+ namespace examples
27+ {
28+ namespace scalar
29+ {
30+ double run_scalar_sdc (const size_t nsteps, const double dt, const size_t nnodes,
31+ const size_t niters, const complex <double > lambda,
32+ const quadrature::QuadratureType nodetype)
33+ {
34+ SDC<> sdc;
2835
29- // For test equation, set initial value to \\( 1+0i \\)
30- const complex <double > y0 = complex <double >(1.0 , 0.0 );
36+ // For test equation, set initial value to \\( 1+0i \\)
37+ const complex <double > y0 = complex <double >(1.0 , 0.0 );
3138
32- auto quad = pfasst:: quadrature::quadrature_factory (nnodes, nodetype);
39+ auto quad = quadrature::quadrature_factory (nnodes, nodetype);
3340
34- // This is a scalar example, so we use the encap::VectorFactory with fixed length of 1 and
35- // complex type.
36- auto factory = make_shared<pfasst:: encap::VectorFactory<complex <double >>>(1 );
37- auto sweeper = make_shared<ScalarSweeper<>>(lambda, y0);
41+ // This is a scalar example, so we use the encap::VectorFactory with fixed length of 1 and
42+ // complex type.
43+ auto factory = make_shared<encap::VectorFactory<complex <double >>>(1 );
44+ auto sweeper = make_shared<ScalarSweeper<>>(lambda, y0);
3845
39- sweeper->set_quadrature (quad);
40- sweeper->set_factory (factory);
46+ sweeper->set_quadrature (quad);
47+ sweeper->set_factory (factory);
4148
42- sdc.add_level (sweeper);
49+ sdc.add_level (sweeper);
4350
44- // Final time Tend = dt*nsteps
45- sdc.set_duration (0.0 , dt*nsteps, dt, niters);
46- sdc.setup ();
51+ // Final time Tend = dt*nsteps
52+ sdc.set_duration (0.0 , dt*nsteps, dt, niters);
53+ sdc.setup ();
4754
48- auto q0 = sweeper->get_start_state ();
49- sweeper->exact (q0, 0.0 );
55+ auto q0 = sweeper->get_start_state ();
56+ sweeper->exact (q0, 0.0 );
5057
51- sdc.run ();
58+ sdc.run ();
5259
53- return sweeper->get_errors ();
54- }
60+ return sweeper->get_errors ();
61+ }
62+ } // ::pfasst::examples::scalar
63+ } // ::pfasst::examples
64+ } // ::pfasst
5565
5666#ifndef PFASST_UNIT_TESTING
5767/* *
@@ -68,6 +78,6 @@ int main(int argc, char** argv)
6878
6979 pfasst::init (argc, argv);
7080
71- run_scalar_sdc (nsteps, dt, nnodes, niters, lambda, nodetype);
81+ pfasst::examples::scalar:: run_scalar_sdc (nsteps, dt, nnodes, niters, lambda, nodetype);
7282}
7383#endif
0 commit comments