@book{KaSh05,
  title={Spectral/hp element methods for Computational Fluid Dynamics (Second Edition)},
  author={George Em Karniadakis and Spencer J. Sherwin},
  year={2005},
  publisher={Oxford University Press}
}

@book{Schwab,
  title={p-- and hp-- Finite Element Methods: Theory and Applications in Solid and Fluid Mechanics},
  author={Ch. Schwab},
  year={1999},
  publisher={Oxford University Press}
}

@book{KFN-testing,
title = {Testing Computer Software},
author = {Cem Kaner and Jack Falk and Hung Quoc Nguyen},
year = {2010},
publisher={John Wiley \& Sons}
}

@book{CanutoHQZ87,
       author="C. Canuto and M.Y. Hussaini and A. Quarteroni and T.A. Zang",
       title="{Spectral Methods in Fluid Mechanics}", 
       publisher="{Springer-Verlag, New York}",
       year="1987" }


@book{Funaro92,
       author="D. Funaro",
       title="{Polynomial Approximations of Differential Equations: Lecture Notes in Physics, Volume 8}", 
       publisher="{Springer-Verlag, New York}",
       year="1992" }

@book{KarniadakisK03,
  author = "George Em Karniadakis and Robert M. Kirby",
  title  = "Parallel Scientific Computing in C++ and MPI",
  publisher = "Cambridge University Press",
  address = "New-York, NY, USA",
  year = 2003
}

@Book{Hughes87,
  author =	 "T. J. R. Hughes",
  title =	 "The Finite Element Method",
  publisher =	 "Prentice-Hall, Inc.",
  year =	 "1987",
  address =	 "Englewood Cliffs, New Jersey"
}

@book{SzBa91,
  author = "B.A. Szab\'{o} and I. Babu\v{s}ka",
  title  = "Finite Element Analysis",
  publisher = "John Wiley \& Sons",
  address = "New York",
  year = 1991
}

@book{TrefethenB97,
  author = "Lloyd N. Trefethen and David Bau, III",
  title  = "Numerical Linear Algebra",
  publisher = "SIAM",
  address = "Philadelphia, PA, USA",
  year = 1997
}

@book{HGG,
title = "Spectral Methods for Time-Dependent Problems",
author = "Jan Hesthaven and Sigal Gottlieb and David Gottlieb",
publisher = "Cambridge University Press",
year = "2007"
}

@book{Demmel97,
author = "James W. Demmel",
title = "Applied Numerical Linear Algebra",
publisher = "SIAM",
  address = "Philadelphia, PA, USA",
  year = 1997
}

@book{Heath,
title = "Scientific Computing: An Introductory Survey",
author = "Michael T. Heath",
publisher = "McGraw-Hill Companies",
year = "2002"
}

@book{CockburnKS,
title = "Discontinuous Galerkin Methods: Theory, Computation and Applications",
author = "Bernardo Cockburn and George Karniadakis and Chi-Wang Shu",
publisher = "Springer-Verlag",
year = "2000"
}

@article{Pa84,
  title={A spectral element method for fluid dynamics: laminar flow in a channel expansion},
  author={Patera, Anthony T},
  journal={Journal of computational Physics},
  volume={54},
  number={3},
  pages={468--488},
  year={1984},
  publisher={Elsevier}
}

@article{BaSzKa81,
  title={The p-version of the finite element method},
  author={Babuska, Ivo and Szabo, Barna A and Katz, I Norman},
  journal={SIAM journal on numerical analysis},
  volume={18},
  number={3},
  pages={515--545},
  year={1981},
  publisher={SIAM}
}

@article{BlSh04,
  title={Formulation of a Galerkin spectral element--Fourier method for three-dimensional incompressible flows in cylindrical geometries},
  author={Blackburn, Hugh M and Sherwin, SJ},
  journal={Journal of Computational Physics},
  volume={197},
  number={2},
  pages={759--778},
  year={2004},
  publisher={Elsevier}
}

@article{VeSoZi07,
  title={Modular $hp$-{FEM} system {HERMES} and its application to {M}axwell’s equations},
  author={Vejchodsk{\`y}, Tom{\'a}{\v{s}} and {\v{S}}ol{\'\i}n, Pavel and Z{\'\i}tka, Martin},
  journal={Mathematics and Computers in Simulation},
  volume={76},
  number={1},
  pages={223--228},
  year={2007},
  publisher={Elsevier}
}

@article{DeKlNoOh11,
  title={A generic interface for parallel and adaptive discretization schemes: abstraction principles and the {DUNE-FEM} module},
  author={Dedner, Andreas and Kl{\"o}fkorn, Robert and Nolte, Martin and Ohlberger, Mario},
  journal={Computing},
  volume={90},
  number={3-4},
  pages={165--196},
  year={2010},
  publisher={Springer}
}

@article{BaHaKa07,
  title={deal.{II}--a general-purpose object-oriented finite element library},
  author={Bangerth, Wolfgang and Hartmann, Ralf and Kanschat, Guido},
  journal={ACM Transactions on Mathematical Software (TOMS)},
  volume={33},
  number={4},
  pages={24},
  year={2007},
  publisher={ACM}
}

@book{HeWa07,
  title={Nodal discontinuous Galerkin methods: algorithms, analysis, and applications},
  author={Hesthaven, Jan S and Warburton, Tim},
  volume={54},
  year={2007},
  publisher={Springer}
}

@inproceedings{MeDePeFaWi14,
  title = 	 {A Guide to the Implementation of Boundary Conditions in Compact High-Order Methods for Compressible Aerodynamics},
  author =   {Mengaldo, G. and De Grazia, D. and Peiro, J. and Farrington, A. and Witherden, F. and Vincent, P. E. and Sherwin, S. J.},
  year = 	 {2014},
  booktitle = {7th AIAA Theoretical Fluid Mechanics Conference},
  series = 	 {AIAA Aviation},
  publisher = {American Institute of Aeronautics and Astronautics},
}

@article{WiFaVi14,
  title={{PyFR}: An open source framework for solving advection-diffusion type problems on streaming architectures using the flux reconstruction approach},
  author={Witherden, FR and Farrington, AM and Vincent, PE},
  journal={Computer Physics Communications},
  year={2014},
  volume={185},
  issue={11},
  pages={3028–3040},
  doi={10.1016/j.cpc.2014.07.011}
}


%%% Software

@article{VosSK2010,
author = "Peter E. J. Vos and Spencer J. Sherwin and Robert M. Kirby",
title = "h-to-p Efficiently: Implementing Finite and Spectral/hp Element Methods to Achieve Optimal Performance for Low- and High-Order Discretisations",
journal = "Journal of Computational Physics",
volume = "229", 
issue = "13",
pages = "5161-5181",
year = "2010"
}
 
@article{CantwellSKK2011a,
author = "C.D. Cantwell and S.J. Sherwin and R.M. Kirby and P.H.J. Kelly",
title = "From h-to-p Efficiently: Strategy Selection for Operator Evaluation on Hexahedral and Tetrahedral Elements",
journal = "Computers and Fluids",
volume = "43", 
issue = "1",
pages = "23-28",
year = "2011"
}


@article{CantwellSKK2011b,
author = "C.D. Cantwell and S.J. Sherwin and R.M. Kirby and P.H. Kelly",
title = "From h-to-p Efficiently: Selecting the Optimal Spectral/hp Discretisation in Three Dimensions",
journal = "Math. Model. Nat. Phenom.",
volume = "6", 
number = "3",
pages = "84-96",
year = "2011"
}

@article{BolisCKS2014,
author = "A. Bolis and C.D. Cantwell and R.M. Kirby and S.J. Sherwin",
title = "h-to-p efficiently: Optimal implementation strategies for explicit time-dependent problems using the spectral/hp element method",
journal = "International Journal for Numerical Methods in Fluids",
volume = "75", 
issue = "8",
pages = "591-607",
year = "2014"
}

@article{CantwellMCBRMGYLEJXMENVBKS2015,
author = "C.D. Cantwell and D. Moxey and A. Comerford and A. Bolis and G. Rocco and G. Mengaldo and D. de Grazia and S. Yakovlev and J-E Lombard and D. Ekelschot and B. Jordi and H. Xu and Y. Mohamied and C. Eskilsson and B. Nelson and P. Vos and C. Biotto and R.M. Kirby and S.J. Sherwin",
title = "Nektar++: An open-source spectral/hp element framework",
journal = "Computer Physics Communications",
volume = "192",
pages = "205-219",
year = "2015"
}

@article{roberts_camellia:_2014,
	title = {Camellia: {A} software framework for discontinuous {Petrov-Galerkin} methods},
	volume = {68},
	shorttitle = {Camellia},
	abstract = {The discontinuous Petrov-Galerkin (DPG) methodology of Demkowicz and Gopalakrishnan minimizes the solution residual in a user-determinable energy norm and offers a built-in mechanism for evaluating error in the energy norm, among other desirable features. However, the methodology also brings with it some additional complexity for researchers who wish to experiment with DPG in their computations. In this paper, we introduce Camellia, a software framework whose central design goal is to enable developers to create efficient hp-adaptive DPG solvers with minimal effort.},
	number = {11},
	journal = {Computers \& Mathematics with Applications},
	author = {Roberts, Nathan V.},
	year = {2014},
	pages = {1581--1604}
}

@article{nelson_elvis:_2012,
	title = {Elvis: {A} system for the accurate and interactive visualization of high-order finite element solutions},
	volume = {18},
	shorttitle = {Elvis},
	abstract = {This paper presents the Element Visualizer (ElVis), a new, open-source scientific visualization system for use with high-order finite element solutions to PDEs in three dimensions. This system is designed to minimize visualization errors of these types of fields by querying the underlying finite element basis functions (e.g., high-order polynomials) directly, leading to pixel-exact representations of solutions and geometry. The system interacts with simulation data through runtime plugins, which only require users to implement a handful of operations fundamental to finite element solvers. The data in turn can be visualized through the use of cut surfaces, contours, isosurfaces, and volume rendering. These visualization algorithms are implemented using NVIDIA's OptiX GPU-based ray-tracing engine, which provides accelerated ray traversal of the high-order geometry, and CUDA, which allows for effective parallel evaluation of the visualization algorithms. The direct interface between ElVis and the underlying data differentiates it from existing visualization tools. Current tools assume the underlying data is composed of linear primitives; high-order data must be interpolated with linear functions as a result. In this work, examples drawn from aerodynamic simulations-high-order discontinuous Galerkin finite element solutions of aerodynamic flows in particular-will demonstrate the superiority of ElVis' pixel-exact approach when compared with traditional linear-interpolation methods. Such methods can introduce a number of inaccuracies in the resulting visualization, making it unclear if visual artifacts are genuine to the solution data or if these artifacts are the result of interpolation errors. Linear methods additionally cannot properly visualize curved geometries (elements or boundaries) which can greatly inhibit developers' debugging efforts. As we will show, pixel-exact visualization exhibits none of these issues, removing the visualization scheme as a source of - ncertainty for engineers using ElVis.},
	number = {12},
	journal = {Visualization and Computer Graphics, IEEE Transactions on},
	author = {Nelson, Blake and Liu, Eric and Kirby, Robert M. and Haimes, Robert},
	year = {2012},
	pages = {2325--2334}
}

@article{geuzaine_gmsh:_2009,
	title = {Gmsh: {A} 3-{D} finite element mesh generator with built-in pre-and post-processing facilities},
	volume = {79},
	shorttitle = {Gmsh},
	abstract = {Gmsh is an open-source 3-D finite element grid generator with a build-in CAD 
engine and post-processor. Its design goal is to provide a fast, light and user-friendly 
meshing tool with parametric input and advanced visualization capabilities. This paper presents the overall philosophy, the main design choices and some of the original algorithms implemented in Gmsh. CopyrightÂ© 2009 John Wiley \& Sons, Ltd.},
	number = {11},
	journal = {International Journal for Numerical Methods in Engineering},
	author = {Geuzaine, Christophe and Remacle, Jean-FranÃ§ois},
	year = {2009},
	pages = {1309--1331},
	file = {[PDF] from geuz.org:/Users/aashok/Library/Application Support/Zotero/Profiles/7xumqoyz.default/zotero/storage/IASXUV6Z/Geuzaine and Remacle - 2009 - Gmsh A 3-D finite element mesh generator with bui.pdf:application/pdf}
}


@book{Nek5000,
title = "Nek5000 User Manual",
author = "Paul Fischer and James Lottes and Stefan Kerkemeier and Oana Marin and Katherine Heisey and Aleks Obabko and Elia Merzari and Yulia Peet",
publisher = "ANL/MCS-TM-351",
year = "2014"
}

@book{DevilleFM02,
title = "High-Order Methods for Incompressible Fluid Flow",
author = "M.O. Deville and P.F. Fisher and E.H. Mund",
publisher = "Cambridge University Press",
year = "2002"
}

@book{HesthavenW08,
author = "J.S. Hesthaven and T.C. Warburton",
title = "Nodal Discontinuous {G}alerkin Methods: Algorithms, Analysis, and Applications",
publisher = "Springer Texts in Applied Mathematics 54. Springer Verlag: New York", 
year = "2008"
}

@article{GiraldoKC13,
author = "F.X. Giraldo and J.F. Kelly and E.M. Constantinescu",
title = "Implicit explicit formulations of a three dimensional non-hydrostatic unified model of the atmosphere {(NUMA)}",
journal = "SIAM Journal of Scientific Computing",
volume = "35",
pages = "1162-1194",
year = "2013"
}

@book{FEniCS,
title = "Automated Solution of Differential Equations by the Finite Element Method",
author = "Anders Logg and Kent-Andre Mardal and Garth Wells (editors)",
publisher = "Springer Lecture Notes in Computational Science and Engineering, Volume 84",
year = "2012"
}

@article{AinsworthAD11,
author = "Mark Ainsworth and Gaelle Andriamaro and Oleg Davydov",
title = "Bernstein-B{\'e}zier Finite Elements of Arbitrary Order and Optimal Assembly Procedures",
journal =  "SIAM Journal of Scientific Computing",
volume = "33",
issue = "6",
pages = "3087-3109",
year = "2011"
}

@article{Ainsworth14,
author = "Mark Ainsworth",
title = "Pyramid Algorithms for Bernstein-B{\'e}zier Finite Elements of High, Nonuniform Order in Any Dimension",
journal = "SIAM Journal of Scientific Computing",
volume = "36",
issue = "2",
pages = "A543-A569",
year = "2014"
}

@article{WarburtonPH00,
  author = "T. Warburton and L.F. Pavarino and J.S. Hesthaven",
  title = "A Pseudo-spectral scheme for the incompressible {N}avier-{S}tokes equations using unstructured nodal elements",
  journal =      "J. Comp. Phys.",
  volume = "164",
  pages = "1-21",
  year = "2000"
}

@article{Dubiner91,
        author  = "M. Dubiner",
        title   = "Spectral Methods on Triangles and Other Domains",
        journal = "J. Sci. Comp.",
        volume  = "6",
        pages   = "345",
        year    = "1991"
}

@Article{Hesthaven98,
  author = 	 {Hesthaven, J.S. },
  title = 	 {From electrostatics to almost optimal nodal sets for 
polynomial interpolation in a simplex},
  journal = 	 {SIAM J. Numer. Anal.},
  year = 	 {1998},
  volume =	 {35},
  number =	 {2},
  pages =	 {655-676},
}

@Article{TaylorWV00,
  author = 	 {Taylor, M. and Wingate, B.A. and Vincent, R.E.},
  title = 	 {An Algorithm for computing {F}ekete points in the triangle},
  journal = 	 {SIAM J. Num. Anal.},
  year = 	 {2000},
  volume =	 {38},
  pages =	 {1707-1720},
}

@Article{TaylorW99,
  author = 	 {Taylor, M. and Wingate, B.A.},
  title = 	 {The Fekete collocation points for triangular spectral elements},
  journal = 	 {Journal on Numerical Analysis},
  year = 	 {1998},
}


@article{Duffy82,
	author  = "Duffy, M.G.",
	title   = "Quadrature over a pyramid or cube of integrands
	with a singularity at a vertex",
	journal ="SIAM J. Numer. Anal.", 
	volume  = "19",
	pages   = "1260",
	year    = "1982"
}

@article{CantwellYKPS14,
 author = "C.D. Cantwell and S. Yakovlev and R.M. Kirby and N.S. Peters and S.J. Sherwin",
 title = "High-order continuous spectral/hp element discretisation for reaction-diffusion problems on a surface", 
 journal = "Journal of Computational Physics",
 volume = "257", 
 issue = "A",
 pages = "813-829", 
 year = "2014"
 }

@article{KirbyS06,
author = "Robert M. Kirby and Spencer J. Sherwin", 
title = "Aliasing Errors Due to Quadratic Non-Linearities On Triangular Spectral/hp Element Discretisations", 
journal = "Journal of Engineering Mathematics",
volume = "56",
pages = "273-288", 
year = "2006"
}

@book{BorisenkoTS,
author = "A.I. Borisenko and I.E. Tarapov and R.A. Silverman (Translator)",
title = "Vector and Tensor Analysis with Applications",
publisher = "Dover Books on Mathematics",
year = "2012"
}

@book{BStroustrup,
  title={The C++ Programming Language (Fourth Edition)},
  author={Bjarne Stroustrup},
  year={2013},
  publisher={Addison-Wesley Professional}
}

@book{SMeyers,
  title={Effective C++: 55 Specific Ways to Improve Your Programs and Designs  (Third Edition)},
  author={Scott Meyers},
  year={2005},
  publisher={Addison-Wesley Professional}
}

@book{Ar89,
  title={Vectors, tensors, and the basic equations of fluid mechanics},
  author={Aris, R.},
  year={1989},
  publisher={Dover Pubns}
}


@article{McRaeBMHC,
author = "A.T.T. McRae and G.-T. Bercea and L. Mitchell and D.A. Ham and C.J. Cotter",
title = "Automated Generation and Symbolic Manipulation of Tensor Product Finite Elements",
journal = "SIAM Journal on Scientific Computing",
Volume = "38",
number = "5",
pages = "S25--S47",
year = "2016"
}

@article{WitherdenVJ2016,
author = "F.D. Witherden and P.E. Vincent and A. Jameson", 
title = "Chapter 10 -- High-Order Flux Reconstruction Schemes",
journal = "Handbook of Numerical Analysis",
volume = "17",
year = "2016",
pages = "227-263"
}

@book{Kopriva,
title = "Implementing Spectral Methods for Partial Differential Equations: Algorithms for Scientists and Engineers",
author = "David A. Kopriva",
publisher = "Springer",
year = "2009"
}

@book{CottrellISO,
title = "Isogeometric Analysis: Toward Integration of CAD and FEA",
author = "J. Austin Cottrell and Thomas J. R. Hughes and Yuri Bazilevs",
publisher = "John Wiley and Sons",
year = "2009"
}

@article{jallepalli2017treatment,
	title={On the treatment of field quantities and elemental continuity in {FEM} solutions},
	author={Jallepalli, Ashok and Docampo-S{\'a}nchez, Julia and Ryan, Jennifer K and Haimes, Robert and Kirby, Robert M},
	journal={IEEE Transactions on Visualization and Computer Graphics},
	volume={24},
	number={1},
	pages={903--912},
	year={2017},
	publisher={IEEE}
}


@article{sanchez2016multi,
	title={Multi-dimensional filtering: Reducing the dimension through rotation},
	author={Docampo-S{\'a}nchez, Julia and Ryan, Jennifer K and Mirzargar, Mahsa and Kirby, Robert M},
	journal={SIAM Journal on Scientific Computing},
	volume={39},
	number={5},
	pages={A2179--A2200},
	year={2017},
	publisher={SIAM}
}

@article{ClenshawC,
author = "Lloyd N. Trefethen",
title = "Is Gauss Quadrature Better than Clenshaw-Curtis?",
journal = "SIAM Review",
volume = "50",
issue = "1",
pages = "67-87",
year = "2008"
}

@article{Vostime,
author = "Peter E.J. Vos and Sehun Chun and Alessandro Bolis and Claes Eskilsson and Robert M. Kirby and Spencer J. Sherwin", 
title = "A Generic Framework for Time-Stepping PDEs: General Linear Methods, Object-Oriented Implementations and Applications to Fluid Problems", 
journal = "International Journal of Computational Fluid Dynamics", 
volume = "25",
issue = "3",
pages = "107-125", 
year = "2011"
}

@Article{Bu06,
  author =       "J. C. Butcher",
  title =        "General linear methods",
  journal =      "Acta Numerica",
  year =         2006,
  volume =       "15",
  pages =        "157--256"
 }


%% NekPy references

@misc{BoostPythonTutorial,
  author = "de Guzman J., Abrahams D.",
  title = "Boost.Python Tutorial - 1.67.0",
  year = "2018",
  url = "https://www.boost.org/doc/libs/1_67_0/libs/python/doc/html/tutorial/index.html",
  note = "[Accessed 1st May 2018]"
}

@misc{BoostPythonWikiEntry,
  title = "boost.python/HowTo - Python Wiki",
  year = "2015",
  url = "https://wiki.python.org/moin/boost.python/HowTo",
  note = "[Accessed 1st May 2018]"
}

@misc{GitHubExamples,
  title = "GitHub - TNG/boost-python-examples: Some examples for the use of boost::python",
  year = "2016",
  url = "https://github.com/TNG/boost-python-examples",
  note = "[Accessed 7th May 2018]"  
}

@misc{OpenStreetGraphCookbook,
  title = "osgboostpython/WrappingCookbook.md at wiki · Skylark13/osgboostpython · GitHub",
  year = "2015",
  url = "https://github.com/Skylark13/osgboostpython/blob/wiki/WrappingCookbook.md",
  note = "[Accessed 7th May 2018]"
}

@misc{ManualWrappingRationale,
  title = "osgboostpython/ManualWrappingRationale.md at wiki · Skylark13/osgboostpython · GitHub",
  year = "2015",
  url = "https://github.com/Skylark13/osgboostpython/blob/wiki/ManualWrappingRationale.md",
  note = "[Accessed 7th May 2018]"
}

@misc{PEP257,
  title = "PEP 257 -- Docstring Conventions",
  author = "Goodger D., van Rossum G.",
  year = "2001",
  url = "https://www.python.org/dev/peps/pep-0257/",
  note = "[Accessed 16th May 2018]"  
}

@misc{PythonEnumDocstring,
  title = "Piotr Jaroszyński's blog: Boost.Python: docstrings in enums",
  author = "Jaroszyński P.",
  year = "2007",
  url = "http://blog.piotrj.org/2007/07/boostpython-docstrings-in-enums.html",
  note = "[Accessed 16th May 2018]"
}

@misc{PythonGoogle,
  title = "Google Python Style Guide",
  author = "Patel A., Picard A., Jhong E. et al.",
  url = "https://google.github.io/styleguide/pyguide.html",
  note = "[Accessed 16th May 2018]"  
}

@book{C++Api,
  title = "API Design for C++",
  author = "Reddy M.",
  year = "2011",
  publisher = "Burlington: Elsevier"
}

@book{C++Memory,
  author = "Daconta M.",
  title = "C++ pointers and dynamic memory management",
  publisher = "New York: Wiley",
  year = "1995"
}

@misc{C++SharedPtr,
  title =" std::shared\_ptr - cppreference.com",
  url = "http://en.cppreference.com/w/cpp/memory/shared\_ptr",
  note = "[Accessed 21 March 2018]"
}

@misc{PythonMemory,
  author = "Python Software Foundation",
  title = "Memory Management - Python 2.7.14 documentation",
  url = "https://docs.python.org/2/c-api/memory.html",
  note = "[Accessed 21 March 2018]" 
}

@misc{PythonManualMemory,
  author = "Python Software Foundation",
  title = "Reference Counting - Python 2.7.14 documentation",
  url = "https://docs.python.org/2/c-api/refcounting.html",
  note = "[Accessed 21 March 2018]"
}

