diff --git a/CMakeLists.txt b/CMakeLists.txt index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..56a4dae622c9a0a813c9f39bb7a9a9e0212b56b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -0,0 +1,52 @@ +SET(DEVGUIDESRC ${CMAKE_CURRENT_SOURCE_DIR}) +SET(DEVGUIDE ${CMAKE_BINARY_DIR}/docs/developer-guide) + +FILE(MAKE_DIRECTORY ${DEVGUIDE}/html) + +FIND_PROGRAM(HTLATEX htlatex) +MARK_AS_ADVANCED(HTLATEX) +ADD_CUSTOM_TARGET(developer-guide-html + export TEXINPUTS=${CMAKE_SOURCE_DIR}//:${DEVGUIDESRC}//: && + ${HTLATEX} ${DEVGUIDESRC}/developers-guide.tex + "${DEVGUIDESRC}/styling.cfg,html,3,next,NoFonts" + WORKING_DIRECTORY ${DEVGUIDE}/html +) + +# If tex4ht successful, create img dir and copy images across +FILE(GLOB_RECURSE imgfiles "img/*.png" "img/*.jpg" "*/img/*.png" "*/img/*.jpg") +ADD_CUSTOM_COMMAND(TARGET developer-guide-html + POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${DEVGUIDE}/html/img) +FOREACH(img ${imgfiles}) + ADD_CUSTOM_COMMAND(TARGET developer-guide-html + POST_BUILD COMMAND + ${CMAKE_COMMAND} -E copy ${img} ${DEVGUIDE}/html/img) +ENDFOREACH() + +FILE(GLOB_RECURSE pdffiles "*/img/*.pdf") +FIND_PROGRAM(CONVERT convert) +FOREACH(pdf ${pdffiles}) + GET_FILENAME_COMPONENT(BASENAME ${pdf} NAME_WE) + ADD_CUSTOM_COMMAND(TARGET developer-guide-html + POST_BUILD COMMAND + ${CONVERT} ${pdf} ${DEVGUIDE}/html/img/${BASENAME}.png) +ENDFOREACH() + + +FIND_PROGRAM(PDFLATEX pdflatex) +MARK_AS_ADVANCED(PDFLATEX) +FIND_PROGRAM(BIBTEX bibtex) +MARK_AS_ADVANCED(BIBTEX) +FIND_PROGRAM(MAKEINDEX makeindex) +MARK_AS_ADVANCED(MAKEINDEX) + +ADD_CUSTOM_TARGET(developer-guide-pdf + export TEXINPUTS=${CMAKE_SOURCE_DIR}//: && + ${PDFLATEX} --output-directory ${DEVGUIDE} ${DEVGUIDESRC}/developers-guide.tex + COMMAND TEXMFOUTPUT=${DEVGUIDE} ${BIBTEX} ${DEVGUIDE}/developers-guide.aux + COMMAND TEXMFOUTPUT=${DEVGUIDE} ${MAKEINDEX} ${DEVGUIDE}/developers-guide.idx + COMMAND TEXINPUTS=${CMAKE_SOURCE_DIR}//: + ${PDFLATEX} --output-directory ${DEVGUIDE} ${DEVGUIDESRC}/developers-guide.tex + COMMAND TEXINPUTS=${CMAKE_SOURCE_DIR}//: + ${PDFLATEX} --output-directory ${DEVGUIDE} ${DEVGUIDESRC}/developers-guide.tex + WORKING_DIRECTORY ${DEVGUIDESRC} +) diff --git a/DevGuideImages.key b/DevGuideImages.key new file mode 100644 index 0000000000000000000000000000000000000000..51c954bf6bdaa77f0c1148ffe1cf10b7cfab49a7 Binary files /dev/null and b/DevGuideImages.key differ diff --git a/developers-guide.bib b/developers-guide.bib new file mode 100644 index 0000000000000000000000000000000000000000..313be8973c2895f85db66b12ccff8ce8c238e3e1 --- /dev/null +++ b/developers-guide.bib @@ -0,0 +1,378 @@ +@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{Demmel97, +author = "James W. Demmel", +title = "Applied Numerical Linear Algebra", +publisher = "SIAM", + address = "Philadelphia, PA, USA", + year = 1997 +} + +@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{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" + } + + + diff --git a/developers-guide.tex b/developers-guide.tex new file mode 100644 index 0000000000000000000000000000000000000000..acd68d2c68aef3b15083778f332321405379b2e3 --- /dev/null +++ b/developers-guide.tex @@ -0,0 +1,50 @@ +\input{shared/devguide-preamble.tex} + +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} + +\newcommand\nek{\emph{Nektar++}} +\newcommand\shp{spectral/$hp$} +\newcommand\Shp{Spectral/$hp$} + +\title{A Programmer's Guide to Nektar++} + +\begin{document} + +%\frontmatter + +% Render pretty title page if not building HTML +\ifdefined\HCode +\begin{center} + \includegraphics[width=0.1\textwidth]{shared/img/icon-blue.png} +\end{center} +\maketitle +\begin{center} + \huge{Nektar++ Developer's Guide} +\end{center} +\else +\titlepage +\fi + +\clearpage + +%\ifx\HCode\undefined +%\tableofcontents* +%\fi +% +%\clearpage + +%\input{test.tex} + +\input{preface/preface.tex} +% +\input{introduction/introduction.tex} +% +%\input{prelims/prelims.tex} +% +\input{library/library-master.tex} + +\bibliographystyle{plain} +\bibliography{developers-guide} + + +\end{document} diff --git a/img/afg002.pdf b/img/afg002.pdf new file mode 120000 index 0000000000000000000000000000000000000000..d2afe4471ffef14b1e211c94119283ad6c739eb0 --- /dev/null +++ b/img/afg002.pdf @@ -0,0 +1 @@ +../library/StdRegions/img/afg002.pdf \ No newline at end of file diff --git a/img/basismemory.pdf b/img/basismemory.pdf new file mode 120000 index 0000000000000000000000000000000000000000..4f5d4beca48efad207bfa62a9eb8a9b8400b3a36 --- /dev/null +++ b/img/basismemory.pdf @@ -0,0 +1 @@ +../library/LibUtilities/img/basismemory.pdf \ No newline at end of file diff --git a/img/expansiontree.pdf b/img/expansiontree.pdf new file mode 120000 index 0000000000000000000000000000000000000000..0d388178c41391eee3c6f64b88b0e673219307eb --- /dev/null +++ b/img/expansiontree.pdf @@ -0,0 +1 @@ +../library/LocalRegions/img/expansiontree.pdf \ No newline at end of file diff --git a/img/geomtree.pdf b/img/geomtree.pdf new file mode 120000 index 0000000000000000000000000000000000000000..b9ded950a1f0c0edf338aa562f0d1e4d93f7afda --- /dev/null +++ b/img/geomtree.pdf @@ -0,0 +1 @@ +../library/SpatialDomains/img/geomtree.pdf \ No newline at end of file diff --git a/img/multiregiontree.pdf b/img/multiregiontree.pdf new file mode 120000 index 0000000000000000000000000000000000000000..e1c099bc68eea51ab6b2a6b4584861b274ac0420 --- /dev/null +++ b/img/multiregiontree.pdf @@ -0,0 +1 @@ +../library/MultiRegions/img/multiregiontree.pdf \ No newline at end of file diff --git a/img/stdexpansiontree.pdf b/img/stdexpansiontree.pdf new file mode 120000 index 0000000000000000000000000000000000000000..e74f4dec1a10fa96b430394645e2e24f9a4c5fce --- /dev/null +++ b/img/stdexpansiontree.pdf @@ -0,0 +1 @@ +../library/StdRegions/img/stdexpansiontree.pdf \ No newline at end of file diff --git a/img/stdtolocal.pdf b/img/stdtolocal.pdf new file mode 120000 index 0000000000000000000000000000000000000000..ee3b363e906c27f7b5d04799e156785de602f92e --- /dev/null +++ b/img/stdtolocal.pdf @@ -0,0 +1 @@ +../introduction/img/stdtolocal.pdf \ No newline at end of file diff --git a/img/structure1.png b/img/structure1.png new file mode 120000 index 0000000000000000000000000000000000000000..78f96525b18afddb6628609352b76d364c8978a1 --- /dev/null +++ b/img/structure1.png @@ -0,0 +1 @@ +../introduction/img/structure1.png \ No newline at end of file diff --git a/img/structure2.png b/img/structure2.png new file mode 120000 index 0000000000000000000000000000000000000000..dec872331486f252da15eebce1c1106ffd46d986 --- /dev/null +++ b/img/structure2.png @@ -0,0 +1 @@ +../introduction/img/structure2.png \ No newline at end of file diff --git a/introduction/img/stdtolocal.pdf b/introduction/img/stdtolocal.pdf new file mode 100644 index 0000000000000000000000000000000000000000..eb22f35f3881501576a9dead4ae7955ad2eecb82 Binary files /dev/null and b/introduction/img/stdtolocal.pdf differ diff --git a/introduction/img/structure1.png b/introduction/img/structure1.png new file mode 100644 index 0000000000000000000000000000000000000000..19ca93b942aa7feedf366710ac5c1a9f732bce6d Binary files /dev/null and b/introduction/img/structure1.png differ diff --git a/introduction/img/structure2.png b/introduction/img/structure2.png new file mode 100644 index 0000000000000000000000000000000000000000..aedf030c0c477d1887b0f49a9582d2f996e48096 Binary files /dev/null and b/introduction/img/structure2.png differ diff --git a/introduction/introduction.tex b/introduction/introduction.tex new file mode 100644 index 0000000000000000000000000000000000000000..8ae12019f747a5267905ff945641a021745a2eac --- /dev/null +++ b/introduction/introduction.tex @@ -0,0 +1,251 @@ +% Introduction +\chapter{Introduction} + + +Finite element methods (FEM) are commonplace among a wide range of engineering +and biomedical disciplines for the solution of partial differential equations +(PDEs) on complex geometries. However, low-order formulations often struggle to +capture certain complex solution characteristics without the use of excessive +mesh refinement due to numerical dissipation. In contrast, spectral techniques +offer improved numerical characteristics, but are typically restricted to +relatively simple regular domains. + +High-order finite element methods, such as the traditional spectral element +method \cite{Pa84}, the p-type method \cite{BaSzKa81} and the more recent \shp{} +element method \cite{KaSh05}, exhibit the convergence properties of spectral methods while retaining the geometric +flexibility of traditional linear FEM. +%and transient flow simulation, +%where the higher accuracy enables improved prediction of downstream dynamics. +% % +They potentially offer greater efficiency on modern CPU architectures +as well as more exotic platforms such as many-core general-purpose graphics +processing units (GPGPUs). +The data structures which arise from using high-order methods are more compact +and localised than their linear finite element counterparts, for a fixed number +of degrees of freedom, providing increased cache coherency and reduced memory +accesses, which is increasingly the primary bottleneck of modern computer systems. + +The methods have had greatest +prominence in the structural mechanics community and subsequently the academic +fluid dynamics community. They are also showing promise +in other areas of engineering, biomedical and environmental research. The most +common concern cited with respect to using high-order finite element techniques +outside of academia is the implementational complexity, stemming from the +complex data structures, necessary to produce a computationally efficient +implementation. This is a considerable hurdle which has limited their widespread +uptake in many application domains and industries. + +% Overview of Nektar++ and its goals/features +\nek{} is a cross-platform \shp{} element framework which aims to make +high-order finite element methods accessible to the broader community. This is +achieved by providing a structured hierarchy of C++ components, encapsulating +the complexities of these methods, which can be readily applied to a range of +application areas. These components are distributed in the form of +cross-platform software libraries, enabling rapid development of solvers for use +in a wide variety of computing environments. The code accommodates both +small research problems, suitable for desktop computers, and large-scale +industrial simulations, requiring modern HPC infrastructure, where +there is a need to maintain efficiency and scalability up to many thousands of +processor cores. + +% % Previous software - Nektar (does not do anything more than IncNS) +A number of software packages already exist for fluid dynamics which implement +high-order finite element methods, although these packages are typically targeted at a specific +domain or provide limited high-order capabilities as an extension. +% % +The \emph{Nektar flow solver} is the predecessor to Nektar++ and +implements the \shp{} element method for solving the incompressible +and compressible Navier-Stokes equations in both 2D and 3D. While it is widely +used and the implementation is computationally efficient on small parallel problems, +achieving scaling on large HPC clusters is challenging. Semtex \cite{BlSh04} +implements the 2D spectral element method coupled with a Fourier expansion in +the third direction. The implementation is highly efficient, but can only be +parallelised through Fourier-mode decomposition. +Nek5000 \cite{Nek5000} is a 3D spectral element code, based on hexahedral +elements, which has been used for massively parallel simulations up to 300,000 +cores. Hermes \cite{VeSoZi07} implements hp-FEM for two-dimensional problems and +has been used in a number of application areas. Limited high-order finite +element capabilities are also included in a number of general purpose PDE +frameworks including the DUNE project \cite{DeKlNoOh11} and deal.II +\cite{BaHaKa07}. +% % +A number of codes also implement high-order finite element methods on +GPGPUs including nudg++, which +implments a nodal discontinuous Galerkin scheme \cite{HeWa07}, and PyFR +\cite{WiFaVi14}, which supports a range of flux reconstruction techniques. + + +% % However, the present software is instead a collection of libraries which +% implement the underlying discretisation technique, providing the ability to +% solve a range of PDE problems across a broad range of application areas. The +% included incompressible Navier-Stokes solver supports all the existing +% functionality of the Nektar flow solver, including improvements in many areas. +% % +\nek{} provides a single codebase with the following key features: +\begin{itemize} + \item Arbitrary-order \shp{} element discretisations in one, two and three + dimensions; + \item Support for variable polynomial order in space and heterogeneous + polynomial order within two- and three-dimensional elements; + \item High-order representation of the geometry; + \item Continuous Galerkin, discontinuous Galerkin and hybridised discontinuous + Galerkin projections; + \item Support for a Fourier extension of the spectral element mesh; + \item Support for a range of linear solvers and preconditioners; + \item Multiple implementation strategies for achieving linear algebra + performance on a range of platforms; + \item Efficient parallel communication using MPI showing strong scaling up to + 2048-cores on Archer, the UK national HPC system; + \item A range of time integration schemes implemented using generalised linear + methods; and + \item Cross-platform support for Linux, OS X and Windows operating + systems. +\end{itemize} + +In addition to the core functionality listed above, Nektar++ includes a +number of solvers covering a range of application areas. A range +of pre-processing and post-processing utilities are also included with support +for popular mesh and visualization formats, and an extensive test suite ensures +the robustness of the core functionality. + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{The {\em Ethos} of Nektar++} + + +As with any research effort, one is required to decide on a set of guiding principles that will +drive the investigation. Similarly with a software development effort of this form, we early on +spent a lot of time considering what things we wanted to be distictive about Nektar++ and also +what guiding principles would we use to help set both the goals and the boundaries of what +we wanted to do. We did this for at least two reasons: (1) We acknowledged then and now that +there are various software packages and open-source efforts that deal with finite element frameworks, +and so we wanted to be able to understand and express to people those things we thought were +distinctive to us -- that is, our ``selling points". (2) We also acknowledged, from our own experience +on software projects, that if we did not set up some collection of guiding principles for our work, that +we would gravitate towards trying to be ``all things to all men", and in doing so be at odds with the +first item. Below are a list of the guiding principles, the ``ethos", of the Nektar++ software development +effort. The first three boldface items denote the three major themes of our work (i.e. respecting reason (1) above) and the +subsequent items denotes the guardrails (i.e. respecting reason (2) above) that +we put in place to help guide our efforts. + +\begin{itemize} +\item \textbf{Efficiently:} Nektar++ was to be a ``true" high-order code. ``True" is put in quotations because we acknowledge +that high-order means different things to different communities. Based upon a review of the literature, we +came to the conclusion that part of our {\em h-to-p} philosophy should be that we accommodate polynomial +degrees ranging from zero (finite volumes) or one (traditional linear finite elements) up to what is considered +``spectral" (pseodspectral) orders of 16 degree. As part of our early work \cite{vos}, we established that in +order to span this range of polynomial degrees and attempt to maintain some level of computational +efficiency, we would need to develop {\em order-aware} algorithms: that is, we would need to utilize +different (equivalent) algorithms appropriate for a particular order. This principle was the starting point +of our {\em h-to-p efficiently} branding and continues to be a driving principle of our work. + +\item \textbf{Transparently:} Nektar++ was to be agnostic as to what the ``right" way to discretize a partial differential equation (PDE). +``Right" is put in quotations to acknowledge that like the issue of polynomial order, there appear to be different +``camps" who hold very strong views as to which discretization method should be used. Some might concede that +continuous Galerkin methods are very natural for elliptic and parabolic PDEs and then work very laboriously to + + +was to be a high-order finite element framework that allowed users to experiment with +continuous Galerkin (cG) and discontinuous Galerkin (dG) methods. + +\item \textbf{Seamlessly:} Nektar++ was to be ... Desktop to Supercomputer Seamlessly +\end{itemize} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{The Structure of Nektar++} + + +\noindent{\textbf{LibUtilities:}} This part of the library contains all the basic mathematical and computer science building blocks of the Nektar++ code. + + +\noindent{\textbf{StdRegions:}} This part of the library contains the objects that express ``standard region'' data and operations. In one dimension, this is the StdSegment. In two +dimensions, this is the StdTri (Triangle) and StdQuad (Quadrilateral). In three dimensions, this is the StdTet (Tetrahedra), StdHex (Hexahedra), StdPrism (Prism) and StdPyr (Pyramid). These represent +the seven different standarized regions over which we support differentiation and integration. + +\noindent{\textbf{SpatialDomains:}} + +\noindent{\textbf{LocalRegions:}} + + +\begin{figure}[htb] +\centering +\includegraphics[width=4in]{img/structure1.png} +\caption{Figure 1} +\label{intro:fig1} +\end{figure} + + + + +\begin{figure}[htb] +\centering +\includegraphics[width=4in]{img/stdtolocal.pdf} +\caption{Figure stdtolocal} +\label{intro:stdtolocal} +\end{figure} + +\begin{figure}[htb] +\centering +\includegraphics[width=4in]{img/structure2.png} +\caption{Figure 2} +\label{intro:fig2} +\end{figure} + + +\section{Assumed Proficiencies} +The developer guide is designed for the experienced \shp{} + + + +spectral element \cite{DevilleFM02,KaSh05} + +discontinuous Galerkin \cite{HesthavenW08} + +CanutoHQZ87 + +Hughes87 + +SzBa91 + +TrefethenB97 + +Demmel97 + + +\section{Other Software Implementations and Frameworks} + +In the last ten years a collection of software frameworks has been put forward to try to bridge the gap between the +mathematics of high-order methods and their implementation. A major challenge many practitioners have with +spectral/{\em hp\/} elements and high-order methods, in general, is the complexity (in terms of algorithmic design) they +encounter. In this section, we give an incomplete but +representative summary of several of these attempts to overcome this challenge. + +FEniCS \cite{FEniCS} is a collaborative project for the development of scientific computing tools, with a particular focus +on the automated solution of differential equations by finite element methods (FEM). Through the use of concepts such as meta-programming, +FEniCS tries to keep the solving of PDEs with FEM, from the application programmers' perspective, as close to the mathematical expressions +as possible without sacrificing computational efficiency. + +The current effort, Nektar++ \cite{CantwellMCBRMGYLEJXMENVBKS2015}, is an open-source software framework designed to support the development of +high-performance scalable solvers for partial differential equations using the spectral/{\em hp\/} element method. Nektar++ is an outgrowth of the original {\nektar} effort; its design and principal implementation +being by two former {\nektar} developers. The two software suites are similar in terms of the basis choices available, etc. However, what makes Nektar++ unique is that it is +an initiative to overcome this limitation by encapsulating the mathematical complexities of the underlying method within an efficient C++ framework, making the techniques more accessible to the broader scientific and industrial communities. The software supports a variety of discretization techniques and +implementation strategies \cite{VosSK2010,CantwellSKK2011a,CantwellSKK2011b,BolisCKS2014}, +supporting methods research as well as application-focused computation, and the multi-layered structure of the framework allows the user to embrace as much or as little of the complexity as they need. The libraries capture the mathematical constructs of spectral/{\em hp\/} element methods, while the associated collection of pre-written PDE solvers provides out-of-the-box application-level functionality and a template for users who wish to develop solutions for addressing questions in their own scientific domains. + +With respect to software infrastructures that tackle specific domain problems, +the nodal hexahedral spectral element code Nek5000 \cite{Nek5000,DevilleFM02}, +which is an outgrowth of the original code NEKTON, provides the application +developer with a framework for solving the incompressible Navier-Stokes equations and its extensions in a scalable parallel way. +Similarly the Non-hydrostatic Unified Model of the Atmosphere (NUMA) \cite{GiraldoKC13} is a spectral element framework that employs continuous +and discontinuous Galerkin +strategies for solving a particular problem of interest, but in a way on which others could adopt and build. The discontinuous Galerkin +of Hesthaven and Warburton \cite{HesthavenW08} and a software framework for the discontinuous Petrov-Galerkin method \cite{roberts_camellia:_2014} +provide a similar flexibility to the user-community trying to jump-start their high-order software experience. + + + + diff --git a/library/Collections/collections-algorithms.tex b/library/Collections/collections-algorithms.tex new file mode 100644 index 0000000000000000000000000000000000000000..449547bd6530b81ee6ae7e288373a4ae343d7ada --- /dev/null +++ b/library/Collections/collections-algorithms.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamental Algorithms within Collections} \ No newline at end of file diff --git a/library/Collections/collections-datastructures.tex b/library/Collections/collections-datastructures.tex new file mode 100644 index 0000000000000000000000000000000000000000..580b8f912634924237c81b445159f1b856f5265a --- /dev/null +++ b/library/Collections/collections-datastructures.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamental Data Structures within Collections} \ No newline at end of file diff --git a/library/Collections/collections-fundamentals.tex b/library/Collections/collections-fundamentals.tex new file mode 100644 index 0000000000000000000000000000000000000000..01955ee503c7da6c56ebaf7eb5f0b07ba3495cb7 --- /dev/null +++ b/library/Collections/collections-fundamentals.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamentals Behind Collections} \ No newline at end of file diff --git a/library/FieldUtils/fieldutils-algorithms.tex b/library/FieldUtils/fieldutils-algorithms.tex new file mode 100644 index 0000000000000000000000000000000000000000..5942903f7107934553dcf39316691eb9d2839786 --- /dev/null +++ b/library/FieldUtils/fieldutils-algorithms.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamental Algorithms within FieldUtils} \ No newline at end of file diff --git a/library/FieldUtils/fieldutils-datastructures.tex b/library/FieldUtils/fieldutils-datastructures.tex new file mode 100644 index 0000000000000000000000000000000000000000..8d8cdad58f721fbab720c43128c56f5bd4ac7258 --- /dev/null +++ b/library/FieldUtils/fieldutils-datastructures.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamental Data Structures within FieldUtils} \ No newline at end of file diff --git a/library/FieldUtils/fieldutils-fundamentals.tex b/library/FieldUtils/fieldutils-fundamentals.tex new file mode 100644 index 0000000000000000000000000000000000000000..6761b6a3ae173b4a5019f39f442f991d5d088edf --- /dev/null +++ b/library/FieldUtils/fieldutils-fundamentals.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamentals Behind FieldUtils} \ No newline at end of file diff --git a/library/GlobalMapping/globalmapping-algorithms.tex b/library/GlobalMapping/globalmapping-algorithms.tex new file mode 100644 index 0000000000000000000000000000000000000000..6fe03bb9bc2d0f8336df569d76ea115930778f55 --- /dev/null +++ b/library/GlobalMapping/globalmapping-algorithms.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamental Algorithms within GlobalMapping} \ No newline at end of file diff --git a/library/GlobalMapping/globalmapping-datastructures.tex b/library/GlobalMapping/globalmapping-datastructures.tex new file mode 100644 index 0000000000000000000000000000000000000000..aa0e8fc56ce7fced436fcf0d143c3316394a19dc --- /dev/null +++ b/library/GlobalMapping/globalmapping-datastructures.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamental Data Structures within GlobalMapping} \ No newline at end of file diff --git a/library/GlobalMapping/globalmapping-fundamentals.tex b/library/GlobalMapping/globalmapping-fundamentals.tex new file mode 100644 index 0000000000000000000000000000000000000000..31a0e6bb61feef947c4de0ad3b19a7639f4106a3 --- /dev/null +++ b/library/GlobalMapping/globalmapping-fundamentals.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamentals Behind GlobalMapping} \ No newline at end of file diff --git a/library/LibUtilities/basicconst.tex b/library/LibUtilities/basicconst.tex new file mode 100644 index 0000000000000000000000000000000000000000..e32a960c8d37ff25db8090b18b2c717d323be548 --- /dev/null +++ b/library/LibUtilities/basicconst.tex @@ -0,0 +1,4 @@ +% +\section{BasicConst} + +\lstinputlisting[language=C++, firstline=47, lastline=59]{../../library/LibUtilities/BasicConst/NektarUnivConsts.hpp} \ No newline at end of file diff --git a/library/LibUtilities/basicutils.tex b/library/LibUtilities/basicutils.tex new file mode 100644 index 0000000000000000000000000000000000000000..30e2fe41a4cbb07ed05213566ec8513a70d2f3a3 --- /dev/null +++ b/library/LibUtilities/basicutils.tex @@ -0,0 +1,3 @@ +% +\section{BasicUtils} + diff --git a/library/LibUtilities/communication.tex b/library/LibUtilities/communication.tex new file mode 100644 index 0000000000000000000000000000000000000000..b89db553460a5894571b6dab0ee6115db95ab57d --- /dev/null +++ b/library/LibUtilities/communication.tex @@ -0,0 +1,3 @@ +% +\section{Communication} + diff --git a/library/LibUtilities/fft.tex b/library/LibUtilities/fft.tex new file mode 100644 index 0000000000000000000000000000000000000000..7cc2aca7bd18ec8c2afff9191c059c693e35fcd4 --- /dev/null +++ b/library/LibUtilities/fft.tex @@ -0,0 +1,3 @@ +% +\section{FFT} + diff --git a/library/LibUtilities/foundations.tex b/library/LibUtilities/foundations.tex new file mode 100644 index 0000000000000000000000000000000000000000..291ab1be339071d97d7494f4319abcfe6d57abba --- /dev/null +++ b/library/LibUtilities/foundations.tex @@ -0,0 +1,27 @@ +% +\section{Foundations} +The two basic building blocks of all that is done in Nektar++ are the concepts of Points and of a Basis. The Point objects denote positions +in space, either on compact domains (normally $[-1,1]^d$ where $d$ is the dimension in a reference domain mapped to world-space) +or periodic domains (i.e. in the case of points used in Fourier expansions). The Basis objects denote functions (e.g. polynomials) evaluated +at a given set of points. + +\subsection{Points} + +\begin{itemize} +\item PointsKey +\item Points +\end{itemize} + +\subsection{Basis} + +\begin{itemize} +\item BasisKey +\item Basis +\end{itemize} + +\begin{figure}[htb] +\centering +\includegraphics[width=4in]{img/basismemory.pdf} +\caption{Figure 1} +\label{foundations:basismemory} +\end{figure} diff --git a/library/LibUtilities/img/basismemory.pdf b/library/LibUtilities/img/basismemory.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cab7a6e65eccf0fbf84164f3a8a74f41b117f63f Binary files /dev/null and b/library/LibUtilities/img/basismemory.pdf differ diff --git a/library/LibUtilities/interpreter.tex b/library/LibUtilities/interpreter.tex new file mode 100644 index 0000000000000000000000000000000000000000..8f08258235d80a4ae3d48db7505b3fea5e675a96 --- /dev/null +++ b/library/LibUtilities/interpreter.tex @@ -0,0 +1,3 @@ +% +\section{Interpreter} + diff --git a/library/LibUtilities/kernel.tex b/library/LibUtilities/kernel.tex new file mode 100644 index 0000000000000000000000000000000000000000..9271cb09a2d5744cd95a085b1577940d79dbd5c0 --- /dev/null +++ b/library/LibUtilities/kernel.tex @@ -0,0 +1,3 @@ +% +\section{Kernel} + diff --git a/library/LibUtilities/linearalgebra.tex b/library/LibUtilities/linearalgebra.tex new file mode 100644 index 0000000000000000000000000000000000000000..fb257b367ffbd05094baa6d65f117d9504e01767 --- /dev/null +++ b/library/LibUtilities/linearalgebra.tex @@ -0,0 +1,2 @@ +% +\section{Linear Algebra} \ No newline at end of file diff --git a/library/LibUtilities/memory.tex b/library/LibUtilities/memory.tex new file mode 100644 index 0000000000000000000000000000000000000000..bcf9d975a9b8b8a28742718530f38cacd98b056f --- /dev/null +++ b/library/LibUtilities/memory.tex @@ -0,0 +1,2 @@ +% +\section{Memory} diff --git a/library/LibUtilities/polylib.tex b/library/LibUtilities/polylib.tex new file mode 100644 index 0000000000000000000000000000000000000000..74dd9243883d740fe7f8a92c8ba139ad04447582 --- /dev/null +++ b/library/LibUtilities/polylib.tex @@ -0,0 +1,2 @@ +% +\section{Polylib} diff --git a/library/LibUtilities/timeintegration.tex b/library/LibUtilities/timeintegration.tex new file mode 100644 index 0000000000000000000000000000000000000000..e1c885c431aa764823d1a9b8d5830b8d642dda56 --- /dev/null +++ b/library/LibUtilities/timeintegration.tex @@ -0,0 +1,2 @@ +% +\section{Time Integration} diff --git a/library/LocalRegions/img/expansiontree.pdf b/library/LocalRegions/img/expansiontree.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fa9011d1bbf655ae01d69db6b493ca11e6e303fe Binary files /dev/null and b/library/LocalRegions/img/expansiontree.pdf differ diff --git a/library/LocalRegions/localreg-algorithms.tex b/library/LocalRegions/localreg-algorithms.tex new file mode 100644 index 0000000000000000000000000000000000000000..eaf5884a93d147afd0c281343c3d76e2ab762e3b --- /dev/null +++ b/library/LocalRegions/localreg-algorithms.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamental Algorithms within LocalRegions} \ No newline at end of file diff --git a/library/LocalRegions/localreg-datastructures.tex b/library/LocalRegions/localreg-datastructures.tex new file mode 100644 index 0000000000000000000000000000000000000000..c70862c666349540bb898db375101a95705b9ea2 --- /dev/null +++ b/library/LocalRegions/localreg-datastructures.tex @@ -0,0 +1,10 @@ +% +\section{The Fundamental Data Structures within LocalRegions} + + +\begin{figure}[htb] +\centering +\includegraphics[width=6in]{img/expansiontree.pdf} +\caption{Figure local regions tree} +\label{localregions:localclasstree} +\end{figure} \ No newline at end of file diff --git a/library/LocalRegions/localreg-fundamentals.tex b/library/LocalRegions/localreg-fundamentals.tex new file mode 100644 index 0000000000000000000000000000000000000000..417e9d63009604a8852e2df9771317b71ac15cc2 --- /dev/null +++ b/library/LocalRegions/localreg-fundamentals.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamentals Behind LocalRegions} \ No newline at end of file diff --git a/library/MultiRegions/img/multiregiontree.pdf b/library/MultiRegions/img/multiregiontree.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e0dfdf9e7ffc942bc45a5d3aefc2078e5e48fe68 Binary files /dev/null and b/library/MultiRegions/img/multiregiontree.pdf differ diff --git a/library/MultiRegions/multireg-algorithms.tex b/library/MultiRegions/multireg-algorithms.tex new file mode 100644 index 0000000000000000000000000000000000000000..2f043f54382ac72c21efada90e04739ed64be2b5 --- /dev/null +++ b/library/MultiRegions/multireg-algorithms.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamental Algorithms within MultiRegions} \ No newline at end of file diff --git a/library/MultiRegions/multireg-datastructures.tex b/library/MultiRegions/multireg-datastructures.tex new file mode 100644 index 0000000000000000000000000000000000000000..89146ad4e8654ea250da94766746ed600eb19346 --- /dev/null +++ b/library/MultiRegions/multireg-datastructures.tex @@ -0,0 +1,10 @@ +% +\section{The Fundamental Data Structures within MultiRegions} + + +\begin{figure}[htb] +\centering +\includegraphics[width=6in]{img/multiregiontree.pdf} +\caption{Figure 1} +\label{multiregions:multiregionstree} +\end{figure} diff --git a/library/MultiRegions/multireg-fundamentals.tex b/library/MultiRegions/multireg-fundamentals.tex new file mode 100644 index 0000000000000000000000000000000000000000..2b1363db4dafd7fb0bc8833399d6a207c63bad64 --- /dev/null +++ b/library/MultiRegions/multireg-fundamentals.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamentals Behind MultiRegions} \ No newline at end of file diff --git a/library/SolverUtils/solverutils-algorithms.tex b/library/SolverUtils/solverutils-algorithms.tex new file mode 100644 index 0000000000000000000000000000000000000000..a9448284f84dab23f87265e553037ffebb11f83f --- /dev/null +++ b/library/SolverUtils/solverutils-algorithms.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamental Algorithms within SolverUtils} \ No newline at end of file diff --git a/library/SolverUtils/solverutils-datastructures.tex b/library/SolverUtils/solverutils-datastructures.tex new file mode 100644 index 0000000000000000000000000000000000000000..e9c6707611b5bbba7735370ac77f87417a25e39e --- /dev/null +++ b/library/SolverUtils/solverutils-datastructures.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamental Data Structures within SolverUtils} \ No newline at end of file diff --git a/library/SolverUtils/solverutils-fundamentals.tex b/library/SolverUtils/solverutils-fundamentals.tex new file mode 100644 index 0000000000000000000000000000000000000000..1c75b7b3656dadf93216e7159977caf292d1481d --- /dev/null +++ b/library/SolverUtils/solverutils-fundamentals.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamentals Behind SolverUtils} \ No newline at end of file diff --git a/library/SpatialDomains/img/geomtree.pdf b/library/SpatialDomains/img/geomtree.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1373af7a132d32f8260077e1d381f88c1f9259a4 Binary files /dev/null and b/library/SpatialDomains/img/geomtree.pdf differ diff --git a/library/SpatialDomains/spdomains-algorithms.tex b/library/SpatialDomains/spdomains-algorithms.tex new file mode 100644 index 0000000000000000000000000000000000000000..59002afaf3fbb42cc76e1bcbdac1311c0be50c29 --- /dev/null +++ b/library/SpatialDomains/spdomains-algorithms.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamental Algorithms within SpatialDomains} \ No newline at end of file diff --git a/library/SpatialDomains/spdomains-datastructures.tex b/library/SpatialDomains/spdomains-datastructures.tex new file mode 100644 index 0000000000000000000000000000000000000000..803692a8947e62641b0c3b730ab60d1a4c149f65 --- /dev/null +++ b/library/SpatialDomains/spdomains-datastructures.tex @@ -0,0 +1,25 @@ +% +\section{The Fundamental Data Structures within SpatialDomains} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Reference to World-Space Mapping} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsubsection{Geometry} + +\begin{figure}[htb] +\centering +\includegraphics[width=6in]{img/geomtree.pdf} +\caption{Figure geometry tree} +\label{spatialdomains:geomtree} +\end{figure} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsubsection{GeomFactors} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{MeshGraph} \ No newline at end of file diff --git a/library/SpatialDomains/spdomains-fundamentals.tex b/library/SpatialDomains/spdomains-fundamentals.tex new file mode 100644 index 0000000000000000000000000000000000000000..ccf43e0e1ae2da02b77fd8ae6911e7be2ad02a7c --- /dev/null +++ b/library/SpatialDomains/spdomains-fundamentals.tex @@ -0,0 +1,43 @@ +% +\section{The Fundamentals Behind SpatialDomains} + + + +\subsection{Regular} +$$ +\vec{x} = (x_j)^T,\, j=1,\ldots,D +$$ + +$$ +\vec{\xi} = (\xi_j)^T,\, j=1,\ldots,D +$$ + +$$ +\vec{x} = \chi(\vec{xi}) +$$ + +$$ +{\bf J} = \frac{\partial x_i}{\partial \xi_j} +$$ + +$$ +{\bf g} = {\bf J}^T{\bf J} +$$ + +$$ +g = \det{\bf g} +$$ + + +gmat and jac + +note that gmat is a tensor defined at each point, and jac is the determinant of the jacobian. + + +\cite{CantwellYKPS14} + + +\subsection{Deformed} + + + diff --git a/library/StdRegions/img/afg002.pdf b/library/StdRegions/img/afg002.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1603ac435632d6fbf3127d24fc505f8801894103 Binary files /dev/null and b/library/StdRegions/img/afg002.pdf differ diff --git a/library/StdRegions/img/stdexpansiontree.pdf b/library/StdRegions/img/stdexpansiontree.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1a85ba2a3723a63ee9785ecd6f58edc191fc1e9c Binary files /dev/null and b/library/StdRegions/img/stdexpansiontree.pdf differ diff --git a/library/StdRegions/stdreg-algorithms.tex b/library/StdRegions/stdreg-algorithms.tex new file mode 100644 index 0000000000000000000000000000000000000000..1e0029086f8c7c735ea1783b0498c415b0903336 --- /dev/null +++ b/library/StdRegions/stdreg-algorithms.tex @@ -0,0 +1,2 @@ +% +\section{The Fundamental Algorithms within StdRegions} \ No newline at end of file diff --git a/library/StdRegions/stdreg-datastructures.tex b/library/StdRegions/stdreg-datastructures.tex new file mode 100644 index 0000000000000000000000000000000000000000..97844a8cd4da5b2417f94d4df9f7bb20ee6a17db --- /dev/null +++ b/library/StdRegions/stdreg-datastructures.tex @@ -0,0 +1,9 @@ +% +\section{The Fundamental Data Structures within StdRegions} + +\begin{figure}[htb] +\centering +\includegraphics[width=6in]{img/stdexpansiontree.pdf} +\caption{Figure 1} +\label{stdregions:stdexpansiontree} +\end{figure} diff --git a/library/StdRegions/stdreg-fundamentals.tex b/library/StdRegions/stdreg-fundamentals.tex new file mode 100644 index 0000000000000000000000000000000000000000..d07d6dd9a9616a93c56cfdec167ccf54e2f52700 --- /dev/null +++ b/library/StdRegions/stdreg-fundamentals.tex @@ -0,0 +1,29 @@ +% +\section{The Fundamentals Behind StdRegions} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Reference Element Transformations That Facilitate Separability} + + + +\begin{figure}[htb] +\centering +\includegraphics[width=4in]{img/afg002.pdf} +\caption{Duffy mapping between a right-sided triangle and a square domain.} +\label{stdregions:duffy} +\end{figure} + +Duffy \cite{Duffy82} + +Dubiner \cite{Dubiner91} + +Ainsworth \cite{AinsworthAD11,Ainsworth14} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Reference Elements On Primative Geometric Types} + +Hesthaven \cite{Hesthaven98} + +Taylor \cite{TaylorWV00} diff --git a/library/library-master.log b/library/library-master.log new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/library/library-master.tex b/library/library-master.tex new file mode 100644 index 0000000000000000000000000000000000000000..160552cc437c6aa2d43c032eb29e3e4014fec84f --- /dev/null +++ b/library/library-master.tex @@ -0,0 +1,193 @@ +% Library Master File + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Inside the Library: LibUtilities} + +In this chapter, we walk the reader through the different components of the LibUtilities Directory. +We have ordered them in alphabetical order by directory name, not by level of importance or +relevance to the code. Since all of these items are considered foundational to Nektar++, they +should all be considered equally important and relevant. Along the same lines -- since all of +these areas of the code represent the deepest members of the code hierarchy, these +items should rarely be modified. + +% +\input{library/LibUtilities/basicconst.tex} +% +\input{library/LibUtilities/basicutils.tex} +% +\input{library/LibUtilities/communication.tex} +% +\input{library/LibUtilities/fft.tex} +% +\input{library/LibUtilities/foundations.tex} +% +\input{library/LibUtilities/interpreter.tex} +% +\input{library/LibUtilities/kernel.tex} +% +\input{library/LibUtilities/linearalgebra.tex} +% +\input{library/LibUtilities/memory.tex} +% +\input{library/LibUtilities/polylib.tex} +% +\input{library/LibUtilities/timeintegration.tex} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Inside the Library: StdRegions} + +In this chapter, we walk the reader through the different components of the StdRegions Directory. +We begin with a discussion of the mathematical fundamentals, for which we use the book +by Karniadakis and Sherwin \cite{KaSh05} as our principle reference. We then provide +the reader with an overview of the primary data structures introduced within the +StdRegions Directory (often done through C++ objects), and then present the major +algorithms -- expressed as either object methods or functions -- employed over these data structures. + +\input{library/StdRegions/stdreg-fundamentals.tex} +% +\input{library/StdRegions/stdreg-datastructures.tex} +% +\input{library/StdRegions/stdreg-algorithms.tex} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Inside the Library: SpatialDomains} + +In this chapter, we walk the reader through the different components of the SpatialDomains Directory. +We begin with a discussion of the mathematical fundamentals, for which we use the book +by Karniadakis and Sherwin \cite{KaSh05} as our principle reference. We then provide +the reader with an overview of the primary data structures introduced within the +SpatialDomains Directory (often done through C++ objects), and then present the major +algorithms -- expressed as either object methods or functions -- employed over these data structures. + + +The SpatialDomains Directory and its corresponding class definitions serve two principal purposes: +\begin{enumerate} +\item To hold the elemental geometric information (i.e. vertex information, curve information and reference-to-world mapping information); and +\item To facility reading in and writing out geometry-related information. +\end{enumerate} + +When designing Nektar++, developing a class hierarchy for StdRegions (those fundamental domains over which we define +integration and differentiation) and LocalRegions (i.e. elements in world-space) was fairly straightforward following \cite{KaSh05}. +For instance, a triangle in world-space {\em is-a} standard triangle. The first question that arose was where to store geometric +information, as information within the LocalRegions element or as information encapsulated from the element so that multiple Expansions could +all point to the same geometric information. The decision we made was to store geometric information -- that is, the vertex information +in world-space that defines an element and the edge and face curvature information -- in its own data structure that could be shared by +multiple Expansions (functions) over the same domain (element) in world-space. Hence SpatialDomains started as the directory +containing Geometry and GeomFactors class definitions to meet the first item listed above. A LocalRegion {\em is-a} StdRegion and {\em has-a} +SpatialDomain (i.e. Geometry and GeomFactors). + +We then realized that in order to jump-start the process of constructing elements and combining them together into MultiRegions (collections of +elements that represent a (sub)-domain of interest), we needed devise a light-weight data structure into which we could load geometric information +from our geometry file and from which we could then construct Expansions (with their mappings, etc.). The light-weight data structure we +devised was MeshGraph, and it was meant to meet the second item listed above. + + +\input{library/SpatialDomains/spdomains-fundamentals.tex} +% +\input{library/SpatialDomains/spdomains-datastructures.tex} +% +\input{library/SpatialDomains/spdomains-algorithms.tex} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Inside the Library: LocalRegions} + +In this chapter, we walk the reader through the different components of the LocalRegions Directory. +We begin with a discussion of the mathematical fundamentals, for which we use the book +by Karniadakis and Sherwin \cite{KaSh05} as our principle reference. We then provide +the reader with an overview of the primary data structures introduced within the +LocalRegions Directory (often done through C++ objects), and then present the major +algorithms -- expressed as either object methods or functions -- employed over these data structures. + +\input{library/LocalRegions/localreg-fundamentals.tex} +% +\input{library/LocalRegions/localreg-datastructures.tex} +% +\input{library/LocalRegions/localreg-algorithms.tex} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Inside the Library: MultiRegions} + +In this chapter, we walk the reader through the different components of the MultiRegions Directory. +We begin with a discussion of the mathematical fundamentals, for which we use the book +by Karniadakis and Sherwin \cite{KaSh05} as our principle reference. We then provide +the reader with an overview of the primary data structures introduced within the +MultiRegions Directory (often done through C++ objects), and then present the major +algorithms -- expressed as either object methods or functions -- employed over these data structures. + +\input{library/MultiRegions/multireg-fundamentals.tex} +% +\input{library/MultiRegions/multireg-datastructures.tex} +% +\input{library/MultiRegions/multireg-algorithms.tex} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Inside the Library: Collections} + +In this chapter, we walk the reader through the different components of the Collections Directory. +We begin with a discussion of the mathematical fundamentals, for which we use the book +by Karniadakis and Sherwin \cite{KaSh05} as our principle reference. We then provide +the reader with an overview of the primary data structures introduced within the +Collections Directory (often done through C++ objects), and then present the major +algorithms -- expressed as either object methods or functions -- employed over these data structures. + +\input{library/Collections/collections-fundamentals.tex} +% +\input{library/Collections/collections-datastructures.tex} +% +\input{library/Collections/collections-algorithms.tex} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Inside the Library: GlobalMapping} + +In this chapter, we walk the reader through the different components of the GlobalMapping Directory. +We begin with a discussion of the mathematical fundamentals, for which we use the book +by Karniadakis and Sherwin \cite{KaSh05} as our principle reference. We then provide +the reader with an overview of the primary data structures introduced within the +GlobalMapping Directory (often done through C++ objects), and then present the major +algorithms -- expressed as either object methods or functions -- employed over these data structures. + +\input{library/GlobalMapping/globalmapping-fundamentals.tex} +% +\input{library/GlobalMapping/globalmapping-datastructures.tex} +% +\input{library/GlobalMapping/globalmapping-algorithms.tex} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Inside the Library: FieldUtils} + +In this chapter, we walk the reader through the different components of the FieldUtils Directory. +We begin with a discussion of the mathematical fundamentals, for which we use the book +by Karniadakis and Sherwin \cite{KaSh05} as our principle reference. We then provide +the reader with an overview of the primary data structures introduced within the +FieldUtils Directory (often done through C++ objects), and then present the major +algorithms -- expressed as either object methods or functions -- employed over these data structures. + +\input{library/FieldUtils/fieldutils-fundamentals.tex} +% +\input{library/FieldUtils/fieldutils-datastructures.tex} +% +\input{library/FieldUtils/fieldutils-algorithms.tex} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Inside the Library: SolverUtils} + +In this chapter, we walk the reader through the different components of the SolverUtils Directory. +We begin with a discussion of the mathematical fundamentals, for which we use the book +by Karniadakis and Sherwin \cite{KaSh05} as our principle reference. We then provide +the reader with an overview of the primary data structures introduced within the +SolverUtils Directory (often done through C++ objects), and then present the major +algorithms -- expressed as either object methods or functions -- employed over these data structures. + +\input{library/SolverUtils/solverutils-fundamentals.tex} +% +\input{library/SolverUtils/solverutils-datastructures.tex} +% +\input{library/SolverUtils/solverutils-algorithms.tex} + + diff --git a/preface/preface.tex b/preface/preface.tex new file mode 100644 index 0000000000000000000000000000000000000000..fc85d44734488a24f0e81524a9da7e0864cbb194 --- /dev/null +++ b/preface/preface.tex @@ -0,0 +1,65 @@ +% Preface +\chapter{Preface} + +Like with any software project, people want to know it origins: what motivated it, what and who drove it, and what +constrained it. \nek{} officially started as a project idea in 2004 in Salt Lake City, UT, USA and we registered +the first commit to SVN in 2006. The basic backstory is as follows: Mike Kirby (University of Utah) and Spencer +Sherwin (Imperial College London) had both studied under George Karniadakis. Though Mike and Spencer did +not overlap in terms of their studies (Spencer was a Princeton graduate while Mike was a Brown graduate), they +both worked on \emph{Nektar}, a \shp{} element code supervised by George. George's research group has +had a long history of involvement in various software projects, e.g. PRISM (which has continued its existence +under Hugh Blackburn) and \emph{Nektar}. Spencer and George initiated the \emph{Nektar} code with triangular (2D) and +tetrahedral (3D) \shp{} elements in the early 1990s, and the code grew and evolved with additions +by Igor Lomtev, Tim Warburton, Mike Kirby, etc., all under the PhD advisor direction of George. Spencer +graduated from Princeton under George's supervision in 1995 and went on to Imperial College London +as a faculty member; Mike graduated from Brown under George's supervision in 2002 and went on to the +University of Utah in 2002. In 2004, Mike and Spencer teamed up to re-write \emph{Nektar} in light of modern +C++ programming practices and in light of what had been learned in the decade or so since its foundation. + +What were the observations that motivated \nek{}? The first observation was that \emph{Nektar}'s origin +was triangular and tetrahedral \shp{} elements as applied to incompressible fluid mechanics +problems (i.e. the incompressible Navier-Stokes equations). These ideas were extended to +the compressible Navier-Stokes by Lomtev and the two parallel paths joined and extended into +what is often called Hybrid \emph{Nektar} by Tim Warburton. Hybrid \emph{Nektar} (referred to as \emph{Nektar} from +here on out) used the C++ programming paradigm to facilitate hybrid elements: triangles and +quadrilaterals in 2D and tetrahedra, hexahedra, prisms and pyramids in 3D. In addition, Warburton +structured the code in a way to allow extensions to the Arbitrary Lagrangian Eulerian (ALE) formulation +within \emph{Nektar}, as well as various other features such as the \emph{Nektar} Magneto-Hydrodynamics (MHD) solver. +Mike was mentored (as a student) by Warburton and continued to expansion of \emph{Nektar} (e.g. compressible +ALE solver, fluid-structure interaction capabilities, etc.). The upside of this expansion was that \emph{Nektar} could +be used for solver more and more engineering problems; the downside was that continually expanding and extending +\emph{Nektar} without re-evaluating its fundamental design meant that some components became quite +cumbersome from the programming perspective. + +The second observation was occurred was that \shp{} elements as used within the incompressible +fluid mechanics world could be viewed as a special case of the broader set of high-order finite element methods +as applied to various fluid and solid mechanics systems. In fact, in a much wider context, these methods +represent ways of discretizing various partial differential equations (PDEs) using their weak (variational) form. +During the 1990s, it became more and more apparent that there was a broader context and a broader +community for discussing and disseminating the ideas surrounding high-order finite elements, and +correspondingly a fruitful environment for cross-pollination of ideas and programming practices. + +With all this in mind, Mike and Spencer set out to re-architect \emph{Nektar} from the ground up, and in homage +to its C++ core, this new software suite was called \shp{}. \shp{} +is an open-source software framework designed to support the development +of high-performance scalable solvers for partial differential equations using +the \shp{} element method. High-order methods are gaining prominence in +several engineering and biomedical applications due to their improved accuracy +over low-order techniques at reduced computational cost for a given number of degrees of freedom. However, +their proliferation is often limited by their complexity, which makes +these methods challenging to implement and use. \nek{} is an initiative to +overcome this limitation by encapsulating the mathematical complexities of the underlying method within an +efficient C++ framework, making the techniques more accessible to the broader +scientific and industrial communities. +% % +The software supports a variety of discretization techniques and implementation +strategies, supporting methods research as well as application-focused +computation, and the multi-layered structure of the framework allows the user to +embrace as much or as little of the complexity as they need. The +libraries capture the mathematical constructs of \shp{} element methods, +while the associated collection of pre-written PDE solvers provides +out-of-the-box application-level functionality and a template for users who wish to develop +solutions for addressing questions in their own scientific domains. + + + \ No newline at end of file diff --git a/shared/devguide-preamble.idx b/shared/devguide-preamble.idx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/shared/devguide-preamble.log b/shared/devguide-preamble.log new file mode 100644 index 0000000000000000000000000000000000000000..5b6a1d6bcf359a14dde28fb5c960e99b1a13fd40 --- /dev/null +++ b/shared/devguide-preamble.log @@ -0,0 +1,1414 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdflatex 2015.5.24) 14 MAR 2017 12:36 +entering extended mode + \write18 enabled. + %&-line parsing enabled. +**devguide-preamble.tex +(./devguide-preamble.tex +LaTeX2e <2015/01/01> +Babel <3.9l> and hyphenation patterns for 79 languages loaded. +(/usr/local/texlive/2015/texmf-dist/tex/latex/memoir/memoir.cls +Document Class: memoir 2015/04/23 v3.7d configurable book, report, article docu +ment class +\onelineskip=\skip41 +\lxvchars=\skip42 +\xlvchars=\skip43 +\@memcnta=\count79 +\c@@memmarkcntra=\count80 +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in PDF mode is detected. +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/ifetex/ifetex.sty +Package: ifetex 2011/12/15 v1.2 ifetex + +(/usr/local/texlive/2015/texmf-dist/tex/plain/ifetex/ifetex.tex)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +\stockheight=\skip44 +\stockwidth=\skip45 +\trimtop=\skip46 +\trimedge=\skip47 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/etex-pkg/etex.sty +Package: etex 2015/03/02 v2.1 eTeX basic definition package (PEB,DPC) +\et@xins=\count81 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/memoir/mem11.clo +File: mem11.clo 2008/01/30 v0.3 memoir class 11pt size option +) +\binding=\skip48 +\spinemargin=\skip49 +\foremargin=\skip50 +\uppermargin=\skip51 +\lowermargin=\skip52 +\headdrop=\skip53 +\normalrulethickness=\skip54 +\mem@maxheadheight=\skip55 +\mem@maxfootheight=\skip56 +\headwidth=\skip57 +\c@storedpagenumber=\count82 +\memPD=\dimen102 +\m@mabparskip=\skip58 +\thanksmarkwidth=\skip59 +\thanksmarksep=\skip60 +\droptitle=\skip61 +\c@book=\count83 +\c@part=\count84 +\c@chapter=\count85 +\c@section=\count86 +\c@subsection=\count87 +\c@subsubsection=\count88 +\c@paragraph=\count89 +\c@subparagraph=\count90 +\beforechapskip=\skip62 +\midchapskip=\skip63 +\afterchapskip=\skip64 +\chapindent=\skip65 +\bottomsectionskip=\skip66 +\secindent=\skip67 +\beforesecskip=\skip68 +\aftersecskip=\skip69 +\subsecindent=\skip70 +\beforesubsecskip=\skip71 +\aftersubsecskip=\skip72 +\subsubsecindent=\skip73 +\beforesubsubsecskip=\skip74 +\aftersubsubsecskip=\skip75 +\paraindent=\skip76 +\beforeparaskip=\skip77 +\afterparaskip=\skip78 +\subparaindent=\skip79 +\beforesubparaskip=\skip80 +\aftersubparaskip=\skip81 +\pfbreakskip=\skip82 +\c@@ppsavesec=\count91 +\c@@ppsaveapp=\count92 +\ragrparindent=\dimen103 +\everylistparindent=\dimen104 +\parsepi=\skip83 +\topsepi=\skip84 +\itemsepi=\skip85 +\parsepii=\skip86 +\topsepii=\skip87 +\topsepiii=\skip88 +\itemsepii=\skip89 +\itemsepiii=\skip90 +\partopsepii=\skip91 +\partopsepiii=\skip92 +\m@msavetopsep=\skip93 +\m@msavepartopsep=\skip94 +\@enLab=\toks14 +\abstitleskip=\skip95 +\absleftindent=\skip96 +\abs@leftindent=\dimen105 +\absrightindent=\skip97 +\absparindent=\skip98 +\absparsep=\skip99 +\c@vslineno=\count93 +\c@poemline=\count94 +\c@modulo@vs=\count95 +\c@memfvsline=\count96 +\vleftskip=\skip100 +\vrightskip=\skip101 +\stanzaskip=\skip102 +\versewidth=\skip103 +\vgap=\skip104 +\vindent=\skip105 +\vleftmargin=\dimen106 +\c@verse=\count97 +\c@chrsinstr=\count98 +\beforepoemtitleskip=\skip106 +\afterpoemtitleskip=\skip107 +\c@poem=\count99 +\beforePoemTitleskip=\skip108 +\midPoemTitleskip=\skip109 +\afterPoemTitleskip=\skip110 +\col@sep=\dimen107 +\extrarowheight=\dimen108 +\NC@list=\toks15 +\extratabsurround=\skip111 +\backup@length=\skip112 +\TX@col@width=\dimen109 +\TX@old@table=\dimen110 +\TX@old@col=\dimen111 +\TX@target=\dimen112 +\TX@delta=\dimen113 +\TX@cols=\count100 +\TX@ftn=\toks16 +\heavyrulewidth=\dimen114 +\lightrulewidth=\dimen115 +\cmidrulewidth=\dimen116 +\belowrulesep=\dimen117 +\belowbottomsep=\dimen118 +\aboverulesep=\dimen119 +\abovetopsep=\dimen120 +\cmidrulesep=\dimen121 +\cmidrulekern=\dimen122 +\defaultaddspace=\dimen123 +\@cmidla=\count101 +\@cmidlb=\count102 +\@aboverulesep=\dimen124 +\@belowrulesep=\dimen125 +\@thisruleclass=\count103 +\@lastruleclass=\count104 +\@thisrulewidth=\dimen126 +\ctableftskip=\skip113 +\ctabrightskip=\skip114 +\abovecolumnspenalty=\count105 +\@linestogo=\count106 +\@cellstogo=\count107 +\@cellsincolumn=\count108 +\crtok=\toks17 +\@mincolumnwidth=\dimen127 +\c@newflo@tctr=\count109 +\mem@margin@floatbox=\box26 +\@contcwidth=\skip115 +\@contindw=\skip116 +\abovecaptionskip=\skip117 +\belowcaptionskip=\skip118 +\subfloattopskip=\skip119 +\subfloatcapskip=\skip120 +\subfloatcaptopadj=\skip121 +\subfloatbottomskip=\skip122 +\subfloatlabelskip=\skip123 +\subfloatcapmargin=\dimen128 +\c@@contsubnum=\count110 +\m@mscap@capbox=\box27 +\m@mscap@fbox=\box28 +\sidecapsep=\dimen129 +\sidecapwidth=\dimen130 +\m@m@tempdima=\dimen131 +\m@mscapraise=\dimen132 +\sidecapraise=\dimen133 +\m@mscapmainwidth=\dimen134 +\m@mscaplkern=\dimen135 +\beforeepigraphskip=\skip124 +\afterepigraphskip=\skip125 +\epigraphwidth=\skip126 +\epigraphrule=\skip127 +LaTeX Info: Redefining \em on input line 7533. +LaTeX Info: Redefining \emph on input line 7541. +\tocentryskip=\skip128 +\tocbaseline=\skip129 +\cftparskip=\skip130 +\cftbeforebookskip=\skip131 +\cftbookindent=\dimen136 +\cftbooknumwidth=\dimen137 +\cftbeforepartskip=\skip132 +\cftpartindent=\skip133 +\cftpartnumwidth=\skip134 +\cftbeforechapterskip=\skip135 +\cftchapterindent=\skip136 +\cftchapternumwidth=\skip137 +\cftbeforesectionskip=\skip138 +\cftsectionindent=\skip139 +\cftsectionnumwidth=\skip140 +\cftbeforesubsectionskip=\skip141 +\cftsubsectionindent=\skip142 +\cftsubsectionnumwidth=\skip143 +\cftbeforesubsubsectionskip=\skip144 +\cftsubsubsectionindent=\skip145 +\cftsubsubsectionnumwidth=\skip146 +\cftbeforeparagraphskip=\skip147 +\cftparagraphindent=\skip148 +\cftparagraphnumwidth=\skip149 +\cftbeforesubparagraphskip=\skip150 +\cftsubparagraphindent=\skip151 +\cftsubparagraphnumwidth=\skip152 +\prechapterprecisshift=\dimen138 +\c@maxsecnumdepth=\count111 +\bibindent=\dimen139 +\bibitemsep=\skip153 +\indexcolsep=\skip154 +\indexrule=\skip155 +\indexmarkstyle=\toks18 +\@indexbox=\insert233 +\glossarycolsep=\dimen140 +\glossaryrule=\dimen141 +\sideparvshift=\skip156 +\sideins=\insert232 +\sidebartopsep=\skip157 +\sidebarhsep=\skip158 +\sidebarvsep=\skip159 +\sidebarwidth=\skip160 +\footmarkwidth=\skip161 +\footmarksep=\skip162 +\footparindent=\skip163 +\footinsdim=\skip164 +\footinsv@r=\insert231 +\@mpfootinsv@r=\insert230 +\m@m@k=\count112 +\m@m@h=\dimen142 +\m@mipn@skip=\skip165 +\sidefootins=\insert229 +\sidefootadjust=\skip166 +\sidefootheight=\skip167 +\sidefoothsep=\skip168 +\sidefootvsep=\skip169 +\sidefootwidth=\skip170 +\m@mdownsf=\skip171 +\c@sidefootnote=\count113 +\sidefootmarkwidth=\skip172 +\sidefootmarksep=\skip173 +\sidefootparindent=\skip174 +\c@pagenote=\count114 +\c@pagenoteshadow=\count115 +\mem@pn@lastkern=\skip175 +\every@verbatim=\toks19 +\afterevery@verbatim=\toks20 +\verbatim@line=\toks21 +\tab@position=\count116 +\verbatim@in@stream=\read1 +\verbatimindent=\skip176 +\verbatim@out=\write3 +\bvboxsep=\skip177 +\c@memfbvline=\count117 +\c@bvlinectr=\count118 +\bvnumlength=\skip178 +\fb@frw=\dimen143 +\fb@frh=\dimen144 +\FrameRule=\dimen145 +\FrameSep=\dimen146 +\c@cp@cntr=\count119 +LaTeX Info: Redefining \: on input line 12050. +LaTeX Info: Redefining \! on input line 12052. +\c@ism@mctr=\count120 +\c@xsm@mctr=\count121 +\c@csm@mctr=\count122 +\c@ksm@mctr=\count123 +\c@xksm@mctr=\count124 +\c@cksm@mctr=\count125 +\c@msm@mctr=\count126 +\c@xmsm@mctr=\count127 +\c@cmsm@mctr=\count128 +\c@bsm@mctr=\count129 +\c@workm@mctr=\count130 +\c@sheetsequence=\count131 +\c@lastsheet=\count132 +\c@lastpage=\count133 +\c@figure=\count134 +\c@lofdepth=\count135 +\cftbeforefigureskip=\skip179 +\cftfigureindent=\skip180 +\cftfigurenumwidth=\skip181 +\c@table=\count136 +\c@lotdepth=\count137 +\cftbeforetableskip=\skip182 +\cfttableindent=\skip183 +\cfttablenumwidth=\skip184 +Package abstract [2008/07/23] emulated by memoir. +Package appendix [2008/07/23] emulated by memoir. +Package array [2008/09/09] emulated by memoir. +Package booktabs [2008/07/23] emulated by memoir. +Package ccaption [2008/07/23] emulated by memoir. +Package changepage [2008/07/23] emulated by memoir. +Package chngcntr [2008/07/23] emulated by memoir. +Package chngpage [2008/07/23] emulated by memoir. +Package crop emulated by memoir. +Package dcolumn [2008/07/23] emulated by memoir. +Package delarray [2008/07/23] emulated by memoir. +Package enumerate [2008/07/23] emulated by memoir. +Package epigraph [2008/07/23] emulated by memoir. +Package ifmtarg [2008/07/23] emulated by memoir. +Package index [2008/07/23] emulated by memoir. +Package makeidx [2008/07/23] emulated by memoir. +Package moreverb [2008/07/23] emulated by memoir. +Package mparhack [2008/07/23] emulated by memoir. +Package needspace [2008/07/23] emulated by memoir. +Package newfile [2008/07/23] emulated by memoir. +Package nextpage [2008/07/23] emulated by memoir. +Package pagenote [2008/07/23] emulated by memoir. +Package parskip [2008/07/23] emulated by memoir. +Package patchcmd [2008/07/23] emulated by memoir. +Package setspace [2008/07/23] emulated by memoir. +Package shortvrb [2008/07/23] emulated by memoir. +Package showidx [2008/07/23] emulated by memoir. +Package tabularx [2008/07/23] emulated by memoir. +Package titleref [2008/07/23] emulated by memoir. +Package titling [2008/07/23] emulated by memoir. +Package tocbibind [2008/07/23] emulated by memoir. +Package tocloft [2008/07/23] emulated by memoir. +Package tocvsec2 [2008/07/23] emulated by memoir. +Package verbatim [2008/07/23] emulated by memoir. +Package verse [2008/07/23] emulated by memoir. + +(/usr/local/texlive/2015/texmf-dist/tex/latex/memoir/mempatch.sty +Package: mempatch 2009/07/24 v6.0f Patches for memoir class v1.6180339 +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2015/03/17 v1.2c Input encoding file +\inpenc@prehook=\toks22 +\inpenc@posthook=\toks23 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/base/utf8.def +File: utf8.def 2014/09/29 v1.1m UTF-8 support for inputenc +Now handling font encoding OML ... +... no UTF-8 mapping file for font encoding OML +Now handling font encoding T1 ... +... processing UTF-8 mapping file for font encoding T1 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/base/t1enc.dfu +File: t1enc.dfu 2014/09/29 v1.1m UTF-8 support for inputenc + defining Unicode char U+00A1 (decimal 161) + defining Unicode char U+00A3 (decimal 163) + defining Unicode char U+00AB (decimal 171) + defining Unicode char U+00BB (decimal 187) + defining Unicode char U+00BF (decimal 191) + defining Unicode char U+00C0 (decimal 192) + defining Unicode char U+00C1 (decimal 193) + defining Unicode char U+00C2 (decimal 194) + defining Unicode char U+00C3 (decimal 195) + defining Unicode char U+00C4 (decimal 196) + defining Unicode char U+00C5 (decimal 197) + defining Unicode char U+00C6 (decimal 198) + defining Unicode char U+00C7 (decimal 199) + defining Unicode char U+00C8 (decimal 200) + defining Unicode char U+00C9 (decimal 201) + defining Unicode char U+00CA (decimal 202) + defining Unicode char U+00CB (decimal 203) + defining Unicode char U+00CC (decimal 204) + defining Unicode char U+00CD (decimal 205) + defining Unicode char U+00CE (decimal 206) + defining Unicode char U+00CF (decimal 207) + defining Unicode char U+00D0 (decimal 208) + defining Unicode char U+00D1 (decimal 209) + defining Unicode char U+00D2 (decimal 210) + defining Unicode char U+00D3 (decimal 211) + defining Unicode char U+00D4 (decimal 212) + defining Unicode char U+00D5 (decimal 213) + defining Unicode char U+00D6 (decimal 214) + defining Unicode char U+00D8 (decimal 216) + defining Unicode char U+00D9 (decimal 217) + defining Unicode char U+00DA (decimal 218) + defining Unicode char U+00DB (decimal 219) + defining Unicode char U+00DC (decimal 220) + defining Unicode char U+00DD (decimal 221) + defining Unicode char U+00DE (decimal 222) + defining Unicode char U+00DF (decimal 223) + defining Unicode char U+00E0 (decimal 224) + defining Unicode char U+00E1 (decimal 225) + defining Unicode char U+00E2 (decimal 226) + defining Unicode char U+00E3 (decimal 227) + defining Unicode char U+00E4 (decimal 228) + defining Unicode char U+00E5 (decimal 229) + defining Unicode char U+00E6 (decimal 230) + defining Unicode char U+00E7 (decimal 231) + defining Unicode char U+00E8 (decimal 232) + defining Unicode char U+00E9 (decimal 233) + defining Unicode char U+00EA (decimal 234) + defining Unicode char U+00EB (decimal 235) + defining Unicode char U+00EC (decimal 236) + defining Unicode char U+00ED (decimal 237) + defining Unicode char U+00EE (decimal 238) + defining Unicode char U+00EF (decimal 239) + defining Unicode char U+00F0 (decimal 240) + defining Unicode char U+00F1 (decimal 241) + defining Unicode char U+00F2 (decimal 242) + defining Unicode char U+00F3 (decimal 243) + defining Unicode char U+00F4 (decimal 244) + defining Unicode char U+00F5 (decimal 245) + defining Unicode char U+00F6 (decimal 246) + defining Unicode char U+00F8 (decimal 248) + defining Unicode char U+00F9 (decimal 249) + defining Unicode char U+00FA (decimal 250) + defining Unicode char U+00FB (decimal 251) + defining Unicode char U+00FC (decimal 252) + defining Unicode char U+00FD (decimal 253) + defining Unicode char U+00FE (decimal 254) + defining Unicode char U+00FF (decimal 255) + defining Unicode char U+0102 (decimal 258) + defining Unicode char U+0103 (decimal 259) + defining Unicode char U+0104 (decimal 260) + defining Unicode char U+0105 (decimal 261) + defining Unicode char U+0106 (decimal 262) + defining Unicode char U+0107 (decimal 263) + defining Unicode char U+010C (decimal 268) + defining Unicode char U+010D (decimal 269) + defining Unicode char U+010E (decimal 270) + defining Unicode char U+010F (decimal 271) + defining Unicode char U+0110 (decimal 272) + defining Unicode char U+0111 (decimal 273) + defining Unicode char U+0118 (decimal 280) + defining Unicode char U+0119 (decimal 281) + defining Unicode char U+011A (decimal 282) + defining Unicode char U+011B (decimal 283) + defining Unicode char U+011E (decimal 286) + defining Unicode char U+011F (decimal 287) + defining Unicode char U+0130 (decimal 304) + defining Unicode char U+0131 (decimal 305) + defining Unicode char U+0132 (decimal 306) + defining Unicode char U+0133 (decimal 307) + defining Unicode char U+0139 (decimal 313) + defining Unicode char U+013A (decimal 314) + defining Unicode char U+013D (decimal 317) + defining Unicode char U+013E (decimal 318) + defining Unicode char U+0141 (decimal 321) + defining Unicode char U+0142 (decimal 322) + defining Unicode char U+0143 (decimal 323) + defining Unicode char U+0144 (decimal 324) + defining Unicode char U+0147 (decimal 327) + defining Unicode char U+0148 (decimal 328) + defining Unicode char U+014A (decimal 330) + defining Unicode char U+014B (decimal 331) + defining Unicode char U+0150 (decimal 336) + defining Unicode char U+0151 (decimal 337) + defining Unicode char U+0152 (decimal 338) + defining Unicode char U+0153 (decimal 339) + defining Unicode char U+0154 (decimal 340) + defining Unicode char U+0155 (decimal 341) + defining Unicode char U+0158 (decimal 344) + defining Unicode char U+0159 (decimal 345) + defining Unicode char U+015A (decimal 346) + defining Unicode char U+015B (decimal 347) + defining Unicode char U+015E (decimal 350) + defining Unicode char U+015F (decimal 351) + defining Unicode char U+0160 (decimal 352) + defining Unicode char U+0161 (decimal 353) + defining Unicode char U+0162 (decimal 354) + defining Unicode char U+0163 (decimal 355) + defining Unicode char U+0164 (decimal 356) + defining Unicode char U+0165 (decimal 357) + defining Unicode char U+016E (decimal 366) + defining Unicode char U+016F (decimal 367) + defining Unicode char U+0170 (decimal 368) + defining Unicode char U+0171 (decimal 369) + defining Unicode char U+0178 (decimal 376) + defining Unicode char U+0179 (decimal 377) + defining Unicode char U+017A (decimal 378) + defining Unicode char U+017B (decimal 379) + defining Unicode char U+017C (decimal 380) + defining Unicode char U+017D (decimal 381) + defining Unicode char U+017E (decimal 382) + defining Unicode char U+200C (decimal 8204) + defining Unicode char U+2013 (decimal 8211) + defining Unicode char U+2014 (decimal 8212) + defining Unicode char U+2018 (decimal 8216) + defining Unicode char U+2019 (decimal 8217) + defining Unicode char U+201A (decimal 8218) + defining Unicode char U+201C (decimal 8220) + defining Unicode char U+201D (decimal 8221) + defining Unicode char U+201E (decimal 8222) + defining Unicode char U+2030 (decimal 8240) + defining Unicode char U+2031 (decimal 8241) + defining Unicode char U+2039 (decimal 8249) + defining Unicode char U+203A (decimal 8250) + defining Unicode char U+2423 (decimal 9251) +) +Now handling font encoding OT1 ... +... processing UTF-8 mapping file for font encoding OT1 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/base/ot1enc.dfu +File: ot1enc.dfu 2014/09/29 v1.1m UTF-8 support for inputenc + defining Unicode char U+00A1 (decimal 161) + defining Unicode char U+00A3 (decimal 163) + defining Unicode char U+00B8 (decimal 184) + defining Unicode char U+00BF (decimal 191) + defining Unicode char U+00C5 (decimal 197) + defining Unicode char U+00C6 (decimal 198) + defining Unicode char U+00D8 (decimal 216) + defining Unicode char U+00DF (decimal 223) + defining Unicode char U+00E6 (decimal 230) + defining Unicode char U+00EC (decimal 236) + defining Unicode char U+00ED (decimal 237) + defining Unicode char U+00EE (decimal 238) + defining Unicode char U+00EF (decimal 239) + defining Unicode char U+00F8 (decimal 248) + defining Unicode char U+0131 (decimal 305) + defining Unicode char U+0141 (decimal 321) + defining Unicode char U+0142 (decimal 322) + defining Unicode char U+0152 (decimal 338) + defining Unicode char U+0153 (decimal 339) + defining Unicode char U+2013 (decimal 8211) + defining Unicode char U+2014 (decimal 8212) + defining Unicode char U+2018 (decimal 8216) + defining Unicode char U+2019 (decimal 8217) + defining Unicode char U+201C (decimal 8220) + defining Unicode char U+201D (decimal 8221) +) +Now handling font encoding OMS ... +... processing UTF-8 mapping file for font encoding OMS + +(/usr/local/texlive/2015/texmf-dist/tex/latex/base/omsenc.dfu +File: omsenc.dfu 2014/09/29 v1.1m UTF-8 support for inputenc + defining Unicode char U+00A7 (decimal 167) + defining Unicode char U+00B6 (decimal 182) + defining Unicode char U+00B7 (decimal 183) + defining Unicode char U+2020 (decimal 8224) + defining Unicode char U+2021 (decimal 8225) + defining Unicode char U+2022 (decimal 8226) +) +Now handling font encoding OMX ... +... no UTF-8 mapping file for font encoding OMX +Now handling font encoding U ... +... no UTF-8 mapping file for font encoding U + defining Unicode char U+00A9 (decimal 169) + defining Unicode char U+00AA (decimal 170) + defining Unicode char U+00AE (decimal 174) + defining Unicode char U+00BA (decimal 186) + defining Unicode char U+02C6 (decimal 710) + defining Unicode char U+02DC (decimal 732) + defining Unicode char U+200C (decimal 8204) + defining Unicode char U+2026 (decimal 8230) + defining Unicode char U+2122 (decimal 8482) + defining Unicode char U+2423 (decimal 9251) +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/local/texlive/2015/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 48. +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/lm/lmodern.sty +Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2014/09/25 3.9l The Babel package + +(/usr/local/texlive/2015/texmf-dist/tex/generic/babel-english/english.ldf +Language: english 2012/08/20 v3.3p English support from the babel system + +(/usr/local/texlive/2015/texmf-dist/tex/generic/babel/babel.def +File: babel.def 2014/09/25 3.9l Babel common definitions +\babel@savecnt=\count138 +\U@D=\dimen147 +) +\l@canadian = a dialect from \language\l@american +\l@australian = a dialect from \language\l@british +\l@newzealand = a dialect from \language\l@british +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/microtype/microtype.sty +Package: microtype 2013/05/23 v2.5a Micro-typographical refinements (RS) + +(/usr/local/texlive/2015/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks24 +) +\MT@toks=\toks25 +\MT@count=\count139 +LaTeX Info: Redefining \textls on input line 766. +\MT@outer@kern=\dimen148 +LaTeX Info: Redefining \textmicrotypecontext on input line 1285. +\MT@listname@count=\count140 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/microtype/microtype-pdftex.def +File: microtype-pdftex.def 2013/05/23 v2.5a Definitions specific to pdftex (RS) + +LaTeX Info: Redefining \lsstyle on input line 915. +LaTeX Info: Redefining \lslig on input line 915. +\MT@outer@space=\skip185 +) +Package microtype Info: Loading configuration file microtype.cfg. + +(/usr/local/texlive/2015/texmf-dist/tex/latex/microtype/microtype.cfg +File: microtype.cfg 2013/05/23 v2.5a microtype main configuration file (RS) +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2013/01/14 v2.14 AMS math features +\@mathmargin=\skip186 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks26 +\ex@=\dimen149 +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen150 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count141 +LaTeX Info: Redefining \frac on input line 210. +\uproot@=\count142 +\leftroot@=\count143 +LaTeX Info: Redefining \overline on input line 306. +\classnum@=\count144 +\DOTSCASE@=\count145 +LaTeX Info: Redefining \ldots on input line 378. +LaTeX Info: Redefining \dots on input line 381. +LaTeX Info: Redefining \cdots on input line 466. +\Mathstrutbox@=\box29 +\strutbox@=\box30 +\big@size=\dimen151 +LaTeX Font Info: Redeclaring font encoding OML on input line 566. +LaTeX Font Info: Redeclaring font encoding OMS on input line 567. +\macc@depth=\count146 +\c@MaxMatrixCols=\count147 +\dotsspace@=\muskip10 +\c@parentequation=\count148 +\dspbrk@lvl=\count149 +\tag@help=\toks27 +\row@=\count150 +\column@=\count151 +\maxfields@=\count152 +\andhelp@=\toks28 +\eqnshift@=\dimen152 +\alignsep@=\dimen153 +\tagshift@=\dimen154 +\tagwidth@=\dimen155 +\totwidth@=\dimen156 +\lineht@=\dimen157 +\@envbody=\toks29 +\multlinegap=\skip187 +\multlinetaggap=\skip188 +\mathdisplay@stack=\toks30 +LaTeX Info: Redefining \[ on input line 2665. +LaTeX Info: Redefining \] on input line 2666. +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(/usr/local/texlive/2015/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/mathtools/mathtools.sty +Package: mathtools 2015/05/11 v1.16 mathematical typesetting tools + +(/usr/local/texlive/2015/texmf-dist/tex/latex/tools/calc.sty +Package: calc 2014/10/28 v4.3 Infix arithmetic (KKT,FJ) +\calc@Acount=\count153 +\calc@Bcount=\count154 +\calc@Adimen=\dimen158 +\calc@Bdimen=\dimen159 +\calc@Askip=\skip189 +\calc@Bskip=\skip190 +LaTeX Info: Redefining \setlength on input line 80. +LaTeX Info: Redefining \addtolength on input line 81. +\calc@Ccount=\count155 +\calc@Cskip=\skip191 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/mathtools/mhsetup.sty +Package: mhsetup 2010/01/21 v1.2a programming setup (MH) +) +LaTeX Info: Thecontrolsequence`\('isalreadyrobust on input line 129. +LaTeX Info: Thecontrolsequence`\)'isalreadyrobust on input line 129. +LaTeX Info: Thecontrolsequence`\['isalreadyrobust on input line 129. +LaTeX Info: Thecontrolsequence`\]'isalreadyrobust on input line 129. +\g_MT_multlinerow_int=\count156 +\l_MT_multwidth_dim=\dimen160 +\origjot=\skip192 +\l_MT_shortvdotswithinadjustabove_dim=\dimen161 +\l_MT_shortvdotswithinadjustbelow_dim=\dimen162 +\l_MT_above_intertext_sep=\dimen163 +\l_MT_below_intertext_sep=\dimen164 +\l_MT_above_shortintertext_sep=\dimen165 +\l_MT_below_shortintertext_sep=\dimen166 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2015/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2014/10/28 v1.0p Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2015/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: pdftex.def on input line 94. + +(/usr/local/texlive/2015/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX + +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) +) +\Gread@gobject=\count157 +)) +\Gin@req@height=\dimen167 +\Gin@req@width=\dimen168 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/import/import.sty +Package: import 2009/03/23 v 5.1 +) + +****************************************************** +Stock height and width: 845.04684pt by 597.50787pt +Top and edge trims: 0pt and 0pt +Page height and width: 845.04684pt by 597.50787pt +Text height and width: 609.40027pt by 418pt +Spine and edge margins: 89.62253pt and 89.62253pt +Upper and lower margins: 119.49974pt and 116.14684pt +Headheight and headsep: 13.6pt and 19.8738pt +Footskip: 27.46295pt +Columnsep and columnseprule: 10pt and 0pt +Marginparsep and marginparwidth: 7pt and 75.62253pt +Sidecapsep and sidecapwidth: 7pt and 101pt +Sidebarhsep and sidebarwidth: 7pt and 101pt +Sidebarvsep and sidebartopsep: 13.6pt and 0pt +Sidebarheight: 594.32022pt +Sidefoothsep and sidefootwidth: 7pt and 101pt +Sidefootvsep and sidefootheight: 13.6pt and 594.32022pt +****************************************************** + +\forceindent=\skip193 +\filever=\read2 + +\linever= +(/usr/local/texlive/2015/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) + +(/usr/local/texlive/2015/texmf-dist/tex/latex/latexconfig/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. +Package xcolor Info: Model `RGB' extended on input line 1353. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count158 +\lst@gtempboxa=\box31 +\lst@token=\toks31 +\lst@length=\count159 +\lst@currlwidth=\dimen169 +\lst@column=\count160 +\lst@pos=\count161 +\lst@lostspace=\dimen170 +\lst@width=\dimen171 +\lst@newlines=\count162 +\lst@lineno=\count163 +\lst@maxwidth=\dimen172 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2014/09/06 1.5e (Carsten Heinz) +\c@lstnumber=\count164 +\lst@skipnumbers=\count165 +\lst@framebox=\box32 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2014/09/06 1.5e listings configuration +)) +Package: listings 2014/09/06 1.5e (Carsten Heinz) + +(/usr/local/texlive/2015/texmf-dist/tex/latex/lstaddons/lstautogobble.sty +Package: lstautogobble 2012/05/03 v0.1 Implements 'autogobble' option for 'list +ings' +\lstag@spacecount=\count166 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/tools/xspace.sty +Package: xspace 2014/10/28 v1.13 Space after command names (DPC,MH) +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/environ/environ.sty +Package: environ 2014/05/04 v0.3 A new way to define environments + +(/usr/local/texlive/2015/texmf-dist/tex/latex/trimspaces/trimspaces.sty +Package: trimspaces 2009/09/17 v1.1 Trim spaces around a token list +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/bclogo/bclogo.sty +Package: bclogo 2011/07/06 v2.26 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2014/12/03 v2.7a package option processing (HA) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/xkeyval/xkeyval.tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/xkeyval/xkvutils.tex +\XKV@toks=\toks32 +\XKV@tempa@toks=\toks33 +) +\XKV@depth=\count167 +File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC) +) +\logowidth=\skip194 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.te +x +\pgfutil@everybye=\toks34 +\pgfutil@tempdima=\dimen173 +\pgfutil@tempdimb=\dimen174 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-li +sts.tex)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box33 +(/usr/local/texlive/2015/texmf-dist/tex/latex/ms/everyshi.sty +Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +Package: pgfrcs 2013/12/20 v3.0.0 (rcs-revision 1.28) +)) +Package: pgf 2013/12/18 v3.0.0 (rcs-revision 1.14) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2013/11/30 v3.0.0 (rcs-revision 1.47) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks35 +\pgfkeys@temptoks=\toks36 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.c +ode.tex +\pgfkeys@tmptoks=\toks37 +)) +\pgf@x=\dimen175 +\pgf@y=\dimen176 +\pgf@xa=\dimen177 +\pgf@ya=\dimen178 +\pgf@xb=\dimen179 +\pgf@yb=\dimen180 +\pgf@xc=\dimen181 +\pgf@yc=\dimen182 +\w@pgf@writea=\write4 +\r@pgf@reada=\read3 +\c@pgf@counta=\count168 +\c@pgf@countb=\count169 +\c@pgf@countc=\count170 +\c@pgf@countd=\count171 +\t@pgf@toka=\toks38 +\t@pgf@tokb=\toks39 +\t@pgf@tokc=\toks40 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2008/05/14 (rcs-revision 1.7) +) +Driver file for pgf: pgfsys-pdftex.def + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.d +ef +File: pgfsys-pdftex.def 2013/07/18 (rcs-revision 1.33) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-p +df.def +File: pgfsys-common-pdf.def 2013/10/10 (rcs-revision 1.13) +))) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath. +code.tex +File: pgfsyssoftpath.code.tex 2013/09/09 (rcs-revision 1.9) +\pgfsyssoftpath@smallbuffer@items=\count172 +\pgfsyssoftpath@bigbuffer@items=\count173 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol. +code.tex +File: pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4) +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2010/04/11 v3.0.0 (rcs-revision 1.7) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen183 +\pgfmath@count=\count174 +\pgfmath@box=\box34 +\pgfmath@toks=\toks41 +\pgfmath@stack@operand=\toks42 +\pgfmath@stack@operation=\toks43 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code. +tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic +.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigo +nometric.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.rando +m.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.compa +rison.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base. +code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round +.code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc. +code.tex) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integ +erarithmetics.code.tex))) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count175 +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.co +de.tex +File: pgfcorepoints.code.tex 2013/10/07 (rcs-revision 1.27) +\pgf@picminx=\dimen184 +\pgf@picmaxx=\dimen185 +\pgf@picminy=\dimen186 +\pgf@picmaxy=\dimen187 +\pgf@pathminx=\dimen188 +\pgf@pathmaxx=\dimen189 +\pgf@pathminy=\dimen190 +\pgf@pathmaxy=\dimen191 +\pgf@xx=\dimen192 +\pgf@xy=\dimen193 +\pgf@yx=\dimen194 +\pgf@yy=\dimen195 +\pgf@zx=\dimen196 +\pgf@zy=\dimen197 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconst +ruct.code.tex +File: pgfcorepathconstruct.code.tex 2013/10/07 (rcs-revision 1.29) +\pgf@path@lastx=\dimen198 +\pgf@path@lasty=\dimen199 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage +.code.tex +File: pgfcorepathusage.code.tex 2013/12/13 (rcs-revision 1.23) +\pgf@shorten@end@additional=\dimen200 +\pgf@shorten@start@additional=\dimen201 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.co +de.tex +File: pgfcorescopes.code.tex 2013/10/09 (rcs-revision 1.44) +\pgfpic=\box35 +\pgf@hbox=\box36 +\pgf@layerbox@main=\box37 +\pgf@picture@serial@count=\count176 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicst +ate.code.tex +File: pgfcoregraphicstate.code.tex 2013/09/19 (rcs-revision 1.11) +\pgflinewidth=\dimen202 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransform +ations.code.tex +File: pgfcoretransformations.code.tex 2013/10/10 (rcs-revision 1.17) +\pgf@pt@x=\dimen203 +\pgf@pt@y=\dimen204 +\pgf@pt@temp=\dimen205 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.cod +e.tex +File: pgfcorequick.code.tex 2008/10/09 (rcs-revision 1.3) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.c +ode.tex +File: pgfcoreobjects.code.tex 2006/10/11 (rcs-revision 1.2) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathproce +ssing.code.tex +File: pgfcorepathprocessing.code.tex 2013/09/09 (rcs-revision 1.9) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.co +de.tex +File: pgfcorearrows.code.tex 2013/11/07 (rcs-revision 1.40) +\pgfarrowsep=\dimen206 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.cod +e.tex +File: pgfcoreshade.code.tex 2013/07/15 (rcs-revision 1.15) +\pgf@max=\dimen207 +\pgf@sys@shading@range@num=\count177 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.cod +e.tex +File: pgfcoreimage.code.tex 2013/07/15 (rcs-revision 1.18) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal. +code.tex +File: pgfcoreexternal.code.tex 2013/07/15 (rcs-revision 1.20) +\pgfexternal@startupbox=\box38 +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.co +de.tex +File: pgfcorelayers.code.tex 2013/07/18 (rcs-revision 1.7) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretranspare +ncy.code.tex +File: pgfcoretransparency.code.tex 2013/09/30 (rcs-revision 1.5) +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns. +code.tex +File: pgfcorepatterns.code.tex 2013/11/07 (rcs-revision 1.5) +))) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.cod +e.tex +File: pgfmoduleshapes.code.tex 2013/10/31 (rcs-revision 1.34) +\pgfnodeparttextbox=\box39 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code. +tex +File: pgfmoduleplot.code.tex 2013/07/31 (rcs-revision 1.12) +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-0-65.sty +Package: pgfcomp-version-0-65 2007/07/03 v3.0.0 (rcs-revision 1.7) +\pgf@nodesepstart=\dimen208 +\pgf@nodesepend=\dimen209 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-1-18.sty +Package: pgfcomp-version-1-18 2007/07/23 v3.0.0 (rcs-revision 1.1) +)) +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex) +) (/usr/local/texlive/2015/texmf-dist/tex/latex/pgf/math/pgfmath.sty +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2013/12/13 v3.0.0 (rcs-revision 1.25) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex) +\pgffor@iter=\dimen210 +\pgffor@skip=\dimen211 +\pgffor@stack=\toks44 +\pgffor@toks=\toks45 +)) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.cod +e.tex +Package: tikz 2013/12/13 v3.0.0 (rcs-revision 1.142) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothan +dlers.code.tex +File: pgflibraryplothandlers.code.tex 2013/08/31 v3.0.0 (rcs-revision 1.20) +\pgf@plot@mark@count=\count178 +\pgfplotmarksize=\dimen212 +) +\tikz@lastx=\dimen213 +\tikz@lasty=\dimen214 +\tikz@lastxsaved=\dimen215 +\tikz@lastysaved=\dimen216 +\tikzleveldistance=\dimen217 +\tikzsiblingdistance=\dimen218 +\tikz@figbox=\box40 +\tikz@figbox@bg=\box41 +\tikz@tempbox=\box42 +\tikz@tempbox@bg=\box43 +\tikztreelevel=\count179 +\tikznumberofchildren=\count180 +\tikznumberofcurrentchild=\count181 +\tikz@fig@count=\count182 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.cod +e.tex +File: pgfmodulematrix.code.tex 2013/09/17 (rcs-revision 1.8) +\pgfmatrixcurrentrow=\count183 +\pgfmatrixcurrentcolumn=\count184 +\pgf@matrix@numberofcolumns=\count185 +) +\tikz@expandcount=\count186 + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2008/06/17 v3.0.0 (rcs-revision 1.2) +))) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryshadows.code.tex +File: tikzlibraryshadows.code.tex 2008/01/13 v3.0.0 (rcs-revision 1.3) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryfadings.code.tex +File: tikzlibraryfadings.code.tex 2009/11/15 v3.0.0 (rcs-revision 1.2) + +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/libraries/pgflibraryfadings +.code.tex +File: pgflibraryfadings.code.tex 2008/02/07 v3.0.0 (rcs-revision 1.3) +))) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarydecorations.pathmorphing.code.tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarydecorations.code.tex +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/modules/pgfmoduledecoration +s.code.tex +\pgfdecoratedcompleteddistance=\dimen219 +\pgfdecoratedremainingdistance=\dimen220 +\pgfdecoratedinputsegmentcompleteddistance=\dimen221 +\pgfdecoratedinputsegmentremainingdistance=\dimen222 +\pgf@decorate@distancetomove=\dimen223 +\pgf@decorate@repeatstate=\count187 +\pgfdecorationsegmentamplitude=\dimen224 +\pgfdecorationsegmentlength=\dimen225 +) +\tikz@lib@dec@box=\box44 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/libraries/decorations/pgfli +brarydecorations.pathmorphing.code.tex)) +\c@bclogocompteur=\count188 +\bcval@epBarre=\skip195 +\bcval@framesep=\skip196 +\bcval@tailleOndu=\skip197 +\bcval@borderWidth=\skip198 +\bc@envbox=\box45 +\bc@invbox=\box46 +\bc@invboxh=\skip199 +\bc@invboxd=\skip200 +) +(/usr/local/texlive/2015/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarycalc.code.tex +File: tikzlibrarycalc.code.tex 2013/07/15 v3.0.0 (rcs-revision 1.9) +) +\devguide-preamble@idxfile=\write5 +\openout5 = `devguide-preamble.idx'. + + +Writing index file devguide-preamble.idx +(/usr/local/texlive/2015/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2012/11/06 v6.83m Hypertext links for LaTeX + +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO) + + +(/usr/local/texlive/2015/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO) +Package: hobsub 2012/05/28 v1.13 Construct package bundles (HO) +Package hobsub Info: Skipping package `infwarerr' (already loaded). +Package hobsub Info: Skipping package `ltxcmds' (already loaded). +Package hobsub Info: Skipping package `ifluatex' (already loaded). +Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO) +Package hobsub Info: Skipping package `ifpdf' (already loaded). +Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) +Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) +Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO +) +Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO) +Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO) +Package: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO) +Package: xcolor-patch 2011/01/30 xcolor patch +Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO) +Package atveryend Info: \enddocument detected (standard20110627). +Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO) +Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO) +Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO) +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/oberdiek/auxhook.sty +Package: auxhook 2011/03/04 v1.3 Hooks for auxiliary files (HO) +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) +) +\@linkdim=\dimen226 +\Hy@linkcounter=\count189 +\Hy@pagecounter=\count190 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2012/11/06 v6.83m Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +\Hy@SavedSpaceFactor=\count191 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Option `hyperfootnotes' set `false' on input line 4319. +Package hyperref Info: Hyper figures OFF on input line 4443. +Package hyperref Info: Link nesting OFF on input line 4448. +Package hyperref Info: Hyper index ON on input line 4451. +Package hyperref Info: Plain pages OFF on input line 4458. +Package hyperref Info: Backreferencing OFF on input line 4463. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4688. +\c@Hy@tempcnt=\count192 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip11 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5041. +\XeTeXLinkMargin=\dimen227 +\Fld@menulength=\count193 +\Field@Width=\dimen228 +Normal \dimen register pool exhausted, switching to extended pool. +\Fld@charsize=\dimen256 +Package hyperref Info: Hyper figures OFF on input line 6295. +Package hyperref Info: Link nesting OFF on input line 6300. +Package hyperref Info: Hyper index ON on input line 6303. +Package hyperref Info: backreferencing OFF on input line 6310. +Package hyperref Info: Link coloring OFF on input line 6315. +Package hyperref Info: Link coloring with OCG OFF on input line 6320. +Package hyperref Info: PDF/A mode OFF on input line 6325. +LaTeX Info: Redefining \ref on input line 6365. +LaTeX Info: Redefining \pageref on input line 6369. +\Hy@abspage=\count194 +\c@Item=\count195 +) +(/usr/local/texlive/2015/texmf-dist/tex/latex/memoir/memhfixc.sty +Package: memhfixc 2013/05/30 v1.17 nameref/hyperref package fixes for memoir cl +ass +\c@memhycontfloat=\count196 +) + +Package hyperref Message: Driver (autodetected): hpdftex. + +(/usr/local/texlive/2015/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2012/11/06 v6.83m Hyperref driver for pdfTeX +\Fld@listcount=\count197 +\c@bookmark@seq@number=\count198 + +(/usr/local/texlive/2015/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +82. +) +\Hy@SectionHShift=\skip201 +) +Package hyperref Info: Option `colorlinks' set `true' on input line 343. +\drop=\skip202 +\c@taskcount=\count199 +) +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +*\end + +* +Runaway argument? +! Paragraph ended before \end was complete. + + \par +<*> + +? +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +*\end + +* +Runaway argument? +! Paragraph ended before \end was complete. + + \par +<*> + +? +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +* +(Please type a command or say `\end') +*\end + +*\end +! TeX capacity exceeded, sorry [input stack size=5000]. +\end #1->\csname end#1 + \endcsname \@checkend {#1}\expandafter \endgroup \if@e... +<*> \end + +If you really absolutely need more capacity, +you can ask a wizard to enlarge me. + + +Here is how much of TeX's memory you used: + 23521 strings out of 493089 + 420666 string characters out of 6134842 + 554188 words of memory out of 5000000 + 26650 multiletter control sequences out of 15000+600000 + 5008 words of font info for 17 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 5000i,1n,5000p,458b,226s stack positions out of 5000i,500n,10000p,200000b,80000s +! ==> Fatal error occurred, no output PDF file produced! diff --git a/shared/devguide-preamble.tex b/shared/devguide-preamble.tex new file mode 100644 index 0000000000000000000000000000000000000000..9b7eb946d19bed0dc892e00686c43198e18508dd --- /dev/null +++ b/shared/devguide-preamble.tex @@ -0,0 +1,454 @@ +%%% DOCUMENTCLASS +%%%------------------------------------------------------------------------------- + +\documentclass[ +a4paper, % Stock and paper size. +11pt, % Type size. +% article, +% oneside, +onecolumn, % Only one column of text on a page. +% openright, % Each chapter will start on a recto page.devguide +% openleft, % Each chapter will start on a verso page. +openany, % A chapter may start on either a recto or verso page. +]{memoir} + +%%% PACKAGES +%%%------------------------------------------------------------------------------ + +\usepackage[utf8]{inputenc} % If utf8 encoding +% \usepackage[lantin1]{inputenc} % If not utf8 encoding, then this is probably the way to go +\usepackage[T1]{fontenc} % +\usepackage{lmodern} +\usepackage[english]{babel} % English please +\usepackage[final]{microtype} % Less badboxes + +% \usepackage{kpfonts} %Font + +\usepackage{amsmath,amssymb,mathtools} % Math + +% \usepackage{tikz} % Figures +\usepackage{graphicx} % Include figures +\usepackage{makeidx} +\usepackage{import} + +%%% PAGE LAYOUT +%%%----------------------------------------------------------------------------- +\setlrmarginsandblock{0.15\paperwidth}{*}{1} % Left and right margin +\setulmarginsandblock{0.2\paperwidth}{*}{1} % Upper and lower margin +\checkandfixthelayout + +\newlength\forceindent +\setlength{\forceindent}{\parindent} +\setlength{\parindent}{0cm} +\renewcommand{\indent}{\hspace*{\forceindent}} +\setlength{\parskip}{1em} + + +%%% SECTIONAL DIVISIONS +%%%------------------------------------------------------------------------------ + +\maxsecnumdepth{subsection} % Subsections (and higher) are numbered +\setsecnumdepth{subsection} + +\makeatletter % +\makechapterstyle{standard}{ + \setlength{\beforechapskip}{0\baselineskip} + \setlength{\midchapskip}{1\baselineskip} + \setlength{\afterchapskip}{8\baselineskip} + \renewcommand{\chapterheadstart}{\vspace*{\beforechapskip}} + \renewcommand{\chapnamefont}{\centering\normalfont\Large} + \renewcommand{\printchaptername}{\chapnamefont \@chapapp} + \renewcommand{\chapternamenum}{\space} + \renewcommand{\chapnumfont}{\normalfont\Large} + \renewcommand{\printchapternum}{\chapnumfont \thechapter} + \renewcommand{\afterchapternum}{\par\nobreak\vskip \midchapskip} + \renewcommand{\printchapternonum}{\vspace*{\midchapskip}\vspace*{5mm}} + \renewcommand{\chaptitlefont}{\centering\bfseries\LARGE} +% \renewcommand{\printchaptertitle}[1]{\chaptitlefont ##1} + \renewcommand{\afterchaptertitle}{\par\nobreak\vskip \afterchapskip} +} +\makeatother + +%\chapterstyle{standard} +\chapterstyle{madsen} + +\setsecheadstyle{\normalfont\large\bfseries} +\setsubsecheadstyle{\normalfont\normalsize\bfseries} +\setparaheadstyle{\normalfont\normalsize\bfseries} +\setparaindent{0pt}\setafterparaskip{0pt} + +%%% FLOATS AND CAPTIONS +%%%------------------------------------------------------------------------------ + +\makeatletter % You do not need to write [htpb] all the time +\renewcommand\fps@figure{htbp} % +\renewcommand\fps@table{htbp} % +\makeatother % + +\captiondelim{\space } % A space between caption name and text +\captionnamefont{\small\bfseries} % Font of the caption name +\captiontitlefont{\small\normalfont} % Font of the caption text + +\changecaptionwidth % Change the width of the caption +\captionwidth{1\textwidth} % + +%%% ABSTRACT +%%%------------------------------------------------------------------------------ + +\renewcommand{\abstractnamefont}{\normalfont\small\bfseries} % Font of abstract title +\setlength{\absleftindent}{0.1\textwidth} % Width of abstract +\setlength{\absrightindent}{\absleftindent} + +%%% HEADER AND FOOTER +%%%------------------------------------------------------------------------------ + +\makepagestyle{standard} % Make standard pagestyle + +\makeatletter % Define standard pagestyle +\makeevenfoot{standard}{}{}{} % +\makeoddfoot{standard}{}{}{} % +\makeevenhead{standard}{\bfseries\thepage\normalfont\qquad\small\leftmark}{}{} +\makeoddhead{standard}{}{}{\small\rightmark\qquad\bfseries\thepage} +% \makeheadrule{standard}{\textwidth}{\normalrulethickness} +\makeatother % + +\makeatletter +\makepsmarks{standard}{ +\createmark{chapter}{both}{shownumber}{\@chapapp\ }{ \quad } +\createmark{section}{right}{shownumber}{}{ \quad } +\createplainmark{toc}{both}{\contentsname} +\createplainmark{lof}{both}{\listfigurename} +\createplainmark{lot}{both}{\listtablename} +\createplainmark{bib}{both}{\bibname} +\createplainmark{index}{both}{\indexname} +\createplainmark{glossary}{both}{\glossaryname} +} +\makeatother % + +\makepagestyle{chap} % Make new chapter pagestyle + +\makeatletter +\makeevenfoot{chap}{}{\small\bfseries\thepage}{} % Define new chapter pagestyle +\makeoddfoot{chap}{}{\small\bfseries\thepage}{} % +\makeevenhead{chap}{}{}{} % +\makeoddhead{chap}{}{}{} % +% \makeheadrule{chap}{\textwidth}{\normalrulethickness} +\makeatother + +\nouppercaseheads +\pagestyle{standard} % Choosing pagestyle and chapter pagestyle +\aliaspagestyle{chapter}{chap} % + +%%% NEW COMMANDS +%%%----------------------------------------------------------------------------- + +%%% Nektar++ version and Tutorial Root +\endlinechar=-1\relax +\newread\filever +\openin\filever=VERSION +\read\filever to\linever +\newcommand{\nekver}{\linever} +\closein\filever + +% relurl takes filename as first arg and url suffix (less filename) as second. +\ifdefined\HCode +\newcommand{\relurl}[2]{\href{#1}{\underline{#1}}} +\else +\newcommand{\relurl}[2]{\url{http://doc.nektar.info/tutorials/\nekver/#2/#1}} +\fi +\endlinechar=13\relax + +\newcommand{\p}{\partial} %Partial +% Or what ever you want + + +%%% CODE SNIPPETS, COMMANDS, ETC +%%%----------------------------------------------------------------------------- +\usepackage{xcolor} +\usepackage{listings} % Display code / shell commands +\usepackage{lstautogobble} +\usepackage{xspace} +\usepackage{xcolor} +\usepackage{listings} % Display code / shell commands +\usepackage{lstautogobble} +%\newcommand{\shellcommand}[1]{\begin{lstlisting} \#1 \end{lstlisting} +\lstdefinestyle{BashInputStyle}{ + language=bash, + basicstyle=\small\ttfamily, +% numbers=left, +% numberstyle=\tiny, +% numbersep=3pt, + frame=single, + columns=fullflexible, + backgroundcolor=\color{yellow!10}, + linewidth=0.95\linewidth, + xleftmargin=0.05\linewidth, + keepspaces=true, + framesep=5pt, + rulecolor=\color{black!30}, + aboveskip=10pt, + autogobble=true +} +\definecolor{gray}{rgb}{0.4,0.4,0.4} +\definecolor{darkblue}{rgb}{0.0,0.0,0.6} +\definecolor{darkred}{rgb}{0.6,0.0,0.0} +\definecolor{cyan}{rgb}{0.0,0.6,0.6} +\definecolor{maroon}{rgb}{0.5,0.0,0.0} +\lstdefinelanguage{XML} +{ + basicstyle=\ttfamily\footnotesize, + morestring=[b]", + moredelim=[s][\bfseries\color{maroon}]{<}{\ }, + moredelim=[s][\bfseries\color{maroon}]{}, + moredelim=[l][\bfseries\color{maroon}]{/>}, + moredelim=[l][\bfseries\color{maroon}]{>}, + morecomment=[s]{}, + morecomment=[s]{}, + commentstyle=\color{gray}, + stringstyle=\color{orange}, + identifierstyle=\color{darkblue} +} +\lstdefinestyle{XMLStyle}{ + language=XML, + basicstyle=\sffamily\footnotesize, + numbers=left, + numberstyle=\tiny, + numbersep=3pt, + frame=, + columns=fullflexible, + backgroundcolor=\color{black!05}, + linewidth=0.95\linewidth, + xleftmargin=0.05\linewidth +} +\lstdefinestyle{C++Style}{ + language=C++, + basicstyle=\sffamily\footnotesize, + numbers=left, + numberstyle=\tiny, + numbersep=3pt, + frame=, + columns=fullflexible, + backgroundcolor=\color{black!05}, + linewidth=0.9\linewidth, + xleftmargin=0.1\linewidth, + showspaces=false, + showstringspaces=false +} + +\ifdefined\HCode +\newcommand{\inltt}[1]{\texttt{#1}} +\newcommand{\inlsh}[1]{\texttt{#1}} +\else +\newcommand{\inltt}[1]{\tikz[anchor=base,baseline]\node[inner sep=3pt, +rounded corners,outer sep=0,draw=black!30,fill=black!05]{\small\texttt{#1}};} +\newcommand{\inlsh}[1]{\tikz[anchor=base,baseline]\node[inner sep=2pt, +outer sep=0,fill=black!05]{\texttt{#1}};} +\fi +\newcommand{\nekpp}{{\em Nektar++}\xspace} + +% Highlight box +\usepackage{environ} +\usepackage[tikz]{bclogo} +\usetikzlibrary{calc} + +% Only use fancy boxes for PDF +\ifdefined\HCode +\NewEnviron{notebox}{\textbf{Note:} \BODY} +\NewEnviron{warningbox}{\textbf{Warning:} \BODY} +\NewEnviron{tipbox}{\textbf{Tip:} \BODY} +\NewEnviron{custombox}[3]{\textbf{#1} \BODY} +\else +\NewEnviron{notebox} + {\par\medskip\noindent + \begin{tikzpicture} + \node[inner sep=5pt,fill=black!10,draw=black!30] (box) + {\parbox[t]{.99\linewidth}{% + \begin{minipage}{.1\linewidth} + \centering\tikz[scale=1]\node[scale=1.5]{\bcinfo}; + \end{minipage}% + \begin{minipage}{.9\linewidth} + \textbf{Note}\par\smallskip + \BODY + \end{minipage}\hfill}% + }; + \end{tikzpicture}\par\medskip% +} +\NewEnviron{warningbox} + {\par\medskip\noindent + \begin{tikzpicture} + \node[inner sep=5pt,fill=red!10,draw=black!30] (box) + {\parbox[t]{.99\linewidth}{% + \begin{minipage}{.1\linewidth} + \centering\tikz[scale=1]\node[scale=1.5]{\bcdanger}; + \end{minipage}% + \begin{minipage}{.9\linewidth} + \textbf{Warning}\par\smallskip + \BODY + \end{minipage}\hfill}% + }; + \end{tikzpicture}\par\medskip% +} +\NewEnviron{tipbox} + {\par\medskip\noindent + \begin{tikzpicture} + \node[inner sep=5pt,fill=green!10,draw=black!30] (box) + {\parbox[t]{.99\linewidth}{% + \begin{minipage}{.1\linewidth} + \centering\tikz[scale=1]\node[scale=1.5]{\bclampe}; + \end{minipage}% + \begin{minipage}{.9\linewidth} + \textbf{Tip}\par\smallskip + \BODY + \end{minipage}\hfill}% + }; + \end{tikzpicture}\par\medskip% +} +\NewEnviron{custombox}[3] + {\par\medskip\noindent + \begin{tikzpicture} + \node[inner sep=5pt,fill=#3!10,draw=black!30] (box) + {\parbox[t]{.99\linewidth}{% + \begin{minipage}{.1\linewidth} + \centering\tikz[scale=1]\node[scale=1.5]{#2}; + \end{minipage}% + \begin{minipage}{.9\linewidth} + \textbf{#1}\par\smallskip + \BODY + \end{minipage}\hfill}% + }; + \end{tikzpicture}\par\medskip% +} +\fi + +%%% TABLE OF CONTENTS AND INDEX +%%%----------------------------------------------------------------------------- + +\maxtocdepth{subsection} % Only parts, chapters and sections in the table of contents +\settocdepth{subsection} + +\makeindex + +%\AtEndDocument{\addtocontents{toc}{\par}} % Add a \par to the end of the TOC + +%%% INTERNAL HYPERLINKS +%%%----------------------------------------------------------------------------- +\usepackage[linktoc=all,hyperfootnotes=false]{hyperref} % Internal hyperlinks +\hypersetup{ +colorlinks, +citecolor=darkblue, +filecolor=darkblue, +linkcolor=darkblue, +urlcolor=darkblue, +pdfborder={0 0 0}, % No borders around internal hyperlinks +} +\usepackage{memhfixc} % + + +%%% PRETTY TITLE PAGE FOR PDF DOC +%%%----------------------------------------------------------------------------- +\ifdefined\HCode +\else +\makeatletter +\newlength\drop +\newcommand{\br}{\hfill\break} +\newcommand*{\titlepage}{% + \thispagestyle{empty} + \begingroup% Gentle Madness + \drop = 0.1\textheight + \vspace*{\baselineskip} + \vfill + \hbox{% + \hspace*{0.1\textwidth}% + \rule{1pt}{\dimexpr\textheight-28pt\relax}% + \hspace*{0.05\textwidth}% + \parbox[b]{0.85\textwidth}{% + \vbox{% + {\includegraphics[width=0.2\textwidth]{shared/img/icon-blue.png}\par} + \vskip1.00\baselineskip + {\Huge\bfseries\raggedright\@title\par} + \vskip2.37\baselineskip + %{\huge\bfseries Version \input{../../VERSION}\par} + \vskip4\baselineskip + {\huge\bfseries \textcolor{darkred}{Developer's Guide}\par} + \vskip1.0\baselineskip + {\large\bfseries\@date\par} + \vspace{0.3\textheight} + {\small\noindent\@author}\\[\baselineskip] + }% end of vbox + }% end of parbox + }% end of hbox + \vfill + \null +\endgroup} +\makeatother +\fi + +\definecolor{LightGrey}{rgb}{0.9,0.9,0.9} +\newcounter{taskcount}[chapter] +\newcommand\gmsh{\emph{Gmsh}~} +\newcommand\paraview{\emph{Paraview}~} +\newcommand\nektar{\emph{Nektar++}\xspace} +\newcommand\devguidepath{\texttt{/nektutorial}} +\ifdefined\HCode +\NewEnviron{devguidetask}{ +\addtocounter{taskcount}{1} +\textbf{Task: \arabic{chapter}.\arabic{taskcount}} \BODY +} +\else +\NewEnviron{devguidetask} + {\addtocounter{taskcount}{1} + \par\medskip\noindent + \begin{tikzpicture} + \node[inner sep=5pt,fill=black!10,draw=black!30] (box) + {\parbox[t]{.99\linewidth}{% + \begin{minipage}[t]{.1\linewidth} + \vspace{-5mm} + \centering\tikz[scale=1]\node[scale=1.5]{\bccrayon}; + \end{minipage}% + \begin{minipage}[t]{.9\linewidth} + \textbf{{Task \arabic{chapter}.\arabic{taskcount}}}\par\smallskip + \BODY + \end{minipage}\hfill}% + }; + \end{tikzpicture}\par\medskip% +} +\fi +\ifdefined\HCode +\NewEnviron{advanceddevguidetask}{ +\addtocounter{taskcount}{1} +\textbf{Advanced Task: \arabic{chapter}.\arabic{taskcount}} \BODY +} +\else +\NewEnviron{advanceddevguidetask} + {\addtocounter{taskcount}{1} + \par\medskip\noindent + \begin{tikzpicture} + \node[inner sep=5pt,fill=black!10,draw=black!30] (box) + {\parbox[t]{.99\linewidth}{% + \begin{minipage}[t]{.1\linewidth} + \vspace{-5mm} + \centering\tikz[scale=1]\node[scale=1.5]{\bccrayon}; + \end{minipage}% + \begin{minipage}[t]{.9\linewidth} + \textbf{{Advanced Task \arabic{chapter}.\arabic{taskcount}}}\par\smallskip + \BODY + \end{minipage}\hfill}% + }; + \end{tikzpicture}\par\medskip% +} +\fi + +\newcommand\devguidecommand[1]{ + \par{\vspace{1ex} + \addtolength{\leftskip}{2mm}\texttt{#1}\par\vspace{1ex}} +} +\newcommand\devguidenote[1]{\par{\textbf{Note: }#1}} + + +%%% THE DOCUMENT +%%% Where all the important stuff is included! +%%%------------------------------------------------------------------------------- + +\author{Department of Aeronautics, Imperial College London, UK\newline +Scientific Computing and Imaging Institute, University of Utah, USA} +\date{\today} diff --git a/shared/img/icon-blue.png b/shared/img/icon-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..03b0d5ebd09de36e0879d0ce183e6d4ef0c7e551 Binary files /dev/null and b/shared/img/icon-blue.png differ diff --git a/shared/pgfsys-tex4ht.def b/shared/pgfsys-tex4ht.def new file mode 100644 index 0000000000000000000000000000000000000000..162422d4d0e732893d97598986b9c28fb221e52f --- /dev/null +++ b/shared/pgfsys-tex4ht.def @@ -0,0 +1,484 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-tex4ht.def,v 1.25 2013/08/06 17:46:08 tantau Exp $ + + + +% Driver commands for tex4ht + +% +% Load common pdf commands: +% +\input pgfsys-common-svg.def + +% +% tex4ht-specific stuff: +% +\def\pgfsys@invoke#1{\pgf@sys@fail{svg code in preamble}} +\def\pgfsys@body@invoke#1{\HCode{#1}} + +\newcount\pgf@sys@svg@picnum + +\def\pgfsys@pictureboxsynced#1{% + \pgfsys@beginscope\pgflowlevelsynccm\box#1\pgfsys@endscope% +} + + +%% +%% initial support of Mathml and xhtml inside svg through the svg:foreignelement tag +%% +%% it'll allow us to have complicated text nodes in the tex4ht driver +%% + + +%Example (to improve the display, you have to use css) +% +%\tikzpicture[svg text only=false] +%\draw (0,0) node[inner sep=0pt,draw] {tight} +%(0cm,2em) node[inner sep=5pt,draw] {loose} +%(0cm,4em) node[fill=red!20] {default}; +%\draw (3,0) node[inner sep=0pt,draw] {TIGHT} +%(3cm,2em) node[inner sep=5pt,draw] {LOOSE} +%(3cm,4em) node[fill=red!20] {DEFAULT}; +%\draw (6,0) node[inner sep=0pt,draw] {$tight$} +%(6cm,2em) node[inner sep=5pt,draw] {$loose$} +%(6cm,4em) node[fill=red!20] {$default$}; +%\draw (9,0) node[inner sep=0pt,draw] {$TIGHT$} +%(9cm,2em) node[inner sep=5pt,draw] {$LOOSE$} +%(9cm,4em) node[fill=red!20] {$Default$}; +%\endtikzpicture +% +% you can use the options "svg text css=filename", "svg text id=idname", "svg text class=classname" to customize the display through the use of css +% + + + + + + + +%\def\pgfsys@beginpicture{% +% % \Configure{[]}{$}{$} these two lines aren't needed for tex4ht and moreother they produce errors with plain tex ! +% % \Configure{()}{$}{$} +% \Configure{$$}{}{}{}%$$ +% \Configure{$}{}{}{}%$ +% \Configure{SUB}{\HCode{}}{\HCode{}} +% \Configure{SUP}{\HCode{}}{\HCode{}} +% \Configure{SUBSUP}{}{}{} +% \Configure{htf} +% {0}{+}{}{} +%} + + + +%\def\pgfsys@endpicture{% +% % undo: +% \Configure{htf}{0}{+}{}{} +%} + +\def\pgfsys@svg@newline{^^J} + +% we don't want tex4ht putting

and

tags automatically in our svg code and causing invalid xhtml in our svg pictures +\newif\ifpgfsys@CssIncluded@\pgfsys@CssIncluded@false +\def\pgfsys@beginpicture{% + \EndP\HtmlParOff + \pgfkeys{/pgf/tex4ht node/escape=false}% + % text only nodes are the default. Advantage : pure svg pictures are + % the default, nicer for text only nodes. + % Disadvantages : this rendering methods produce more invalid or degraded svg pictures than with the foreignelement tag + %% we use css to control the display of foreignelement rendered text nodes + \ifpgfsys@CssIncluded@ + \else + \Css{ + .foreignobject {% + line-height:100\%; + font-size:120\%; % this is the trick....a font of size 100% in + % a box scaled down to half size makes it a + % half size font. + % you'll have to double the size of things + % that you want to have a regular size in + % this half-scaled box though + font-family:STIXgeneral,Times,Symbol,cmr10,CMSY10,CMEX10;% + % can't wait for the stix font...the cmr10, etc font are + % available from the mozilla site, times and symbols should be + % okey + padding:0; + margin:0; + % background-color:\#12ff55; usefull for debugging positioning + text-align:center; % good for centered text nodes...will have to improve that later on...with more integration with pgf options for text nodes + } + }% + \Css{% + math {%, math[mode="inline"] { + vertical-align:baseline; + line-height:100\%; + font-size:100\%; + font-family:STIXGeneral,Times,Symbol, cmr10,cmsy10,cmex10,cmmi10; + font-style: normal; + margin:0; + % background-color:\#99ff99; + padding:0; + }% + }% + \pgfsys@CssIncluded@true + \fi +}% + +\def\pgfsys@endpicture{% + \HtmlParOn + \par% FIXME : was '\Par' but that seems to be undefined!? +}% + +% this is okay for both rendering methods for text nodes (mtext or foreignelement)... +\def\pgfsys@typesetpicturebox#1{% + \global\advance\pgf@sys@svg@picnum by 1\relax% + % Ok, compute width/height + \pgf@xa=\pgf@picminx% + \pgf@ya=\pgf@picminy% + \pgf@xb=\pgf@picmaxx% + \pgf@yb=\pgf@picmaxy% + \pgf@x=\pgf@xb% + \advance\pgf@x by-\pgf@xa% + \pgf@y=\pgf@yb% + \advance\pgf@y by-\pgf@ya% + \ifdim\pgf@y<1pt% + \pgf@y=1pt% + \fi% + \pgf@xc=\pgf@x% + \pgf@yc=\pgf@y% + \pgfsysprotocol@flushcurrentprotocol% + \HCode{

SVG-Viewer needed.

}% + \special{t4ht>\jobname-\the\pgf@sys@svg@picnum.svg}% + %%%%%%%% This is necessary to control the svg through css + \pgfkeys{% + /pgf/tex4ht node/css/.get=\pgfsys@foreignobject@css + }% + \pgfsys@invoke{\Hnewline% added that + \Hnewline}% added that +%%%%%%%%%%%%%%% maybee I should add an option to change the css, for the whole picture + \pgfsys@invoke{\Hnewline \Hnewline }% + % + \pgf@ya=\pgf@shift@baseline\relax% + \advance\pgf@ya by-\pgf@picminy\relax% + % + % + \advance\pgf@picmaxy by-\pgf@picminy\relax% maxy is now the height + \advance\pgf@picmaxx by-\pgf@picminx\relax% maxx is now the width + \setbox#1=\hbox{\hskip-\pgf@picminx\lower\pgf@picminy\box#1}% + \ht#1=\pgf@picmaxy% + \wd#1=\pgf@picmaxx% + \dp#1=0pt% + \leavevmode + \pgf@xa=\pgf@trimleft@final\relax \ifdim\pgf@xa=0pt \else\kern\pgf@xa\fi + \raise-\pgf@ya\box#1% + \pgf@xa=\pgf@trimright@final\relax \ifdim\pgf@xa=0pt \else\kern\pgf@xa\fi + \pgfsys@invoke{\Hnewline \Hnewline }% + \special{t4ht<\jobname-\the\pgf@sys@svg@picnum.svg}% +}% + +%% we'll use this hbox for the mtext rendering method (the "text only=true" option) +\def\pgfsys@hbox#1{% + \pgf@x=.5\wd#1% + \ifx\tikz@textcolor\relax\else\ifx\tikz@textcolor\@undefined\else% + \ifx\tikz@textcolor\pgfutil@empty% + \pgfsetfillcolor{.}% + \else% + \pgfsetfillcolor{\tikz@textcolor}% + \fi% + \fi\fi% tweak for TikZ + \HCode{\Hnewline }% + \wd#1=0pt% + \ht#1=0pt% + \dp#1=0pt% + \box#1 + \HCode{\Hnewline }% +}% + +%% we save this definition +\let\pgfsys@mtext@hbox\pgfsys@hbox + +%% we have to use some "evil" ^^ tex4ht hackery +% tex4ht hackery +{% grouping necessary cause we change the catcode of ":" + \catcode`:=11\relax + %%% this is necessary to calculate the size of text nodes with + %%% inline maths + % (it is an improvement of tex4ht, got to ask eitan gurary if he + % could put it in the tex4ht code) + \gdef\DviMathAlt{% + \a:DviMath\leavevmode \MathClass + \ht:special{t4ht@(}\hbox\bgroup{\expandafter\ifx\csname + ht:everypar\endcsname\relax\expandafter\everypar\else + \expandafter\ht:everypar\fi{}\leavevmode\ht:special{t4ht@)}}\DviSend + }% + % these are configures for the foreignelement rendering method of text nodes : we let tex4ht write xhtml and mathml in the svg picture + % + \gdef\pgfsys@foreignobject@configure{% + \Configure{$}{\Configure{@math}{%\a:mathml + display="inline" }\DviMathAlt}{\EndDviMath}{}%%% we REALLY need to use \DviMathAlt here instead of \DviMath see above remark + \Configure{$$}{\Configure{@math}{%\a:mathml + display="block" }\IgnorePar + \ifvmode\else \HCode{}\fi\EndP + \DviMath}{\EndDviMath\ShowPar\pgfsys@foreignobject@par{\csname HCondtrue\endcsname\noindent} + }{\DisplayMathtrue}% + \Configure{SUB}{\Send{BACK}{<\a:mathml msub><\a:mathml mrow\Hnewline>}% + \Tg\Tg<\a:mathml mrow\Hnewline>\trap:base}{\Tg\TG}% + \Configure{SUP}{\Send{BACK}{<\a:mathml msup><\a:mathml mrow\Hnewline>}% + \Tg\Tg<\a:mathml mrow\Hnewline>\trap:base}{\Tg\TG}% + \Configure{SUBSUP}{\Send{BACK}{<\a:mathml msubsup><\a:mathml mrow\Hnewline>}% + \Tg\Tg<\a:mathml mrow\Hnewline>\trap:base}{\Tg\Tg<\a:mathml mrow\Hnewline>\trap:base}{\Tg\TG}% + \Configure{htf}{0}{+}{}{}% + }% + \global\let\pgfsys@foreignobject@par=\par % use this instead of \par + % -- \Configure is no \long macro (at + % least in one of the older + % versions). + + % these are the configures for the mtext rendering method of text + % nodes : we turn everything into regular character (don't want math + % modes or subsup) + % and we hope it works (it doesn't if the text nodes aren't simple) + \gdef\pgfsys@mtext@configure{% + % no configures for \(\) and \[\] those might be needed for + % context or Latex. Let me know ! + \Configure{$$}{}{}{}% no block maths + \Configure{$}{}{}{}%$ no inline maths + \Configure{SUB}{\HCode{}}{\HCode{}}% + \Configure{SUP}{\HCode{}}{\HCode{}}% + \Configure{SUBSUP}{}{}{}% not both sub and sup + \Configure{htf} {0}{+}{}{}% + }% +}% + +% a counter to produce unique ids for each text node rendered with foreign element +\newcount\pgf@sys@svg@nodenum + + +% pgfutil@minipage +% +% I had to change it to make it play nice with the way tex4ht puts

and <\p> tags +% + +\newif\ifpgfsys@textonly +\def\pgfutil@minipage[#1]#2{% + \hbox to#2\bgroup + \hsize=#2\relax + \vbox\bgroup +% though it works, I'm desabling the above mentioned hack to make tex4ht behave with

<\p>, because it blurps the positioning +% (I''l try to fix that later, it's a css thing) +% +% \ifpgfsys@textonly\else\HtmlParOn\fi +% +% \noindent is better as it doesn't produce indentation AND it makes you leave vertical mode + \noindent%\leavevmode +}% +\def\pgfutil@endminipage{% +% same thing here +% +% \ifpgfsys@textonly\else\EndP\HtmlParOff\fi + \egroup\egroup +}% + + +% I'll have to fix those names later +\newbox\pgfsys@foreignobject@Box +\newdimen\pgf@s +\newdimen\pgf@t +% this is the alternate hbox routine that renders text nodes through the foreignobject tag +\def\pgfsys@foreignobject@hbox#1{% + % Compute box y translation (x translation is correct). + \pgf@y=-\ht#1\relax + \HCode{\Hnewline}% scaling work around (damn dumb browsers !) + % Compute box size (scaled 2 times) + % this is necessary to make the browser scale the font down 50% (the STUPID browsers won't make font-size:50% happen, + % so we have to work around this by making svg scale the things down 50%, doubling the size of the text node frame (i.e. no changement there) + \pgf@x=2\wd#1\relax + \pgf@y=2\ht#1\relax + \advance\pgf@y by 2\dp#1\relax + % this is to adjust the y translation to compensate for the differences between the TeX and the Html models for lines + \setbox\pgfsys@foreignobject@Box=\hbox{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ + $abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZf_1^1\overline D)_1^1\vec i\vec j$}% + \pgf@t=\ht#1\relax + \advance\pgf@t by -\ht\pgfsys@foreignobject@Box\relax + \pgf@s=\pgf@t\relax + \advance\pgf@s by \dp#1\relax + \advance\pgf@s by -\dp\pgfsys@foreignobject@Box\relax + \ifnum\pgf@s>0\relax + \pgf@s=0pt + \pgf@t=0pt + \else + \advance \pgf@y by -2\pgf@s\relax + \pgf@t=2\pgf@t\relax + \fi + % + \HCode{}% + % this is to make use of the css, class and id options through which you can control the way things display + \pgfkeys{% + /pgf/tex4ht node/css/.get=\pgfsys@foreignobject@css,% + /pgf/tex4ht node/class/.get=\pgfsys@foreignobject@class,% + /pgf/tex4ht node/id/.get=\pgfsys@foreignobject@id + }% + \HCode{\Hnewline + \Hnewline + \Hnewline + % I'll have to look into this, perhaps there are better + % doctype....  aren't recognised and produces invalid svg + % pictures a workaround (not implemented yet) would be to make + % them into entities of the svg picture. + \Hnewline +

\Hnewline + }% + \box#1% + \HCode{% +
\Hnewline + \Hnewline + \Hnewline + }% + % debug positioning not needed but it would be nice to let it there to control things later on + % \HCode{} + \HCode{\Hnewline}% + \global\advance\pgf@sys@svg@nodenum by 1\relax +}% + +% the options and the code that controls it all (switches between \pgfsys@mtext@hbox and \pgfsys@foreignelement@hbox) + +\pgfkeys{% + /pgf/.cd, + tex4ht node/escape/.is choice, + tex4ht node/escape/false/.code={\let\pgfsys@hbox\pgfsys@mtext@hbox\pgfsys@mtext@configure\pgfsys@textonlytrue}, + tex4ht node/escape/true/.code={\let\pgfsys@hbox\pgfsys@foreignobject@hbox\pgfsys@foreignobject@configure\pgfsys@textonlyfalse}, + tex4ht node/css/.initial=\jobname, + tex4ht node/class/.initial=foreignobject, + tex4ht node/id/.initial=\jobname\the\pgf@sys@svg@picnum-\the\pgf@sys@svg@nodenum +}% + + + + + + +% this might be needed +%\font\SvgText=cmr10\relax + + + + +% There is something rellay wrong with the way "%" chars are used in here... you should code "}%" to avoid unnecessary spaces +% and it is unnecessary to code \cs% +% got to be carefull with numbers though, cf the texbook...2\relax and 2 % are okey + +\def\pgfsys@outerinvoke{\ifpgfpicture\expandafter\pgfsys@invoke\else\expandafter\pgfutil@gobble\fi} + +\def\pgfsys@shadingoutsidepgfpicture#1{\pgf@sys@fail{svg code in preamble}} +\def\pgfsys@shadinginsidepgfpicture#1{\pgf@sys@fail{svg code in preamble}} + +\def\pgfsys@body@shadingoutsidepgfpicture#1{% + \begingroup% + #1% + \setbox\pgfpic=\hbox to0pt{% + \pgfsys@beginpicture% + \pgfsys@beginscope% + \pgf@sys@svg@sh@defs% + \pgf@sys@svg@sh% + \pgfsys@endscope% + \pgfsys@endpicture% + \hss% + }% + \pgf@process{\pgf@sys@svg@pos}% + \pgf@picminx=0pt% + \pgf@picminy=0pt% + \pgf@picmaxx=\pgf@x% + \pgf@picmaxy=\pgf@y% + \def\pgf@shift@baseline{0pt}% + \pgfsys@typesetpicturebox\pgfpic% + \endgroup% +} + +\def\pgfsys@body@shadinginsidepgfpicture#1{% + #1% + \pgf@sys@svg@sh@defs% hmmm.... + \pgf@process{\pgf@sys@svg@pos} + \pgf@xa=-.5\pgf@x% + \pgf@ya=-.5\pgf@y% + \pgfsysprotocol@literal{\Hnewline}% + \pgf@sys@svg@sh% + \pgfsysprotocol@literal{\Hnewline}% +} + + +\ifpgfutil@format@is@latex + % Protect against color.4ht evil meddling with xcolor: + \RequirePackage{xcolor} + \let\pgf@xcolor@declaredcolor=\@declaredcolor + \let\pgf@xcolor@undeclaredcolor=\@undeclaredcolor +\fi + +\AtBeginDocument{ + \let\pgfsys@invoke=\pgfsys@body@invoke + \let\pgfsys@shadingoutsidepgfpicture=\pgfsys@body@shadingoutsidepgfpicture + \let\pgfsys@shadinginsidepgfpicture=\pgfsys@body@shadinginsidepgfpicture + \ifpgfutil@format@is@latex + \let\pgf@texht@declaredcolor=\@declaredcolor + \let\pgf@texht@undeclaredcolor=\@undeclaredcolor + \def\@declaredcolor{\ifpgfpicture\expandafter\pgf@xcolor@declaredcolor\else\expandafter\pgf@texht@declaredcolor\fi} + \def\@undeclaredcolor{\ifpgfpicture\expandafter\pgf@xcolor@undeclaredcolor\else\expandafter\pgf@texht@undeclaredcolor\fi} + \fi + \def\pgfutil@color{\pgfsetcolor} + % \ConfigureEnv{pgfpicture}{}{}{}{} there is no environment in plain TeX and this produces errors + % this might be needed for context or latex though....let me know ! +}% + +\endinput + + +%%% Local Variables: +%%% mode: latex +%%% End: diff --git a/shared/styling.cfg b/shared/styling.cfg new file mode 100644 index 0000000000000000000000000000000000000000..3a60c00ecbc976af0b7d5a7e3e8cdebc1452c166 --- /dev/null +++ b/shared/styling.cfg @@ -0,0 +1,90 @@ +%% This is the styling file for HTML generated Nektar++ tutorials. +\Preamble{html} + \Configure{graphics*} + {pdf} + {\Picture[pict]{\csname Gin@base\endcsname.png}} + %% Use HTML for italics and bold + \Configure{emph}{\ifvmode\ShowPar\fi\HCode{}}{\HCode{}} + \Configure{textbf}{\ifvmode\ShowPar\fi\HCode{}}{\HCode{}} + \Configure{texttt}{\ifvmode\ShowPar\fi\HCode{}}{\HCode{}} + \ConfigureEnv{notebox}{\ifvmode\ShowPar\fi\HCode{
}}{\HCode{
}} {} {} + \ConfigureEnv{warningbox}{\ifvmode\ShowPar\fi\HCode{
}}{\HCode{
}} {} {} + \ConfigureEnv{tipbox}{\ifvmode\ShowPar\fi\HCode{
}}{\HCode{
}} {} {} + \ConfigureEnv{tutorialtask}{\ifvmode\ShowPar\fi\HCode{
}}{\HCode{
}} {} {} + + %% Remove div indents + \Configure{HtmlPar} + {\EndP\Tg

} + {\EndP\Tg

} + {\HCode{

\Hnewline}} + {\HCode{

\Hnewline}} + + \begin{document} + \DeclareGraphicsExtensions{.pdf,.eps,.png,.jpg,.mp,.mps} + + \Css{ + body { + margin: 0 auto; + max-width: 800px; + background: \#ffffff; + font-family: "Helvetica Neue", Arial, Freesans, clean, sans-serif; + } + h2 {color: \#000000; text-align: right; font-size: 32pt;} + .chapterHead .titlemark { + font-size: 20pt; + } + a { + color: \#000066; + text-decoration: none; + } + a:hover { + color: \#0000ff; + } + img { + max-width: 800px; + } + .author { + font-size: 14pt; + } + .lstlisting { + background: \#eeeeee; + margin-left: 20px; + margin-right: 20px; + padding: 5px; + font-family: "Lucida Console", Monaco, monospace; + } + .lstinline { + padding: 2px; + font-family: "Lucida Console", Monaco, monospace; + } + .notebox { + border: 1px solid \#999999; + border-radius: 10px; + background: \#bbbbbb; + padding: 10px; + margin: 10px; + } + .warningbox { + border: 1px solid \#999999; + border-radius: 10px; + background: \#ffbbbb; + padding: 10px; + margin: 10px; + } + .tipbox { + border: 1px solid \#999999; + border-radius: 10px; + background: \#bbffbb; + padding: 10px; + margin: 10px; + } + .tutorialtask { + border: 1px solid \#999999; + border-radius: 10px; + background: \#bbbbbb; + padding: 10px; + margin: 10px; + } +} + +\EndPreamble