summaryrefslogtreecommitdiffstats
path: root/report
diff options
context:
space:
mode:
authorchris.sutcliffe <ctd.sutcliffe@gmail.com>2021-10-04 13:54:40 +0100
committerchris.sutcliffe <ctd.sutcliffe@gmail.com>2021-10-04 13:54:40 +0100
commit0c4f03661c1710d8383f70b687459ff04be564c0 (patch)
tree99eab22632e0f9fb641ae54a59671c196491fee6 /report
parent2da0fcce33fdd7f66ec1c689697285b34e116e5b (diff)
downloadesotericFORTRAN-0c4f03661c1710d8383f70b687459ff04be564c0.tar.gz
esotericFORTRAN-0c4f03661c1710d8383f70b687459ff04be564c0.zip
add gitignore and project directory structure
Diffstat (limited to 'report')
-rw-r--r--report/References.bib130
-rw-r--r--report/esoteric_project_report.pdfbin0 -> 877951 bytes
-rw-r--r--report/esoteric_project_report.tex206
3 files changed, 336 insertions, 0 deletions
diff --git a/report/References.bib b/report/References.bib
new file mode 100644
index 0000000..9b6ea82
--- /dev/null
+++ b/report/References.bib
@@ -0,0 +1,130 @@
+
+@article{VandenBergen:1999,
+ author = {Van den Bergen, Gino},
+ title = {A Fast and Robust GJK Implementation for Collision Detection of Convex Objects},
+ journal = {J. Graph. Tools},
+ issue_date = {March 1999},
+ volume = {4},
+ number = {2},
+ month = mar,
+ year = {1999},
+ issn = {1086-7651},
+ pages = {7--25},
+ numpages = {19},
+ url = {http://dx.doi.org/10.1080/10867651.1999.10487502},
+ doi = {10.1080/10867651.1999.10487502},
+ acmid = {334711},
+ publisher = {A. K. Peters, Ltd.},
+ address = {Natick, MA, USA}
+}
+
+@phdthesis{BVs,
+ author = {Nguyen, An},
+ advisor = {Guibas, Leonidas J.},
+ title = {Implicit bounding volumes and bounding volume hierarchies},
+ year = {2006},
+ isbn = {978-0-542-89521-0},
+ note = {AAI3235306},
+ publisher = {Stanford University},
+ address = {Stanford, CA, USA}
+}
+
+@book{realTimeColDet,
+ author = {Ericson, Christer},
+ title = {Real-Time Collision Detection (The Morgan Kaufmann Series in Interactive 3D Technology)},
+ year = {2004},
+ isbn = {1558607323},
+ publisher = {Morgan Kaufmann Publishers Inc.},
+ address = {San Francisco, CA, USA},
+}
+
+@inproceedings{analyticalColResponse,
+ author = {Baraff, D.},
+ title = {Analytical methods for dynamic simulation of non-penetrating rigid bodies},
+ booktitle = {Proceedings of the 16th annual conference on Computer graphics and interactive techniques},
+ series = {SIGGRAPH '89},
+ year = {1989},
+ isbn = {0-89791-312-4},
+ pages = {223--232},
+ numpages = {10},
+ url = {http://doi.acm.org/10.1145/74333.74356},
+ doi = {10.1145/74333.74356},
+ acmid = {74356},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+}
+
+@incollection{Taylor:2007,
+address = {Berlin, Heidelberg},
+author = {Taylor, Zeike A. and Cheng, Mario and Ourselin, S{\'{e}}bastien},
+booktitle = {Medical Image Computing and Computer-Assisted Intervention – MICCAI 2007},
+doi = {10.1007/978-3-540-75757-3{\_}85},
+file = {:C$\backslash$:/Users/Zelim/AppData/Local/Mendeley Ltd./Mendeley Desktop/Downloaded/Taylor, Cheng, Ourselin - 2007 - Real-Time Nonlinear Finite Element Analysis for Surgical Simulation Using Graphics Processing Units.pdf:pdf},
+pages = {701--708},
+publisher = {Springer Berlin Heidelberg},
+title = {{Real-Time Nonlinear Finite Element Analysis for Surgical Simulation Using Graphics Processing Units}},
+url = {http://link.springer.com/10.1007/978-3-540-75757-3{\_}85},
+year = {2007}
+}
+
+@misc{Soos:2012,
+author = {Soos, Mate},
+title = {{AMD's} {OpenCL} heaven and hell},
+journal = {Wonderings of a {SAT} geek},
+type = {Blog},
+number = {January 5},
+year = {2012},
+howpublished = {https://www.msoos.org/2012/01/amds-opencl-heaven-and-hell/}
+}
+
+@techreport{Morton:1966,
+ author = {G.M. Morton},
+ citeulike-article-id = {3709193},
+ keywords = {cited\_in\_thesis},
+ number = {Ottawa, Ontario, Canada},
+ posted-at = {2008-11-26 20:41:35},
+ priority = {0},
+ publisher = {IBM Ltd.},
+ title = {{A computer oriented geodetic data base and a new technique in file sequencing}},
+ year = {1966}
+}
+
+@manual{Blender,
+ title = {Blender - a 3D modelling and rendering package},
+ author = {{Blender Online Community}},
+ organization = {Blender Foundation},
+ address = {Blender Institute, Amsterdam},
+ year = {2015},
+ url = {http://www.blender.org},
+ }
+
+@article{Lapeer:2001,
+ volume = {34},
+ number = {9},
+ month = {September},
+ author = {R. J. Lapeer and R. W. Prager},
+ title = {Fetal head moulding: finite element analysis of a fetal skull subjected to uterine pressures during the first stage of labour},
+ publisher = {Elsevier},
+ year = {2001},
+ journal = {Journal of Biomechanics},
+ pages = {1125--1133},
+ url = {https://ueaeprints.uea.ac.uk/23372/},
+ abstract = {Fetal head moulding is a phenomenon which may contribute to satisfactory progress during delivery as it allows the fetal head to accommodate to the geometry of the passage. In contrast, excessive head moulding may result in cranial birth injuries and thus affect the infant shortly or even long after birth. One group of researchers in the past investigated the biomechanics of fetal head moulding from an engineering point of view and limited themselves to a static, linear model of the parietal bones. In this paper, we present a non-linear model of the deformation of a complete fetal skull, when subjected to pressures exerted by the cervix, during the first stage of labour. The design of the model involves four main steps: shape recovery of the fetal skull, the generation of a valid and compatible mesh for finite element analysis (FEA), the specification of a physical model and the analysis of deformation. Results of the analysis show good agreement with those obtained from clinical experiments on the quantitative assessment of fetal head moulding. The model also displays shapes after moulding which have been reported in previous studies and which are generally known in the obstetric and paediatric communities.}
+}
+
+@article {Sorbe:1983,
+author = {Sorbe, B. and Dahlgren, S.},
+title = {Some important factors in the molding of the fetal head during vaginal delivery - A photographic study},
+journal = {International Journal of Gynecology \& Obstetrics},
+volume = {21},
+number = {3},
+issn = {1879-3479},
+url = {http://dx.doi.org/10.1016/0020-7292(83)90081-4},
+doi = {10.1016/0020-7292(83)90081-4},
+pages = {205--212},
+keywords = {Fetal head molding, Delivery, Photographic method},
+year = {1983}
+}
+
+
+ \ No newline at end of file
diff --git a/report/esoteric_project_report.pdf b/report/esoteric_project_report.pdf
new file mode 100644
index 0000000..217effa
--- /dev/null
+++ b/report/esoteric_project_report.pdf
Binary files differ
diff --git a/report/esoteric_project_report.tex b/report/esoteric_project_report.tex
new file mode 100644
index 0000000..ee1708a
--- /dev/null
+++ b/report/esoteric_project_report.tex
@@ -0,0 +1,206 @@
+
+\documentclass[a4paper, oneside, 11pt]{report}
+\usepackage{epsfig,pifont,float,multirow,amsmath,amssymb}
+\newcommand{\mc}{\multicolumn{1}{c|}}
+\newcommand{\mb}{\mathbf}
+\newcommand{\mi}{\mathit}
+\newcommand{\oa}{\overrightarrow}
+\newcommand{\bs}{\boldsymbol}
+\newcommand{\ra}{\rightarrow}
+\newcommand{\la}{\leftarrow}
+\usepackage{algorithm}
+\usepackage{algorithmic}
+\topmargin = 0pt
+\voffset = -80pt
+\oddsidemargin = 15pt
+\textwidth = 425pt
+\textheight = 750pt
+
+\begin{document}
+
+\begin{titlepage}
+\begin{center}
+\rule{12cm}{1mm} \\
+\vspace{1cm}
+{\large CMP-6048A / CMP-7009A Advanced Programming Concepts and Techniques}
+\vspace{7.5cm}
+\\{\Large Project Report - 15 December 2021}
+\vspace{1.5cm}
+\\{\LARGE Esoteric Compiler / Interpreter Project}
+\vspace{1.0cm}
+\\{\Large Group members: \\ Rudy Jacques Lapeer, Jacques la Ru and others}
+\vspace{10.0cm}
+\\{\large School of Computing Sciences, University of East Anglia}
+\\ \rule{12cm}{0.5mm}
+\\ \hspace{8.5cm} {\large Version 1.0}
+\end{center}
+\end{titlepage}
+
+
+\setcounter{page}{1}
+%\pagenumbering{roman}
+%\newpage
+
+
+\begin{abstract}
+An abstract is a brief summary (maximum 250 words) of your entire project. It should cover your objectives, your methodology used, how you implemented the methodology for your specific results and what your final results are, your final outcome or deliverable and conclusion. You do not cover literature reviews or background in an abstract nor should you use abbreviations or acronyms. In the remainder of the report the chapter titles are suggestions and can be changed (or you can add more chapters if you wish to do so). This template is designed to help you write a clear report but you are welcome to modify it (at your peril ...). Finally, a guideline in size is approximately 3,500 words (not including abstract, captions and references) but no real limit on figures, tables, etc.
+\end{abstract}
+
+\chapter{Introduction}
+\label{chap:intro}
+
+The introduction should be brief and comprise the following:
+
+\section{Project statement}
+A (brief) statement including the nature of the project, i.e.\ what you will do, how you will accomplish it and what the final deliverable will be.
+
+\section{MoSCoW}
+
+Specify the Must-Should-Could-Won't functionality of your software product.
+Besides the usual itemised list (or table) you may also add a text clarifying as to why certain items are more important or why certain items will not make it to the final deliverable. A MoSCoW does not need to be complete early on in the project and can be updated well into the project though conversely, it should neither be reversely specified at the end of the project to match the final deliverable!
+
+\section{Report structure}
+Breifly describe what you will cover in the remainder of the report, chapter by chapter.
+
+\chapter{Background}
+
+Depending on the nature of the project, this chapter may cover a literature, resource and/or (software) product review. For a literature review you will consult journal or conference papers outlining methodologies that you may (or may not) use but which are definitely relevant to your particular problem. Resource and/or product information will typcially be substantiated through internet links.
+You may use different sections if different subareas are part of your problem statement and/or solution.
+Since this chapter covers background resources, you should also update the corresponding bib file referred to in the bottom of this document and here it is called References.bib.
+You cite references like this: Taylor et al. \cite{Taylor:2007} investigated non-linear FEA on the GPU. Morton \cite{Morton:1966} developed a file sequencing method in 1966. A website on OpenCL can be found here \cite{Soos:2012}. Etc.
+
+\chapter{Methodology}\label{MethLab}
+
+Describe here various methods that will be used in your project. Use different sections for distinctly different subjects and use subsections for specific details on the same subject. Only use subsubsections or paragraphs (which are not numbered) if you believe this is really necessary. Since implementation will happen in sprints, this section may need several updates with parts being added and deleted across the project.
+
+\section{Method 1}
+\subsection{Method 1 specific detail 1}
+In case you need maths, here is an example to write an equation:
+\begin{equation}\label{weak_form}
+\int_{\Omega_0} \delta u \frac{\partial \mathbf{P}}{\partial X}d\Omega_0 + \int_{\Omega_0} \delta u \mathbf{b} d\Omega_0 + \int_{\Omega_0} \delta u \rho_0\mathbf{\ddot u} d\Omega_0 = 0
+\end{equation}
+And here we show how to write a matrix equation:
+\begin{equation}\label{Jacobian}
+ \mathbf{X} \frac{\partial N}{\partial e_c} = \left[ \begin{array}{cccc} x_1 & x_2 & x_3 & x_4 \\ y_1 & y_2 & y_3 & y_4 \\ z_1 & z_2 & z_3 & z_4 \end{array} \right] \left[ \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0& 1 \\ -1 & -1 & -1 \end{array} \right]
+\end{equation}
+
+
+\subsection{Method 1 specific detail 2}
+blablabla
+
+\paragraph blablabla
+
+\section{Method 2}
+
+\subsection{Method 2 specific detail 1}
+
+\section{Etc.}
+
+\subsection{Etc.}
+
+\chapter{Implementation}\label{Impl}
+
+In this chapter you cover the actual implementation of your project. Implementation will be done in sprints so you may wish to use different sub-sections for each sprint and then dedicate a section to your final deliverable. Section \ref{Figures} with figures should not remain in the final report.
+
+\section{Early sprints}
+\subsection{Sprint 1}
+
+\subsection{Sprint n}
+
+\section{Final implementation}
+
+\section{Figures, tables, etc.}
+\label{Figures}
+
+The purpose of this section is to just show you how to integrate figures, tables, etc.\ and should disappear in the final report. Figures and tables should be distributed across the document wherever they are needed but you should use an appendix if they are many figures/tables of the same kind. Fig.\ \ref{Pelvis_BVH} shows a bony pelvis.
+
+\begin{figure}[htb]
+%\begin{center}
+\includegraphics[width=1.0 \columnwidth]{pelvis_octree.png}
+\caption{The bony pelvis model with octree based AABBs (Axis Aligned Bounding Boxes).}
+\label{Pelvis_BVH}
+%\end{center}
+\end{figure}
+
+Fig.\ \ref{class} shows a UML class diagram (class, sequence and state diagrams are the most frequently used UML diagrams):
+
+\begin{figure}[htb]
+%\begin{center}
+\includegraphics[width=1.0 \columnwidth]{class.png}
+\caption{A UML class diagram.}
+\label{class}
+%\end{center}
+\end{figure}
+
+Algorithms can be either used in this chapter or alternatively in Chapter \ref{MethLab} if it is a more generic algorithm:
+
+\begin{algorithm}[th]
+\caption{ The projection based contact method algorithm }
+\begin{algorithmic}[1]
+\STATE Retrieve current node displacement $u$
+\\ \texttt{float3 u = m\_U\_new[nodeIndex].xyz;}
+\STATE Retrieve constraint plane equation
+\\ \texttt{float4 plane = m\_constraintMagnitude[nodeIndex];}
+\STATE Calculate dot product with plane normal
+\\ \texttt{float d = dot(u, plane.xyz);}
+\STATE Find node penetration into the plane's negative half-space
+\\ \texttt{float penetration = plane.w - d;}
+\IF {penetration is greater than zero}
+ \STATE Find projection onto the plane surface
+
+ \texttt{float3 proj = u + plane.xyz * penetration;}
+ \STATE Prescribe new nodal position to be on the surface
+
+ \texttt{m\_U\_new[nodeIndex] = (float4)(proj, 0.0f);}
+\ENDIF
+\end{algorithmic}
+\end{algorithm}
+
+Tables such as Table \ref{Res01} can also be useful here or in Chapter \ref{MethLab}.
+
+\begin{table}[h]
+\caption[]{Original diameters and diametral strains as reported by
+ Sorbe and Dahlgren \cite{Sorbe:1983} (columns 1-2), from a previous
+ experiment by Lapeer and Prager and reported in \cite{Lapeer:2001}
+ (columns 3-4), and from the current experiment (columns 5-6).}
+\begin{center}
+\begin{tabular}{|l|c|c||c|c||c|c|}\hline
+& \multicolumn{2}{c||}{S-D} & \multicolumn{2}{c||}{L-P old} & \multicolumn{2}{c|}{L-P new} \\ \hline
+Diameter & length & strain & length & strain & length & strain \\ \hline
+$\mi{MaVD}$ & 140.5 & +1.90 & 129.3 & +0.30 & 129.3 & +1.43 \\
+$\mi{OrOD}$ & 131.4 & +0.10 & - & - & 119.9 & +1.85 \\
+$\mi{OrVD}$ & 126.9 & +2.20 & 119.3 & +0.25 & 119.3 & +1.24 \\
+$\mi{OFD}$ & 134.0 & +0.40 & - & - & 119.7 & +1.82 \\
+$\mi{SOFD}$ & - & - & - & - & 113.2 & -0.85 \\
+$\mi{SOBD}$ & 117.1 & -1.70 & 88.7 & -1.07 & 88.7 & -2.52 \\
+$\mi{BPD}$ & 105.0 & 0.00 & 89.7 & -0.21 & 89.7 & -0.83 \\ \hline
+\end{tabular}
+\label{Res01}
+\end{center}
+\end{table}
+
+Note that code snippets or lists of crucial programming code or large UML diagrams should go in the Appendix/Appendices.
+
+
+\chapter{Testing}
+
+Describe various experiments you designed to test your software product. This could be subdivided to be in line with the Sprints in Chapter \ref{Impl}. In case you have protocols which cover various pages, please put them in an appendix (e.g. Appendix A) instead.
+
+\chapter{Discussion, conclusion and future work}
+
+Briefly discuss and conclude your achievements and put them in perspective with the MoSCoW analysis you did early on. Be honest by declaring for example `S' categorised objectives which did not make it to the final deliverable rather than reversely modifying your MoSCoW in Chapter \ref{chap:intro}! Also discuss future developments and how you see the deliverable improving if more time could be spent. Note that this section should not be used as a medium to vent frustrations on whatever did not work out (pandemic, group partners, etc.) as there are other means for this (labs, e-mail MO, ...) that should be used well before any such problems become an issue.
+
+
+\bibliographystyle{unsrt}
+\bibliography{References}
+
+\chapter*{Contributions}
+
+State here the \% contribution to the project of each individual member of the group and describe in brief what each member has done (if this corresponds to particular sections in the report then please specify these).
+
+\chapter*{Appendix A}
+
+Put in tables of data or protocols (e.g. for testing) or code listings or UML diagrams which may take up several pages and do not sit well in the main body text.
+
+\end{document}
+