Commit 981a5185a75f0221bbd8955aca29d5723edb71e8

Authored by Chris Smartt
1 parent 73f9f473

Update theory manual and user guide

DOCUMENTATION/SACAMOS_Spacecraft_cable_MOD_development.pdf
No preview for this file type
DOCUMENTATION/SACAMOS_TheoryManual.pdf
No preview for this file type
DOCUMENTATION/SACAMOS_UserGuide.pdf
No preview for this file type
DOCUMENTATION/THEORY_MANUAL/Tex/Laplace_Solver_Documentation.tex
... ... @@ -61,10 +61,8 @@ In the static field problems that need to be solved in order to determine the en
61 61 \\
62 62 \begin{equation} - \frac{\partial }{{\partial x}}\left( {{\varepsilon _{\rm{r}}}\frac{{\partial \phi }}{{\partial x}}} \right) - \frac{\partial }{{\partial y}}\left( {{\varepsilon _{\rm{r}}}\frac{{\partial \phi }}{{\partial y}}} \right) = 0\end{equation}
63 63 \\
64   -with Dirichlet boundary condition\\
65   -\\
66   -\begin{equation}\phi = p\end{equation}
67   -\\
  64 +with an appropriate boundary condition applied on the outer boundary of the domain.
  65 +
68 66 In the SACAMOS project the capacitance (and conductance) matrices are calculated numerically using a Finite Element Method \cite{Jin} as outlined in the rest of this chapter. Details of the implementation are not discussed here however the software closely follows the process described in chapter 4 of \cite{Jin}.
69 67 \\
70 68 \section{Solving the capacitance matrix based on energy}
... ... @@ -97,7 +95,7 @@ We can also immediately compute the coefficients of capacitance ${C_{{\rm{pq}}}}
97 95 \\
98 96 So, with a static field solver available we are able to compute the entries in the capacitance matrix.\\
99 97 \\
100   -\section{Procedure capacitance matrix computation based on energy analysis}
  98 +\section{Procedure capacitance matrix computation based on energy analysis}\label{LC_energy}
101 99  
102 100 The procedure for determining the capacitance matrix via computation of the energy storage is:\\
103 101 \begin{enumerate}
... ... @@ -108,9 +106,27 @@ The procedure for determining the capacitance matrix via computation of the ener
108 106 The reference conductor can be either a ground plane, a shield or a circular or rectangular conductor.\\
109 107  
110 108 \subsection{FEM Solver for the Open Boundary Electrostatic Field Problem}
111   -Without an outer shield the electrostatic field is no longer confined to a bounded domain while the FEM can only be used on a finite computational domain. In the course of time a number of techniques have been developed to circumvent this problem. A review of the most important finite element open boundary techniques is given by Chen and Konrad \cite{Chen}. Of all available techniques we have chosen to truncate the domain by introducing a fictitious contour that encloses the domain of primary interest and prescribe on it an asymptotic boundary condition which mimics the behaviour of the electrostatic potential in the region outside the contour. Not only has it been shown that asymptotic boundaries give good results, the technique is relatively easy to implement and preserves the sparsity of the finite element coefficient matrix which makes it a very efficient method as-well.\\
  109 +Without an outer shield the electrostatic field is no longer confined to a bounded domain while the FEM can only be used on a finite computational domain. In the course of time a number of techniques have been developed to circumvent this problem. A review of the most important finite element open boundary techniques is given by Chen and Konrad \cite{Chen}.
  110 +
  111 +%Of all available techniques we have chosen to truncate the domain by introducing a fictitious contour that encloses the domain of primary %interest and prescribe on it an asymptotic boundary condition which mimics the behaviour of the electrostatic potential in the region %outside the contour. Not only has it been shown that asymptotic boundaries give good results, the technique is relatively easy to implement %and preserves the sparsity of the finite element coefficient matrix which makes it a very efficient method as-well.\\
  112 +
  113 +In unshielded condcutor configurations a suitable boundary condition must be applied on the outer boundary of the problems space. The imposition of a boundary condition will necessarily have an effect on the fields within the Finite Element domain and hence the capacitance matrix to be calculated. Three possible boundary conditions are outlined here, the Dirichelet boundary condition ($\phi=0$), the Neumann boundary condition $\frac{\partial \phi(r) }{\partial r}=0$ and an asymptotic boundary condition,
  114 +$\frac{\partial \phi(r) }{\partial r}=\frac{1}{r ln(r)}\phi(r)$.
  115 +
  116 +\subsubsection{Dirichelet boundary conditions}
  117 +
  118 +The Dirichelet boundary condition imposes a $\phi=0$ condition on the outer boundary. This implies that the outer boundary is another conductor which may store charge. In order to calcualte the capacitance matrix with the Dirichelet boundary condition, the outer boundary must be included in the analysis as an additional conductor and a 'generalised capacitance' matrix calculated. The capacitance matrix for the interior conductors only may then be calculated from the generalised capacitance matrix via the procedure described in \cite{PaulMTL}.
  119 +
  120 +\subsubsection{Neumann boundary conditions}
  121 +
  122 +The Neumann boundary condition is expressed as
  123 +\begin{equation}
  124 +\frac{\partial \phi(r) }{\partial r}=0
  125 +\end{equation}
  126 +This boundary condition enforces a condition that the normal derivitive of the potential is zero and hence the charge on the boundary is zero everywhere. The zero charge propertiy is required by the capacitance matrix calculation and using the Neumann boundary condition leads to convergence of the capacitance matrix elements to the correct values as the boundary distance and the mesh density are increased.
  127 +
  128 +\subsubsection{Asymptotic boundary conditions}
112 129  
113   -\subsection{Asymptotic Boundary Conditions}
114 130 For electrostatic problems, the potential in a point ${\bf{r}}$, can be written as\\
115 131 \\
116 132 \begin{equation}\phi\left(\mathbf{r}\right)=\iint_{\Omega}\rho\left(\mathbf{r}'\right) G\left(\mathbf{r},\mathbf{r}'\right)d\mathbf{r}'\end{equation}
... ... @@ -131,6 +147,11 @@ Expression immediately implies that the potential for $r \gg r'$, with $r'$ the
131 147 \\
132 148 \begin{equation}\frac{\partial }{{\partial r}}\phi \left( {r,\theta } \right) = \frac{1}{{r\ln \left( r \right)}}\phi \left( {r,\theta } \right)\end{equation}
133 149 \\
  150 +
  151 +It has been observed that the use of the asymptotic boundary condition described here can have an effect on the convergence of the capacitance matrix calculation due to a net charge on the outer boundary which is not taken into account in the capacitance matrix calculation described in section \ref{LC_energy}. Currently it is not known whether a 'generalised capacitance matrix' type solution can be used along with this boundary condition as the outer boundary is not an equipotential (as it is in the Dirichelet case).
  152 +As a consequence of this the Neumann boundary condition is recommended and used in the SACAMOS software as the default open boundary condition.
  153 +
  154 +
134 155 \subsection{Computing the conductance matrix} \label{conductance_matrix}
135 156 The conductance matrix $\left[G\right]$ can be obtained by introducing a complex permittivity and solving for a complex valued capacitance matrix $\left[C\right]$. ( reference \cite{PaulMTL} equation 3.6.1)\\
136 157 \\
... ... @@ -165,4 +186,112 @@ From that we can obtain the capacitance matrix $\hat C$\\
165 186 And the conductance matrix G\\
166 187 \begin{equation}G = - \varpi {\mathop{\rm Im}\nolimits} (\hat C)\end{equation}
167 188 \\
  189 +\subsection{Iterative solution of the Finite Element matrix equations} \label{cg_solution}
  190 +
  191 +
  192 +The Finite Element method used to solver the Laplace equation for multi-conductor cable cross sections results in a matrix equation which must be solved for the unknown node potentials. The matrix is sparse however the V3 version of the SACAMOS software does not take advantage of this sparsity and a direct matrix inverse is used to solve the matrix equation. This approach is wasteful in that the sparsity of the matrix equation is not used to our advantage and the size of the Finite Element mesh which can be used is severely limited to systems of the order of 1000's of unknowns. iterative matrix solutions have the potential to improve the efficiency of solution in terms of both storage (a full matrix never needs to be stored) and runtime for a solution. The method implemented here is described in reference \cite{numerical_recipes}. A discussion of the use of conjugate gradient methods in Finite Element solutions may be found in reference \cite{Jin}.
  193 +
  194 +CCN2 addresses this issue by implementing the biconjugate gradient method, an iterative approach to the solution to the Finite Element matrix equations which is suitable for real and complex symmetric matrix systems as in equation \ref{eq:matrix_eqn}.
  195 +
  196 +\begin{equation} \label{eq:matrix_eqn}
  197 +\left[ A \right] \left( x \right)=\left( b \right)
  198 +\end{equation}
  199 +
  200 +% Include references to Jin's book and Numerical Recipes
  201 +
  202 +The method is derived by writing a functional whose minimum corresponds to the solution of \ref{eq:matrix_eqn}. Here we minimise the function
  203 +
  204 +\begin{equation} \label{eq:matrix_eqn}
  205 +f(x)=\frac{1}{2}\left( x \right) \left[ A \right] \left( x \right)-\left( b \right)\left( x \right)
  206 +\end{equation}
  207 +
  208 +This function is minimised when it's gradient is zero i.e.
  209 +
  210 +\begin{equation} \label{eq:matrix_eqn}
  211 +\nabla f=\left[ A \right] \left( x \right)-\left( b \right)=0
  212 +\end{equation}
  213 +
  214 +
  215 +The inner product is defined as follows: if we have two column vectors $(a)$ and $(b)$ each with n elements then
  216 +
  217 +\begin{equation} \label{eq:inner_product}
  218 +\left< a,b \right>=\sum_{i=1}^{n} a_i b_i
  219 +\end{equation}
  220 +
  221 +The bicongugate gradient algorithm is described by the following process:
  222 +
  223 +given an initial guess of the solution vector $(x_1)$, calculate the residual
  224 +
  225 +\begin{equation} \label{eq:BCG_1}
  226 +\left( r_1 \right)=\left( b \right)-\left[ A \right] \left( x_1 \right)
  227 +\end{equation}
  228 +then set
  229 +\begin{equation} \label{eq:BCG_2}
  230 +\left( r'_1 \right)=\left[ A \right] \left( r_1 \right)
  231 +\end{equation}
  232 +This choice of $\left( r'_1 \right)$ gives the so called 'minimum residual' algorithm which is suitable for
  233 +non-positive definite matrices.
  234 +
  235 +Also set the initial values of $\left( p_1 \right)$ and $\left( p'_1 \right)$ as
  236 +\begin{equation} \label{eq:BCG_3}
  237 +\left( p_1 \right)=\left( r_1 \right)
  238 +\end{equation}
  239 +\begin{equation} \label{eq:BCG_4}
  240 +\left( p'_1 \right)=\left( r'_1 \right)
  241 +\end{equation}
  242 +
  243 +Then iterate the following process for $k=1,2,3 \hdots$ until the size of the residual is less than a specified tolerance $(10^{-12})$
  244 +
  245 +\begin{equation} \label{eq:BCG_5}
  246 +a_k=\frac{\left< \left(r'_k\right),\left(r_k\right) \right>}{\left< \left(p'_k\right)\left[ A \right] \left(p_k\right) \right> }
  247 +\end{equation}
  248 +
  249 +The improved estimate of the unknown solution vector is now
  250 +\begin{equation} \label{eq:BCG_6}
  251 +\left(x_{k+1}\right)=\left(x_k\right)+a_k \left(p_k\right)
  252 +\end{equation}
  253 +
  254 +The residual is given by
  255 +
  256 +\begin{equation} \label{eq:BCG_7}
  257 +\left( r_k \right)=\left( b \right)-\left[ A \right] \left( x_k \right)
  258 +\end{equation}
  259 +
  260 +Calculate the size (norm) of the residual
  261 +\begin{equation} \label{eq:BCG_8}
  262 +norm=\left< r_k,r^*_k \right>=\sum_{i=1}^{n} r_{k,i} r^*_{k,i}
  263 +\end{equation}
  264 +
  265 +If norm is less than the specified tolerance then finish, otherwise calculate
  266 +
  267 +\begin{equation} \label{eq:BCG_9}
  268 +\left( r_{k+1} \right)=\left( r_k \right)-a_k\left[ A \right] \left( p_k \right)
  269 +\end{equation}
  270 +
  271 +
  272 +\begin{equation} \label{eq:BCG_10}
  273 +\left( r'_{k+1} \right)=\left( r'_k \right)-a_k\left[ A^T \right] \left( p'_k \right)
  274 +\end{equation}
  275 +
  276 +\begin{equation} \label{eq:BCG_11}
  277 +b_k=\frac{\left< \left(r'_{k+1}\right),\left(r_{k+1}\right) \right>}{\left< \left(r'_k\right),\left(r_k\right) \right> }
  278 +\end{equation}
  279 +
  280 +
  281 +\begin{equation} \label{eq:BCG_12}
  282 +\left( p_{k+1} \right)=\left( r_{k+1} \right)+b_k\left( p_k \right)
  283 +\end{equation}
  284 +
  285 +\begin{equation} \label{eq:BCG_12}
  286 +\left( p'_{k+1} \right)=\left( r'_{k+1} \right)+b_k\left( p'_k \right)
  287 +\end{equation}
  288 +
  289 +Then return to the start of the iteration loop
  290 +
  291 +Two implementations of the above iterative process have been developed, one for real matrices and one for complex matrices.
  292 +The complex solution is only required if lossy dielectric materials are present in the cross section.
  293 +
  294 +
  295 +
  296 +\clearpage
168 297  
... ...
DOCUMENTATION/THEORY_MANUAL/Tex/bibliography.tex
... ... @@ -39,6 +39,11 @@ J-M ~Jin,
39 39 \textsl{The Finite Element Method in Electromagnetics}
40 40 3rd Edition, John Wiley \& sons 2014.
41 41  
  42 +\bibitem{numerical_recipes}
  43 +W.H.~Press, S.A. Teukolsky, W. T. Vetterling, B. P. Flannery
  44 +\textsl{Numerical Recipes in C}
  45 +Second Edition, Cambridge University Press, 1992.
  46 +
42 47 \bibitem{Chen}
43 48 Q. Chen, A. Konrad,
44 49 \textsl{A Review of Finite Element Open Boundary Techniques for Static and Quasi-Static Electromagnetic Field Problems},
... ...
DOCUMENTATION/USER_GUIDE/Tex/creating_a_cable_bundle_model.tex
... ... @@ -92,6 +92,8 @@ If the Laplace solver is used then the mesh generation is be controlled by the p
92 92  
93 93 \item `Max\_mesh\_edge\_length' This (real) parameter determines the maximum finite element mesh edge length for the rectangular conductors of flex cables. It may be used to force an increase in mesh density in flex cables. \\
94 94  
  95 +\item `gp\_edge\_length' This (real) parameter determines the finite element mesh edge length at the centre of the ground plane. It may be used to increase the mesh density in the ground plane below the cable bundle to improve accuracy of the per-unit-length parameter calculation. \\
  96 +
95 97 \end{enumerate}
96 98  
97 99 The default parameters are a compromise between accuracy and computation time for the Laplace solution.
... ...