Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • liangb30/cas-741-boliang
  • pignierb/cas741
  • jimoha1/cas741
  • huoy8/cas741
  • grandhia/cas741
  • chenq84/cas741
  • yex33/cas741
  • xuey45/cas741
  • garcilau/cas-741-uriel-garcilazo-msa
  • schankuc2/cas741
  • ahmady3/cas741
  • saadh/cas741
  • singhk56/cas741
  • lin523/cas741
  • fangz58/cas741
  • tranp30/cas741
  • ceranich/cas741
  • norouf1/cas741
  • mirzam48/cas741
  • djavahet/cas741
  • hossaa27/cas741
  • yiding_el/cas-741-upate-name
  • sayadia/cas741
  • elmasn2/cas741
  • cheemf8/cas741
  • cheny997/cas741
  • ma209/cas741
  • mousas26/cas741
  • liuy363/cas741
  • wongk124/cas741
  • dua11/cas741
  • zhoug28/cas741
  • courses/cas-741-tst
  • liy443/cas-741-fork-csv
  • sochania/cas741
  • liy443/cas-741-update-csv-old
  • mahdipoa/cas741
  • wangz892/cas741
  • wangn14/cas741
  • defourej/cas741
  • zhaox183/cas741
  • smiths/cas741
42 results
Show changes
Commits on Source (739)
Showing
with 1652 additions and 0 deletions
dist
cabal-dev
*.o
*.hi
*.chi
*.chs.h
.virtualenv
.hsenv
.cabal-sandbox/
cabal.sandbox.config
cabal.config
*.aux
*.log
*.vrb
*.blg
*.bbl
*.DS_Store
*.synctex.gz
*.toc
*.lof
*.lot
*.nav
*.out
*.snm
*.fdb_latexmk
*.fls
*-nup.pdf
.DS_Store
.iTeXMac
*-2x2.pdf
*.pyc
html
latex
*.class
# Temporary Excel files
~$*
The contents of this folder were created by Spencer Smith.
(c) 2018 Spencer Smith ALL RIGHTS RESERVED
\ No newline at end of file
CAS 741/CSE 741 Development of Scientific Software
Overview
This course presents the basic principles of software development for reliable scientific and engineering software. Using example applications, a systematic process is given for the development and documentation of requirements, system design, module design, implementation, testing and inspection.
Description
Scientific computation consists of using computer tools to simulate mathematical models of real world systems so that we can better understand and predict the system's behaviour. A small sample of some important applications of scientific computation include the following: designing new automotive parts, analysing the flow of blood in the body, and determining the concentration of a pollutant released into the groundwater. As these examples illustrate, scientific computation can be used for tackling problems that impact such areas as manufacturing, financial planning, environmental policy, and the health, welfare and safety of communities. Given the important applications of scientific computation, it is surprising that little emphasis is currently placed on the quality of the software that performs the computations. Although many successful and sophisticated algorithms have been developed for scientific computing, the software often suffers from problems with such qualities as reliability, usability, verifiability, maintainability, reusability and portability. This is why scientific software is routinely sold with a disclaimer instead of a warranty. To make matters worse, the quality of scientific software is becoming increasingly more of an issue because the complexity and size of the problems that can be simulated on modern computers is constantly growing. The question for the future is how to meet the growing need for providing quick solutions to large and complex problems, and at the same time ensure that the solutions are correct? This graduate course will investigate this question by applying to scientific computing problems such software engineering methodologies as commonality analysis, requirements analysis and documentation, modular decomposition, module interface specification, testing, code and document generation and assurance cases.
The course will look at tools, techniques and principles for iterative and incremental development of scientific and engineering software. Despite the iterative development cycle, the documentation will follow 5 rational steps: i) identify the problem, ii) document the requirements, iii) design the system, iv) implement the software, and v) perform tests. This structure is well suited to scientific computing because it parallels the idealized scientific method, as follows: i) a physical problem of engineering or scientific importance is identified; ii) a system of governing equations and the associated boundary conditions are derived; iii) a numerical algorithms are developed; iv) the numerical algorithms are implemented on a computer; and, v) the model and the computed results are verified and validated, with the potential to return to one of the previous steps if necessary. These five steps are inherently multidisciplinary as they involve skills from physical modelling, mathematics, numerical analysis and computer science. For this reason it is important that requirements (including assumptions) and design decisions are clearly documented.
Delivery
The course will be taught as a series of lectures and group discussions. An important component of the course grade will be individual projects to design and develop software for solving a scientific computing problem.
Prerequisites
An interest in scientific computing is important, but no knowledge of numerical methods beyond what is typically covered in an undergraduate degree will be assumed. The projects will be selected to match the students background knowledge and interests.
\ No newline at end of file
File added
\documentclass[12pt]{article}
\usepackage{hyperref}
\hypersetup{
bookmarks=true, % show bookmarks bar?
colorlinks=true, % false: boxed links; true: colored links
linkcolor=red, % color of internal links (change box color with linkbordercolor)
citecolor=green, % color of links to bibliography
filecolor=magenta, % color of file links
urlcolor=cyan % color of external links
}
\oddsidemargin 0mm
\evensidemargin 0mm
\textwidth 165mm
\textheight 205mm
\title{Computing and Software 741 (Computational Engineering and Science 741)
Development of Scientific Computing Software}
%\author{Spencer Smith}
\pagestyle {plain}
\pagenumbering {arabic}
\newcommand{\be}{\begin{enumerate}}
\newcommand{\ee}{\end{enumerate}}
\newcommand{\bi}{\begin{itemize}}
\newcommand{\ei}{\end{itemize}}
% enumi counter is redefined for the purpose of numbering the deliverables
\renewcommand{\labelenumi}{\arabic{enumi}.}
\newcounter{temp}
\begin{document}
\maketitle
This course outline contains important information that will affect your
grade. You should retain and refer to this outline throughout the term.
\section {Instructor}
Dr.~Spencer Smith\\
Office: ITB/167\\
E-mail: \texttt{smiths@mcmaster.ca}\\
Web: \url{http://www.cas.mcmaster.ca/~smiths}\\
Office Hours: Drop in, or by appointment\\
\section{Calendar Description}
This course presents the basic principles of software development for reliable
and sustainable scientific and engineering software. Using example
applications, we discuss a systematic process for the development and
documentation of requirements, system design, module design, implementation,
testing, and inspection.
\section{Introduction}
Scientific computation (Research Software) consists of using computer tools to
simulate mathematical models of real world systems so that we can better
understand and predict the system's behaviour. A small sample of some important
applications of scientific computation include the following: designing new
automotive parts, analysing the flow of blood in the body, and determining the
concentration of a pollutant released into the groundwater. As these examples
illustrate, scientific computation can be used for tackling problems that impact
such areas as manufacturing, financial planning, environmental policy, and the
health, welfare and safety of communities. Given the important applications of
scientific computation, it is surprising that developers place little emphasis
on the quality of the software that performs the computations. Although many
successful and sophisticated algorithms have been developed for scientific
computing, the software often suffers from problems with such qualities as
reliability, usability, verifiability, maintainability, reusability, and
portability. This is why developers sell scientific software with a disclaimer
instead of a warranty. To make matters worse, the quality of scientific
software is becoming increasingly more of an issue because the complexity and
size of the problems that can be simulated on modern computers is constantly
growing. The question for the future is how to meet the growing need for
providing quick solutions to large and complex problems, and at the same time
ensure that the solutions are correct? This graduate course will investigate
this question by applying to scientific computing problems such software
engineering methodologies as commonality analysis, requirements analysis and
documentation, modular decomposition, module interface specification, testing,
code and document generation and assurance cases.
The course will look at tools, techniques, and principles for iterative and
incremental development of scientific and engineering software. Despite the
iterative development cycle, the documentation will follow 5 rational steps: i)
identify the problem, ii) document the requirements, iii) design the system, iv)
implement the software, and v) perform tests. This structure is well suited to
scientific computing because it parallels the idealized scientific method, as
follows: i) we identify a physical problem of engineering or scientific
importance; ii) we derive a system of governing equations and the associated
boundary conditions; iii) we develop numerical algorithms; iv) we implement the
numerical algorithms on a computer; and, v) we verify and validate the model and
the computed results, with the potential to return to one of the previous steps
if necessary. These five steps are inherently multidisciplinary as they involve
skills from physical modelling, mathematics, numerical analysis and computer
science. For this reason it is important that we clearly document requirements
(including assumptions) and design decisions.
\subsection*{Avenue, GitLab, GitHub and Teams}
This course will be administered via Avenue to Learn. Go to
\bi
\item[] \url{http://avenue.mcmaster.ca/}
\ei
\noindent to access the course's Avenue to Learn page. Please send only normal
McMaster e-mail; do not send mail via Avenue.
Students should be aware that, when they access the electronic components of
this course, private information such as first and last names, usernames for the
McMaster e-mail accounts, and program affiliation may become apparent to all
other students in the same course. The available information is dependent on
the technology used. Continuation in this course will be deemed consent to this
disclosure. If you have any questions or concerns about such disclosure please
discuss this with the Instructor.
\emph{It is the student's responsibility to be aware of the
information on the course's Avenue to Learn page and to check
regularly for announcements.}
The primary purpose of Avenue will be for maintaining grades. Most of the
course content will be maintained in a public git (CAS GitLab) repository. You
can access this repository at:
~\newline
\href{https://gitlab.cas.mcmaster.ca/smiths/cas741/}{https://gitlab.cas.mcmaster.ca/smiths/cas741/}\\
% \noindent Rather than use the Avenue discussion board, please post your
% questions (issues) to the GitLab issue tracker.
In addition to Avenue and the Gitlab course note repository, every student will
create a public GitHub repository (with the instructor added as a full access
collaborator) for their work. The GitHub server is at
\url{https://github.com/}. Each student's repo will start from the given
\href{https://github.com/smiths/capTemplate} {template repo}. Students will be
expected to use GitHub to provide comments on the work of other students in the
class.
We will use Teams for for discussion. Our communication policy is that questions
that are relevant to other students in the class should be posted on Teams.
That way everyone can benefit from the discussion. Questions that are relevant
to only one individual, should be sent to the instructor via e-mail. Please
send only normal McMaster e-mail; do not send mail via Avenue or direct messages
using Teams.
\subsection*{Classes}
Classes will be held in person in the graduate classroom (ITB/222).
\section {Course Project}
At the beginning of the term each student will select a scientific computing
problem. Over the course of the term software will be developed to address the
selected problem. The software development process will follow the iterative
waterfall model. Typically, students will use one of two methodologies:
\begin{enumerate}
\item ``Traditional/Manual Approach''
\begin {enumerate}
\item Software Requirements Specification (SRS)
\item Module Guide (MG)
\item Module Interface Specification (MIS)
\item Implementation (any appropriate programming language)
\item Verification and Validation (VnV) Plan
\item Verification and Validation (VnV) Report
\end{enumerate}
\item ``Drasil (artifact+code generation)/Automated Approach''
\begin {enumerate}
\item Software Requirements Specification (SRS) draft, as for manual
\item SRS generation in Drasil
\item Drasil design choices and explanation
\item Code generation (Drasil supported programming languages)
\item Verification and Validation (VnV) Plan (manually produced)
\item Verification and Validation (VnV) Report (manually produced)
\end{enumerate}
\end {enumerate}
If a student opts for the Drasil approach, they can later switch back to the
Traditional approach, without any grade related penalty.
The Drasil approach uses the \href{https://github.com/JacquesCarette/Drasil}
{Drasil framework} to generate the SRS and the code. Since Drasil is
incomplete, the V\&V documents will still be generated manually. Further
details on Drasil will be covered during the class lectures.
With approval from the instructor, the deliverables can potentially be modified,
if a project is more suited to a different structure. For instance, a project
could replace one of the above deliverables with an assurance case deliverable,
or with a greater emphasis on domain specific code to automatically build the
deliverables, or with extending Drasil's capabilities. Projects that add
something substantial to the base requirements are eligible for a bonus grade of
up to 50\%. For instance, adding support for a new external library to Drasil
would be worth additional marks. The specific bonus should be discussed with
the instructor in advance.
\section {Course Structure}
The format of the course will consist of student and instructor presentations.
Each student will be expected to do an informal presentation on some subset of
their SRS, MG, MIS, Drasil, Implementation, VnV Plan and VnV Report. The class
discussion during each presentation will assist in improving the quality of the
written deliverable. Given the term-long goal of improving each project,
students should be prepared for criticism during their presentations. This
criticism is part of formative learning; it is part of the learning process. It
will not effect the presentation grades. Please let the instructor know if you
have any concerns with the feedback you receive.
Each student following the traditional approach will be expected to virtually
hand in the following written documents: SRS, MG, MIS, VnV Plan, VnV Report,
code and Final Documentation. The deliverables for the Drasil approach are the
same, except we replace the MG and MIS with the Drasil code to generate the
documentation and code.
\section {Grading}
\begin {enumerate}
\item (Traditional and Drasil) Presentations and class discussion 5\%
\item (Traditional and Drasil) ``Domain Expert'' reviewer role 5\%
\item (Traditional and Drasil) Problem Statement, Risk, Proof of Concept (POC) Plan 0\%
\item (Traditional and Drasil) System Requirements Specification (SRS) Document 10\%
\item (Traditional and Drasil) System Verification and Validation (VnV-Syst) Plan 10\%
\item (Traditional) Module Guide and Module Interface Specification (MG and MIS) 10\%
\item (Drasil) Drasil code and Code Explanation Document 10\%
\item (Traditional and Drasil) Final Documentation 60\%
\begin{enumerate}
\item Problem Statement (Revised)
\item SRS (Revised)
\item System VnV Plan (Revised)
\item (Traditional) MG (Revised)
\item (Traditional) MIS (Revised)
\item (Drasil) Drasil code and explanation (Revised)
\item Unit VnV Plan
\item Code
\item System VnV Report
\item Unit VnV Report
\item Reflection Report
\item Extra task (for non-research projects, see below)
\end{enumerate}
\end {enumerate}
All projects are expected to use Continuous Integration (CI), unless there is a
compelling reason (agreed on with the instructor) why CI is not an option.
\subsection{Peer Review}
Each student will be assigned as a ``Domain Expert'' (DE) for one of their
classmates. The DE will review (via GitHub issues) their assigned project. %
%In addition, they will write the code for one of the modules of their assigned
% project and issue a pull request through GitHub. For the secondary reviewer
% role, the instructor will assign various review tasks throughout the term. The
% secondary reviewers feedback will focus more on the structure and format of the
% documentation, rather than on issues related to domain knowledge.
\subsection{Challenge Level and Extra Tasks}
Due to differences in interests and background, students in this course will
select topics with varying levels of complexity in the required domain knowledge
and possibly in the implementation. If a project requires graduate-level domain
knowledge, it is classified as a ``research'' project. For projects that are
not ``research'' projects, an extra task required. Examples of extra tasks
include usability testing, rigorous code walkthroughs, user manual, formal
proof, etc. If a research project does extra work, the extra work is graded as
a bonus. The extra task is evaluated as part of the final documentation.
\section {Policy Statements}
This section of the course outline explains the course policy with respect to
improving the course, missed work, discrimination and academic dishonesty.
\subsection {Improving the course}
Ideas to improve the course are always welcome. Moreover, if you have problems
in the course please contact the instructors as early as possible.
\subsection {Missed Work}
Late assignments, without permission, will receive a penalty of -20 \% per
working day that the assignment is late.
\subsection {Discrimination}
The Faculty of Engineering is concerned with ensuring an environment
that is free of all adverse discrimination. If there is a problem,
that cannot be resolved by discussion among the persons concerned,
individuals are reminded that they should contact their Department
Chair and the Human Rights and Equity Services (HRES) office as soon
as possible.
\subsection {Academic Dishonesty}
You are expected to exhibit honesty and use ethical behaviour in all aspects of
the learning process. Academic credentials you earn are rooted in principles of
honesty and academic integrity.
Academic dishonesty is to knowingly act or fail to act in a way that results or
could result in unearned academic credit or advantage. This behaviour can result
in serious consequences, e.g., the grade of zero on an assignment, loss of
credit with a notation on the transcript (notation reads: ``Grade of F assigned
for academic dishonesty''), and/or suspension or expulsion from the university.
It is your responsibility to understand what constitutes academic dishonesty.
For information on the various types of academic dishonesty please refer to the
Academic Integrity Policy, located at
\[\texttt{http://www.mcmaster.ca/academicintegrity/}\]
\noindent The following illustrates only three forms of academic dishonesty:
\be
\item Plagiarism, e.g., the submission of work that is not one's own or for
which other credit has been obtained.
\item Improper collaboration in group work.
\item Copying or using unauthorized aids in tests and examinations.
\ee
\emph{Your work must be your own.} Plagiarism and copying will not be
tolerated! If it is discovered that you plagiarized or copied, it
will be considered as academic dishonesty.
Students may be asked to defend their written work orally.
\subsection*{Course Modifications}
The instructor and university reserve the right to modify elements of
the course during the term. The university may change the dates and
deadlines for any or all courses in extreme circumstances. If either
type of modification becomes necessary, reasonable notice and
communication with the students will be given with explanation and the
opportunity to comment on changes. It is the responsibility of the
student to check their McMaster e-mail and course websites weekly
during the term and to note any changes. Your McMaster e-mail is the
one with the address ending in \texttt{@mcmaster.ca}. This is a
separate e-mail address from your Avenue address.
\subsection*{Conduct Expectations}
As a McMaster graduate student, you have the right to experience, and the
responsibility to demonstrate, respectful and dignified interactions within all
of our living, learning and working communities. These expectations are
described in the Code of Student Rights \& Responsibilities (the ``Code''). All
students share the responsibility of maintaining a positive environment for the
academic and personal growth of all McMaster community members, whether in
person or online.
It is essential that students be mindful of their interactions online, as the
Code remains in effect in virtual learning environments. The Code applies to any
interactions that adversely affect, disrupt, or interfere with reasonable
participation in University activities. Student disruptions or behaviours that
interfere with university functions on online platforms (e.g. use of Avenue 2
Learn, WebEx or Zoom for delivery), will be taken very seriously and will be
investigated. Outcomes may include restriction or removal of the involved
students’ access to these platforms.
\subsection*{Academic Accommodation of Students with Disabilities}
Students with disabilities who require academic accommodation must contact
Student Accessibility Services (SAS) at 905-525-9140 ext. 28652 or
sas@mcmaster.ca to make arrangements with a Program Coordinator. For further
information, consult McMaster University’s Academic Accommodation of Students
with Disabilities policy.
\subsection*{Academic Accommodation for Religious, Indigenous or Spiritual
Observations (RISO)}
Students requiring academic accommodation based on religious, indigenous or
spiritual observances should follow the procedures set out in the RISO
policy. Students should submit their request to their Faculty Office normally
within 10 working days of the beginning of term in which they anticipate a need
for accommodation or to the Registrar's Office prior to their
examinations. Students should also contact their instructors as soon as possible
to make alternative arrangements for classes, assignments, and tests.
\subsection*{Copyright and Recording}
Students are advised that lectures, demonstrations, performances, and any other
course material provided by an instructor include copyright protected works. The
Copyright Act and copyright law protect every original literary, dramatic,
musical and artistic work, including lectures by University instructors
The recording of lectures, tutorials, or other methods of instruction may occur
during a course. Recording may be done by either the instructor for the purpose
of authorized distribution, or by a student for the purpose of personal
study. Students should be aware that their voice and/or image may be recorded by
others during the class. Please speak with the instructor if this is a concern
for you.
\subsection*{Extreme Circumstances}
The University reserves the right to change the dates and deadlines for any or
all courses in extreme circumstances (e.g., severe weather, labour disruptions,
etc.). Changes will be communicated through regular McMaster communication
channels, such as McMaster Daily News, A2L and/or McMaster email.
\end{document}
\ No newline at end of file
1. Software Engineering for Science
https://gitlab.cas.mcmaster.ca/SEforSC/se4sc
https://gitlab.cas.mcmaster.ca/SEforSC/se4sc/tree/git-svn/SciCompAndSoftEngPapers
2. Case Study Examples of Scientific Computing Projects
SWHS: https://github.com/smiths/swhs
GlassBR: https://github.com/smiths/caseStudies/tree/master/CaseStudies/glass
noPCM: https://github.com/smiths/caseStudies/tree/master/CaseStudies/noPCM
SSP: https://github.com/smiths/caseStudies/tree/master/CaseStudies/ssp
GamePhysics: https://github.com/smiths/caseStudies/tree/master/CaseStudies/gamephys
3. Document and Code Generation
https://github.com/JacquesCarette/Drasil
\ No newline at end of file
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
This is the serial version of PMGT, also known as MGT
September, 2008
The directories and their contents are as follows:
/doc The documentation for the serial version of PMGT, or MGT
/mgt The source files for the mesh generation toolbox
/testdriver An example test driver that uses mgt to refine a mesh
Readme.txt This file
\ No newline at end of file
\usepackage[top=1.75in,left=1.5in,right=1.5in,bottom=1.25in,verbose]{geometry}%footskip=.25in,
\usepackage{graphicx}
\usepackage{rotating}
\usepackage{amssymb,amsmath}\allowdisplaybreaks[4]
\usepackage{multirow}
\usepackage{fancyhdr}
\usepackage{overpic}
\usepackage{epsfig}
\usepackage{setspace}
\usepackage{makeidx}
\usepackage{epsfig}
\usepackage{paralist}
\usepackage{appendix}
\usepackage{changebar}
\usepackage[round]{natbib}
\newcounter{funnum}
\newcommand{\fthefunnum}{F\thefunnum}
\newcommand{\fref}[1]{F\ref{#1}}
\newcounter{nfnum}
\newcommand{\nthenfnum}{N\thenfnum}
\newcommand{\nref}[1]{N\ref{#1}}
\newcounter{goalnum}
\newcommand{\gthegoalnum}{G\thegoalnum}
\newcommand{\gref}[1]{G\ref{#1}}
\newcounter{assnum}
\newcommand{\atheassnum}{A\theassnum}
\newcommand{\aref}[1]{A\ref{#1}}
\newcounter{tmnum}
\newcommand{\tmthetmnum}{TM\thetmnum}
\newcommand{\tmref}[1]{TM\ref{#1}}
\newcounter{ddnum}
\newcommand{\dtheddnum}{D\theddnum}
\newcommand{\dref}[1]{D\ref{#1}}
\newcounter{acnum}
\newcommand{\actheacnum}{AC\theacnum}
\newcommand{\acref}[1]{AC\ref{#1}}
\newcounter{ucnum}
\newcommand{\uctheucnum}{UC\theucnum}
\newcommand{\uref}[1]{UC\ref{#1}}
\newcounter{mnum}
\newcommand{\mthemnum}{M\themnum}
\newcommand{\mref}[1]{M\ref{#1}}
\newcounter{qfnum}
\newcommand{\qftheqfnum}{QF\theqfnum}
\newcommand{\qfref}[1]{QF\ref{#1}}
\newcounter{casenum}
\newcommand{\cthecasenum}{TC\thecasenum}
\newcommand{\cref}[1]{TC\ref{#1}}
\newcommand{\mi}[1]{#1\index{#1}}
%\makeindex
\addtocounter{secnumdepth}{3}
\newcommand{\colAwidth}{0.36\textwidth}
\newcommand{\colBwidth}{0.45\textwidth}
\newcommand{\firstCol}{0.17\textwidth}
\newcommand{\secondCol}{0.7\textwidth}
\newcommand{\colOne}{0.1\textwidth}
\newcommand{\colTwo}{0.15\textwidth}
\DeclareGraphicsRule{.jpg}{eps}{}{}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancyhf{} \fancyfoot[C]{\thepage} \fancyhead[C]{\itshape Wen Yu -- McMaster University -- Computing and Software}
\setlength{\parindent}{0.5in}
\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}
%\doublespacing
\ No newline at end of file
@TECHREPORT{Bauer1995,
AUTHOR ="Brian Bauer",
TITLE ="Documenting Complicated Programs",
YEAR ="1995",
NUMBER ="CRL Report 316",
INSTITUTION ="Department of Computing and Software, McMaster University"
}
@inproceedings{Beohm1988,
author = {Barry W. Beohm},
title = {A Spiral Model for Software Development and Enhancement},
booktitle = {Computer},
year = {1988},
volume = {vol. 21, no. 5},
pages = {pp.61 - 72},
month = {May},
}
@inproceedings{Bern1993,
author = {Marshall W. Bern and David Eppstein and Shang-Hua Teng},
title = {Parallel Construction of Quadtrees and Quality Triangulations},
booktitle = {WADS '93: Proceedings of the Third Workshop on Algorithms and Data Structures},
year = {1993},
isbn = {3-540-57155-8},
pages = {188--199},
publisher = {Springer-Verlag},
address = {London, UK},
}
@InProceedings {Berti2000,
AUTHOR = "Guntram Berti",
TITLE = "Generic Components for Grid Data Structures and
Algorithms with {C++}",
BOOKTITLE = "First Workshop on {C++} Template Programming,
Erfurt, Germany",
MONTH = "October 10",
YEAR = "2000",
}
@mastersthesis{Cao2006,
AUTHOR = {Fang Cao},
TITLE={A Program Family Approach to Developing Mesh Generators},
SCHOOL={McMaster University},
MONTH={April},
YEAR=2006,
ANNOTE={NUMBER OF PAGES: vii, 211},
}
@mastersthesis{Chen2003,
AUTHOR = {Chien-Hsien Chen},
TITLE={A Software Engineering Approach to Developing Mesh Generators},
SCHOOL={McMaster University},
MONTH={Novermber},
YEAR=2003,
ANNOTE={NUMBER OF PAGES: vii, 247},
}
@MISC(Cirincione1992,
AUTHOR = "Joseph Cirincione",
TITLE = "The Performance of the Patriot Missile in the Gulf War",
NOTES = "An Edited Draft of a Report prepared for the Government Operations Committee, U.S. House of Representatives",
YEAR = "1992",
MONTH = "October",
)
@BOOK(CSTE2006,
AUTHOR = {CSTE},
TITLE = "2006 Guide to the CSTE COMMON BODY OF KNOWLEDGE",
PUBLISHER = "Quality Assurance Institute",
YEAR = 2006)
@BOOK(Davis1990,
AUTHOR = {Alan M. Davis},
TITLE = "Software Refquirements: Analysis and Specification",
PUBLISHER = "Prentice Hall Inc.",
YEAR = 1990)
@BOOK(Dijkstra1972,
AUTHOR = {Dijkstra, E. W.},
TITLE = "Structured Programming, Chapter Notes on Structured Programming",
PUBLISHER = "Academic Press, London",
YEAR = 1972)
@article{Duff1989,
author = {I. S. Duff and Roger G. Grimes and John G. Lewis},
title = {Sparse matrix test problems},
journal = {ACM Trans. Math. Softw.},
volume = {15},
number = {1},
year = {1989},
issn = {0098-3500},
pages = {1--14},
publisher = {ACM Press},
address = {New York, NY, USA},
}
@Article{ElSheikh2003,
author = "A. H. ElSheikh",
title = "A review of GRUMMP mesh generation code",
year = "2003",
month = "August",
}
@article{ElSheikh2004,
author = {A. H. ElSheikh and S. Smith and S. E. Chidiac},
title = {Semi-formal design of reliable mesh generation systems},
journal = {Adv. Eng. Softw.},
volume = {35},
number = {12},
year = {2004},
issn = {0965-9978},
pages = {827--841},
publisher = {Elsevier Science Ltd.},
address = {Oxford, UK, UK},
}
@article{Floyd1979,
author = {Robert W. Floyd},
title = {The paradigms of programming},
journal = {Commun. ACM},
volume = {22},
number = {8},
year = {1979},
issn = {0001-0782},
pages = {455--460},
publisher = {ACM Press},
address = {New York, NY, USA},
}
@BOOK(FreyAndGeorge2000,
AUTHOR = {Pascal Jean Frey and Paul-Louis George},
TITLE = "Mesh generation Application to Finite Elements",
PUBLISHER = "Hermes Science Europe ltd.",
YEAR = 2000)
@BOOK(Ghezzi2003,
AUTHOR = {Carlo Ghezzi and Mehdi Jazayeri and Dino Mandrioli},
TITLE = "Funcamentals of software Engineering",
PUBLISHER = "Pearson Education, Inc.",
Address = "Upper Saddle River, New Jersey 07458",
YEAR = 2003)
@InProceedings{Grabmueller2003,
author = {Martin Grabm{\"u}ller and Petra Hofstedt},
title = {{Turtle: A Constraint Imperative Programming Language}},
editor = {Frans Coenen and Alun Preece and Ann Macintosh},
booktitle = {Twenty-third SGAI International Conference on Innovative
Techniques and Applications of Artificial Intelligence},
year = {2003},
number = {XX},
series = {Research and Development in Intelligent Systems},
address = {Cambridge, UK},
month = {December},
organization = {British Computer Society},
publisher = {Springer-Verlag},
isbn = {1-85233-780-X},
}
@BOOK(Gries1993,
AUTHOR = {David Gries and Fred B. Schneider},
TITLE = "A Logical Approach to Discrete Math",
PUBLISHER = "Springer-Verlag New Yourk, Inc.",
YEAR = 1993)
@inproceedings{Gueziec1995,
author = {Andre Gueziec},
title = {Surface simplification with variable tolerance},
booktitle = {Second Annual Intl. Symp. on Medical Robotics and Computer Assisted Surgery (MRCAS '95)},
year = {1995},
month = {November},
pages = {132-139},
}
@misc{Guillard1993,
author = "H. Guillard",
title = "Node-nested multi-grid with Delaunay coarsening",
text = "Herve Guillard. Node-nested multi-grid with Delaunay coarsening. Technical
Report 1898, Institute National de Recherche en Informatique et en Automatique,
1993.",
year = "1993" }
@BOOK(Hoffman1999,
AUTHOR = {Daniel Hoffman and Paul Strooper},
TITLE = "Software Design, Automated Testing and Maintenance",
PUBLISHER = "International Thomson Computer Press",
YEAR = 1999)
@BOOK(IEEE1990,
AUTHOR = {IEEE},
TITLE = "IEEE Standard Glossary of Software Engineering Terminology ",
PUBLISHER = "IEEE Computer Society, Washington, DC, USA",
YEAR = 1990)
@BOOK(IEEE2000,
AUTHOR = {IEEE},
TITLE = "IEEE Recommended Practice for Software Requirements Specifications",
PUBLISHER = "IEEE Computer Society, Washington, DC, USA, 2nd edition",
YEAR = 2000)
@BOOK(IEEE1998,
AUTHOR = {IEEE},
TITLE = "IEEE Guide for Developing System Requirements Specifications",
PUBLISHER = "IEEE Computer Society, Washington, DC, USA",
YEAR = 1998)
@MISC(Khedri2001,
AUTHOR = "R. Dhedri",
TITLE = "Software Requirements Activeties",
NOTES = "Lecture Notes",
SCHOOL = "Department of Computing and Software, McMaster University",
YEAR = 2001
)
@MASTERSTHESIS{Koenig2003,
TITLE = "An Efficient Implementation of {C}harm++ on {V}irtual
{M}achine {I}nterface",
AUTHOR = "Gregory Allen Koenig",
SCHOOL = "University of Illinois at Urbana-Champaign",
YEAR = "2003"
}
@MASTERSTHESIS{Lai2004,
AUTHOR = {Lei~Lai},
TITLE={Requirements Documentation for Engineering Mechanics Software: Guidelines,
Template and a Case Study},
SCHOOL={McMaster University},
MONTH={Sept.},
YEAR=2004,
ANNOTE={NUMBER OF PAGES: xx, 256},
}
@inproceedings{Lamsweerde2001,
author = {Axel van Lamsweerde},
title = {Goal-Oriented Requirements Engineering: A Guided Tour},
booktitle = {Proceedings of the fifth IEEE International Symposium on Requirements Engineering},
year = {2001},
pages = {249--263},
location = {IEEE},
publisher = {IEEE Computer Society, Washington, DC, USA},
}
@BOOK(Lee2003,
AUTHOR = {Copeland, Lee},
TITLE = "A Practioner's Guide to Software Test Design.",
PUBLISHER = "Artech House Publisher",
YEAR = 2003)
@BOOK(Lewis2004,
AUTHOR = {William E Lewis and Cunasakaran Veerapollai},
TITLE = "Software testing and continuous quality improvement 2nd ed.",
PUBLISHER = "CRC Press LLC",
YEAR = 2004)
@book{McCall1977,
author = {J. McCall and P. Richards and G. Walters},
title = {Factors in Software Quality},
publisher = {NTIS AD-A049-014, 015, 055},
year = {1997},
month = {Novermber},
}
@inproceedings{Miller1997,
author = "Miller and Talmor and Teng",
title = "Optimal Good-Aspect-Ratio Coarsening for Unstructured Meshes",
booktitle = "{SODA}: {ACM}-{SIAM} Symposium on Discrete Algorithms (A Conference on Theoretical and Experimental Analysis of Discrete Algorithms)",
year = "1997",
}
@inproceedings{Mitchell2000,
author = {Scott A. Mitchell and Stephen A. Vavasis},
title = {Quality Mesh Generation in Higher Dimensions},
booktitle = {SIAM Journal on Computing},
year = {2000},
isbn = {1095-7111},
volume = {29},
pages = {1334--1370},
publisher = {Society for Industrial and Applied Mathematics},
address = {3600 University City Science Center, Philadelphia, PA 19104 USA},
}
@article{Ollivier2003,
author = {Carl F. Ollivier-Gooch},
title = {Coarsening unstructured mesh by edge constraction},
journal = {International Journal for Numerical Methods in Edgineering},
volume = {57},
number = {3},
year = {2003},
month = {May},
pages = {391-414},
}
@inproceedings{Owen1998,
author = {Owen, Steven J.},
title = {A Survey of Unstructured Mesh Generation Technology},
booktitle = {Proceedings 7th International Meshing Roundtable},
year = {1998},
month = {October},
doi = {www.andrew.cmu.edu/user/sowen/survey},
address = {Dearborn, MI},
}
@article{Parnas1972,
author = {David L. Parnas},
title = {On the Criteria to be Used in Decomposing System into Modules},
journal = {Communications of th ACM},
year = {1972},
volume = {vol. 15, No. 12},
pages = {pp.1053 - 1058},
month = {December},
}
@article{Parnas1976,
author = {David L. Parnas},
title = {On the Design and Development of Program Families},
journal = {IEEE Transactions on Software Engineering},
year = {1976},
}
@inproceedings{Parnas1978,
author = {David L. Parnas},
title = {Designing Software for Ease of Extension and Contraction},
booktitle = {ICSE '78: Proceedings of the 3rd international conference on Software engineering},
year = {1978},
isbn = {none},
pages = {264--277},
location = {Atlanta, Georgia, United States},
publisher = {IEEE Press},
address = {Piscataway, NJ, USA},
}
@inproceedings{Parnas1984,
author = {D. L. Parnas and P. C. Clements and D. M. Weiss},
title = {The Modular Structure of Complex Systems},
booktitle = {ICSE '84: Proceedings of the 7th international conference on Software engineering},
year = {1984},
isbn = {0-8186-0528-6},
pages = {408--417},
location = {Orlando, Florida, United States},
publisher = {IEEE Press},
address = {Piscataway, NJ, USA},
}
@book{Pressman1999,
author = {Roger S. Pressman},
title = {Software Engineering, A Practitioner's Approach, fourth Edition},
publisher = {McGraw-Hill},
year = {1999},
}
@MISC(Qao727Notes,
AUTHOR = "Sanzheng Qiao",
TITLE = "Lecture Notes of CAS727: Design of Numerical Software",
NOTES = "Lecture Notes",
SCHOOL = "Department of Computing and Software, McMaster University",
doi = {http://www.cas.mcmaster.ca/~qiao/courses/cas727/index.html},
YEAR = 2004
)
@inproceedings{Raccoon1995,
author = {Raccoon, L.B.S.},
title = {The Chaos Model and the Chaos Life Cycle},
booktitle = {ACM Software Engineering Notes},
year = {1995},
volume = {vol. 20, no. 1},
pages = {pp.55 - 66},
month = {January},
}
@misc{ rivara1995,
author = "M. Rivara and P. Inostroza",
title = "A discussion on mixed (longest side midpoint insertion) delaunay techniques
for the triangulation refinement problem",
text = "M. C. Rivara and P. Inostroza, A discussion on mixed (longest side midpoint
insertion) delaunay techniques for the triangulation refinement problem,
Proceedings 4th International Meshing Roundtable. Albuquerque, pp. 335--346,
1995.",
year = "1995",
}
@article{Rivara1997,
author = {Rivara, Maria-Celilia},
title = {New Longest-Edge Algorithms for the Refinement and/or Improvement of Unstructured Triangulation.},
journal = {International Journal for Numerical Methods in Engineering},
volume = {40},
year = {1997},
pages = {3313--3324},
publisher = {Wiley},
}
@inproceedings{Royce1970,
author = {Royce, W.W.},
title = {Managing the Development of Large Software System: Concepts and Techniques},
booktitle = {Proc. ICSE},
year = {1970},
month = {August},
publisher = {Computer Society Press},
}
@inproceedings{Ruppert1993,
author = {Jim Ruppert},
title = {A new and simple algorithm for quality 2-dimensional mesh generation},
booktitle = {SODA '93: Proceedings of the fourth annual ACM-SIAM Symposium on Discrete algorithms},
year = {1993},
isbn = {0-89871-313-7},
pages = {83--92},
location = {Austin, Texas, United States},
publisher = {Society for Industrial and Applied Mathematics},
address = {Philadelphia, PA, USA},
}
@incollection{Shaw95,
author = "Mary Shaw and David Garlan",
title = "Formulations and Formalisms in Software Architecture",
booktitle = "Computer Science Today: Recent Trends and Developments",
pages = "307-323",
year = "1995",
publisher="Springer-Verlag",
series="Lecture Notes in Computer Science",
editor = "Jan van Leeuwen",
volume = "1000",
}
@TECHREPORT{Smith2004,
KEY ="S.~Smith and C.~H.~Chen",
AUTHOR ="S. Smith and C. H. Chen",
TITLE ="Commonality Analysis for Mesh Generation System",
YEAR ="2004",
NUMBER ="CAS-04-10-ss",
INSTITUTION ="Department of Computing and Software, McMaster University"
}
@MISC{Smith2006,
author = {Spencer Smith},
title = {Systematic Development of Requirements Documentation for General Purpose Scientific Computing Software},
year = {2006},
}
@article{Smith2007,
Author = {W. Spencer Smith and Lei Lai and Ridha Khedri},
Journal = {Reliable Computing, Special Issue on Reliable Engineering Computation},
Pages = {83--107},
Title = {Requirements Analysis for Engineering Computation: A Systematic Approach for Improving Software Reliability},
Year = {2007},
Volume = {13}
}
@inproceedings{Smith2005,
Address = {Paris, France},
Author = {W. Spencer Smith and Lei Lai},
Booktitle = {Proceedings of the First International Workshop on Situational Requirements Engineering Processes -- Methods, Techniques and Tools to Support Situation-Specific Requirements Engineering Processes, SREP'05},
Editor = {J. Ralyt\'{e} and P. \.{A}gerfalk and N. Kraiem},
Organization = {In conjunction with 13th IEEE International Requirements Engineering Conference},
Pages = {107--121},
Title = {A New Requirements Template for Scientific Computing},
Year = {2005}}
@BOOK(Sommerville1997,
AUTHOR = {Ian Sommerville and Pete Sawyer},
TITLE = "Requirements Engineering A Good Practice Guide",
PUBLISHER = "John Wiley and Sons",
YEAR = 1997)
@BOOK(Sommerville1992,
AUTHOR = {Ian Sommerville},
TITLE = "Software Engineering",
PUBLISHER = "Addison-Wesley Publishing Company",
YEAR = 1992)
@article{Tomayko1995,
author = {James Tomayko},
title = {Anecdotes},
journal = {IEEE Annals of the History of Computing},
volume = {17},
number = {2},
year = {1995},
issn = {1058-6180},
pages = {62-63},
publisher = {IEEE Computer Society},
address = {Los Alamitos, CA, USA},
}
@MISC{Volere2001,
author = {James Robertson and Suzanne Robertson},
title = {Volere Requirements Specification Template},
year = {2001},
doi = {www.systemsguild.com},
publisher = {The Atlantic Systems Guild Inc.},
}
@article{Wilson2006,
author = {Gregory V. Wilson},
title = {Where's the Real Bottleneck in Scientific Computing: Scientists would do well to pick up some tools widely used in the software industry},
journal = {American Scientist},
volume = {94},
number = {1},
page = {5},
year = {2006},
month = {January -- Febrary},
}
@book{Zienkiewicz2005,
Author = {O. C. Zienkiewicz and R. L Taylor and J. Z. Zhu},
Edition = {6th},
Publisher = {Elsevier Butterworth-Heinemann},
Title = {The Finite Element Method Its Basis and Fundamentals},
Year = {2005}}
@MISC{AOMD2006,
AUTHOR = {SCOREC},
TITLE = {Algorithm Oriented Mesh Database},
URL = {http://www.scorec.rpi.edu/AOMD/},
YEAR = {Last Access: January, 2006},
}
@MISC{Blackpawn,
AUTHOR = {Blackpawn},
TITLE = {Point in Triangle Test},
URL = {http://www.blackpawn.com/texts/pointinpoly/default.html},
YEAR = {Last Access: January, 2006},
}
@MISC{OwenWeb2006,
AUTHOR = {Owen, Steven J.},
TITLE = {Meshing Research Corner},
URL = {http://www.andrew.cmu.edu/user/sowen/mesh.html},
YEAR = {Last Access: January, 2006},
}
@MISC{sharcnet2006,
AUTHOR = "SHARCNET",
TITLE = "Shared Hierarchical Academic Research Computing Network",
URL = {www.sharcnet.ca},
YEAR = {Last Access: January, 2006},
}
@MISC{Triangle2006,
AUTHOR = "Jonathan Shewchuk",
TITLE = "Triangle, A Two-Dimensional Quality Mesh Generator and Delaunay Triangulator",
URL = {http://www.cs.cmu.edu/\~ quake/triangle.html},
YEAR = {Last Access: January, 2006},
}
@MISC(Wikipedia,
AUTHOR = "Wikipedia",
TITLE = "Waterfall Model",
URL = {http://en.wikipedia.org/wiki/Waterfall\_model},
YEAR = {Last Access: January, 2006},
)
@MISC{OpenMesh2006,
AUTHOR = "OpenMesh",
TITLE = "OpenMesh",
URL = {http://www.openmesh.org/},
YEAR = {Last Access: January, 2006},
}
@MISC{Franklin2006,
AUTHOR = "W. Randolph Franklin ",
TITLE = "PNPOLY - Point Inclusion in Polygon Test",
URL = {http://www.ecse.rpi.edu/Homepages/wrf/Research/Short\_Notes/ pnpoly.html},
YEAR = {Last Access: January, 2006},
}
%!PS-Adobe-2.0 EPSF-1.2
%%Creator: MATLAB, The Mathworks, Inc.
%%Title: C:\Documents and Settings\wen yu\Desktop\serial\input1.eps
%%CreationDate: 10/10/2006 23:16:19
%%DocumentNeededFonts: Helvetica
%%DocumentProcessColors: Cyan Magenta Yellow Black
%%Pages: 1
%%BoundingBox: 77 213 547 602
%%EndComments
%%BeginProlog
% MathWorks dictionary
/MathWorks 160 dict begin
% definition operators
/bdef {bind def} bind def
/ldef {load def} bind def
/xdef {exch def} bdef
/xstore {exch store} bdef
% operator abbreviations
/c /clip ldef
/cc /concat ldef
/cp /closepath ldef
/gr /grestore ldef
/gs /gsave ldef
/mt /moveto ldef
/np /newpath ldef
/cm /currentmatrix ldef
/sm /setmatrix ldef
/rm /rmoveto ldef
/rl /rlineto ldef
/s {show newpath} bdef
/sc {setcmykcolor} bdef
/sr /setrgbcolor ldef
/sg /setgray ldef
/w /setlinewidth ldef
/j /setlinejoin ldef
/cap /setlinecap ldef
/rc {rectclip} bdef
/rf {rectfill} bdef
% page state control
/pgsv () def
/bpage {/pgsv save def} bdef
/epage {pgsv restore} bdef
/bplot /gsave ldef
/eplot {stroke grestore} bdef
% orientation switch
/portraitMode 0 def /landscapeMode 1 def /rotateMode 2 def
% coordinate system mappings
/dpi2point 0 def
% font control
/FontSize 0 def
/FMS {/FontSize xstore findfont [FontSize 0 0 FontSize neg 0 0]
makefont setfont} bdef
/ISOLatin1Encoding where {pop /WindowsLatin1Encoding 256 array bdef
ISOLatin1Encoding WindowsLatin1Encoding copy pop
/.notdef/.notdef/quotesinglbase/florin/quotedblbase/ellipsis/dagger
/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/.notdef/.notdef
/.notdef/.notdef/quoteleft/quoteright/quotedblleft/quotedblright/bullet
/endash/emdash/tilde/trademark/scaron/guilsinglright/oe/.notdef/.notdef
/Ydieresis WindowsLatin1Encoding 128 32 getinterval astore pop}
{/WindowsLatin1Encoding StandardEncoding bdef} ifelse
/reencode {exch dup where {pop load} {pop StandardEncoding} ifelse
exch dup 3 1 roll findfont dup length dict begin
{ 1 index /FID ne {def}{pop pop} ifelse } forall
/Encoding exch def currentdict end definefont pop} bdef
/isroman {findfont /CharStrings get /Agrave known} bdef
/FMSR {3 1 roll 1 index dup isroman {reencode} {pop pop} ifelse
exch FMS} bdef
/csm {1 dpi2point div -1 dpi2point div scale neg translate
dup landscapeMode eq {pop -90 rotate}
{rotateMode eq {90 rotate} if} ifelse} bdef
% line types: solid, dotted, dashed, dotdash
/SO { [] 0 setdash } bdef
/DO { [.5 dpi2point mul 4 dpi2point mul] 0 setdash } bdef
/DA { [6 dpi2point mul] 0 setdash } bdef
/DD { [.5 dpi2point mul 4 dpi2point mul 6 dpi2point mul 4
dpi2point mul] 0 setdash } bdef
% macros for lines and objects
/L {lineto stroke} bdef
/MP {3 1 roll moveto 1 sub {rlineto} repeat} bdef
/AP {{rlineto} repeat} bdef
/PDlw -1 def
/W {/PDlw currentlinewidth def setlinewidth} def
/PP {closepath eofill} bdef
/DP {closepath stroke} bdef
/MR {4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto
neg 0 exch rlineto closepath} bdef
/FR {MR stroke} bdef
/PR {MR fill} bdef
/L1i {{currentfile picstr readhexstring pop} image} bdef
/tMatrix matrix def
/MakeOval {newpath tMatrix currentmatrix pop translate scale
0 0 1 0 360 arc tMatrix setmatrix} bdef
/FO {MakeOval stroke} bdef
/PO {MakeOval fill} bdef
/PD {currentlinewidth 2 div 0 360 arc fill
PDlw -1 eq not {PDlw w /PDlw -1 def} if} def
/FA {newpath tMatrix currentmatrix pop translate scale
0 0 1 5 -2 roll arc tMatrix setmatrix stroke} bdef
/PA {newpath tMatrix currentmatrix pop translate 0 0 moveto scale
0 0 1 5 -2 roll arc closepath tMatrix setmatrix fill} bdef
/FAn {newpath tMatrix currentmatrix pop translate scale
0 0 1 5 -2 roll arcn tMatrix setmatrix stroke} bdef
/PAn {newpath tMatrix currentmatrix pop translate 0 0 moveto scale
0 0 1 5 -2 roll arcn closepath tMatrix setmatrix fill} bdef
/vradius 0 def /hradius 0 def /lry 0 def
/lrx 0 def /uly 0 def /ulx 0 def /rad 0 def
/MRR {/vradius xdef /hradius xdef /lry xdef /lrx xdef /uly xdef
/ulx xdef newpath tMatrix currentmatrix pop ulx hradius add uly
vradius add translate hradius vradius scale 0 0 1 180 270 arc
tMatrix setmatrix lrx hradius sub uly vradius add translate
hradius vradius scale 0 0 1 270 360 arc tMatrix setmatrix
lrx hradius sub lry vradius sub translate hradius vradius scale
0 0 1 0 90 arc tMatrix setmatrix ulx hradius add lry vradius sub
translate hradius vradius scale 0 0 1 90 180 arc tMatrix setmatrix
closepath} bdef
/FRR {MRR stroke } bdef
/PRR {MRR fill } bdef
/MlrRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lry uly sub 2 div def
newpath tMatrix currentmatrix pop ulx rad add uly rad add translate
rad rad scale 0 0 1 90 270 arc tMatrix setmatrix lrx rad sub lry rad
sub translate rad rad scale 0 0 1 270 90 arc tMatrix setmatrix
closepath} bdef
/FlrRR {MlrRR stroke } bdef
/PlrRR {MlrRR fill } bdef
/MtbRR {/lry xdef /lrx xdef /uly xdef /ulx xdef /rad lrx ulx sub 2 div def
newpath tMatrix currentmatrix pop ulx rad add uly rad add translate
rad rad scale 0 0 1 180 360 arc tMatrix setmatrix lrx rad sub lry rad
sub translate rad rad scale 0 0 1 0 180 arc tMatrix setmatrix
closepath} bdef
/FtbRR {MtbRR stroke } bdef
/PtbRR {MtbRR fill } bdef
/stri 6 array def /dtri 6 array def
/smat 6 array def /dmat 6 array def
/tmat1 6 array def /tmat2 6 array def /dif 3 array def
/asub {/ind2 exch def /ind1 exch def dup dup
ind1 get exch ind2 get sub exch } bdef
/tri_to_matrix {
2 0 asub 3 1 asub 4 0 asub 5 1 asub
dup 0 get exch 1 get 7 -1 roll astore } bdef
/compute_transform {
dmat dtri tri_to_matrix tmat1 invertmatrix
smat stri tri_to_matrix tmat2 concatmatrix } bdef
/ds {stri astore pop} bdef
/dt {dtri astore pop} bdef
/db {2 copy /cols xdef /rows xdef mul dup string
currentfile exch readhexstring pop
/bmap xdef pop pop} bdef
/it {gs np dtri aload pop moveto lineto lineto cp c
cols rows 8 compute_transform
{bmap} image gr}bdef
/il {newpath moveto lineto stroke}bdef
currentdict end def
%%EndProlog
%%BeginSetup
MathWorks begin
0 cap
end
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%PageBoundingBox: 77 213 547 602
MathWorks begin
bpage
%%EndPageSetup
%%BeginObject: obj1
bplot
/dpi2point 12 def
portraitMode 0204 7344 csm
728 110 5643 4677 MR c np
85 dict begin %Colortable dictionary
/c0 { 0 0 0 sr} bdef
/c1 { 1 1 1 sr} bdef
/c2 { 1 0 0 sr} bdef
/c3 { 0 1 0 sr} bdef
/c4 { 0 0 1 sr} bdef
/c5 { 1 1 0 sr} bdef
/c6 { 1 0 1 sr} bdef
/c7 { 0 1 1 sr} bdef
c0
1 j
1 sg
0 0 6913 5185 PR
6 w
0 4224 5356 0 0 -4224 899 4613 4 MP
PP
-5356 0 0 4224 5356 0 0 -4224 899 4613 5 MP stroke
4 w
DO
SO
6 w
0 sg
899 389 mt 6255 389 L
899 4613 mt 6255 4613 L
6255 4613 mt 6255 389 L
899 4613 mt 899 389 L
899 4613 mt 6255 4613 L
899 4613 mt 899 389 L
899 4613 mt 899 4560 L
899 389 mt 899 442 L
%%IncludeResource: font Helvetica
/Helvetica /WindowsLatin1Encoding 120 FMSR
866 4759 mt
(0) s
1664 4613 mt 1664 4560 L
1664 389 mt 1664 442 L
1631 4759 mt
(2) s
2429 4613 mt 2429 4560 L
2429 389 mt 2429 442 L
2396 4759 mt
(4) s
3194 4613 mt 3194 4560 L
3194 389 mt 3194 442 L
3161 4759 mt
(6) s
3959 4613 mt 3959 4560 L
3959 389 mt 3959 442 L
3926 4759 mt
(8) s
4724 4613 mt 4724 4560 L
4724 389 mt 4724 442 L
4658 4759 mt
(10) s
5489 4613 mt 5489 4560 L
5489 389 mt 5489 442 L
5423 4759 mt
(12) s
6255 4613 mt 6255 4560 L
6255 389 mt 6255 442 L
6189 4759 mt
(14) s
899 4414 mt 952 4414 L
6255 4414 mt 6201 4414 L
728 4458 mt
(-2) s
899 4031 mt 952 4031 L
6255 4031 mt 6201 4031 L
728 4075 mt
(-1) s
899 3649 mt 952 3649 L
6255 3649 mt 6201 3649 L
798 3693 mt
(0) s
899 3266 mt 952 3266 L
6255 3266 mt 6201 3266 L
798 3310 mt
(1) s
899 2884 mt 952 2884 L
6255 2884 mt 6201 2884 L
798 2928 mt
(2) s
899 2501 mt 952 2501 L
6255 2501 mt 6201 2501 L
798 2545 mt
(3) s
899 2118 mt 952 2118 L
6255 2118 mt 6201 2118 L
798 2162 mt
(4) s
899 1736 mt 952 1736 L
6255 1736 mt 6201 1736 L
798 1780 mt
(5) s
899 1353 mt 952 1353 L
6255 1353 mt 6201 1353 L
798 1397 mt
(6) s
899 971 mt 952 971 L
6255 971 mt 6201 971 L
798 1015 mt
(7) s
899 588 mt 952 588 L
6255 588 mt 6201 588 L
798 632 mt
(8) s
899 389 mt 6255 389 L
899 4613 mt 6255 4613 L
6255 4613 mt 6255 389 L
899 4613 mt 899 389 L
gs 899 389 5357 4225 MR c np
0 383 -382 -383 382 0 899 3649 4 MP stroke
382 383 -382 0 0 -383 1281 3649 4 MP stroke
0 383 -383 -383 383 0 1281 3649 4 MP stroke
383 383 -383 0 0 -383 1664 3649 4 MP stroke
0 383 -382 -383 382 0 1664 3649 4 MP stroke
382 383 -382 0 0 -383 2046 3649 4 MP stroke
0 383 -383 -383 383 0 2046 3649 4 MP stroke
383 383 -383 0 0 -383 2429 3649 4 MP stroke
0 383 -382 -383 382 0 2429 3649 4 MP stroke
382 383 -382 0 0 -383 2811 3649 4 MP stroke
0 383 -383 -383 383 0 2811 3649 4 MP stroke
383 383 -383 0 0 -383 3194 3649 4 MP stroke
0 383 -383 -383 383 0 3194 3649 4 MP stroke
383 383 -383 0 0 -383 3577 3649 4 MP stroke
0 383 -382 -383 382 0 3577 3649 4 MP stroke
382 383 -382 0 0 -383 3959 3649 4 MP stroke
0 383 -383 -383 383 0 3959 3649 4 MP stroke
383 383 -383 0 0 -383 4342 3649 4 MP stroke
0 383 -382 -383 382 0 4342 3649 4 MP stroke
382 383 -382 0 0 -383 4724 3649 4 MP stroke
0 383 -383 -383 383 0 4724 3649 4 MP stroke
383 383 -383 0 0 -383 5107 3649 4 MP stroke
0 383 -382 -383 382 0 5107 3649 4 MP stroke
382 383 -382 0 0 -383 5489 3649 4 MP stroke
0 383 -383 -383 383 0 5489 3649 4 MP stroke
383 383 -383 0 0 -383 5872 3649 4 MP stroke
0 383 -383 -383 383 0 5872 3649 4 MP stroke
383 383 -383 0 0 -383 6255 3649 4 MP stroke
0 382 -382 -382 382 0 899 3266 4 MP stroke
382 382 -382 0 0 -382 1281 3266 4 MP stroke
0 382 -383 -382 383 0 1281 3266 4 MP stroke
383 382 -383 0 0 -382 1664 3266 4 MP stroke
0 382 -382 -382 382 0 1664 3266 4 MP stroke
382 382 -382 0 0 -382 2046 3266 4 MP stroke
0 382 -383 -382 383 0 2046 3266 4 MP stroke
383 382 -383 0 0 -382 2429 3266 4 MP stroke
0 382 -382 -382 382 0 2429 3266 4 MP stroke
382 382 -382 0 0 -382 2811 3266 4 MP stroke
0 382 -383 -382 383 0 2811 3266 4 MP stroke
383 382 -383 0 0 -382 3194 3266 4 MP stroke
0 382 -383 -382 383 0 3194 3266 4 MP stroke
383 382 -383 0 0 -382 3577 3266 4 MP stroke
0 382 -382 -382 382 0 3577 3266 4 MP stroke
382 382 -382 0 0 -382 3959 3266 4 MP stroke
0 382 -383 -382 383 0 3959 3266 4 MP stroke
383 382 -383 0 0 -382 4342 3266 4 MP stroke
0 382 -382 -382 382 0 4342 3266 4 MP stroke
382 382 -382 0 0 -382 4724 3266 4 MP stroke
0 382 -383 -382 383 0 4724 3266 4 MP stroke
383 382 -383 0 0 -382 5107 3266 4 MP stroke
0 382 -382 -382 382 0 5107 3266 4 MP stroke
382 382 -382 0 0 -382 5489 3266 4 MP stroke
0 382 -383 -382 383 0 5489 3266 4 MP stroke
383 382 -383 0 0 -382 5872 3266 4 MP stroke
0 382 -383 -382 383 0 5872 3266 4 MP stroke
383 382 -383 0 0 -382 6255 3266 4 MP stroke
0 383 -382 -383 382 0 899 2884 4 MP stroke
382 383 -382 0 0 -383 1281 2884 4 MP stroke
0 383 -383 -383 383 0 1281 2884 4 MP stroke
383 383 -383 0 0 -383 1664 2884 4 MP stroke
0 383 -382 -383 382 0 1664 2884 4 MP stroke
382 383 -382 0 0 -383 2046 2884 4 MP stroke
0 383 -383 -383 383 0 2046 2884 4 MP stroke
383 383 -383 0 0 -383 2429 2884 4 MP stroke
0 383 -382 -383 382 0 2429 2884 4 MP stroke
382 383 -382 0 0 -383 2811 2884 4 MP stroke
0 383 -383 -383 383 0 2811 2884 4 MP stroke
383 383 -383 0 0 -383 3194 2884 4 MP stroke
0 383 -383 -383 383 0 3194 2884 4 MP stroke
383 383 -383 0 0 -383 3577 2884 4 MP stroke
0 383 -382 -383 382 0 3577 2884 4 MP stroke
382 383 -382 0 0 -383 3959 2884 4 MP stroke
0 383 -383 -383 383 0 3959 2884 4 MP stroke
383 383 -383 0 0 -383 4342 2884 4 MP stroke
0 383 -382 -383 382 0 4342 2884 4 MP stroke
382 383 -382 0 0 -383 4724 2884 4 MP stroke
0 383 -383 -383 383 0 4724 2884 4 MP stroke
383 383 -383 0 0 -383 5107 2884 4 MP stroke
0 383 -382 -383 382 0 5107 2884 4 MP stroke
382 383 -382 0 0 -383 5489 2884 4 MP stroke
0 383 -383 -383 383 0 5489 2884 4 MP stroke
383 383 -383 0 0 -383 5872 2884 4 MP stroke
0 383 -383 -383 383 0 5872 2884 4 MP stroke
383 383 -383 0 0 -383 6255 2884 4 MP stroke
0 383 -382 -383 382 0 899 2501 4 MP stroke
382 383 -382 0 0 -383 1281 2501 4 MP stroke
0 383 -383 -383 383 0 1281 2501 4 MP stroke
383 383 -383 0 0 -383 1664 2501 4 MP stroke
0 383 -382 -383 382 0 1664 2501 4 MP stroke
382 383 -382 0 0 -383 2046 2501 4 MP stroke
0 383 -383 -383 383 0 2046 2501 4 MP stroke
383 383 -383 0 0 -383 2429 2501 4 MP stroke
0 383 -382 -383 382 0 2429 2501 4 MP stroke
382 383 -382 0 0 -383 2811 2501 4 MP stroke
0 383 -383 -383 383 0 2811 2501 4 MP stroke
383 383 -383 0 0 -383 3194 2501 4 MP stroke
0 383 -383 -383 383 0 3194 2501 4 MP stroke
383 383 -383 0 0 -383 3577 2501 4 MP stroke
0 383 -382 -383 382 0 3577 2501 4 MP stroke
382 383 -382 0 0 -383 3959 2501 4 MP stroke
0 383 -383 -383 383 0 3959 2501 4 MP stroke
383 383 -383 0 0 -383 4342 2501 4 MP stroke
0 383 -382 -383 382 0 4342 2501 4 MP stroke
382 383 -382 0 0 -383 4724 2501 4 MP stroke
0 383 -383 -383 383 0 4724 2501 4 MP stroke
383 383 -383 0 0 -383 5107 2501 4 MP stroke
0 383 -382 -383 382 0 5107 2501 4 MP stroke
382 383 -382 0 0 -383 5489 2501 4 MP stroke
0 383 -383 -383 383 0 5489 2501 4 MP stroke
383 383 -383 0 0 -383 5872 2501 4 MP stroke
0 383 -383 -383 383 0 5872 2501 4 MP stroke
383 383 -383 0 0 -383 6255 2501 4 MP stroke
0 382 -382 -382 382 0 899 2118 4 MP stroke
382 382 -382 0 0 -382 1281 2118 4 MP stroke
0 382 -383 -382 383 0 1281 2118 4 MP stroke
383 382 -383 0 0 -382 1664 2118 4 MP stroke
0 382 -382 -382 382 0 1664 2118 4 MP stroke
382 382 -382 0 0 -382 2046 2118 4 MP stroke
0 382 -383 -382 383 0 2046 2118 4 MP stroke
383 382 -383 0 0 -382 2429 2118 4 MP stroke
0 382 -382 -382 382 0 2429 2118 4 MP stroke
382 382 -382 0 0 -382 2811 2118 4 MP stroke
0 382 -383 -382 383 0 2811 2118 4 MP stroke
383 382 -383 0 0 -382 3194 2118 4 MP stroke
0 382 -383 -382 383 0 3194 2118 4 MP stroke
383 382 -383 0 0 -382 3577 2118 4 MP stroke
0 382 -382 -382 382 0 3577 2118 4 MP stroke
382 382 -382 0 0 -382 3959 2118 4 MP stroke
0 382 -383 -382 383 0 3959 2118 4 MP stroke
383 382 -383 0 0 -382 4342 2118 4 MP stroke
0 382 -382 -382 382 0 4342 2118 4 MP stroke
382 382 -382 0 0 -382 4724 2118 4 MP stroke
0 382 -383 -382 383 0 4724 2118 4 MP stroke
383 382 -383 0 0 -382 5107 2118 4 MP stroke
0 382 -382 -382 382 0 5107 2118 4 MP stroke
382 382 -382 0 0 -382 5489 2118 4 MP stroke
0 382 -383 -382 383 0 5489 2118 4 MP stroke
383 382 -383 0 0 -382 5872 2118 4 MP stroke
0 382 -383 -382 383 0 5872 2118 4 MP stroke
383 382 -383 0 0 -382 6255 2118 4 MP stroke
0 383 -382 -383 382 0 899 1736 4 MP stroke
382 383 -382 0 0 -383 1281 1736 4 MP stroke
0 383 -383 -383 383 0 1281 1736 4 MP stroke
383 383 -383 0 0 -383 1664 1736 4 MP stroke
0 383 -382 -383 382 0 1664 1736 4 MP stroke
382 383 -382 0 0 -383 2046 1736 4 MP stroke
0 383 -383 -383 383 0 2046 1736 4 MP stroke
383 383 -383 0 0 -383 2429 1736 4 MP stroke
0 383 -382 -383 382 0 2429 1736 4 MP stroke
382 383 -382 0 0 -383 2811 1736 4 MP stroke
0 383 -383 -383 383 0 2811 1736 4 MP stroke
383 383 -383 0 0 -383 3194 1736 4 MP stroke
0 383 -383 -383 383 0 3194 1736 4 MP stroke
383 383 -383 0 0 -383 3577 1736 4 MP stroke
0 383 -382 -383 382 0 3577 1736 4 MP stroke
382 383 -382 0 0 -383 3959 1736 4 MP stroke
0 383 -383 -383 383 0 3959 1736 4 MP stroke
383 383 -383 0 0 -383 4342 1736 4 MP stroke
0 383 -382 -383 382 0 4342 1736 4 MP stroke
382 383 -382 0 0 -383 4724 1736 4 MP stroke
0 383 -383 -383 383 0 4724 1736 4 MP stroke
383 383 -383 0 0 -383 5107 1736 4 MP stroke
0 383 -382 -383 382 0 5107 1736 4 MP stroke
382 383 -382 0 0 -383 5489 1736 4 MP stroke
0 383 -383 -383 383 0 5489 1736 4 MP stroke
383 383 -383 0 0 -383 5872 1736 4 MP stroke
0 383 -383 -383 383 0 5872 1736 4 MP stroke
383 383 -383 0 0 -383 6255 1736 4 MP stroke
gr
3210 294 mt
(Original Mesh) s
end
eplot
%%EndObject
epage
end
showpage
%%Trailer
%%EOF