text:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%% Simple LaTeX CV Template %%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% NOTE: If you find that it says                                     %%
%%                                                                    %%
%%                           1 of ??                                  %%
%%                                                                    %%
%% at the bottom of your first page, this means that the AUX file     %%
%% was not available when you ran LaTeX on this source. Simply RERUN  %%
%% LaTeX to get the ``??'' replaced with the number of the last page  %%
%% of the document. The AUX file will be generated on the first run   %%
%% of LaTeX and used on the second run to fill in all of the          %%
%% references.                                                        %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%% Document Setup %%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Don't like 10pt? Try 11pt or 12pt
\documentclass[10pt]{article}

% The automated optical recognition software used to digitize resume
% information works best with fonts that do not have serifs. This
% command uses a sans serif font throughout. Uncomment both lines (or at
% least the second) to restore a Roman font (i.e., a font with serifs).
%\usepackage{times}
%\renewcommand{\familydefault}{\sfdefault}

% This is a helpful package that puts math inside length specifications
\usepackage{calc}
\usepackage{comment}

% Simpler bibsection for CV sections
% (thanks to natbib for inspiration)
\makeatletter
\newlength{\bibhang}
\setlength{\bibhang}{1em} %1em}
\newlength{\bibsep}
 {\@listi \global\bibsep\itemsep \global\advance\bibsep by\parsep}
\newenvironment{bibsection}%
        {\begin{enumerate}{}{%
%        {\begin{list}{}{%
       \setlength{\leftmargin}{\bibhang}%
       \setlength{\itemindent}{-\leftmargin}%
       \setlength{\itemsep}{\bibsep}%
       \setlength{\parsep}{\z@}%
        \setlength{\partopsep}{0pt}%
        \setlength{\topsep}{0pt}}}
        {\end{enumerate}\vspace{-.6\baselineskip}}
%        {\end{list}\vspace{-.6\baselineskip}}
\makeatother

% Layout: Puts the section titles on left side of page
\reversemarginpar

%
%         PAPER SIZE, PAGE NUMBER, AND DOCUMENT LAYOUT NOTES:
%
% The next \usepackage line changes the layout for CV style section
% headings as marginal notes. It also sets up the paper size as either
% letter or A4. By default, letter was used. If A4 paper is desired,
% comment out the letterpaper lines and uncomment the a4paper lines.
%
% As you can see, the margin widths and section title widths can be
% easily adjusted.
%
% ALSO: Notice that the includefoot option can be commented OUT in order
% to put the PAGE NUMBER *IN* the bottom margin. This will make the
% effective text area larger.
%
% IF YOU WISH TO REMOVE THE ``of LASTPAGE'' next to each page number,
% see the note about the +LP and -LP lines below. Comment out the +LP
% and uncomment the -LP.
%
% IF YOU WISH TO REMOVE PAGE NUMBERS, be sure that the includefoot line
% is uncommented and ALSO uncomment the \pagestyle{empty} a few lines
% below.
%

%% Use these lines for letter-sized paper
\usepackage[paper=letterpaper,
            %includefoot, % Uncomment to put page number above margin
            marginparwidth=1.2in,     % Length of section titles
            marginparsep=.05in,       % Space between titles and text
            margin=1in,               % 1 inch margins
            includemp]{geometry}

%% Use these lines for A4-sized paper
%\usepackage[paper=a4paper,
%            %includefoot, % Uncomment to put page number above margin
%            marginparwidth=30.5mm,    % Length of section titles
%            marginparsep=1.5mm,       % Space between titles and text
%            margin=25mm,              % 25mm margins
%            includemp]{geometry}

%% More layout: Get rid of indenting throughout entire document
\setlength{\parindent}{0in}

\usepackage[shortlabels]{enumitem}

%% Reference the last page in the page number
%
% NOTE: comment the +LP line and uncomment the -LP line to have page
%       numbers without the ``of ##'' last page reference)
%
% NOTE: uncomment the \pagestyle{empty} line to get rid of all page
%       numbers (make sure includefoot is commented out above)
%
\usepackage{fancyhdr,lastpage}
\pagestyle{fancy}
%\pagestyle{empty}      % Uncomment this to get rid of page numbers
\fancyhf{}\renewcommand{\headrulewidth}{0pt}
\fancyfootoffset{\marginparsep+\marginparwidth}
\newlength{\footpageshift}
\setlength{\footpageshift}
          {0.5\textwidth+0.5\marginparsep+0.5\marginparwidth-2in}
\lfoot{\hspace{\footpageshift}%
       \parbox{4in}{\, \hfill %
                    \arabic{page} of \protect\pageref*{LastPage} % +LP
%                    \arabic{page}                               % -LP
                    \hfill \,}}

% Finally, give us PDF bookmarks
\usepackage{color,hyperref}
\definecolor{darkblue}{rgb}{0.0,0.0,0.3}
\hypersetup{colorlinks,breaklinks,
            linkcolor=darkblue,urlcolor=darkblue,
            anchorcolor=darkblue,citecolor=darkblue}

%%%%%%%%%%%%%%%%%%%%%%%% End Document Setup %%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%% Helper Commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%

% The title (name) with a horizontal rule under it
% (optional argument typesets an object right-justified across from name
%  as well)
%
% Usage: \makeheading{name}
%        OR
%        \makeheading[right_object]{name}
%
% Place at top of document. It should be the first thing.
% If ``right_object'' is provided in the square-braced optional
% argument, it will be right justified on the same line as ``name'' at
% the top of the CV. For example:
%
%       \makeheading[\emph{Curriculum vitae}]{Your Name}
%
% will put an emphasized ``Curriculum vitae'' at the top of the document
% as a title. Likewise, a picture could be included:
%
%   \makeheading[\includegraphics[height=1.5in]{my_picutre}]{Your Name}
%
% the picture will be flush right across from the name.
\newcommand{\makeheading}[2][]%
        {\hspace*{-\marginparsep minus \marginparwidth}%
         \begin{minipage}[t]{\textwidth+\marginparwidth+\marginparsep}%
             {\large \bfseries #2 \hfill #1}\\[-0.15\baselineskip]%
                 \rule{\columnwidth}{1pt}%
         \end{minipage}}

% The section headings
%
% Usage: \section{section name}
\renewcommand{\section}[1]{\pagebreak[3]%
    \hyphenpenalty=10000%
    \vspace{1.3\baselineskip}%
    \phantomsection\addcontentsline{toc}{section}{#1}%
    \noindent\llap{\scshape\smash{\parbox[t]{\marginparwidth}{\raggedright #1}}}%
    \vspace{-\baselineskip}\par}

% An itemize-style list with lots of space between items
\newenvironment{outerlist}[1][\enskip\textbullet]%
        {\begin{itemize}[#1,leftmargin=*]}{\end{itemize}%
         \vspace{-.6\baselineskip}}

% An environment IDENTICAL to outerlist that has better pre-list spacing
% when used as the first thing in a \section
\newenvironment{lonelist}[1][\enskip\textbullet]%
        {\begin{list}{#1}{%
        \setlength{\partopsep}{0pt}%
        \setlength{\topsep}{0pt}}}
        {\end{list}\vspace{-.6\baselineskip}}

% An itemize-style list with little space between items
\newenvironment{innerlist}[1][\enskip\textbullet]%
        {\begin{itemize}[#1,leftmargin=*,parsep=0pt,itemsep=0pt,topsep=0pt,partopsep=0pt]}
        {\end{itemize}}

% An environment IDENTICAL to innerlist that has better pre-list spacing
% when used as the first thing in a \section
\newenvironment{loneinnerlist}[1][\enskip\textbullet]%
        {\begin{itemize}[#1,leftmargin=*,parsep=0pt,itemsep=0pt,topsep=0pt,partopsep=0pt]}
        {\end{itemize}\vspace{-.6\baselineskip}}

% To add some paragraph space between lines.
% This also tells LaTeX to preferably break a page on one of these gaps
% if there is a needed pagebreak nearby.
\newcommand{\blankline}{\quad\pagebreak[3]}
\newcommand{\halfblankline}{\quad\vspace{-0.5\baselineskip}\pagebreak[3]}

% Uses hyperref to link DOI
\newcommand\doilink[1]{\href{http://dx.doi.org/#1}{#1}}
\newcommand\doi[1]{doi:\doilink{#1}}

% For \url{SOME_URL}, links SOME_URL to the url SOME_URL
\providecommand*\url[1]{\href{#1}{#1}}
% Same as above, but pretty-prints SOME_URL in teletype fixed-width font
\renewcommand*\url[1]{\href{#1}{\texttt{#1}}}

% For \email{ADDRESS}, links ADDRESS to the url mailto:ADDRESS
\providecommand*\email[1]{\href{mailto:#1}{#1}}
% Same as above, but pretty-prints ADDRESS in teletype fixed-width font
%\renewcommand*\email[1]{\href{mailto:#1}{\texttt{#1}}}

%\providecommand\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
%    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
%\providecommand\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
%    \TeX}}
\providecommand\BibTeX{{B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
    \TeX}}
\providecommand\Matlab{\textsc{Matlab}}

%%%%%%%%%%%%%%%%%%%%%%%% End Helper Commands %%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%% Begin CV Document %%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
\makeheading{David G. Mummy}

\section{Contact Information}

% NOTE: Mind where the & separators and \\ breaks are in the following
%       table.
%
% ALSO: \rcollength is the width of the right column of the table
%       (adjust it to your liking; default is 1.85in).
%
\newlength{\rcollength}\setlength{\rcollength}{1.4in}%
%
\begin{tabular}[t]{@{}p{\textwidth-\rcollength}p{\rcollength}}
%\href{https://www.medphysics.wisc.edu///}%
%     {Department of Medical Physics} & \\
%\href{http://www.wisc.edu/}{The University of Wisconsin - Madison}
  \\
     & \email{david@dgmummy.com}\\
& \href{http://www.dgmummy.com}{www.dgmummy.com}\\
\end{tabular}

%\section{Objective}

%Insert text here if you want to
%\begin{innerlist}
%\item More information and auxiliary documents can be found at\\\url{http://www.tedpavlic.com/facjobsearch/}
%\end{innerlist}

\section{Research Interests and Activities}

My work uses hyperpolarized gas MRI in conjunction with CT to advance understanding of the nature of airway obstruction and its relation to disease progression and severe clinical outcomes in asthma. \\

I am a referee for \textit{Radiology}.

\section{Education}

\href{http://www.wisc.edu}{\textbf{University of Wisconsin}},
Madison, WI
\begin{outerlist}
\item[] Ph.D.,
        \href{http://www.engr.wisc.edu/departments/bme/}
             {Biomedical Engineering}.
             Graduation: December 2018.
        \begin{innerlist}
        \item Thesis Topic: \emph{Defining Asthma Phenotypes in Asthma Using CT and Hyperpolarized Gas MRI}
        \item Advisor:
              \href{https://www.medphysics.wisc.edu/directory/fain.php///}
                   {Sean B. Fain, Ph.D}
              \end{innerlist}
\item[] M.S.,
        \href{http://www.engr.wisc.edu/departments/bme/}
             {Biomedical Engineering},
             January 2015

\end{outerlist}
\vspace{.1in}
\href{http://www.seattleu.edu}{\textbf{Seattle University}},
Seattle, WA
\begin{outerlist}
\item[] M.B.A., June 2011

\end{outerlist}
\vspace{.1in}
\href{http://www.whitman.edu}{\textbf{Whitman College}},
Walla Walla, WA
\begin{outerlist}
\item[] B.A., {Mathematics, Physics}, May 2006

\end{outerlist}

\section{Research Experience}

\textbf{Research Assistant} \hfill {September 2013 to present}
\begin{innerlist}

\item[] Department of Medical Physics,\\
        University of Wisconsin-Madison\\
        Supervisor: Sean B. Fain, Ph.D
\end{innerlist}

\section{Previous Employment}

\textbf{Statistical Analyst Programmer} \hfill {2011 - 2013}
\begin{innerlist}
\item[] Fred Hutchinson Cancer Research Center \\
		Seattle, WA
\end{innerlist}

\textbf{Flight Test Software Analyst} \hfill {2008 - 2011}
\begin{innerlist}
\item[] The Boeing Company \\
		Seattle, WA
\end{innerlist}

\section{Publications}

\begin{innerlist}
\item Jessica M. Oakes, {\bf David Mummy}, Kamran Poorbahrami, Wei Zha, and Sean B. Fain. ``Patient-Specific Computational Simulations of Hyperpolarized 3He MRI Ventilation Defects in Healthy and Asthmatic Subjects". IEEE Transactions in Biomedical Engineering [in press].
\item Zha, Wei, Stanley J. Kruger, Robert V. Cadman, {\bf David G. Mummy}, Michael D. Evans, Scott K. Nagle, Loren C. Denlinger, Nizar N. Jarjour, Ronald L. Sorkness, and Sean B. Fain. ``Regional Heterogeneity of Lobar Ventilation in Asthma Using Hyperpolarized Helium-3 MRI." Academic Radiology 25, no. 2 (2018): 169-178.
\item {\bf David G. Mummy}, Stanley J. Kruger, Wei Zha, Ronald L. Sorkness, Nizar N. Jarjour, Mark L. Scheibler, Loren C. Denlinger, Michael D. Evans, Sean B. Fain.``Ventilation defect percent in helium-3 magnetic resonance imaging as a biomarker of severe outcomes in asthma." Journal of Allergy and Clinical Immunology 141.3 (2018).
\item E. Adamson, K. Ludwig, {\bf D. Mummy}, S.B. Fain. ``Magnetic resonance imaging with hyperpolarized agents: methods and applications". Physics in Medicine and Biology (2017). doi: 10.1088/1361-6560/aa6be8.
    \item Wei Zha, David J. Niles, Stanley J. Kruger, Bernard J. Dardzinski, Robert V. Cadman, {\bf David G. Mummy}, Scott K. Nagle, and Sean B. Fain. ``Semiautomated Ventilation Defect Quantification in Exercise-induced Bronchoconstriction Using Hyperpolarized Helium-3 Magnetic Resonance Imaging: A Repeatability Study". Academic Radiology (2016).
    \item V. Shankaran, {\bf D. Mummy}, L. Koepl, A. Bansal, D. Mirick, E. Yu, R. Morlock, S. Ogale, and S. Ramsey. ``Survival and lifetime costs associated with first-line bevacizumab use in older patients with metastatic colorectal cancer". Oncologist 19:892-899, 2014
    \item V. Shankaran, {\bf D. Mummy}, L. Koepl, D. Blough, Y. M. Yim, E. Yu, S. Ramsey. ``Adverse events associated with Bevacizumab and chemotherapy in older patients with metastatic colorectal cancer". Clin Colorectal Cancer 2013; 12(3): 204–213
	\item B. Goulart, C. Reyes, C. Fedorenko, {\bf D. Mummy}, S. Satram-Hoang, L. Koepl, D. Blough, S. Ramsey. ``Referral and treatment patterns among patients with stages III and IV non-small cell lung cancer". Journal of Oncology Practice, 9, 42-50. doi:10.1200/JOP.2012.000640
	\item B. Goulart, M. Bensink, {\bf D. Mummy}, S. Ramsey. ``Lung cancer screening with low-dose computed tomography: costs, national expenditures, and cost-effectiveness". Journal of the National Comprehensive Cancer Network: JNCCN. 01/2012; 10(2): 267-275.
\end{innerlist}

\section{Book Chapters}

\begin{innerlist}
    \item ``Asthma." {\bf David G. Mummy}, Wei Zha, Ronald L. Sorkness, Sean B. Fain. \textit{MRI of the Lung}, Hans-Ulrich Kauczor and Mark Oliver Wielp{\"u}tz, Eds. Springer, 2018.
    \item ``Hyperpolarized Gas MRI of the Lung in Asthma." Sean B. Fain, {\bf David G. Mummy}, Ronald L. Sorkness. \textit{Hyperpolarized and Inert Gas MRI: From Technology to Application in Research and Medicine}, Mitchell S. Albert and Francis T. Hane, Eds. Academic Press, 2016.

\end{innerlist}

% Add a little space to nudge next ``Conference Publications'' marginpar
% down to make room for tall ``Submitted Journal Publications''
% marginpar. If there are enough submitted journal publications, this
% space will not be needed (and should be removed).
%\vspace{0.1in}

\section{Awards}
Abstract Awards
\begin{innerlist}
\item Summa cum laude abstract \\ International Society for Magnetic Resonance Imaging, \hfill April 2017 \\ Honolulu, HI
\item Student Prize (North America) \\ International Workshop on Pulmonary Functional Imaging,\hfill Sep 2015
\\Edinburgh, Scotland
\item Abstract Scholarship \\ American Thoracic Society International Conference, Denver, CO\hfill Oct 2014\\
\end{innerlist}

\halfblankline

\section{Presentations}
\begin{innerlist}
\item American Thoracic Society International Conference \hfill May 2018 \\ San Diego, CA
\item International Society for Magnetic Resonance Imaging \hfill April 2017 \\ Honolulu, HI
\item American Thoracic Society International Conference \hfill May 2016
\\San Francisco, CA
\item International Workshop on Pulmonary Functional Imaging \hfill Sep 2015
\\Edinburgh, Scotland
\end{innerlist}

\halfblankline

\end{document}

%%%%%%%%%%%%%%%%%%%%%%%%%% End CV Document %%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%----------------------------------------------------------------------%
% The following is copyright and licensing information for
% redistribution of this LaTeX source code; it also includes a liability
% statement. If this source code is not being redistributed to others,
% it may be omitted. It has no effect on the function of the above code.
%----------------------------------------------------------------------%
% Copyright (c) 2007, 2008, 2009, 2010, 2011 by Theodore P. Pavlic
%
% Unless otherwise expressly stated, this work is licensed under the
% Creative Commons Attribution-Noncommercial 3.0 United States License. To
% view a copy of this license, visit
% http://creativecommons.org/licenses/by-nc/3.0/us/ or send a letter to
% Creative Commons, 171 Second Street, Suite 300, San Francisco,
% California, 94105, USA.
%
% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
% OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
% MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
% IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
% CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
% TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
% SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
%----------------------------------------------------------------------%


text:
% This is part of the TFTB Reference Manual.
% Copyright (C) 1996 CNRS (France) and Rice University (US).
% See the file refguide.tex for copying conditions.

\markright{kaytth}
\section*{\hspace*{-1.6cm} kaytth}

\vspace*{-.4cm}
\hspace*{-1.6cm}\rule[0in]{16.5cm}{.02cm}
\vspace*{.2cm}

{\bf \large \sf Purpose}\\
\hspace*{1.5cm}
\begin{minipage}[t]{13.5cm}
Kay-Tretter filter computation.
\end{minipage}
\vspace*{.5cm}

{\bf \large \sf Synopsis}\\
\hspace*{1.5cm}
\begin{minipage}[t]{13.5cm}
\begin{verbatim}
h = kaytth(N);
\end{verbatim}
\end{minipage}
\vspace*{.5cm}

{\bf \large \sf Description}\\
\hspace*{1.5cm}
\begin{minipage}[t]{13.5cm}
        {\ty kaytth} computes the Kay-Tretter filter.\\

\hspace*{-.5cm}\begin{tabular*}{14cm}{p{1.5cm} p{8.5cm} c}
Name & Description & Default value\\
\hline
	{\ty N}   & length of the filter\\
\hline  {\ty h}   & impulse response of the filter\\

\hline
\end{tabular*}
\vspace*{.2cm}

This filter is used in the computation of {\ty instfreq}.
\end{minipage}
\vspace*{1cm}

{\bf \large \sf See Also}\\
\hspace*{1.5cm}
\begin{minipage}[t]{13.5cm}
\begin{verbatim}
instfreq.
\end{verbatim}
\end{minipage}
\vspace*{.5cm}

{\bf \large \sf Reference}\\
\hspace*{1.5cm}
\begin{minipage}[t]{13.5cm}
[1] P. Djuric and S. Kay "Parameter Estimation of Chirp Signals"
IEEE Trans. on Acoust. Speech and Sig. Proc., Vol 38, No 12, 1990.\\

[2] S.M. Tretter ``A Fast and Accurate Frequency Estimator'', IEEE
Trans. on ASSP, Vol. 37, No. 12, pp. 1987-1990, 1989.
\end{minipage}

domain: tex


text:
\documentclass[]{IAC_style}

\begin{document}

\IACpaperyear{2021} % format yyyy
\IACpapernumber{IAC-2x-XX-XX-X-xXXXXX} % full paper id
\IAClocation{Dubai, United Arab Emirates} % used in the header
\IACdate{25-29 October 2021} % used in the header

% Which copyright? If B, put the copyright holder.
%\IACcopyrightA{}
\IACcopyrightB{LateX association}

\title{Example of IAC template}

%\IACauthor{Author name}{corresponding affiliation: nr. of corresponding affiliation}{is corresponding author? 0-1}
\IACauthor{Davide Grande$^{\orcidlink{0000-0000-0000-0000}}$}{1}{1}
\IACauthor{Stefano Farì$^{\orcidlink{0000-0000-0000-0000}}$}{2}{0}

% Input affiliations here, order is relevant
\IACauthoraffiliation{Lorem Ipsum1. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium \normalfont{E-mail:\ \texttt{stefano.fari}}}
\IACauthoraffiliation{Lorem Ipsum2. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium \normalfont{E-mail:\ \texttt{davide.grande}}}

\input{abstract}

\maketitle
\thispagestyle{fancy} % resets proper header/footer

\section*{Nomenclature}
\input{dummy_text}

\section{Introduction}
\input{dummy_text}

\input{dummy_text}

\input{dummy_text}

\input{dummy_text}

\input{dummy_text}

\input{dummy_text}

\input{dummy_text}

\input{dummy_text}

\end{document}


text:
\documentclass[11pt, a4paper]{article}
\usepackage[letterpaper, portrait, margin=0.5in]{geometry}
\usepackage[english]{babel}  % force American English hyphenation patterns
\usepackage{amsmath,mathtools}

\usepackage{graphicx}
\usepackage{wrapfig}

% Use this to define a bigger dot
% Cred: https://tex.stackexchange.com/questions/235118/making-a-thicker-cdot-for-dot-product-that-is-thinner-than-bullet/235120
\makeatletter
\newcommand*\bigcdot{\mathpalette\bigcdot@{.5}}
\newcommand*\bigcdot@[2]{\mathbin{\vcenter{\hbox{\scalebox{#2}{$\m@th#1\bullet$}}}}}
\makeatother

\begin{document}
\title{Chapter 28 Sources of Magnetic field}
\author{Apostolos Delis}

\date{\today}
\maketitle

\tableofcontents
\section[28.1, Magnetic Field of a Moving Charge]{Magnetic Field of a Moving Charge}
\begin{itemize}
    \item The location of the moving charge at a given instant is called the
        \textbf{source point} and the point $P$ where we want to find the field the
        \textbf{field point}
    \item The magnitude of $\vec{\mathbf{B}}$ is proportional to $|q|$ and to
        $\frac{1}{r^2}$
    \item The magnetic field magnitude at point $P$ is:
        \begin{equation}
            B = \frac{\mu_0}{4\pi} \frac{|q|v\sin\phi}{r^2}
        \end{equation}
    \item The quantity $\mu_0$ is called the magnetic constant
    \item The vector for the magnetic field can be calculated using:
        \begin{equation}
            \vec{\mathbf{B}} = \frac{\mu_0}{4\pi}
            \frac{q\vec{\mathbf{v}} \times \mathbf{\hat{r}}}{r^2}
        \end{equation}
\end{itemize}

\section[28.2, Magnetic Field of a Current Element]{Magnetic Field of a Current Element}
\begin{itemize}
    \item \textbf{Principle of superposition of magnetic fields:} the totoal magnetic
        field caused by several moving charges is the vector sum of the fields caused by
        the individual charges.
    \item If there are $n$ moving charged particles per unit volume, each of charge $q$,
        the total moving charge $dQ$ in the segment is:
        \begin{equation}
            dQ = nqAdl
        \end{equation}
    \item The magnitude of the resulting field $d\vec{\mathbf{B}}$ at any point $P$ is:
        \begin{equation}
            dB = \frac{\mu_0}{4\pi}\frac{|dQ|v_d\sin\phi}{r^2} =
            \frac{\mu_0}{4\pi}\frac{n|q|v_d Adl\sin\phi}{r^2} =
            \frac{\mu_0}{4\pi}\frac{Idl\sin\phi}{r^2}
        \end{equation}
        since $n|q|v_d A$ equals the current $I$ in the element
    \item In vector form, using the unit vector $\mathbf{\hat{r}}$, we have:
        \begin{equation}
            dB = \frac{\mu_0}{4\pi}\frac{Id\vec{\mathbf{l}} \times \mathbf{\hat{r}}}{r^2}
        \end{equation}
        this equation is also known as the law of Biot and Savart
    \item To find the total magnetic field $\vec{\mathbf{B}}$, integrate over the region:
        \begin{equation}
            \vec{\mathbf{B}} = \frac{\mu_0}{4\pi} \int
            \frac{Id\vec{\mathbf{l}} \times \mathbf{\hat{r}}}{r^2}
        \end{equation}
\end{itemize}

\section[28.3, Magnetic Field of a Straight Current-Carrying Conductor]{Magnetic Field of
    a Straight Current-Carrying Conductor}
\begin{itemize}
    \item It is useful to calculate the magnetic field produced by a straight
        current-carrying conductor, since straight wires are found in countless
        situations
    \item It can be found that the total mangitude of $\vec{\mathbf{B}}$ is
        \begin{equation}
            B = \frac{\mu_0}{4\pi} \int_{-a}^{a} \frac{xdy}{(x^2 + y^2)^{3 / 2}}
        \end{equation}
    \item When the length $2a$ of the conductor is much greater than the distance $x$
        from the point $P$, we can consider it to be infinitely long. When
        $a\rightarrow\infty$, we have:
        \begin{equation}
            B = \frac{\mu_0 I}{2\pi x}
        \end{equation}
    \item This follows from Gauss's law of magnetism, which as stated previously, is
        defined as:
        \begin{equation}
            \oint \vec{\mathbf{B}} \bigcdot d\vec{\mathbf{A}} = 0
        \end{equation}
\end{itemize}

\section[28.4, Force Between Parallel Conductors]{Force Between Parallel Conductors}
\begin{itemize}
    \item Suppose there are two long, straight parallel conductors, seperated by a
        distance $r$, and carrying currents $I$ and $I^{\prime}$
    \item The first conductor produces a $\vec{\mathbf{B}}$ field that, at the position
        of the upper conductor, has magnitude
        \begin{equation}
            B = \frac{\mu_0 I}{2\pi r}
        \end{equation}
    \item The force that the second field exerts on a length $L$ is
        $\vec{\mathbf{F}} = I^{\prime}\vec{\mathbf{L}} \times \vec{\mathbf{B}}$, where
        the vector $\vec{\mathbf{L}}$ is the direction of the current $I^{\prime}$ and
        has magnitude $L$
    \item Since $\vec{\mathbf{B}}$ is perpendicular to $\vec{\mathbf{L}}$, the magnitude
        of the force is
        \begin{equation}
            F = I^{\prime}IB = \frac{\mu_0II^{\prime}L}{2\pi r}
        \end{equation}
    \item The force per unit length $F / L$ in this scenario is
        \begin{equation}
            \frac{F}{L} = \frac{\mu_0II^{\prime}}{2\pi r}
        \end{equation}
\end{itemize}

\section[28.6 Ampere's Law]{Ampere's Law}
\begin{itemize}
    \item Ampere's Law provides a nice and simple way to calculate magnetic fields with
        highly symmetric current distributions
    \item Ampere's law is formulated not in terms of magnetic flux, but rather in terms
        of the line integral of $\vec{\mathbf{B}}$ around a closed path, denoted by
        \begin{equation}
            \oint \vec{\mathbf{B}} \bigcdot d\vec{\mathbf{l}}
        \end{equation}
\end{itemize}

\subsection{Ampere'S Law For a Long, Straight Conductor}
\begin{itemize}
    \item Consider the magnetic field caused by a long, straight conductor carrying a
        current $I$. The magnetic field lines are centered on the conductor. Take a line
        integral of $\vec{\mathbf{B}}$ around a circle with radius $r$.
    \item At every point in the circle, $\vec{\mathbf{B}}$ and $d\vec{\mathbf{d}}$ are
        parallel, so $\vec{\mathbf{B}} \bigcdot d\vec{\mathbf{l}} = Bdl$, because of
        this, $B$ can be taken outside of the integral
        \begin{equation}
            \oint \vec{\mathbf{B}} \bigcdot d\vec{\mathbf{l}} =
            \oint B_{\parallel} dl = B\oint dl =
            \frac{\mu_0 I}{2\pi r}(2\pi r) = \mu_0 I
        \end{equation}
    \item So for straight conductors, Ampere's law can be reduced to:
        \begin{equation}
            \oint \vec{\mathbf{B}} \bigcdot d\vec{\mathbf{l}} = \mu_0 I
        \end{equation}
\end{itemize}

\subsection{Ampere's Law: General Statement}
\begin{itemize}
    \item Ampere's Law can be generalized even further, the total magnetic field
        $\vec{\mathbf{B}}$ at any point on the path is the vector sum of the fields
        produced by the individual conductors. Thus, the line integral of the total
        $\vec{\mathbf{B}}$ is
        \begin{equation}
            \oint \vec{\mathbf{B}} \bigcdot d\vec{\mathbf{l}} = \mu_0 I_{encl}
        \end{equation}
\end{itemize}
\end{document}


text:
\hypertarget{group__debugconsole}{}\section{Debugconsole}
\label{group__debugconsole}\index{Debugconsole@{Debugconsole}}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item
\#define \mbox{\hyperlink{group__debugconsole_gabb8f0adbec02f143b4f84d2eb42126df}{D\+E\+B\+U\+G\+C\+O\+N\+S\+O\+L\+E\+\_\+\+R\+E\+D\+I\+R\+E\+C\+T\+\_\+\+T\+O\+\_\+\+T\+O\+O\+L\+C\+H\+A\+IN}}~0U
\begin{DoxyCompactList}\small\item\em Definition select redirect toolchain printf, scanf to uart or not. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group__debugconsole_gac33031f28afa29dc8fe1718bbc86ee23}{D\+E\+B\+U\+G\+C\+O\+N\+S\+O\+L\+E\+\_\+\+R\+E\+D\+I\+R\+E\+C\+T\+\_\+\+T\+O\+\_\+\+S\+DK}}~1U
\item
\#define \mbox{\hyperlink{group__debugconsole_gaf8f85fd102e4aedcee3d061dc2d3e0c2}{D\+E\+B\+U\+G\+C\+O\+N\+S\+O\+L\+E\+\_\+\+D\+I\+S\+A\+B\+LE}}~2U
\item
\mbox{\Hypertarget{group__debugconsole_ga7fdd594efdc8374ecd8684ed758d6cec}\label{group__debugconsole_ga7fdd594efdc8374ecd8684ed758d6cec}}
\#define \mbox{\hyperlink{group__debugconsole_ga7fdd594efdc8374ecd8684ed758d6cec}{S\+D\+K\+\_\+\+D\+E\+B\+U\+G\+C\+O\+N\+S\+O\+LE}}~1U
\begin{DoxyCompactList}\small\item\em Definition to select sdk or toolchain printf, scanf. The macro only support to be redefined in project setting. \end{DoxyCompactList}\item
\mbox{\Hypertarget{group__debugconsole_gae225e7555c0f73bb3b705a22fe8b71e4}\label{group__debugconsole_gae225e7555c0f73bb3b705a22fe8b71e4}}
\#define \mbox{\hyperlink{group__debugconsole_gae225e7555c0f73bb3b705a22fe8b71e4}{S\+D\+K\+\_\+\+D\+E\+B\+U\+G\+C\+O\+N\+S\+O\+L\+E\+\_\+\+U\+A\+RT}}
\begin{DoxyCompactList}\small\item\em whether provide low level IO implementation to toolchain printf and scanf. For example, within M\+C\+U\+Xpresso, if the macro S\+D\+K\+\_\+\+D\+E\+B\+U\+G\+C\+O\+N\+S\+O\+L\+E\+\_\+\+U\+A\+RT is defined, {\bfseries{sys\+\_\+write and \+\_\+\+\_\+sys\+\_\+readc will be used when \+\_\+\+\_\+\+R\+E\+D\+L\+IB}} is defined; \+\_\+write and \+\_\+read will be used in other cases. If the macro S\+D\+K\+\_\+\+D\+E\+B\+U\+G\+C\+O\+N\+S\+O\+L\+E\+\_\+\+U\+A\+RT is not defined, the semihost will be used. \end{DoxyCompactList}\item
\#define \mbox{\hyperlink{group__debugconsole_gae1649fc947ca37a86917a08354f48d1a}{P\+R\+I\+N\+TF}}~\mbox{\hyperlink{group__debugconsole_ga1019139ac1c69fd62687250130c6ca7f}{Dbg\+Console\+\_\+\+Printf}}
\begin{DoxyCompactList}\small\item\em Definition to select redirect toolchain printf, scanf to uart or not. \end{DoxyCompactList}\item
\mbox{\Hypertarget{group__debugconsole_ga1799711cd7a7b727846cfe2068f67c66}\label{group__debugconsole_ga1799711cd7a7b727846cfe2068f67c66}}
\#define {\bfseries S\+C\+A\+NF}~\mbox{\hyperlink{group__debugconsole_ga6d87d10b03e4aaf8464206fe3829dd28}{Dbg\+Console\+\_\+\+Scanf}}
\item
\mbox{\Hypertarget{group__debugconsole_ga0dc96cafe08557356d4e7f32e850531a}\label{group__debugconsole_ga0dc96cafe08557356d4e7f32e850531a}}
\#define {\bfseries P\+U\+T\+C\+H\+AR}~\mbox{\hyperlink{group__debugconsole_gada572d86a06f028b5b1a5d0440f683e3}{Dbg\+Console\+\_\+\+Putchar}}
\item
\mbox{\Hypertarget{group__debugconsole_ga919615abb35a234b304cfeb179cd41de}\label{group__debugconsole_ga919615abb35a234b304cfeb179cd41de}}
\#define {\bfseries G\+E\+T\+C\+H\+AR}~\mbox{\hyperlink{group__debugconsole_ga11898c5015274863741c4f3f4d9edc08}{Dbg\+Console\+\_\+\+Getchar}}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item
\mbox{\Hypertarget{group__debugconsole_ga85e7bd4e26348dd4b87e4c3a600868c9}\label{group__debugconsole_ga85e7bd4e26348dd4b87e4c3a600868c9}}
typedef void($\ast$ \mbox{\hyperlink{group__debugconsole_ga85e7bd4e26348dd4b87e4c3a600868c9}{printf\+Cb}}) (char $\ast$buf, int32\+\_\+t $\ast$indicator, char val, int len)
\begin{DoxyCompactList}\small\item\em A function pointer which is used when format printf log. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item
int \mbox{\hyperlink{group__debugconsole_ga50b9d66ac2ba38b23b99dac4e81f4b8c}{Str\+Format\+Printf}} (const char $\ast$fmt, va\+\_\+list ap, char $\ast$buf, \mbox{\hyperlink{group__debugconsole_ga85e7bd4e26348dd4b87e4c3a600868c9}{printf\+Cb}} cb)
\begin{DoxyCompactList}\small\item\em This function outputs its parameters according to a formatted string. \end{DoxyCompactList}\item
int \mbox{\hyperlink{group__debugconsole_gafe318e0fd8d0f6ebad0c8a871a7a196f}{Str\+Format\+Scanf}} (const char $\ast$line\+\_\+ptr, char $\ast$format, va\+\_\+list args\+\_\+ptr)
\begin{DoxyCompactList}\small\item\em Converts an input line of A\+S\+C\+II characters based upon a provided string format. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item
serial\+\_\+handle\+\_\+t \mbox{\hyperlink{group__debugconsole_gaad3c4240a1364156a239471ccdb9aa0b}{g\+\_\+serial\+Handle}}
\end{DoxyCompactItemize}
\subsection*{Initialization}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{group__ksdk__common_gaaabdaf7ee58ca7269bd4bf24efcde092}{status\+\_\+t}} \mbox{\hyperlink{group__debugconsole_ga12e50ee0450679fd8ca950a89338d366}{Dbg\+Console\+\_\+\+Init}} (uint8\+\_\+t instance, uint32\+\_\+t baud\+Rate, \mbox{\hyperlink{group__serialmanager_gaa7dc5f93aacda72d14bb0fa66b0401f3}{serial\+\_\+port\+\_\+type\+\_\+t}} device, uint32\+\_\+t clk\+Src\+Freq)
\begin{DoxyCompactList}\small\item\em Initializes the peripheral used for debug messages. \end{DoxyCompactList}\item
\mbox{\hyperlink{group__ksdk__common_gaaabdaf7ee58ca7269bd4bf24efcde092}{status\+\_\+t}} \mbox{\hyperlink{group__debugconsole_gad80e7aa70bbb3fce1a9168621372833e}{Dbg\+Console\+\_\+\+Deinit}} (void)
\begin{DoxyCompactList}\small\item\em De-\/initializes the peripheral used for debug messages. \end{DoxyCompactList}\item
int \mbox{\hyperlink{group__debugconsole_ga1019139ac1c69fd62687250130c6ca7f}{Dbg\+Console\+\_\+\+Printf}} (const char $\ast$format\+String,...)
\begin{DoxyCompactList}\small\item\em Writes formatted output to the standard output stream. \end{DoxyCompactList}\item
int \mbox{\hyperlink{group__debugconsole_gada572d86a06f028b5b1a5d0440f683e3}{Dbg\+Console\+\_\+\+Putchar}} (int ch)
\begin{DoxyCompactList}\small\item\em Writes a character to stdout. \end{DoxyCompactList}\item
int \mbox{\hyperlink{group__debugconsole_ga6d87d10b03e4aaf8464206fe3829dd28}{Dbg\+Console\+\_\+\+Scanf}} (char $\ast$format\+String,...)
\begin{DoxyCompactList}\small\item\em Reads formatted data from the standard input stream. \end{DoxyCompactList}\item
int \mbox{\hyperlink{group__debugconsole_ga11898c5015274863741c4f3f4d9edc08}{Dbg\+Console\+\_\+\+Getchar}} (void)
\begin{DoxyCompactList}\small\item\em Reads a character from standard input. \end{DoxyCompactList}\item
\mbox{\hyperlink{group__ksdk__common_gaaabdaf7ee58ca7269bd4bf24efcde092}{status\+\_\+t}} \mbox{\hyperlink{group__debugconsole_ga3194467c3dae6c5015b8b29c3cc1db1e}{Dbg\+Console\+\_\+\+Flush}} (void)
\begin{DoxyCompactList}\small\item\em Debug console flush. \end{DoxyCompactList}\end{DoxyCompactItemize}

\subsection{Detailed Description}

\subsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__debugconsole_gaf8f85fd102e4aedcee3d061dc2d3e0c2}\label{group__debugconsole_gaf8f85fd102e4aedcee3d061dc2d3e0c2}}
\index{Debugconsole@{Debugconsole}!DEBUGCONSOLE\_DISABLE@{DEBUGCONSOLE\_DISABLE}}
\index{DEBUGCONSOLE\_DISABLE@{DEBUGCONSOLE\_DISABLE}!Debugconsole@{Debugconsole}}
\subsubsection{\texorpdfstring{DEBUGCONSOLE\_DISABLE}{DEBUGCONSOLE\_DISABLE}}
{\footnotesize\ttfamily \#define D\+E\+B\+U\+G\+C\+O\+N\+S\+O\+L\+E\+\_\+\+D\+I\+S\+A\+B\+LE~2U}

Disable debugconsole function. \mbox{\Hypertarget{group__debugconsole_gac33031f28afa29dc8fe1718bbc86ee23}\label{group__debugconsole_gac33031f28afa29dc8fe1718bbc86ee23}}
\index{Debugconsole@{Debugconsole}!DEBUGCONSOLE\_REDIRECT\_TO\_SDK@{DEBUGCONSOLE\_REDIRECT\_TO\_SDK}}
\index{DEBUGCONSOLE\_REDIRECT\_TO\_SDK@{DEBUGCONSOLE\_REDIRECT\_TO\_SDK}!Debugconsole@{Debugconsole}}
\subsubsection{\texorpdfstring{DEBUGCONSOLE\_REDIRECT\_TO\_SDK}{DEBUGCONSOLE\_REDIRECT\_TO\_SDK}}
{\footnotesize\ttfamily \#define D\+E\+B\+U\+G\+C\+O\+N\+S\+O\+L\+E\+\_\+\+R\+E\+D\+I\+R\+E\+C\+T\+\_\+\+T\+O\+\_\+\+S\+DK~1U}

Select S\+DK version printf, scanf. \mbox{\Hypertarget{group__debugconsole_gabb8f0adbec02f143b4f84d2eb42126df}\label{group__debugconsole_gabb8f0adbec02f143b4f84d2eb42126df}}
\index{Debugconsole@{Debugconsole}!DEBUGCONSOLE\_REDIRECT\_TO\_TOOLCHAIN@{DEBUGCONSOLE\_REDIRECT\_TO\_TOOLCHAIN}}
\index{DEBUGCONSOLE\_REDIRECT\_TO\_TOOLCHAIN@{DEBUGCONSOLE\_REDIRECT\_TO\_TOOLCHAIN}!Debugconsole@{Debugconsole}}
\subsubsection{\texorpdfstring{DEBUGCONSOLE\_REDIRECT\_TO\_TOOLCHAIN}{DEBUGCONSOLE\_REDIRECT\_TO\_TOOLCHAIN}}
{\footnotesize\ttfamily \#define D\+E\+B\+U\+G\+C\+O\+N\+S\+O\+L\+E\+\_\+\+R\+E\+D\+I\+R\+E\+C\+T\+\_\+\+T\+O\+\_\+\+T\+O\+O\+L\+C\+H\+A\+IN~0U}

Definition select redirect toolchain printf, scanf to uart or not.

Select toolchain printf and scanf. \mbox{\Hypertarget{group__debugconsole_gae1649fc947ca37a86917a08354f48d1a}\label{group__debugconsole_gae1649fc947ca37a86917a08354f48d1a}}
\index{Debugconsole@{Debugconsole}!PRINTF@{PRINTF}}
\index{PRINTF@{PRINTF}!Debugconsole@{Debugconsole}}
\subsubsection{\texorpdfstring{PRINTF}{PRINTF}}
{\footnotesize\ttfamily \#define P\+R\+I\+N\+TF~\mbox{\hyperlink{group__debugconsole_ga1019139ac1c69fd62687250130c6ca7f}{Dbg\+Console\+\_\+\+Printf}}}

Definition to select redirect toolchain printf, scanf to uart or not.

if S\+D\+K\+\_\+\+D\+E\+B\+U\+G\+C\+O\+N\+S\+O\+LE defined to 0,it represents select toolchain printf, scanf. if S\+D\+K\+\_\+\+D\+E\+B\+U\+G\+C\+O\+N\+S\+O\+LE defined to 1,it represents select S\+DK version printf, scanf. if S\+D\+K\+\_\+\+D\+E\+B\+U\+G\+C\+O\+N\+S\+O\+LE defined to 2,it represents disable debugconsole function.

\subsection{Function Documentation}
\mbox{\Hypertarget{group__debugconsole_gad80e7aa70bbb3fce1a9168621372833e}\label{group__debugconsole_gad80e7aa70bbb3fce1a9168621372833e}}
\index{Debugconsole@{Debugconsole}!DbgConsole\_Deinit@{DbgConsole\_Deinit}}
\index{DbgConsole\_Deinit@{DbgConsole\_Deinit}!Debugconsole@{Debugconsole}}
\subsubsection{\texorpdfstring{DbgConsole\_Deinit()}{DbgConsole\_Deinit()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__ksdk__common_gaaabdaf7ee58ca7269bd4bf24efcde092}{status\+\_\+t}} Dbg\+Console\+\_\+\+Deinit (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

De-\/initializes the peripheral used for debug messages.

Call this function to disable debug log messages to be output via the specified peripheral initialized by the serial manager module.

\begin{DoxyReturn}{Returns}
Indicates whether de-\/initialization was successful or not.
\end{DoxyReturn}
\mbox{\Hypertarget{group__debugconsole_ga3194467c3dae6c5015b8b29c3cc1db1e}\label{group__debugconsole_ga3194467c3dae6c5015b8b29c3cc1db1e}}
\index{Debugconsole@{Debugconsole}!DbgConsole\_Flush@{DbgConsole\_Flush}}
\index{DbgConsole\_Flush@{DbgConsole\_Flush}!Debugconsole@{Debugconsole}}
\subsubsection{\texorpdfstring{DbgConsole\_Flush()}{DbgConsole\_Flush()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__ksdk__common_gaaabdaf7ee58ca7269bd4bf24efcde092}{status\+\_\+t}} Dbg\+Console\+\_\+\+Flush (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Debug console flush.

Call this function to wait the tx buffer empty. If interrupt transfer is using, make sure the global I\+RQ is enable before call this function This function should be called when 1, before enter power down mode 2, log is required to print to terminal immediately \begin{DoxyReturn}{Returns}
Indicates whether wait idle was successful or not.
\end{DoxyReturn}
\mbox{\Hypertarget{group__debugconsole_ga11898c5015274863741c4f3f4d9edc08}\label{group__debugconsole_ga11898c5015274863741c4f3f4d9edc08}}
\index{Debugconsole@{Debugconsole}!DbgConsole\_Getchar@{DbgConsole\_Getchar}}
\index{DbgConsole\_Getchar@{DbgConsole\_Getchar}!Debugconsole@{Debugconsole}}
\subsubsection{\texorpdfstring{DbgConsole\_Getchar()}{DbgConsole\_Getchar()}}
{\footnotesize\ttfamily int Dbg\+Console\+\_\+\+Getchar (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Reads a character from standard input.

Call this function to read a character from standard input.

\begin{DoxyNote}{Note}
Due the limitation in the BM O\+SA environment (C\+PU is blocked in the function, other tasks will not be scheduled), the function cannot be used when the D\+E\+B\+U\+G\+\_\+\+C\+O\+N\+S\+O\+L\+E\+\_\+\+T\+R\+A\+N\+S\+F\+E\+R\+\_\+\+N\+O\+N\+\_\+\+B\+L\+O\+C\+K\+I\+NG is set in the BM O\+SA environment. And an error is returned when the function called in this case. The suggestion is that polling the non-\/blocking function Dbg\+Console\+\_\+\+Try\+Getchar to get the input char.
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Returns the character read.
\end{DoxyReturn}
\mbox{\Hypertarget{group__debugconsole_ga12e50ee0450679fd8ca950a89338d366}\label{group__debugconsole_ga12e50ee0450679fd8ca950a89338d366}}
\index{Debugconsole@{Debugconsole}!DbgConsole\_Init@{DbgConsole\_Init}}
\index{DbgConsole\_Init@{DbgConsole\_Init}!Debugconsole@{Debugconsole}}
\subsubsection{\texorpdfstring{DbgConsole\_Init()}{DbgConsole\_Init()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__ksdk__common_gaaabdaf7ee58ca7269bd4bf24efcde092}{status\+\_\+t}} Dbg\+Console\+\_\+\+Init (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{instance,  }\item[{uint32\+\_\+t}]{baud\+Rate,  }\item[{\mbox{\hyperlink{group__serialmanager_gaa7dc5f93aacda72d14bb0fa66b0401f3}{serial\+\_\+port\+\_\+type\+\_\+t}}}]{device,  }\item[{uint32\+\_\+t}]{clk\+Src\+Freq }\end{DoxyParamCaption})}

Initializes the peripheral used for debug messages.

Call this function to enable debug log messages to be output via the specified peripheral initialized by the serial manager module. After this function has returned, stdout and stdin are connected to the selected peripheral.

\begin{DoxyParams}{Parameters}
{\em instance} & The instance of the module. \\
\hline
{\em baud\+Rate} & The desired baud rate in bits per second. \\
\hline
{\em device} & Low level device type for the debug console, can be one of the following. \begin{DoxyItemize}
\item k\+Serial\+Port\+\_\+\+Uart, \item k\+Serial\+Port\+\_\+\+Usb\+Cdc \item k\+Serial\+Port\+\_\+\+Usb\+Cdc\+Virtual. \end{DoxyItemize}
\\
\hline
{\em clk\+Src\+Freq} & Frequency of peripheral source clock.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Indicates whether initialization was successful or not.
\end{DoxyReturn}

\begin{DoxyRetVals}{Return values}
{\em k\+Status\+\_\+\+Success} & Execution successfully \\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__debugconsole_ga1019139ac1c69fd62687250130c6ca7f}\label{group__debugconsole_ga1019139ac1c69fd62687250130c6ca7f}}
\index{Debugconsole@{Debugconsole}!DbgConsole\_Printf@{DbgConsole\_Printf}}
\index{DbgConsole\_Printf@{DbgConsole\_Printf}!Debugconsole@{Debugconsole}}
\subsubsection{\texorpdfstring{DbgConsole\_Printf()}{DbgConsole\_Printf()}}
{\footnotesize\ttfamily int Dbg\+Console\+\_\+\+Printf (\begin{DoxyParamCaption}\item[{const char $\ast$}]{format\+String,  }\item[{}]{... }\end{DoxyParamCaption})}

Writes formatted output to the standard output stream.

Call this function to write a formatted output to the standard output stream.

\begin{DoxyParams}{Parameters}
{\em format\+String} & Format control string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns the number of characters printed or a negative value if an error occurs.
\end{DoxyReturn}
\mbox{\Hypertarget{group__debugconsole_gada572d86a06f028b5b1a5d0440f683e3}\label{group__debugconsole_gada572d86a06f028b5b1a5d0440f683e3}}
\index{Debugconsole@{Debugconsole}!DbgConsole\_Putchar@{DbgConsole\_Putchar}}
\index{DbgConsole\_Putchar@{DbgConsole\_Putchar}!Debugconsole@{Debugconsole}}
\subsubsection{\texorpdfstring{DbgConsole\_Putchar()}{DbgConsole\_Putchar()}}
{\footnotesize\ttfamily int Dbg\+Console\+\_\+\+Putchar (\begin{DoxyParamCaption}\item[{int}]{ch }\end{DoxyParamCaption})}

Writes a character to stdout.

Call this function to write a character to stdout.

\begin{DoxyParams}{Parameters}
{\em ch} & Character to be written. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns the character written.
\end{DoxyReturn}
\mbox{\Hypertarget{group__debugconsole_ga6d87d10b03e4aaf8464206fe3829dd28}\label{group__debugconsole_ga6d87d10b03e4aaf8464206fe3829dd28}}
\index{Debugconsole@{Debugconsole}!DbgConsole\_Scanf@{DbgConsole\_Scanf}}
\index{DbgConsole\_Scanf@{DbgConsole\_Scanf}!Debugconsole@{Debugconsole}}
\subsubsection{\texorpdfstring{DbgConsole\_Scanf()}{DbgConsole\_Scanf()}}
{\footnotesize\ttfamily int Dbg\+Console\+\_\+\+Scanf (\begin{DoxyParamCaption}\item[{char $\ast$}]{format\+String,  }\item[{}]{... }\end{DoxyParamCaption})}

Reads formatted data from the standard input stream.

Call this function to read formatted data from the standard input stream.

\begin{DoxyNote}{Note}
Due the limitation in the BM O\+SA environment (C\+PU is blocked in the function, other tasks will not be scheduled), the function cannot be used when the D\+E\+B\+U\+G\+\_\+\+C\+O\+N\+S\+O\+L\+E\+\_\+\+T\+R\+A\+N\+S\+F\+E\+R\+\_\+\+N\+O\+N\+\_\+\+B\+L\+O\+C\+K\+I\+NG is set in the BM O\+SA environment. And an error is returned when the function called in this case. The suggestion is that polling the non-\/blocking function Dbg\+Console\+\_\+\+Try\+Getchar to get the input char.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em format\+String} & Format control string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns the number of fields successfully converted and assigned.
\end{DoxyReturn}
\mbox{\Hypertarget{group__debugconsole_ga50b9d66ac2ba38b23b99dac4e81f4b8c}\label{group__debugconsole_ga50b9d66ac2ba38b23b99dac4e81f4b8c}}
\index{Debugconsole@{Debugconsole}!StrFormatPrintf@{StrFormatPrintf}}
\index{StrFormatPrintf@{StrFormatPrintf}!Debugconsole@{Debugconsole}}
\subsubsection{\texorpdfstring{StrFormatPrintf()}{StrFormatPrintf()}}
{\footnotesize\ttfamily int Str\+Format\+Printf (\begin{DoxyParamCaption}\item[{const char $\ast$}]{fmt,  }\item[{va\+\_\+list}]{ap,  }\item[{char $\ast$}]{buf,  }\item[{\mbox{\hyperlink{group__debugconsole_ga85e7bd4e26348dd4b87e4c3a600868c9}{printf\+Cb}}}]{cb }\end{DoxyParamCaption})}

This function outputs its parameters according to a formatted string.

\begin{DoxyNote}{Note}
I/O is performed by calling given function pointer using following ($\ast$func\+\_\+ptr)(c);
\end{DoxyNote}

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em fmt} & Format string for printf. \\
\hline
\mbox{\texttt{ in}}  & {\em ap} & Arguments to printf. \\
\hline
\mbox{\texttt{ in}}  & {\em buf} & pointer to the buffer \\
\hline
 & {\em cb} & print callbck function pointer\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Number of characters to be print
\end{DoxyReturn}
brief This function outputs its parameters according to a formatted string.

note I/O is performed by calling given function pointer using following ($\ast$func\+\_\+ptr)(c);

param\mbox{[}in\mbox{]} fmt\+\_\+ptr Format string for printf. param\mbox{[}in\mbox{]} args\+\_\+ptr Arguments to printf. param\mbox{[}in\mbox{]} buf pointer to the buffer param cb print callback function pointer

return Number of characters to be print \mbox{\Hypertarget{group__debugconsole_gafe318e0fd8d0f6ebad0c8a871a7a196f}\label{group__debugconsole_gafe318e0fd8d0f6ebad0c8a871a7a196f}}
\index{Debugconsole@{Debugconsole}!StrFormatScanf@{StrFormatScanf}}
\index{StrFormatScanf@{StrFormatScanf}!Debugconsole@{Debugconsole}}
\subsubsection{\texorpdfstring{StrFormatScanf()}{StrFormatScanf()}}
{\footnotesize\ttfamily int Str\+Format\+Scanf (\begin{DoxyParamCaption}\item[{const char $\ast$}]{line\+\_\+ptr,  }\item[{char $\ast$}]{format,  }\item[{va\+\_\+list}]{args\+\_\+ptr }\end{DoxyParamCaption})}

Converts an input line of A\+S\+C\+II characters based upon a provided string format.

\begin{DoxyParams}[1]{Parameters}


text:
\documentclass[a4,11pt]{$documentclass$}
\usepackage[bahasa]{babel}
\usepackage[T1]{fontenc}
\usepackage{tgpagella}
\usepackage{microtype}
\usepackage{booktabs}
\usepackage{framed}

% use upquote if available, for straight quotes in verbatim environments
\usepackage{upquote}

\usepackage[utf8]{inputenc}
\usepackage{eurosym}

$if(geometry)$
    \usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
$endif$

$if(listings)$
    \usepackage{listings}
$endif$

$if(highlighting-macros)$
    $highlighting-macros$
$endif$

$if(verbatim-in-note)$
    \usepackage{fancyvrb}
$endif$

$if(tables)$
    \usepackage{longtable}
$endif$

\usepackage{graphicx}
\usepackage{float}
\restylefloat{figure}

\usepackage[unicode=true]{hyperref}
\hypersetup{breaklinks=true,
            bookmarks=true,
            pdfauthor={$author-meta$},
            pdftitle={$title-meta$},
            colorlinks=true,
            urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$,
            linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$,
            pdfborder={0 0 0}}
\urlstyle{same}  % don't use monospace font for urls

$if(links-as-notes)$
    % Make links footnotes instead of hotlinks:
    \renewcommand{\href}[2]{#2\footnote{\url{#1}}}
$endif$

$if(strikeout)$
    \usepackage[normalem]{ulem}
    % avoid problems with \sout in headers with hyperref:
    \pdfstringdefDisableCommands{\renewcommand{\sout}{}}
$endif$

$if(numbersections)$
$else$
    \setcounter{secnumdepth}{0}
$endif$

$if(verbatim-in-note)$
    \VerbatimFootnotes % allows verbatim text in footnotes
$endif$

\usepackage{enumerate}

$if(title)$
\title{$title$}
$endif$
\author{$for(author)$$author$$sep$ \and $endfor$}
\date{$date$}

% Header and Footer
\usepackage{fancyhdr}
\pagestyle{fancy}
\pagenumbering{arabic}
\lhead{\itshape $title$}
\chead{}
\rhead{\itshape{\nouppercase{\leftmark}}}
$if(version)$
\lfoot{v$version$}
$endif$
\cfoot{}
\rfoot{\thepage}

% Judul Bab
\usepackage{titlesec}
\titleformat{\chapter}[hang]
    {\Large\bfseries}
    {\MakeUppercase{\chaptertitlename}\hspace{5pt}\thechapter\hspace{10pt}{\Huge{\textbar}}\hspace{5pt}}
    {0pt}
    {\Huge\bfseries}[\vspace{1ex}\titlerule]

$if(title)$
\title{$title$}
$endif$

\author{$for(author)$$author$$sep$ \and $endfor$}
\date{$date$}

$for(header-includes)$
    $header-includes$
$endfor$

\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}

\begin{document}

\begin{titlepage}

    \pagenumbering{gobble}

    \begin{center}

        { \huge \bfseries UNIVERSITAS GUNADARMA}\\[1cm]

        % Logo
        \includegraphics[width=2in, height=2in]{./gambar/logo}\\[1cm]

        { \Large \bfseries Praktikum Sistem Multimedia}\\[0.5cm]
        { \Large \bfseries $title$} \\[1cm]

        \begin{framed}

          \begin{tabular}{ l c l }
            NPM & : & 58412085 \\
            Nama  & : & {$author$} \\
            Kelas & : & 4IA04 \\
            Jurusan & : & Teknik Informatika \\
            PJ & : & Pintan \\
          \end{tabular}

        \end{framed}

        \textsc{\Large \normalfont Ditulis Guna Melengkapi Sebagian Syarat}\\[0.5cm]
        \textsc{\Large \normalfont Praktikum Sistem Multimedia Jenjang S1}\\[0.5cm]
        {\LARGE \bfseries Universitas Gunadarma}\\[0.5cm]
        {\LARGE \bfseries 2015}\\[0.5cm]

        \vfill

    \end{center}

\end{titlepage}

$for(include-before)$
    $include-before$
$endfor$

$if(toc)$
{
    \hypersetup{linkcolor=black}
    \tableofcontents
}
$endif$

\newpage
\pagenumbering{arabic}

$body$

$for(include-after)$
    $include-after$
$endfor$

\end{document}


text:
\hypertarget{sr__event__countdown_8cpp}{}\doxysection{smacc\+\_\+state\+\_\+reactor\+\_\+library/sr\+\_\+event\+\_\+countdown/src/sr\+\_\+event\+\_\+countdown/sr\+\_\+event\+\_\+countdown.cpp File Reference}
\label{sr__event__countdown_8cpp}\index{smacc\_state\_reactor\_library/sr\_event\_countdown/src/sr\_event\_countdown/sr\_event\_countdown.cpp@{smacc\_state\_reactor\_library/sr\_event\_countdown/src/sr\_event\_countdown/sr\_event\_countdown.cpp}}
{\ttfamily \#include $<$memory$>$}\newline
{\ttfamily \#include $<$smacc2/common.\+hpp$>$}\newline
{\ttfamily \#include $<$sr\+\_\+event\+\_\+countdown/sr\+\_\+event\+\_\+countdown.\+hpp$>$}\newline
Include dependency graph for sr\+\_\+event\+\_\+countdown.\+cpp\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{sr__event__countdown_8cpp__incl}
\end{center}
\end{figure}
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
 \mbox{\hyperlink{namespacesmacc2}{smacc2}}
\item
 \mbox{\hyperlink{namespacesmacc2_1_1state__reactors}{smacc2\+::state\+\_\+reactors}}
\end{DoxyCompactItemize}


text:
% 设置强调内容的格式
\DeclareTextFontCommand{\emph}{\bfseries\em}

% 插入对应专业的body和post
\renewcommand{\inputbody}[1]
{
    \checkandinput{body}{#1}
}

% 正文内的居中标题格式，用于作者简历等。（字号为小3号）
\newcommand{\chaptercenter}[1]
{
    \phantomsection
    \addcontentsline{toc}{chapter}{#1}
    \markboth{#1}{#1}
    \begin{center}
        \vspace*{-6pt}
        \fangsong\zihao{-3}\bfseries{#1}
        \vspace*{6pt}
    \end{center}
    \hspace*{1.5em}
}

% previous page中的居中标题格式，用于致谢、摘要等。（字号为3号）
\newcommand{\chapterprev}[1]
{
    \phantomsection
    \addcontentsline{toc}{chapter}{#1}
    \markboth{#1}{#1}
    \begin{center}
        \vspace*{-6pt}
        \fangsong\zihao{3}\bfseries{#1}
        \vspace*{6pt}
    \end{center}
    \hspace*{1.5em}
}

% 更改术语表标题并居中显示
\renewcommand{\nomname}{\makebox[\linewidth]{缩写、符号清单、术语表}}
% 中文术语表
\newcommand{\nomdescr}[1]{
    \parbox[t]{8.5cm}{\linespread{1}\raggedright\strut #1 \strut}
}
\newcommand{\nomdescrchn}[1]{
    \hfill\parbox[t]{5cm}{\linespread{1}\strut #1 \strut}\ignorespaces
}
\newcommand{\nomchn}[4][]{
    \nomenclature[#1]{#2}{
        \nomdescr{#3}
        \nomdescrchn{#4}
    }
}
\setlength{\nomitemsep}{2pt}

% 数学公式
\newcommand{\argmin}{\mathop{\mathrm{arg\,min}}}
\newcommand{\argmax}{\mathop{\mathrm{arg\,max}}}


text:
% ****************************** Custom Margin *********************************

% Add `custommargin' in the document class options to use this section
% Set {innerside margin / outerside margin / topmargin / bottom margin}  and
% other page dimensions
\ifsetCustomMargin
  \RequirePackage[left=23mm,right=23mm,top=27mm,bottom=22mm]{geometry}
%  \RequirePackage[left=37mm,right=30mm,top=35mm,bottom=30mm]{geometry}
  %\setFancyHdr % To apply fancy header after geometry package is loaded
\fi

% Define paragraph settings
\setlength{\parskip}{0.7em}  % space between paragraphs
\setlength{\parindent}{0pt}  % indentation

% Ragged bottom avoids extra whitespaces between paragraphs
\raggedbottom

% To remove the excess top spacing for enumeration, list and description
%\usepackage{enumitem}
%\setlist[enumerate,itemize,description]{topsep=0em}

% To remove the excess top spacing for titles
\usepackage{titlesec}
\titleformat{\chapter}[display]{\normalfont\huge\bfseries}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
\titleformat*{\section}{\LARGE\bfseries}
\titleformat*{\subsection}{\Large\bfseries}
\titleformat*{\subsubsection}{\large\bfseries}
\titleformat*{\paragraph}{\large\bfseries}

\titlespacing*{\chapter}{0pt}{-30pt}{20pt}
% \titlespacing*{\section}{0pt}{0pt}{0pt}
% \titlespacing*{\subsection}{0pt}{0pt}{0pt}
% \titlespacing*{\subsubsection}{0pt}{0pt}{0pt}

% Don't change this
% \titlespacing*{\section}{0pt}{12pt plus 4pt minus 2pt}{0pt plus 2pt minus 2pt}
% \titlespacing*{\subsection}{0pt}{12pt plus 4pt minus 2pt}{0pt plus 2pt minus 2pt}
% \titlespacing*{\subsubsection}{0pt}{12pt plus 4pt minus 2pt}{0pt plus 2pt minus 2pt}

% ************************* Algorithms and Pseudocode **************************
\usepackage{algorithm}
%\usepackage{algpseudocode}
%\usepackage[noend]{algpseudocode}

% ********************Captions and Hyperreferencing / URL **********************

% to support older versions of captions.sty
%\renewcommand{\figurename}{Fig.}

% Captions for figures and subfigures
%\RequirePackage[small,bf]{caption} % This makes captions of figures use a boldfaced small font.
%\RequirePackage[labelsep=space,tableposition=top]{caption}
\RequirePackage[font={small}, margin=20pt, labelfont=bf]{caption}
\RequirePackage[font={footnotesize}, margin=20pt]{subcaption}

% Classic Draft Mode
\ifsetDraftClassic
\DeclareCaptionFormat{empty}{}
\captionsetup{format=empty}
%\captionsetup{format=empty,aboveskip=0pt,belowskip=0pt}
\fi

% *************************** Graphics and figures *****************************

%\usepackage{rotating}
%\usepackage{wrapfig}
\usepackage[section]{placeins}

% Uncomment the following two lines to force Latex to place the figure.
% Use [H] when including graphics. Note 'H' instead of 'h'
% \usepackage{float}
% \restylefloat{figure}

% Subcaption package is also available in the sty folder you can use that by
% uncommenting the following line
% This is for people stuck with older versions of texlive
%\usepackage{sty/caption/subcaption}
\usepackage{subcaption}

% ********************************** Tables ************************************
\usepackage{booktabs} % For professional looking tables
\usepackage{multirow}

\usepackage{multicol}
\usepackage{longtable}
\usepackage{tabularx}

% *********************************** SI Units *********************************

%\usepackage{siunitx}

% ******************************* Line Spacing *********************************

% Default is one-half line spacing as per the University guidelines

% \doublespacing
\onehalfspacing
% \singlespacing

% ************************ Formatting / Footnote *******************************

% Don't break enumeration (etc.) across pages in an ugly manner (default 10000)
%\clubpenalty=500
%\widowpenalty=500

%\usepackage[perpage]{footmisc} %Range of footnote options

% *************************** Graphical models ********************

\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{bayesnet}

% *************************** Bibliography  and References ********************

% References
%\usepackage{hyperref}             % Hyperlink in references
\usepackage[nameinlink]{cleveref}  % Clever references (Cref)

% Per-chapter numbering of figures
\usepackage{chngcntr}
\counterwithin{figure}{chapter}

% Bibliography
% \RequirePackage[backend=biber, style=numeric-comp, citestyle=numeric, sorting=nty, natbib=true]{biblatex}
\RequirePackage[hyperref=true, url=false, backref=false, backend=biber, style=numeric,giveninits=true]{biblatex}

% Add bib resources
\addbibresource{references/references_chapter1.bib}
\addbibresource{references/references_chapter2.bib}
\addbibresource{references/references_chapter3.bib}
\addbibresource{references/references_chapter4.bib}
\addbibresource{references/references_chapter5.bib}

% changes the default name `Bibliography` -> `References'
% \renewcommand{\bibname}{References}

% ******************************************************************************
% ************************* User Defined Commands ******************************
% ******************************************************************************

% *********** To change the name of Table of Contents / LOF and LOT ************

%\renewcommand{\contentsname}{My Table of Contents}
%\renewcommand{\listfigurename}{My List of Figures}
%\renewcommand{\listtablename}{My List of Tables}

% ********************** TOC depth and numbering depth *************************

% Spacing in the TOC
\usepackage{tocloft}
\renewcommand\cftchapafterpnum{\vskip1pt}
\renewcommand\cftsecafterpnum{\vskip1pt}

% Depth in the TOC
% The sectioning levels have the following numbers:
% -1 part     1 section     3 subsubsection  5 subparagraph
%  0 chapter  2 subsection  4 paragraph

% The "tocdepth" value determines to which level the sectioning commands are printed in the ToC
\setcounter{tocdepth}{2}  % Default was 2

% The "secnumdepth" value determines up to what level the sectioning titles are numbered
\setcounter{secnumdepth}{2}  % Default was 2

% ******************************* Nomenclature *********************************

% To change the name of the Nomenclature section, uncomment the following line

%\renewcommand{\nomname}{Symbols}

% ********************************* Appendix ***********************************

% The default value of both \appendixtocname and \appendixpagename is `Appendices'. These names can all be changed via:

\renewcommand{\appendixtocname}{List of appendices}
\renewcommand{\appendixname}{Appendix}

% *********************** Configure Draft Mode **********************************

% Uncomment to disable figures in `draft'
%\setkeys{Gin}{draft=true}  % set draft to false to enable figures in `draft'

% These options are active only during the draft mode
% Default text is "Draft"
%\SetDraftText{DRAFT}

% Default Watermark location is top. Location (top/bottom)
%\SetDraftWMPosition{bottom}

% Draft Version - default is v1.0
%\SetDraftVersion{v1.1}

% Draft Text grayscale value (should be between 0-black and 1-white)
% Default value is 0.75
%\SetDraftGrayScale{0.8}

% ******************************** Todo Notes **********************************
%% Uncomment the following lines to have todonotes.

%\ifsetDraft
%	\usepackage[colorinlistoftodos]{todonotes}
%	\newcommand{\mynote}[1]{\todo[author=kks32,size=\small,inline,color=green!40]{#1}}
%\else
%	\newcommand{\mynote}[1]{}
%	\newcommand{\listoftodos}{}
%\fi

% Example todo: \mynote{Hey! I have a note}

% ******************* Better enumeration *************
\usepackage{enumitem}


text:
\documentclass[a4paper,10pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage{dirtree}
\usepackage[margin=1in]{geometry}
\usepackage[UKenglish]{babel}
\usepackage[fixlanguage]{babelbib}
\usepackage[square,sort,nonamebreak,comma]{natbib}  % citação bibliográfica alpha (alpha-ime.bst)
\usepackage{listings}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{hyperref}

\title{iModel: Icosahedral grid tools for geosphysical fluid dynamics modelling}
\author{Pedro S. Peixoto (pedrosp@ime.usp.br)}

\begin{document}
\maketitle

The software is a pack of tools to work with icosahedral and Voronoi geodesic grid based geophysical fluid models. It contains
\begin{itemize}
 \item Grid generator and grid tools, including grid optimization
 \item Interpolation and vector reconstruction pack
  \item A Multigrid solver
 \item A transport model
 \item A shallow water model
\end{itemize}

This code is mainly for research and educational purposes. It is in constant change and has not been tested for all its configurations possibilities.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY. See the GNU General Public License for more details.

For references check my website: \url{www.ime.usp.br/~pedrosp}. Do not hesitate to contact me in case of problems or doubts. Please contact me if you wish to have pre-calculated optimized grids, since they are very large, they are not shipped with the code.

\section{Requirements}

The software is very much self contained and does not rely on extra third party software other than the compiler. It is built for \textbf{linux platforms}, but may be run on Windows via Cygwin.

It was designed to run with very basic Fortran 90 coding, therefore tends to runs on any version of \textbf{GNU gfortran} compilers or \textbf{Intel ifort} compilers. Intel compiler will chosen as default if installed.

The outputs of the program are either text files or maps with binary data files. The maps are outputted to be read and graphed using \textbf{Generic Mapping Tool} Version 4.x.x, and several scripts for this purpose are provided. It is also possible to use \textbf{Generic Mapping Tool} Version 5.x.x, with the scripts with *gmt5.sh in gmt/ folder. GMT 5.x.x can be installed by ``apt-get'' in Ubuntu and Debian systems very easily.

Some output data can be easily analysed in Matlab, but since they are outputted as text files, any other software may be used.

The code is not very optimized, but uses openmp shared memory parallelism in many places.

\section{Code structure}

Main files of program

\dirtree{%
.1 imodel/ \hspace{1cm}  \begin{minipage}[t]{10cm}
                  Makefile \\
		  readme{.}txt\\
                \end{minipage}.
.2 bin/ \hspace{1cm}  \begin{minipage}[t]{10cm}
          This directory holds executable files (binary files)\\
          \end{minipage}.
.2 data/ \hspace{1cm}  \begin{minipage}[t]{10cm}
          Directory where output from imodel is written\\
          \end{minipage}.
.2 doc/ \hspace{1cm}  \begin{minipage}[t]{10cm}
          Directory for documentation\\
          \end{minipage}.
.2 gmt/ \hspace{1cm}  \begin{minipage}[t]{10cm}
          Generic Mapping Tool (GMT) scripts\\
          \end{minipage}.
.3 {.}sh \hspace{1cm}  \begin{minipage}[t]{10cm}
          GMT bash scripts\\
	  the main one being plot{.}sh for plotting grids, scalar and vector fields\\
	  anin{.}sh may be used to create animations\\
	  \end{minipage}.
.3 {.cpt} \hspace{1cm}  \begin{minipage}[t]{10cm}
	    Color pallets \\
          \end{minipage}.
.2 graphs/ \hspace{1cm}  \begin{minipage}[t]{10cm}
          Output directory for GMT maps (eps and pdf)\\
          \end{minipage}.
.2 grid/ \hspace{1cm}  \begin{minipage}[t]{10cm}
          Directory for all grid files\\
	  iModel will automatic save and load the grids from this directory\\
	  GMT will read grid files from this directory to draw figures of grids\\
          \end{minipage}.
.3 {.}dat \hspace{1cm}  \begin{minipage}[t]{10cm}
          Fortran binary files with saved grid information to be loaded\\
	  \end{minipage}.
.3 {.gmt} \hspace{1cm}  \begin{minipage}[t]{10cm}
	    Text grid files for GMT to read and graph\\
          \end{minipage}.
.2 matlab/ \hspace{1cm}  \begin{minipage}[t]{10cm}
          Directory for matlab scripts\\
          \end{minipage}.
.2 par/ \hspace{1cm}  \begin{minipage}[t]{10cm}
          Directory for input parameter files
          \end{minipage}.
.3 mesh{.}par \hspace{1cm}  \begin{minipage}[t]{10cm}
          Parameters for grid to be used (generate or load)\\
	  \end{minipage}.
.3 simul{.}par \hspace{1cm}  \begin{minipage}[t]{10cm}
	    Parameters for several simulations of differential operator and interpolation testing\\
          \end{minipage}.
.3 multigrid{.}par \hspace{1cm}  \begin{minipage}[t]{10cm}
	    Parameters for Multigrid solver\\
          \end{minipage}.
.3 trans{.}par \hspace{1cm}  \begin{minipage}[t]{10cm}
	    Parameters for Semi-Lagrangian Transport model\\
          \end{minipage}.
.3 swm{.}par \hspace{1cm}  \begin{minipage}[t]{10cm}
	    Parameters for Shallow Water Model\\
          \end{minipage}.
.2 ref/ \hspace{1cm}  \begin{minipage}[t]{10cm}
          Directory for reference solutions\\
	  Currently has ENDGame source files\\
	  Reference solutions will be read from this directory\\
	  Edit eg-swm-ref-{.}f90 and run Makefile to create the reference data \\
	  See EG-refsoln-doc{.}pdf for details
          \end{minipage}.
.2 sh/ \hspace{1cm}  \begin{minipage}[t]{10cm}
          Bash scripts to run several instances of the program with different parameter configurations
          \end{minipage}.
.2 src/ \hspace{1cm}  \begin{minipage}[t]{10cm}
          Fortran 90 source files and extra bash scripts\\
          \end{minipage}.
.3 imodel{.}f90 \hspace{1cm}  \begin{minipage}[t]{10cm}
          Main driver for program\\
	  Use par/mesh{.}par to select which program component you want to run\\
	  \end{minipage}.
.3 constants{.}f90 \hspace{1cm}  \begin{minipage}[t]{10cm}
          Refers to all constants used in the program\\
	  \end{minipage}.
.3 datastruct*{.}f90 \hspace{1cm}  \begin{minipage}[t]{10cm}
          Refers to all datastructure used for the grids\\
	  datastruct{.}f90 is general and datastructmult{.}f90 is for the multigrid solver \\
	  \end{minipage}.
.3 stripackm{.}f90 \hspace{1cm}  \begin{minipage}[t]{10cm}
	    Robert Renka Algorithm 772 for Parameters for Delaunay Triangulation and Voronoi Diagram on the Surface of a Sphere\\
          \end{minipage}.
.3 smeshpack{.}f90 \hspace{1cm}  \begin{minipage}[t]{10cm}
          Main program for grid generation \\
	  Has many tools to load and work with geodesic grids\\
	  Configure it using par/mesh{.}par
	  \end{minipage}.
.3 interpack{.}f90 \hspace{1cm}  \begin{minipage}[t]{10cm}
          Pack with scalar and vector interpolation routines \\
	  \end{minipage}.
.3 diffoperpack{.}f90 \hspace{1cm}  \begin{minipage}[t]{10cm}
          Pack with some discrete differential operators\\
	  \end{minipage}.
.3 simulpack{.}f90 \hspace{1cm}  \begin{minipage}[t]{10cm}
          Main program for simulations with interpolations and basic discrete differential operator analysis\\
	  Parameters set with par/simul{.}par\\
	  \end{minipage}.
.3 multigrid{.}f90 \hspace{1cm}  \begin{minipage}[t]{10cm}
	    Multigrid solver\\
          \end{minipage}.
.3 transport{.}f90 \hspace{1cm}  \begin{minipage}[t]{10cm}
	    Semi-Lagrangian transport model\\
          \end{minipage}.
.3 swm{.}f90 \hspace{1cm}  \begin{minipage}[t]{10cm}
	    Shallow Water Model\\
	    Relies on data structure dataswm{.}f90
	    \end{minipage}.
.4 dataswm{.}f90 \hspace{1cm}  \begin{minipage}[t]{10cm}
	    Shallow Water Model data structure\\
          \end{minipage}.
.3 *{.}sh \hspace{1cm}  \begin{minipage}[t]{10cm}
	    Scripts for: \\
	    Code archive to tar.bz2 (tarfiles)\\
	    Code backup (backup)\\
	    Verify compiler (compiler) \\
	    Create program directory structure (dirs) \\
	    Create binary link for imodel (link) \\
          \end{minipage}.
}

\section{Usage and Pre-setup programs}

Type ``make'' to compile all source code. Use the parameter files in ``par/*.par'' to setup what you wish to run. Run with ``./imodel'' from the main folder.

Programs already setup. Select in par/mesh.par:\\
\begin{verse}
!  case(1) !Test geodesic to regular grid conversion tool\\
!  case(2) !Test grid point search methods\\
!  case(3) !Mesh quality and distortion tests\\
!  case(4) !Divergence Tests\\
!  case(5) !Laplacian Tests\\
!  case(6) !Test scalar interpolations\\
!  case(7) !Test vector interpolation\\
!  case(8) !Test vector reconstruction\\
!  case(9) !Passive advection simulation\\
!  case(10)!Transport flow simulation\\
!  case(11)!Multigrid tests\\
!  case(12)!Tg reconstruction test\\
!  case(13)!Rotational discretization test\\
!  case(14)!Horizontal Discret Shallow water model diagnostics\\
!  case(15)!Shallow water model test cases\\
\end{verse}

\section{Grid generator}

The grid generator creates spherical triangular grids with its dual Voronoi grid and all the necessary relationship between nodes, edges, triangles and Voronoi cells (see datastruct.f90 for details). All the grid specifications need to be setup um par/mesh.par.

Kinds of grids generated:\\
\begin{verse}
!   icos (icosahedral) \\
!   octg (octahedral) \\
!   read (read from file - give filename where indicated) \\
!   rand (random points - be careful, you can get ugly meshes...) \\
\end{verse}

When using `icos' or `octg', you need to specify the number of nodes wanted as well. It does not need to be exact, as the code will adjust the next icosahedral or octahedral grid with the proper number of nodes.

You may read grid nodes from a text file. This may be with lat/lon  coordinates (which should have extension .gmt) or x/y/z coordinates (which should have extension .xyz) of the points. For x/y/z coordinates, you must first add the number of nodes that will be read. For lat/long, this is not necessary. The order of the points may matter, as we do not want to have the first 3 points aligned. A file with the connection from one node to its neighbour indexes may also be read with extension .ngb (the mesh generator will check if the ngb file exists, if so, use it). These files must be in the grid/ folder in runtime.

The position of the mesh with respect to geographic coordinates may be chosen from:\\
!Mesh Positions \\
\begin{verse}
!  eqs (equator symmetric)\\
!  pol (north pole point)\\
!  ran (all random points)\\
!  ref (local mesh refinement - needs scvt optimization)\\
\end{verse}

Once the grid is generated, you may use all the pre computed data stored in the datastruct of type `mesh'. You may chose to save the generated grid to later load it directly from the binary files.

A regular latitude-longitude grid table containing for each latitude-longitude box the index of the grid nodes it intersects is also generated. This allows a very quick search within the grid, since the regular grid resolution is calculated to be very fine and have on average almost only 1 grid cell intersection. This is useful in Semi-Lagrangian methods, or other procedures that require interpolations of arbitrary points.

\subsection{Grid optimizations}

The grid generator has the following grid optimizers coded:\\
!Optimization of mesh \\
\begin{verse}
!  nopt (no optimization) \\
!  sprg (spring dynamics - ok until level 8) \\
!  scvt (centroidal voronoi) \\
!  salt (aligned tesselation - not debuged ...) \\
!  hr95 (Heikes and Randall 1995 optimization using Miura's alg - not debuged...) \\
\end{verse}

The `salt' optimization tries to align a grid with respect to the index given in \cite{Peixoto2013}, but is not successful. The HR95 grid optimizer is not producing the expected results. It uses and algorithm proposed by  \cite{Miura2005}, that does not seem to converge properly.

There is an option to generate locally refined grids with SCVT tessellations, as in \cite{Ringler2013}. The density function needs to be set in src/smeshpack.f90 function dens\_f. Also, option regarding the way the grid is constructed, recursively (hierarchically)or not.\\

!Hierarchical grid construction: \\
!  0-No; \\
!  1-Yes; \\
!  2 - Optimizes only the new points in hierarchy; \\
!  3 - Do not optimize nodes that belong to primary icosahedral edges\\

\subsection{Testing}
The main testing programs can be selected in the par/mesh.par file as one of the bellow.\\
!  case(1) !Test geodesic to regular grid conversion tool\\
!  case(2) !Test grid point search methods\\
!  case(3) !Mesh quality and distortion tests\\

\subsection{Grid visualization and examples}

To view the grid generated, go to the gmt/ folder and use the `plot.sh' script (for GMT4) or `plot{\textunderscore}gmt5.sh' (for GMT5). You need to provide as command line input the name of the grid you want to be plotted. This is done by passing the name of the file that contain the `*nodes.gmt' in the grd/ folder. The script will guide you through its options, for either plotting just the triangular grid, Voronoi grid and other options. Outputs will be placed in graphs/ folder. Edit plot.sh to fulfill your needs.

\subsubsection{Example 1 - icosahedral grid level 2}
To generate the grid set in par/mesh.par the following parameters (leave the rest as default):
No. of vertices: 42 \\
Kind of mesh: icos \\
Optimization: nopt \\
Run any program of grid testing, e.g. cases 1,2,3, or actually any other test case should generate the grid.
\begin{lstlisting}[language=bash]
$ ./imodel
\end{lstlisting}
Once the grid is generated, run:
\begin{lstlisting}[language=bash]
$ cd gmt
$ ./plot.sh ../grid/icos_pol_nopt_2_nodes.gmt
Options : 1-> 1-> 6
Output in graphs/icos_pol_nopt_2.pdf
\end{lstlisting}

\includegraphics[scale=0.5]{icos_pol_nopt_2}

\subsubsection{Example 2 - Locally refined grid}

Follow the same example as above, but set grid parameters in par/mesh.par to:
No. of vertices: 600 \\
Kind of mesh: icos \\
Position: ref \\
Optimization: scvt \\
It will start from icosahedral grids and use SCVT algorithms to get locally refined ones based on a density function given in src/smeshpack.f90 function dens\_f. The generation can take some minutes.

\begin{lstlisting}[language=bash]
$ cd gmt
$ ./plot.sh ../grid/icos_ref_scvt_h1_3_nodes.gmt
Options : 1-> 1-> 5
Output in graphs/icos_ref_scvt_h1_3.pdf
\end{lstlisting}

\includegraphics[scale=0.5]{icos_ref_scvt_h1_3}

\subsection{Important}

Some grid generations with optimizations can take hours and even days (months in case of very fine grids). The grid points are saved in .xyz of .gmt for future use in this or other codes. All the grid structures and pre calculated features are store as well, and this can be loaded at runtime setting the load option in par/mesh.par. Setting the read option in par/mesh.par read only the node points in cartesian or lat-long coordinates, but regenerates all other data structures and pre computable mesh properties. Please contact me if you wish to have pre-calculated optimized grids, since they are very large, they are not shipped with the code.

\section{Interpolations}

The main module for interpolations on spherical geodesic grids is src/interpack.f90. It contains several kinds of methods and possibilities. These maybe set via par/simul.par, and several testing programs exist to analyse the methods.

\subsection{Variable location}

The variables may be located in the grid in the following different ways:\\
  ! List of Stags for interpolation - (if no vector - considers scalars on vector positions)\\
  ! HA  - Scalars and vectors on triangle vertices, hexagon centers\\
  ! HC  - Scalars on triangle vertices, hexagon centers and vectors hexagon edge midpoints\\
  ! TA  - Scalars and vectors on triangle circumcenter, hexagon vertices\\
  ! TC  - Scalars on triangle vertices, hexagon centers and vectors triangle edge midpoints\\
  ! HCT - Voronoi staggered grid but with vectors on intersection of hx edge and tr edge.\\

Note: Not all methods are implemented for all positionings.

\subsection{Scalar interpolations}

Implemented scalar interpolation methods:\\
    !*** (For values given on triangle vertices - Stag=HA) ***\\
    ! none     = Just get triangle\\
    ! neartrv  = Nearest node  (default)\\
    ! lintrv   = Linear TR - values on tr vertices - default\\
    ! linhxb   = Linear TR - values on Voronoi cell centroids\\
    ! lsqhx    = Quadratic Least Squares \\
    ! hermtrv  = Cubic (R.Renka C1 Hermite)\\
    ! rbftr    = RadialBasisFunction TR (3pts)\\
    ! rbfetr   = RadialBasisFunction ETR(11,12pts)\\
    ! rbfhx    = RadialBasisFunction HX (6,7pts)\\
    ! natlap   = Natural Coordinate with Laplace\\
    ! natsib   = Natural Coordinate with Sibson\\
    ! natfar   = Natural Coordinate with Farin\\
    ! lmshep   = Local Modified Shepard Method\\
    ! qdshep   = Quadratic Shepard Method\\
    !*** (For values given on triangle circumcenters - Stag=TA) ***\\
    ! none     = Just get triangle\\
    ! neartrc  = Nearest triangle\\
    ! wach     = Wachspress interpolation - default\\
    !*** (For values given on triangle edge midpoints - Stag=TC) ***
    ! none     = Just get triangle\\
    ! p1nc     = P1 Non corforming element - default\\
    !*** (For values given on voronoi edge midpoints - Stag=HC) ***
    ! none     = Just get triangle \\
    ! wach     = Modified Wachspress interpolation (linear) - default \\
    ! lmshep   = Local Modified Shepard Method\\
    ! p1nc     = P1 Non corforming element - may do extrapolation\\
    !*** (For values given on Voronoi centroids) ***\\
    ! neartrv  = Nearest node  (default)\\
    !*** (For values given on triangle centroids) ***\\
    ! neartrc  = Nearest triangle  (default)\\

    Use "none" to set no interpolation. Used only to calculate basic computational cost. Some of these scalar interpolations, such as `lintrv' and `wach', may be used to do vector interpolation when the full vector is given pointwise.

\subsection{Vector reconstructions}

See \cite{Peixoto2014} for the vector reconstruction problem definition and methods. The methods implemented are as follows.

    !Kind of reconstruction\\
    !  none   = Just find the nearest node\\
    !  rbf    = Radial Basis Function\\
    !     rbfhx  - rbf for 6 point Voronoi cell\\
    !     rbftr  - rbf for 3 point triangle\\
    !     rbf*pc- rbf* with constant polynomial\\
    !  per    = Perot (2000) recosntruction\\
    !     perhx  - Perot for Hexagons\\
    !     pertr  - Perot for Triangles\\
    !     perpj  - Perot for Hexagons projecting to tang plane\\
    !     pered  - Perot vector for edges (tangent recon)\\
    !  lsq    = Least Square Fit\\
    !     lsqhxe - 12 point hexagon stencil\\
    !     lsqtrc - 9 point triangle based stencil\\
    !  rt0    = Raviart Thomas 0th order element reconstruction\\
    !  dtred  = Dual triangle tangent reconstruction\\
    !  wht    = Whitney Edge element reconstruction\\
    !  kls    = Klausen reconstruction with Wachspress coords\\
    !  trsk   = TRISK tangent vector reconstruction\\

\subsection{Testing}
The main testing programs can be found in src/simulpack.f90, and the test can be selected in the par/mesh.par file as one of the bellow.\\
!  case(6) !Test scalar interpolations\\
!  case(7) !Test vector interpolation\\
!  case(8) !Test vector reconstruction\\
!  case(12)!Tg reconstruction test\\

There are several scalar and vector function options that can be selected, see par/simul.par.

Once a test has been run, the results are stored in data/ folder with either numerical text files (for errors and diagnostics) or .dat files, for field plots. To plot a field, you can use the plot.sh GMT script.


text:
\hypertarget{cb__navigate__next__waypoint_8hpp}{}\doxysection{smacc\+\_\+client\+\_\+library/move\+\_\+base\+\_\+z\+\_\+client/move\+\_\+base\+\_\+z\+\_\+client\+\_\+plugin/include/move\+\_\+base\+\_\+z\+\_\+client\+\_\+plugin/client\+\_\+behaviors/cb\+\_\+navigate\+\_\+next\+\_\+waypoint.hpp File Reference}
\label{cb__navigate__next__waypoint_8hpp}\index{smacc\_client\_library/move\_base\_z\_client/move\_base\_z\_client\_plugin/include/move\_base\_z\_client\_plugin/client\_behaviors/cb\_navigate\_next\_waypoint.hpp@{smacc\_client\_library/move\_base\_z\_client/move\_base\_z\_client\_plugin/include/move\_base\_z\_client\_plugin/client\_behaviors/cb\_navigate\_next\_waypoint.hpp}}
{\ttfamily \#include $<$move\+\_\+base\+\_\+z\+\_\+client\+\_\+plugin/move\+\_\+base\+\_\+z\+\_\+client\+\_\+plugin.\+hpp$>$}\newline
{\ttfamily \#include \char`\"{}cb\+\_\+move\+\_\+base\+\_\+client\+\_\+behavior\+\_\+base.\+hpp\char`\"{}}\newline
Include dependency graph for cb\+\_\+navigate\+\_\+next\+\_\+waypoint.\+hpp\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{cb__navigate__next__waypoint_8hpp__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{cb__navigate__next__waypoint_8hpp__dep__incl}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item
class \mbox{\hyperlink{classcl__move__base__z_1_1CbNavigateNextWaypoint}{cl\+\_\+move\+\_\+base\+\_\+z\+::\+Cb\+Navigate\+Next\+Waypoint}}
\end{DoxyCompactItemize}
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
 \mbox{\hyperlink{namespacecl__move__base__z}{cl\+\_\+move\+\_\+base\+\_\+z}}
\end{DoxyCompactItemize}


text:
\makeatletter
\def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax%
    \let\PY@ul=\relax \let\PY@tc=\relax%
    \let\PY@bc=\relax \let\PY@ff=\relax}
\def\PY@tok#1{\csname PY@tok@#1\endcsname}
\def\PY@toks#1+{\ifx\relax#1\empty\else%
    \PY@tok{#1}\expandafter\PY@toks\fi}
\def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{%
    \PY@it{\PY@bf{\PY@ff{#1}}}}}}}
\def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}}

\expandafter\def\csname PY@tok@w\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}}
\expandafter\def\csname PY@tok@c\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
\expandafter\def\csname PY@tok@cp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}}
\expandafter\def\csname PY@tok@k\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\expandafter\def\csname PY@tok@kp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\expandafter\def\csname PY@tok@kt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}}
\expandafter\def\csname PY@tok@o\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
\expandafter\def\csname PY@tok@ow\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}}
\expandafter\def\csname PY@tok@nb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\expandafter\def\csname PY@tok@nf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
\expandafter\def\csname PY@tok@nc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
\expandafter\def\csname PY@tok@nn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
\expandafter\def\csname PY@tok@ne\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}}
\expandafter\def\csname PY@tok@nv\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
\expandafter\def\csname PY@tok@no\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}}
\expandafter\def\csname PY@tok@nl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}}
\expandafter\def\csname PY@tok@ni\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}}
\expandafter\def\csname PY@tok@na\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}}
\expandafter\def\csname PY@tok@nt\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\expandafter\def\csname PY@tok@nd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}}
\expandafter\def\csname PY@tok@s\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
\expandafter\def\csname PY@tok@sd\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
\expandafter\def\csname PY@tok@si\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}}
\expandafter\def\csname PY@tok@se\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}}
\expandafter\def\csname PY@tok@sr\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}}
\expandafter\def\csname PY@tok@ss\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
\expandafter\def\csname PY@tok@sx\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\expandafter\def\csname PY@tok@m\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
\expandafter\def\csname PY@tok@gh\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
\expandafter\def\csname PY@tok@gu\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}}
\expandafter\def\csname PY@tok@gd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}}
\expandafter\def\csname PY@tok@gi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}}
\expandafter\def\csname PY@tok@gr\endcsname{\def\PY@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}}
\expandafter\def\csname PY@tok@ge\endcsname{\let\PY@it=\textit}
\expandafter\def\csname PY@tok@gs\endcsname{\let\PY@bf=\textbf}
\expandafter\def\csname PY@tok@gp\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
\expandafter\def\csname PY@tok@go\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}}
\expandafter\def\csname PY@tok@gt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}}
\expandafter\def\csname PY@tok@err\endcsname{\def\PY@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}}
\expandafter\def\csname PY@tok@kc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\expandafter\def\csname PY@tok@kd\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\expandafter\def\csname PY@tok@kn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\expandafter\def\csname PY@tok@kr\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\expandafter\def\csname PY@tok@bp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}}
\expandafter\def\csname PY@tok@fm\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}}
\expandafter\def\csname PY@tok@vc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
\expandafter\def\csname PY@tok@vg\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
\expandafter\def\csname PY@tok@vi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
\expandafter\def\csname PY@tok@vm\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}}
\expandafter\def\csname PY@tok@sa\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
\expandafter\def\csname PY@tok@sb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
\expandafter\def\csname PY@tok@sc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
\expandafter\def\csname PY@tok@dl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
\expandafter\def\csname PY@tok@s2\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
\expandafter\def\csname PY@tok@sh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
\expandafter\def\csname PY@tok@s1\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}}
\expandafter\def\csname PY@tok@mb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
\expandafter\def\csname PY@tok@mf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
\expandafter\def\csname PY@tok@mh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
\expandafter\def\csname PY@tok@mi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
\expandafter\def\csname PY@tok@il\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
\expandafter\def\csname PY@tok@mo\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}}
\expandafter\def\csname PY@tok@ch\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
\expandafter\def\csname PY@tok@cm\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
\expandafter\def\csname PY@tok@cpf\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
\expandafter\def\csname PY@tok@c1\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}
\expandafter\def\csname PY@tok@cs\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}}

\def\PYZbs{\char`\\}
\def\PYZus{\char`\_}
\def\PYZob{\char`\{}
\def\PYZcb{\char`\}}
\def\PYZca{\char`\^}
\def\PYZam{\char`\&}
\def\PYZlt{\char`\<}
\def\PYZgt{\char`\>}
\def\PYZsh{\char`\#}
\def\PYZpc{\char`\%}
\def\PYZdl{\char`\$}
\def\PYZhy{\char`\-}
\def\PYZsq{\char`\'}
\def\PYZdq{\char`\"}
\def\PYZti{\char`\~}
% for compatibility with earlier versions
\def\PYZat{@}
\def\PYZlb{[}
\def\PYZrb{]}
\makeatother\begin{Verbatim}[commandchars=\\\{\},numbers=left,firstnumber=1,stepnumber=1,numberblanklines=0]
\PY{p}{\PYZob{}}
  \PY{n+nt}{\PYZdq{}runtimeOptions\PYZdq{}}\PY{p}{:} \PY{p}{\PYZob{}}
    \PY{n+nt}{\PYZdq{}tfm\PYZdq{}}\PY{p}{:} \PY{l+s+s2}{\PYZdq{}netcoreapp2.1\PYZdq{}}\PY{p}{,}
    \PY{n+nt}{\PYZdq{}framework\PYZdq{}}\PY{p}{:} \PY{p}{\PYZob{}}
      \PY{n+nt}{\PYZdq{}name\PYZdq{}}\PY{p}{:} \PY{l+s+s2}{\PYZdq{}Microsoft.AspNetCore.App\PYZdq{}}\PY{p}{,}
      \PY{n+nt}{\PYZdq{}version\PYZdq{}}\PY{p}{:} \PY{l+s+s2}{\PYZdq{}2.1.0\PYZhy{}rc1\PYZhy{}final\PYZdq{}}
    \PY{p}{\PYZcb{}}\PY{p}{,}
    \PY{n+nt}{\PYZdq{}configProperties\PYZdq{}}\PY{p}{:} \PY{p}{\PYZob{}}
      \PY{n+nt}{\PYZdq{}System.GC.Server\PYZdq{}}\PY{p}{:} \PY{k+kc}{true}
    \PY{p}{\PYZcb{}}
  \PY{p}{\PYZcb{}}
\PY{p}{\PYZcb{}}
\end{Verbatim}


text:
\hypertarget{_board_data_8cpp}{}\doxysection{Board\+Data.\+cpp File Reference}
\label{_board_data_8cpp}\index{BoardData.cpp@{BoardData.cpp}}
{\ttfamily \#include \char`\"{}SMCE/internal/\+Board\+Data.\+hpp\char`\"{}}\newline
{\ttfamily \#include $<$algorithm$>$}\newline
{\ttfamily \#include \char`\"{}SMCE/\+Board\+Conf.\+hpp\char`\"{}}\newline
Include dependency graph for Board\+Data.\+cpp\+:
% FIG 0
\doxysubsection*{Namespaces}
\begin{DoxyCompactItemize}
\item
namespace \mbox{\hyperlink{namespacesmce}{smce}}
\end{DoxyCompactItemize}


text:
\documentclass{standalone}
\usepackage{tikz} % Required for drawings
\usetikzlibrary{positioning,calc}

\newcommand{\easttowest}[4]{
\draw[-latex] (#1.east) -| ($ (#1.east) + (#3,0) $) |- node[near end, above]{#4} (#2.west);
}

\begin{document}
	\tikzstyle{box}=[draw, rectangle, minimum height=1.5cm, minimum width=3.5cm,align=center]

	\begin{tikzpicture}[font=\sffamily]
		\node[box] (server) at (2,0) {Map server (container) \\ \footnotesize{(0.1.0)} \\ \footnotesize{Apache-2.0}};

		\node[box] (docker) at (8,0) {Docker \\ \footnotesize{(1.6)} \\ \footnotesize{Apache-2.0}};
		\node[box] (postgresql) at (8,-2) {PostgreSQL \\ \footnotesize{(9.3)} \\ \footnotesize{PostgreSQL License}};
		\node[box] (postgis) at (8,-4) {PostGIS \\ \footnotesize{(2.1)} \\ \footnotesize{GPL-2.0}};
		\node[box] (osmosis) at (8,-6) {Osmosis \\ \footnotesize{(0.43.1)} \\ \footnotesize{GPL-3}};
		\node[box] (osm) at (8,-8) {OpenStreetMap \\ \footnotesize{(any dump)} \\ \footnotesize{ODbL}};

		\easttowest{server}{docker}{0.5}{{\footnotesize{usage}}}
		\easttowest{server}{postgresql}{0.5}{{\footnotesize{usage}}}
		\easttowest{server}{postgis}{0.5}{{\footnotesize{usage}}}
		\easttowest{server}{osmosis}{0.5}{{\footnotesize{usage}}}
		\easttowest{server}{osm}{0.5}{{\footnotesize{usage}}}

		\node[box] (tools) at (2,-10) {Map tools (Python) \\ \footnotesize{(0.1.0)} \\ \footnotesize{Apache-2.0}};
		\node[box] (psycopg) at (8,-10) {Psycopg \\ \footnotesize{(2.4.5)} \\ \footnotesize{LGPL-3.0}};
		\node[box] (gdal) at (8,-12) {GDAL \\ \footnotesize{(1.10)} \\ \footnotesize{MIT License}};
		\node[box] (numpy) at (8,-14) {NumPy \\ \footnotesize{(1.6.1)} \\ \footnotesize{BSD 3-Clause}};
		\node[box] (python) at (8,-16) {Python Std. Libary \\ \footnotesize{(2.7.3)} \\ \footnotesize{Python License}};

		\draw[-latex] (server) -- node[right]{\footnotesize{usage}} (tools);
		\easttowest{tools}{psycopg}{0.5}{{\footnotesize{dynamic}}}
		\easttowest{tools}{gdal}{0.5}{{\footnotesize{dynamic}}}
		\easttowest{tools}{numpy}{0.5}{{\footnotesize{dynamic}}}
		\easttowest{tools}{python}{0.5}{{\footnotesize{dynamic}}}
	\end{tikzpicture}
\end{document}


text:
% ==============================================================================
%  _  __               __
% | |/ /   _ _ __ ____/ _| __ _ ___ ___ _   _ _ __   __ _
% | ' / | | | '__|_  / |_ / _` / __/ __| | | | '_ \ / _` |
% | . \ |_| | |   / /|  _| (_| \__ \__ \ |_| | | | | (_| |
% |_|\_\__,_|_|  /___|_|  \__,_|___/___/\__,_|_| |_|\__, |
%                                                   |___/
% ==============================================================================
\chapter*{Kurzfassung}
\addcontentsline{toc}{chapter}{Kurzfassung}
\label{cha:kurzfassung}
% ==============================================================================

Eine Kurzfassung der Arbeit.

Umfang 1 Seite.