BIGSTICK Manual

BIGSTICK_Manual

User Manual: Pdf

Open the PDF directly: View PDF PDF.
Page Count: 100

DownloadBIGSTICK Manual
Open PDF In BrowserView PDF
BIGSTICK: A flexible configuration-interaction
shell-model code 1
Calvin W. Johnson2 , W. Erich Ormand3 , Kenneth S. McElvain4 , and Hongzhang Shan5
December 4, 2017

1

UCRL number: LLNL-SM-739926
Department of Physics, San Diego State University, 5500 Campanile Drive, San
Diego CA 92182-1233
3
Lawrence Livermore National Laboratory, P.O. Box 808, L-414, Livermore, CA
94551
4
Department of Physics, University of California, Berkeley 366 Leconte Hall MC
7300, Berkeley, CA 94720
5
Computational Research Division, Lawrence Berkeley Laboratory, Berkeley, CA,
94720
2

Abstract
We present BIGSTICK, a flexible configuration-interaction open-source shellmodel code for the many-fermion problem. Written mostly in Fortran 90 with
some later extensions, BIGSTICK utilizes a factorized on-the-fly algorithm for
computing many-body matrix elements, and has both MPI (distributed memory) and OpenMP (shared memory) parallelization, and can run on platforms
ranging from laptops to the largest parallel supercomputers. It uses a flexible
yet efficient many-body truncation scheme, and reads input files in multiple formats, allowing one to tackle both phenomenological (major valence shell space)
and ab initio (the so-called no-core shell model ) calculations. BIGSTICK can
generate energy spectra, static and transition one-body densities, and expectation values of scalar operators. Using the built-in Lanczos algorithm one can
compute transition probability distributions and decompose wave functions into
components defined by group theory.
This manual provides a general guide to compiling and running BIGSTICK,
which comes with numerous sample input files, as well as some of the basic
theory underlying the code. The code also comes with an incomplete “inside
guide” which provides more details into the inner workings.
This code is distributed under the MIT Open Source License. The source
code and sample inputs are found at github.com/cwjsdsu/BigstickPublick.

Contents
1 Introduction
1.1 Expectations of users . . . . . . . . . . . . . . . . . .
1.2 How to cite and copyright notices/licenses . . . . . .
1.2.1 LAPACK copyright notice . . . . . . . . . . .
1.3 Reporting bugs and other issues . . . . . . . . . . . .
1.4 A brief history of BIGSTICK, and acknowledgements

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

4
5
5
6
7
8

2 How we solve the many-body problem
2.1 Matrix formulation of the Schrödinger equation
2.2 Representation of the basis . . . . . . . . . . .
2.2.1 Factorization of the basis . . . . . . . .
2.3 The Lanczos algorithm and computational cost
2.4 Representation of the Hamiltonian . . . . . . .
2.5 An incomplete survey of other codes . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

9
10
12
14
17
18
19

3 Getting started with BIGSTICK
3.1 What can BIGSTICK do? . . . .
3.2 Downloading and compiling the
3.3 Required input files . . . . . . .
3.4 Running the code . . . . . . . .
3.5 Some sample runs . . . . . . .
3.6 Typical run times . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

22
22
23
24
24
29
29

4 Using BIGSTICK, in detail
4.1 Overview of input files . . . . . . . . . . . . . . . . . . . .
4.2 Defining the model space . . . . . . . . . . . . . . . . . .
4.2.1 Particle-hole conjugation . . . . . . . . . . . . . .
4.2.2 Truncation of the many-body space . . . . . . . .
4.2.3 Advanced truncation options . . . . . . . . . . . .
4.2.4 How to handle ‘different’ proton-neutron spaces . .
4.3 Interaction files . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1 Scaling and autoscaling . . . . . . . . . . . . . . .
4.3.2 Proton-neutron and other isospin-breaking formats
4.3.3 MFDn format input . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

30
30
31
35
36
38
39
40
41
42
45

1

. . .
code
. . .
. . .
. . .
. . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

46
47
47
47
48
49
50
52
53
54
55
56
56
57
58
59
59
59

5 Applications
5.1 One-body density matrices . . . . . . . . . . . . . . . . . .
5.1.1 Symmetries of density matrix elements . . . . . . . .
5.1.2 Particle occupations from densities . . . . . . . . . .
5.1.3 Strengths from density matrix elements . . . . . . .
5.1.4 Sample case: spin-flip . . . . . . . . . . . . . . . . .
5.1.5 Charge-changing transitions . . . . . . . . . . . . . .
5.1.6 Sample case: 19 F . . . . . . . . . . . . . . . . . . . .
5.2 Strength function option . . . . . . . . . . . . . . . . . . . .
5.2.1 Decomposition . . . . . . . . . . . . . . . . . . . . .
5.2.2 Transition strength function distributions: the basics
5.2.3 Transitions with good angular momentum . . . . . .
5.2.4 Gamow-Teller with strength function option . . . .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

61
61
63
63
63
65
66
67
67
67
70
72
74

4.4

4.5
4.6

4.7

4.8

4.3.4 Three-body forces . . . . . . . . . . . . . .
Primary runtime options . . . . . . . . . . . . . . .
4.4.1 Autoinput . . . . . . . . . . . . . . . . . . .
4.4.2 Standard or normal runs . . . . . . . . . . .
4.4.3 One-body density matrices and occupations
4.4.4 Other primary options . . . . . . . . . . . .
Diagonalization options . . . . . . . . . . . . . . .
4.5.1 Convergence . . . . . . . . . . . . . . . . .
Secondary runtime options . . . . . . . . . . . . . .
4.6.1 Expectation value . . . . . . . . . . . . . .
4.6.2 Applying a one-body transition operator . .
4.6.3 Applying a two-body body scalar operator .
4.6.4 Generating strength function distributions .
4.6.5 Overlap or dot product of wave functions .
Output files . . . . . . . . . . . . . . . . . . . . . .
4.7.1 Secondary files . . . . . . . . . . . . . . . .
4.7.2 Diagnostic files . . . . . . . . . . . . . . . .
Memory usage . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

6 A peek behind the curtain
77
6.1 A normal run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2 Explicit representation of the basis . . . . . . . . . . . . . . . . . 78
6.3 Explicit representation of the Hamiltonian . . . . . . . . . . . . . 80
7 Lanczos algorithm
81
7.1 Standard Lanczos algorithm . . . . . . . . . . . . . . . . . . . . . 81
7.2 Thick-restart Lanczos . . . . . . . . . . . . . . . . . . . . . . . . 83
7.3 Can I restart standard Lanczos? . . . . . . . . . . . . . . . . . . 85

2

8 Parallel computing and timing
8.1 MPI . . . . . . . . . . . . . . .
8.1.1 Fragments . . . . . . . .
8.1.2 Opbundles and optypes
8.1.3 Modeling . . . . . . . .
8.2 OpenMP . . . . . . . . . . . . .
8.3 Timing . . . . . . . . . . . . . .
8.3.1 Mode times . . . . . . .
8.3.2 Timing for parallel runs

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

86
87
87
88
89
89
90
90
91

A Matrix elements and operators
92
A.1 Reduced matrix elements . . . . . . . . . . . . . . . . . . . . . . 92
A.2 The Hamiltonian and other operators in second quantization . . 93
A.3 Symmetries of matrix elements . . . . . . . . . . . . . . . . . . . 94
B Highlighted references

95

3

Chapter 1

Introduction
There are many approaches to the quantum many-body problem. BIGSTICK is
a configuration-interaction many-fermion code, written in Fortran 90. It solves
for low-lying eigenvalues of the Hamiltonian of a many fermion system; it does
this by creating a basis of many-body states of Slater determinants (actually, the
occupation representation of Slater determinants). The Slater determinants are
antisymmetrized products of single-particle states with good angular momentum, typically derived from some shell-model-like potential; hence we call this
a shell-model basis. The Hamiltonian is assumed to be rotationally invariant
and to conserve parity, and is limited to two- and, optionally, three-body forces.
Otherwise no assumptions are made about the form of the single-particle states
or of the Hamiltonian.
The capabilities of BIGSTICK will be detailed below, but in addition to calculating the energy spectra and occupation-space wavefunctions, it can compute
particle occupations, expectation values of operators, and static and transition
densities and strengths. Most of the applications to date have been in lowenergy nuclear physics, but in principle any many-fermion system with two
fixed ‘species’ and rotational symmetry can be addressed by BIGSTICK, such
as the electronic structure of atoms and cold fermionic gases in a spherically
symmetric trap; although we have yet to publish papers, we have carried out
demonstration calculations for such systems, with ‘spin-up’ and ‘spin-down’ replacing ‘proton’ and ‘neutron.’ We apologize to any atomic physicist who will
have to translate our terminology.
In this next chapter we review the basic many-body problem. Chapter 2
outlines the configuration-interaction method and discusses in broad strokes
the principles of the algorithms in BIGSTICK. Chapter 3 gives an introduction
to how to compile and run BIGSTICK, while Chapter 4 goes into running the
code more detail. If you are interested in running BIGSTICK immediately,
go directly to Chapter 3.
In this manual we do not give substantial information on the inner workings
of the code. With the distribution you will find an as-yet incomplete Inside
Guide which provide many details. In addition, the code itself is heavily com4

mented. While internal information in BIGSTICK is highly compressed through
factorization, a technique outlined in Chapter 2, it is possible to get out explicit
representations of the many-body basis states and the many-body Hamiltonian
matrix; see Chapter 6. Chapter 7 discusses our use of the Lanczos algorithm.
Finally, parallel capabilities of the code is discussed in Chapter 8.

1.1

Expectations of users

Who do we expect to use BIGSTICK, and how do we expect them to use it?
We designed BIGSTICK to be run on a variety of platforms, from laptops to
leadership-class supercomputers. We also imagined, and tried to design, BIGSTICK
for a spectrum of users, with various expectations of them.
A crucial point for any and all users: BIGSTICK requires at least two
kinds of input files to run, a description of the single-particle space and a
file of interaction matrix elements. While we supply with the distribution a
number of example input files. it is important for both novice and routine users
to understand that such examples are just the beginning and not the sum of
nuclear physics. In general it is up to the user to provide interaction
files. We can use the .int interaction files usable by NuShell/NuShellX as
well as the interaction files used by MFDn.
It is also equally important to not ask BIGSTICK to be smarter than you are.
While BIGSTICK employs many error traps to avoid or at least flag the most
common mistakes, the principle of “garbage in, garbage out” still applies.
While this manual provides a fairly comprehensive introduction to running
BIGSTICK, it is not a detailed tutorial in configuration-interaction methods, the
atomic or nuclear shell models, or to basic nuclear physics. We expect the reader
to, above all, be comfortable with non-relativistic quantum mechanics (i.e., to
fully understand the Schrödinger equation and with Dirac’s bra-ket notation),
and to be fluent of the ideas and terminology of the shell model, especially the
nuclear shell model, and to understand the basic principles of configurationinteraction methods. We review the latter in the opening of Chapter 2, so that
is a good place to start to check your level of comfort. We suggest additional
references in Appendix B.

1.2

How to cite and copyright notices/licenses

If you successfully use BIGSTICK in your research, please use the following citations:
• C. W. Johnson, W. E. Ormand, and P. G. Krastev, Comp. Phys. Comm.
184, 2761-2774 (2013). (You can also find this article at arXiv:1303.0905.)
• C. W. Johnson,W. E. Ormand, K. S. McElvain, and H. Z. Shan, UCRL number
LLNL-SM-739926, arXiv:XXXXX (this report)
The first paper, Johnson et al. [2013], in particular discusses the underlying
factorized on-the-fly algorithm. This documents focuses instead on how to run

5

BIGSTICK.
This code is distributed under the MIT Open Source License:
Copyright (c) 2017 Lawrence Livermore National Security and the San Diego
State University Research Foundation.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the ”Software”), to deal in
the Software without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
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.

1.2.1

LAPACK copyright notice

We use LAPACK subroutines in our code. The following are the LAPACK
copyright notices.
Copyright (c) 1992-2013 The University of Tennessee and The University of
Tennessee Research Foundation. All rights reserved.
Copyright (c) 2000-2013 The University of California Berkeley. All rights
reserved.
Copyright (c) 2006-2013 The University of Colorado Denver. All rights reserved.
Additional copyrights may follow
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list
of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer listed in this license in the
documentation and/or other materials provided with the distribution.
6

- Neither the name of the copyright holders nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.
The copyright holders provide no reassurances that the source code provided
does not infringe any patent, copyright, or any other intellectual property rights
of third parties. The copyright holders disclaim any liability to any recipient
for claims brought against recipient by any third party for infringement of that
parties intellectual property rights.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
AND CONTRIBUTORS ”AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.

1.3

Reporting bugs and other issues

If you run into trouble, first read this manual. Most issues are caused by mistakes
in setting up input files, in particular inconsistencies between the single-particle
space defined and the interaction file(s). Second, please read the output carefully:
we have striven to write detailed error traps and often BIGSTICK will notify the
user of problems. Try running the sample cases and make sure they run to
correct completion and that you understand the inputs.
If, having exhausted all the resources presented here, you still have a problem, you may send your issue to Calvin Johnson, cjohnson@mail.sdsu.edu.
In particular send a copy of the entire output written to screen, which often
contains important clues, the input files, and all output files with the extensions
.res, .log and .bigstick. Although we hope to be able to help, we cannot
guarantee it.
As discussed elsewhere, BIGSTICK is developed for Linux and Linux-like environments such as Mac OS X. We have made no attempt to adapt to a Windows
environment. Although it has a user-friendly menu-driven interface, it still assumes a reasonable facility with many-body physics and in particular low-energy
nuclear physics.
Development of BIGSTICK is ongoing. We hope to release future versions of
the code as additional major capabilities come on line.
7

1.4

A brief history of BIGSTICK, and acknowledgements

In 1997, when two of us (Ormand and Johnson) were both at Louisiana State
University, we decided to write our own many-fermion configuration-interactionI
code christened REDSTICK, English for Baton Rouge. Over the next decade
REDSTICK evolved and improved. Most important were the addition of threebody forces and parallelization. As it approached the ten-year mark, we noticed
certain limitations, particularly in the set-up, and starting in 2007 we began
developing new algorithms.
By this time, Ormand had moved to Lawrence Livermore National Laboratory and Johnson had left for San Diego State University. Working first with
a student (Hai Ah Nam) and later a postdoc (Plamen Krastev) at San Diego
State University, we carefully studied bottlenecks in parallelization in the application of the Hamiltonian. These studies led us to break up the application
of the Hamiltonian by basis sectors, which had two useful outcomes. First,
we rewrote our central application routines using simple arrays rather than the
derived types used in REDSTICK; this gave a speed-up of nearly a factor of 2.
Second, applying the Hamiltonian by quantum numbers allowed a more transparent factorization of the Hamiltonian and better parallelization.
With these improvements and dramatic speed-ups, we had an entirely new
code, BIGSTICK.
Starting around 2014, through the good graces of Wick Haxton we teamed up
with UC Berkeley and Lawrence Berkeley Laboratory, and especially Haxton’s
graduate student Ken McElvain. Ken’s background in the computer industry
proved invaluable, and he was able to tweak the existing code into fantastic performance, especially with regards to parallelism. Hongzhang Shan of Lawerence
Berkeley wrote an improved algorithm for using OpenMP in matvec operations.
In addition to the help of Hai Ah Nam and Plamen Krastev, we would also
like to thank Esmond Ng, Chao Yang, and Sam Williams, of Lawrence Berkeley
National Laboratory, James Vary and Pieter Maris of Iowa State University,
and many other colleagues who have provided helpful discussions, suggestions,
feedback and insight over the years. Jordan Fox helped find some bugs in this
most recent version, and Stephanie Lauber helped find typos and confusing
statements in this manual.
Over the years our primary research funding has come through the U.S.
Department of Energy, which has directly and often indirectly supported the
development of BIGSTICK. We are deeply grateful for this support. Support
for this project came primarily from the U.S. Department of Energy, in the
form of grants Grant DE-FG02-96ER40985, DE-FG52-03NA00082, DE-FG0203ER41272, as well as Louisiana State University, Lawrence Livermore National
Laboratory, San Diego State University, University of California, Berkeley, and
Lawrence Berkeley National Laboratory.

8

Chapter 2

How we solve the
many-body problem
In this chapter we discuss the principles of configuration-interaction (CI) manybody calculations [Shavitt, 1998, Brussard and Glaudemans, 1977, Brown and
Wildenthal, 1988, Caurier et al., 2005, Cook, 1998, Jensen, 2017, Weiss, 1961,
Löwdin, 1955, Sherrill and Schaefer, 1999], including some different classes of
CI codes, and give an overview of its application in BIGSTICK. Configurationinteraction is sometimes called the interacting shell model, as (a) one typically
builds the many-body basis from spherical shell-model single particle states and
(b) to distinguish from the non-interacting shell model, sometimes also called
the independent particle model.
The key points here are:
• We represent the many-body Schrödinger equation as a matrix eigenvalue
problem, typically with very large basis dimensions. BIGSTICK can compute problems with dimensions up to ∼ 107 on a laptop, up to ∼ 108 on
a desktop machine, and up to ∼ 1010 on parallel supercomputers.
• The large-basis-dimension eigenvalue problem has two computational barriers. The first is how to solve the eigenvalue problem itself, especially
given that we almost never need all of the eigenvalues. The second is,
despite the fact the matrix is typically very sparse, the amount of data
required is still huge.
• We address the first problem by using the Lanczos algorithm, which efficiently yields the low-lying eigenpairs.
• We address the second by not explicitly storing all the non-zero matrix
elements, but instead invoking a on-the-fly algorithm. This on-the-fly algorithm, first implemented in the Strasbourg group’s code ANTOINE [Caurier
and Nowacki, 1999], exploits the fact that the interaction only acts on two-

9

or three- particles at a time. The on-the-fly algorithm can be thought of
as partially looping over spectator particles.
• The on-the-fly algorithm explicitly depends upon the existence of two
species of particles, for example protons and neutrons, or in the case of
atoms, spin-up and spin-down electrons, so that both the many-body basis
and the action of the Hamiltonian can be factorized into two components.
This factorization is guided by additive/multiplicative quantum numbers,
such as M , the z-component of angular momentum, and parity. This factorization efficiently and losslessly “compresses” information; we outline
the basic concepts below.
• In order to implement many-body truncations, we have an additional additive pseudo-quantum number, which we call W . This allows a general,
though not infinitely flexible, ability to truncate the basis. We discuss
these truncations below, but include for example n-particle, n-hole truncations and the Nmax truncation typical of the no-core shell model.
With these efficiencies we can run both “phenomenological” and ab initio
or no-core shell model calculations, on machines ranging from laptops to supercomputers. Although we do not discuss it in depth in this document, we rely
heavily upon both factorization and use of quantum numbers in parallelization.

2.1

Matrix formulation of the Schrödinger equation

The basic goal is to solve the non-relativistic many-body Schrödinger equation
for A identical fermions of mass M ,


A
2
X
X
∇

V (~ri − ~rj ) Ψ(~r1 , ~r2 , . . . , ~rA ) = EΨ(~r1 , ~r2 , . . . , ~rA ), (2.1)
− i +
2M
i

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Page Count                      : 100
Producer                        : pdfTeX-1.40.15
Creator                         : TeX
Create Date                     : 2017:12:04 10:21:42-08:00
Modify Date                     : 2017:12:04 10:21:42-08:00
Trapped                         : False
PTEX Fullbanner                 : This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) kpathsea version 6.2.0
EXIF Metadata provided by EXIF.tools

Navigation menu