Commit 533ec358 authored by Guido Giuntoli's avatar Guido Giuntoli

Adding Documentation

parent 638265ff
......@@ -3,6 +3,72 @@
\subsection{\texttt{benchmarks-sol-ass}}
This benchmark is intended to measure the computing times of the assembly of the Residue vector ($\times2$) and the
Jacobian matrix and the solver (CGPD).
Basically the benchmark executes a tipical Newton-Raphson iteration:
\begin{lstlisting}
double norm = assembly_rhs_acc(u, nullptr, b);
#ifdef _OPENACC
assembly_mat_acc(&A, u, nullptr);
#else
assembly_mat(&A, u, nullptr);
#endif
#ifdef _OPENACC
int cg_its = ell_solve_cgpd_acc(&A, b, du, &cg_err);
#else
int cg_its = ell_solve_cgpd(&A, b, du, &cg_err);
#endif
for (int i = 0; i < nn * dim; ++i)
u[i] += du[i];
norm = assembly_rhs_acc(u, nullptr, b);
\end{lstlisting}
\begin{figure}[!htbp]
\centering
\begin{tikzpicture}[]
\pgfplotsset{every tick label/.append style={font=\small}}
\pgfplotstableread{data/benchmark-sol-ass-macintosh.dat}{\times}
\begin{axis}[
% grid=major,
% y unit=s,
% legend pos=north west,
% legend cell align={left},
% ylabel=Computing Time,
% xlabel=Micro-resolution,
% x unit=\# Elements,
% ymin = 0,
% ymax = 600,
% xtick = {0,20,40,60,80,100},
% xticklabels = {0,20\tst,40\tst,60\tst,80\tst,100\tst},
% ytick = {0,200,400,600,800},
]
\addplot [color=blue,mark=*,line width = 0.5mm] table [x index={0}, y index={1}] {\times};
\addplot [color=green,mark=*,line width = 0.5mm] table [x index={0}, y index={2}] {\times};
% %{\times} [yshift=9pt]
% %node[pos=0.0,yshift=10pt] {36\%}
% %node[pos=0.105,yshift=11pt] {68\%}
% %node[pos=1.0] {79\%};
% %\addplot [color=blue ,mark=*,line width = 0.5mm] table [x={n1}, y expr=\thisrowno{2}*1.0e-6]
% %{\times} [yshift=9pt]
% %node[pos=0.0] {64\%}
% %node[pos=0.253,yshift=5pt] {32\%}
% %node[pos=1.0] {21\%};
% %\legend{Jacobian \& Residue Assembly}
\end{axis}
\end{tikzpicture}
% \caption{\label{fig:ass_vs_sol}
% Computing time used for the assembly of the Jacobian Matrix and the Residue vector and the solver
% algorithm of the Micropp code to perform the micro-scale FE calculation.
% }
\end{figure}
\subsection{\texttt{benchmarks-cpu-gpu}}
\subsection{\texttt{benchmarks-elastic}}
\subsection{\texttt{benchmarks-plastic}}
......
\section{Coding Style}
The compilation process is based on \texttt{CMake}
#N time_ass time_sol ass% sol%
10 16 14 17.0333 46.6667
20 111 174 9.42105 61.0526
30 374 818 7.62248 68.6242
40 887 2539 6.06713 74.1097
50 1746 5858 5.52854 77.0384
60 3026 11838 4.91247 79.6421
70 4920 21121 4.62932 81.1067
80 7381 35436 4.42215 82.7615
90 10379 56179 4.03812 84.4061
100 14259 83713 3.69338 85.4458
\documentclass[conference, onecolumn]{IEEEtran}
% \usepackage[pdftex]{graphicx}
% \usepackage[dvips]{graphicx}
%\usepackage{amsmath}
\usepackage{algorithm}
\usepackage{algorithmic}
%\usepackage{array}
%\usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf]{subfig}
%\usepackage{fixltx2e}
%\usepackage{stfloats}
%\usepackage{url}
\usepackage{amsmath}
\usepackage{amssymb}
\RequirePackage{amsfonts}
\RequirePackage{standalone}
\RequirePackage{tikz}
\usetikzlibrary{matrix,backgrounds,calc,shapes,arrows,arrows.meta,fit,positioning}
\usetikzlibrary{chains,shapes.multipart}
\usetikzlibrary{shapes,calc}
\usepackage{siunitx}
\usepackage{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix,backgrounds,calc,shapes,arrows,arrows.meta,fit,positioning}
\usetikzlibrary{chains,shapes.multipart}
\usepackage{pgfplots, pgfplotstable}
\usepgfplotslibrary{units}
\usepackage{xcolor}
\usepackage{xspace}
\usepackage{listings}
\usepackage{color}
......@@ -196,7 +192,8 @@ f_{n+1}^{\text{trial}} = || s_{n+1}^{\text{trial}} || - \sqrt{\frac{2}{3}} (\sig
\end{algorithmic}
\end{algorithm}
\input{coding_style.tex}
\input{Sections/compilation.tex}
\input{Sections/coding_style.tex}
\input{Sections/benchmarks.tex}
......@@ -206,12 +203,28 @@ The conclusion goes here.
% use section* for acknowledgment
\section*{Acknowledgment}
The authors would like to thank to the Barcelona Supercomputing Center for the resources provided to develop and test \emph{micropp} code in the architectures: \emph{Marenostrum IV} \& \emph{CTE-POWER} during Sep., 2016 and Dic., 2019. The simulations were primary done coupling \emph{micropp} with the multi-physics code \emph{Alya} to solve the macro-scale equations.
The authors would like to thank to the Barcelona Supercomputing Center for the resources provided to develop and test Micropp code in the architectures: Marenostrum IV \& CTE-POWER during Sep., 2016 and Dic., 2019. The simulations were primary done coupling Micropp with the multi-physics code Alya to solve the macro-scale equations.
\begin{thebibliography}{1}
\bibitem{paper1}G. Giuntoli, J. Aguilar, M. Vazquez, S. Oller and G. Houzeaux. \textit{A FE$^2$ multi-scale implementation for modeling composite materials on distributed architectures}. Coupled Systems Mechanics, 8(2), 2018
\bibitem{simo} J.C. Simo \& T.J.R. Huges.\emph{Computational Ineslasticity}, Springer, 2000.
\bibitem{oller} S. Oller. \emph{Numerical Simulation of Mechanical Behavior of Composite Materials}, Springer, 2014.
\bibitem{paper1}{
G. Giuntoli, J. Aguilar, M. Vazquez, S. Oller and G. Houzeaux.
``An FE$^2$ multi-scale implementation for modeling composite materials on distributed architectures''.
Coupled Systems Mechanics, 8(2), 2018
}
\bibitem{simo}{
J.C. Simo \& T.J.R. Huges.
``Computational Ineslasticity''.
Springer, 2000.
}
\bibitem{oller}{
S. Oller.
``Numerical Simulation of Mechanical Behavior of Composite Materials''.
Springer, 2014.
}
\end{thebibliography}
\end{document}
......@@ -115,10 +115,10 @@ class test_t : public micropp<3> {
<< "sol : " << percentage_sol << " \%" << endl;
cout << "|r| : " << norm << endl;
file
<< nx - 1 << " "
<< ass_res.count() + ass_mat.count() << " "
<< solver.count() << " "
<< percentage_ass << " "
<< nx - 1 << "\t"
<< ass_res.count() + ass_mat.count() << "\t"
<< solver.count() << "\t"
<< percentage_ass << "\t"
<< percentage_sol << endl;
ell_free(&A);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment