Commit 68b0ecb2fd39466b62fe85593f3627498b31711f

Authored by Chris Smartt
1 parent 8c230103

Complete mesh generation parameters for flex cables

DOCUMENTATION/THEORY_MANUAL/Tex/cable_types.tex
@@ -480,7 +480,7 @@ I_0 \\ @@ -480,7 +480,7 @@ I_0 \\
480 480
481 \begin{figure}[h] 481 \begin{figure}[h]
482 \centering 482 \centering
483 -\includegraphics[scale=0.5]{../USER_GUIDE/Imgs/flex_cable.eps} 483 +\includegraphics[scale=0.5]{../USER_GUIDE/Imgs/ML_flex_cable.eps}
484 \caption{flex cable} 484 \caption{flex cable}
485 \label{fig:flex_cable} 485 \label{fig:flex_cable}
486 \end{figure} 486 \end{figure}
@@ -566,12 +566,12 @@ V_{d2\_c1} \\ @@ -566,12 +566,12 @@ V_{d2\_c1} \\
566 V_{ref}\\ 566 V_{ref}\\
567 \end{array} \right) 567 \end{array} \right)
568 =\left[ \begin{array}{cccccc} 568 =\left[ \begin{array}{cccccc}
569 - 1 & 0 & \cdots & 0 && -1 0 \\  
570 - 0 & 1 & \cdots & 0 && -1 0 \\  
571 - \vdots & \vdots & \ddots & \vdots && \vdots\vdots \\  
572 - 0 & 0 & \cdots & 1 && -1 0 \\  
573 - 0 & 0 & \cdots & 0 && 1 -1 \\  
574 - 0 & 0 & \cdots & 0 && 0 1 \\ 569 + 1 & 0 & \cdots & 0 & -1 & 0 \\
  570 + 0 & 1 & \cdots & 0 & -1 & 0 \\
  571 + \vdots & \vdots & \ddots & \vdots & \vdots & \vdots \\
  572 + 0 & 0 & \cdots & 1 & -1 & 0 \\
  573 + 0 & 0 & \cdots & 0 & 1 & -1 \\
  574 + 0 & 0 & \cdots & 0 & 0 & 1 \\
575 \end{array} \right] 575 \end{array} \right]
576 \left( \begin{array}{c} 576 \left( \begin{array}{c}
577 V_1 \\ 577 V_1 \\
@@ -597,7 +597,7 @@ I_{ref}\\ @@ -597,7 +597,7 @@ I_{ref}\\
597 =\left[ \begin{array}{cccccc} 597 =\left[ \begin{array}{cccccc}
598 1 & 0 & \cdots & 0 & 0 & 0 \\ 598 1 & 0 & \cdots & 0 & 0 & 0 \\
599 0 & 1 & \cdots & 0 & 0 & 0 \\ 599 0 & 1 & \cdots & 0 & 0 & 0 \\
600 - \vdots & \vdots & \ddots & \vdots & \vdots\vdots \ 600 + \vdots & \vdots & \ddots & \vdots & \vdots & \vdots \
601 0 & 0 & \cdots & 1 & 0 & 0 \\ 601 0 & 0 & \cdots & 1 & 0 & 0 \\
602 0 & 0 & \cdots & 0 & 1 & 0 \\ 602 0 & 0 & \cdots & 0 & 1 & 0 \\
603 1 & 1 & \cdots & 1 & 1 & 1 \\ 603 1 & 1 & \cdots & 1 & 1 & 1 \\
DOCUMENTATION/THEORY_MANUAL/Tex/preamble.tex
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 \newcommand{\DocumentTitle}{Theory Manual} 4 \newcommand{\DocumentTitle}{Theory Manual}
5 \newcommand{\DocumentSubTitle}{SACAMOS: State of the Art CAble MOdels for Spice} 5 \newcommand{\DocumentSubTitle}{SACAMOS: State of the Art CAble MOdels for Spice}
6 \newcommand{\DocumentSubSubTitle}{Open Souce Cable Models for EMI Simulations} 6 \newcommand{\DocumentSubSubTitle}{Open Souce Cable Models for EMI Simulations}
7 -\newcommand{\DocumentVersion}{1.1} 7 +\newcommand{\DocumentVersion}{1.2}
8 \newcommand{\DocumentAuthors}{Christopher Smartt\footnote{\UONname, contact: Chris.Smartt@nottingham.ac.uk}, David Thomas$^1$, Steve Greedy$^1$, \\ Jaco Verpoorte\footnote{\NLRname, contact: Jaco.Verpoorte@nlr.nl}, Jesper Lansink Rotgerink$^2$ and Harmen Schippers$^2$} 8 \newcommand{\DocumentAuthors}{Christopher Smartt\footnote{\UONname, contact: Chris.Smartt@nottingham.ac.uk}, David Thomas$^1$, Steve Greedy$^1$, \\ Jaco Verpoorte\footnote{\NLRname, contact: Jaco.Verpoorte@nlr.nl}, Jesper Lansink Rotgerink$^2$ and Harmen Schippers$^2$}
9 \newcommand{\License}{This document is subject to the GNU Free Documentation License (version 2.0).} 9 \newcommand{\License}{This document is subject to the GNU Free Documentation License (version 2.0).}
10 \newcommand{\Reference}{ESA 40000112765/14/NL/HK} 10 \newcommand{\Reference}{ESA 40000112765/14/NL/HK}
DOCUMENTATION/USER_GUIDE/Imgs/ML_flex_cable.eps 0 → 100644
@@ -0,0 +1,927 @@ @@ -0,0 +1,927 @@
  1 +%!PS-Adobe-3.0 EPSF-3.0
  2 +%%BoundingBox: -1 335 586 740
  3 +%%Title: ML_flex_cable
  4 +%%CreationDate: Wed Jun 20 11:47:45 2018
  5 +%%Creator: Tgif-4.2.5-QPL written by William Chia-Wei Cheng (bill.cheng@acm.org)
  6 +%%ProducedBy: (unknown)
  7 +%%Pages: 1
  8 +%%DocumentFonts: (atend)
  9 +%%EndComments
  10 +%%BeginProlog
  11 +
  12 +/tgifdict 54 dict def
  13 +tgifdict begin
  14 +
  15 +/tgifarrowtipdict 8 dict def
  16 +tgifarrowtipdict /mtrx matrix put
  17 +
  18 +/TGAT % tgifarrowtip
  19 + { tgifarrowtipdict begin
  20 + /dy exch def
  21 + /dx exch def
  22 + /h exch def
  23 + /w exch def
  24 + /y exch def
  25 + /x exch def
  26 + /savematrix mtrx currentmatrix def
  27 + x y translate
  28 + dy dx atan rotate
  29 + 0 0 moveto
  30 + w neg h lineto
  31 + w neg h neg lineto
  32 + savematrix setmatrix
  33 + end
  34 + } def
  35 +
  36 +/TGMAX
  37 + { exch dup 3 1 roll exch dup 3 1 roll gt { pop } { exch pop } ifelse
  38 + } def
  39 +/TGMIN
  40 + { exch dup 3 1 roll exch dup 3 1 roll lt { pop } { exch pop } ifelse
  41 + } def
  42 +/TGSW { stringwidth pop } def
  43 +/tgifstrw 0 def
  44 +
  45 +/bd { bind def } bind def
  46 +
  47 +/GS { gsave } bd
  48 +/GR { grestore } bd
  49 +/NP { newpath } bd
  50 +/CP { closepath } bd
  51 +/CHP { charpath } bd
  52 +/CT { curveto } bd
  53 +/L { lineto } bd
  54 +/RL { rlineto } bd
  55 +/M { moveto } bd
  56 +/RM { rmoveto } bd
  57 +/S { stroke } bd
  58 +/F { fill } bd
  59 +/TR { translate } bd
  60 +/RO { rotate } bd
  61 +/SC { scale } bd
  62 +/MU { mul } bd
  63 +/DI { div } bd
  64 +/DU { dup } bd
  65 +/NE { neg } bd
  66 +/AD { add } bd
  67 +/SU { sub } bd
  68 +/PO { pop } bd
  69 +/EX { exch } bd
  70 +/CO { concat } bd
  71 +/CL { clip } bd
  72 +/EC { eoclip } bd
  73 +/EF { eofill } bd
  74 +/IM { image } bd
  75 +/IMM { imagemask } bd
  76 +/ARY { array } bd
  77 +/SG { setgray } bd
  78 +/RG { setrgbcolor } bd
  79 +/SD { setdash } bd
  80 +/W { setlinewidth } bd
  81 +/SM { setmiterlimit } bd
  82 +/SLC { setlinecap } bd
  83 +/SLJ { setlinejoin } bd
  84 +/SH { show } bd
  85 +/FF { findfont } bd
  86 +/MS { makefont setfont } bd
  87 +/AR { arcto 4 {pop} repeat } bd
  88 +/CURP { currentpoint } bd
  89 +/FLAT { flattenpath strokepath clip newpath } bd
  90 +/TGSM { tgiforigctm setmatrix } def
  91 +/TGRM { savematrix setmatrix } def
  92 +
  93 +end
  94 +
  95 +%%EndProlog
  96 +%%Page: 1 1
  97 +
  98 +%%PageBoundingBox: -1 335 586 740
  99 +tgifdict begin
  100 +/tgifsavedpage save def
  101 +
  102 +1 SM
  103 +1 W
  104 +
  105 +0 SG
  106 +
  107 +72 0 MU 72 11.602 MU TR
  108 +72 128 DI 100.000 MU 100 DI DU NE SC
  109 +
  110 +GS
  111 +
  112 +/tgiforigctm matrix currentmatrix def
  113 +
  114 +% TEXT
  115 +NP
  116 +0 SG
  117 + GS
  118 + 1 W
  119 + 260 880 M
  120 + GS
  121 + 0 SG
  122 + /Courier FF [24 0 0 -24 0 0] MS
  123 + (Multi-layer conductor Flex cable) SH
  124 + GR
  125 + GR
  126 +
  127 +% TEXT
  128 +NP
  129 +0 SG
  130 + GS
  131 + 1 W
  132 + 120 325 M
  133 + GS
  134 + 0 SG
  135 + /Courier FF [24 0 0 -24 0 0] MS
  136 + (width) SH
  137 + GR
  138 + GR
  139 +
  140 +% TEXT
  141 +NP
  142 +0 SG
  143 + GS
  144 + 1 W
  145 + 70 475 M
  146 + GS
  147 + 1.000 0.000 1.000 RG
  148 + /Courier FF [24 0 0 -24 0 0] MS
  149 + (Conductor No 1) SH
  150 + GR
  151 + GR
  152 +
  153 +% TEXT
  154 +NP
  155 +0 SG
  156 + GS
  157 + 1 W
  158 + 235 410 M
  159 + GS
  160 + 0 SG
  161 + /Courier FF [24 0 0 -24 0 0] MS
  162 + (height) SH
  163 + GR
  164 + GR
  165 +
  166 +% BOX
  167 +0 SG
  168 +GS
  169 + 10 SM
  170 + GS
  171 + NP 70 390 M 220 390 L 220 420 L 70 420 L CP
  172 + 3 W
  173 + S
  174 + GR
  175 +GR
  176 +
  177 +% POLY/OPEN-SPLINE
  178 +0 SG
  179 +GS
  180 + NP
  181 + 70 340 M
  182 + 0 150 atan DU cos 8.000 MU exch sin 8.000 MU RM
  183 + 0 150 atan DU cos 8.000 MU 220 exch SU
  184 + exch sin 8.000 MU 340 exch SU L
  185 + TGSM
  186 + 1 W
  187 + S
  188 +GR
  189 +GS
  190 + TGSM
  191 + NP
  192 + 70 340 8.000 3.000 -150 0 TGAT
  193 + 1 SG CP F
  194 + 0 SG
  195 + NP
  196 + 70 340 8.000 3.000 -150 0 TGAT
  197 + CP F
  198 +GR
  199 +GS
  200 + TGSM
  201 + NP
  202 + 220 340 8.000 3.000 150 0 TGAT
  203 + 1 SG CP F
  204 + 0 SG
  205 + NP
  206 + 220 340 8.000 3.000 150 0 TGAT
  207 + CP F
  208 +GR
  209 +
  210 +% POLY/OPEN-SPLINE
  211 +0 SG
  212 +GS
  213 + NP
  214 + 230 390 M
  215 + 30 0 atan DU cos 8.000 MU exch sin 8.000 MU RM
  216 + 30 0 atan DU cos 8.000 MU 230 exch SU
  217 + exch sin 8.000 MU 420 exch SU L
  218 + TGSM
  219 + 1 W
  220 + S
  221 +GR
  222 +GS
  223 + TGSM
  224 + NP
  225 + 230 390 8.000 3.000 0 -30 TGAT
  226 + 1 SG CP F
  227 + 0 SG
  228 + NP
  229 + 230 390 8.000 3.000 0 -30 TGAT
  230 + CP F
  231 +GR
  232 +GS
  233 + TGSM
  234 + NP
  235 + 230 420 8.000 3.000 0 30 TGAT
  236 + 1 SG CP F
  237 + 0 SG
  238 + NP
  239 + 230 420 8.000 3.000 0 30 TGAT
  240 + CP F
  241 +GR
  242 +
  243 +% POLY/OPEN-SPLINE
  244 +0 SG
  245 +GS
  246 + NP
  247 + 220 340 M
  248 + 0 105 atan DU cos 8.000 MU exch sin 8.000 MU RM
  249 + 0 105 atan DU cos 8.000 MU 325 exch SU
  250 + exch sin 8.000 MU 340 exch SU L
  251 + TGSM
  252 + 1 W
  253 + S
  254 +GR
  255 +GS
  256 + TGSM
  257 + NP
  258 + 220 340 8.000 3.000 -105 0 TGAT
  259 + 1 SG CP F
  260 + 0 SG
  261 + NP
  262 + 220 340 8.000 3.000 -105 0 TGAT
  263 + CP F
  264 +GR
  265 +GS
  266 + TGSM
  267 + NP
  268 + 325 340 8.000 3.000 105 0 TGAT
  269 + 1 SG CP F
  270 + 0 SG
  271 + NP
  272 + 325 340 8.000 3.000 105 0 TGAT
  273 + CP F
  274 +GR
  275 +
  276 +% TEXT
  277 +NP
  278 +0 SG
  279 + GS
  280 + 1 W
  281 + 220 325 M
  282 + GS
  283 + 0 SG
  284 + /Courier FF [24 0 0 -24 0 0] MS
  285 + (separation) SH
  286 + GR
  287 + GR
  288 +
  289 +% BOX
  290 +1.000 0.000 0.000 RG
  291 +GS
  292 + 10 SM
  293 + GS
  294 + NP 55 360 M 920 360 L 920 790 L 55 790 L CP
  295 + 2 W
  296 + S
  297 + GR
  298 +GR
  299 +
  300 +% BOX
  301 +0 SG
  302 +GS
  303 + 10 SM
  304 + GS
  305 + NP 330 390 M 480 390 L 480 420 L 330 420 L CP
  306 + 3 W
  307 + S
  308 + GR
  309 +GR
  310 +
  311 +% BOX
  312 +0 SG
  313 +GS
  314 + 10 SM
  315 + GS
  316 + NP 695 390 M 845 390 L 845 420 L 695 420 L CP
  317 + 3 W
  318 + S
  319 + GR
  320 +GR
  321 +
  322 +% POLY/OPEN-SPLINE
  323 +0 SG
  324 +GS
  325 + [16 16] 0 SD
  326 + NP
  327 + 495 410 M
  328 + 655 410 L
  329 + TGSM
  330 + 4 W
  331 + S
  332 + [] 0 SD
  333 + 1 W
  334 +GR
  335 +
  336 +% TEXT
  337 +NP
  338 +0 SG
  339 + GS
  340 + 1 W
  341 + 315 475 M
  342 + GS
  343 + 1.000 0.000 1.000 RG
  344 + /Courier FF [24 0 0 -24 0 0] MS
  345 + (Conductor No 2) SH
  346 + GR
  347 + GR
  348 +
  349 +% TEXT
  350 +NP
  351 +0 SG
  352 + GS
  353 + 1 W
  354 + 730 835 M
  355 + GS
  356 + 1.000 0.000 1.000 RG
  357 + /Courier FF [24 0 0 -24 0 0] MS
  358 + (Conductor No nc) SH
  359 + GR
  360 + GR
  361 +
  362 +% BOX
  363 +0 SG
  364 +GS
  365 + 10 SM
  366 + GS
  367 + NP 100 740 M 875 740 L 875 755 L 100 755 L CP
  368 + 3 W
  369 + S
  370 + GR
  371 +GR
  372 +
  373 +% BOX
  374 +0 SG
  375 +GS
  376 + 10 SM
  377 + GS
  378 + NP 130 595 M 280 595 L 280 625 L 130 625 L CP
  379 + 3 W
  380 + S
  381 + GR
  382 +GR
  383 +
  384 +% BOX
  385 +0 SG
  386 +GS
  387 + 10 SM
  388 + GS
  389 + NP 400 595 M 553 595 L 553 625 L 400 625 L CP
  390 + 3 W
  391 + S
  392 + GR
  393 +GR
  394 +
  395 +% POLY/OPEN-SPLINE
  396 +0 SG
  397 +GS
  398 + [16 16] 0 SD
  399 + NP
  400 + 296 610 M
  401 + 384 610 L
  402 + TGSM
  403 + 4 W
  404 + S
  405 + [] 0 SD
  406 + 1 W
  407 +GR
  408 +
  409 +% POLY/OPEN-SPLINE
  410 +0 SG
  411 +GS
  412 + [4 12] 0 SD
  413 + NP
  414 + 230 665 M
  415 + 230 730 L
  416 + TGSM
  417 + 4 W
  418 + S
  419 + [] 0 SD
  420 + 1 W
  421 +GR
  422 +
  423 +% POLY/OPEN-SPLINE
  424 +0 SG
  425 +GS
  426 + [4 12] 0 SD
  427 + NP
  428 + 750 660 M
  429 + 750 725 L
  430 + TGSM
  431 + 4 W
  432 + S
  433 + [] 0 SD
  434 + 1 W
  435 +GR
  436 +
  437 +% POLY/OPEN-SPLINE
  438 +1.000 0.000 1.000 RG
  439 +GS
  440 + NP
  441 + 850 805 M
  442 + -60 -80 atan DU cos 8.000 MU 770 exch SU
  443 + exch sin 8.000 MU 745 exch SU L
  444 + TGSM
  445 + 1 W
  446 + S
  447 +GR
  448 +GS
  449 + TGSM
  450 + NP
  451 + 770 745 8.000 3.000 -80 -60 TGAT
  452 + 1 SG CP F
  453 + 1.000 0.000 1.000 RG
  454 + NP
  455 + 770 745 8.000 3.000 -80 -60 TGAT
  456 + CP F
  457 +GR
  458 +
  459 +% POLY/OPEN-SPLINE
  460 +1.000 0.000 1.000 RG
  461 +GS
  462 + NP
  463 + 175 450 M
  464 + -45 -5 atan DU cos 8.000 MU 170 exch SU
  465 + exch sin 8.000 MU 405 exch SU L
  466 + TGSM
  467 + 1 W
  468 + S
  469 +GR
  470 +GS
  471 + TGSM
  472 + NP
  473 + 170 405 8.000 3.000 -5 -45 TGAT
  474 + 1 SG CP F
  475 + 1.000 0.000 1.000 RG
  476 + NP
  477 + 170 405 8.000 3.000 -5 -45 TGAT
  478 + CP F
  479 +GR
  480 +
  481 +% POLY/OPEN-SPLINE
  482 +1.000 0.000 1.000 RG
  483 +GS
  484 + NP
  485 + 425 460 M
  486 + -55 -10 atan DU cos 8.000 MU 415 exch SU
  487 + exch sin 8.000 MU 405 exch SU L
  488 + TGSM
  489 + 1 W
  490 + S
  491 +GR
  492 +GS
  493 + TGSM
  494 + NP
  495 + 415 405 8.000 3.000 -10 -55 TGAT
  496 + 1 SG CP F
  497 + 1.000 0.000 1.000 RG
  498 + NP
  499 + 415 405 8.000 3.000 -10 -55 TGAT
  500 + CP F
  501 +GR
  502 +
  503 +% TEXT
  504 +NP
  505 +0 SG
  506 + GS
  507 + 1 W
  508 + 950 275 M
  509 + GS
  510 + 0 SG
  511 + /Courier FF [24 0 0 -24 0 0] MS
  512 + (Row ) SH
  513 + GR
  514 + 0 24 RM
  515 + GS
  516 + 0 SG
  517 + /Courier FF [24 0 0 -24 0 0] MS
  518 + (Number) SH
  519 + GR
  520 + GR
  521 +
  522 +% POLY/OPEN-SPLINE
  523 +0 SG
  524 +GS
  525 + NP
  526 + 985 310 M
  527 + 55 0 atan DU cos 8.000 MU 985 exch SU
  528 + exch sin 8.000 MU 365 exch SU L
  529 + TGSM
  530 + 1 W
  531 + S
  532 +GR
  533 +GS
  534 + TGSM
  535 + NP
  536 + 985 365 8.000 3.000 0 55 TGAT
  537 + 1 SG CP F
  538 + 0 SG
  539 + NP
  540 + 985 365 8.000 3.000 0 55 TGAT
  541 + CP F
  542 +GR
  543 +
  544 +% TEXT
  545 +NP
  546 +0 SG
  547 + GS
  548 + 1 W
  549 + 970 405 M
  550 + GS
  551 + 0 SG
  552 + /Courier FF [24 0 0 -24 0 0] MS
  553 + (1) SH
  554 + GR
  555 + GR
  556 +
  557 +% TEXT
  558 +NP
  559 +0 SG
  560 + GS
  561 + 1 W
  562 + 975 620 M
  563 + GS
  564 + 0 SG
  565 + /Courier FF [24 0 0 -24 0 0] MS
  566 + (2) SH
  567 + GR
  568 + GR
  569 +
  570 +% TEXT
  571 +NP
  572 +0 SG
  573 + GS
  574 + 1 W
  575 + 940 760 M
  576 + GS
  577 + 0 SG
  578 + /Courier FF [24 0 0 -24 0 0] MS
  579 + (n_rows) SH
  580 + GR
  581 + GR
  582 +
  583 +% POLY/OPEN-SPLINE
  584 +0 SG
  585 +GS
  586 + [4 12] 0 SD
  587 + NP
  588 + 980 650 M
  589 + 980 715 L
  590 + TGSM
  591 + 4 W
  592 + S
  593 + [] 0 SD
  594 + 1 W
  595 +GR
  596 +
  597 +% POLY/OPEN-SPLINE
  598 +0 SG
  599 +GS
  600 + NP
  601 + 475 555 M
  602 + -370 0 atan DU cos 8.000 MU 475 exch SU
  603 + exch sin 8.000 MU 185 exch SU L
  604 + TGSM
  605 + 1 W
  606 + S
  607 +GR
  608 +GS
  609 + TGSM
  610 + NP
  611 + 475 185 8.000 3.000 0 -370 TGAT
  612 + 1 SG CP F
  613 + 0 SG
  614 + NP
  615 + 475 185 8.000 3.000 0 -370 TGAT
  616 + CP F
  617 +GR
  618 +
  619 +% POLY/OPEN-SPLINE
  620 +0 SG
  621 +GS
  622 + NP
  623 + 475 555 M
  624 + 0 485 atan DU cos 8.000 MU 960 exch SU
  625 + exch sin 8.000 MU 555 exch SU L
  626 + TGSM
  627 + 1 W
  628 + S
  629 +GR
  630 +GS
  631 + TGSM
  632 + NP
  633 + 960 555 8.000 3.000 485 0 TGAT
  634 + 1 SG CP F
  635 + 0 SG
  636 + NP
  637 + 960 555 8.000 3.000 485 0 TGAT
  638 + CP F
  639 +GR
  640 +
  641 +% TEXT
  642 +NP
  643 +0 SG
  644 + GS
  645 + 1 W
  646 + 490 190 M
  647 + GS
  648 + 0 SG
  649 + /Courier FF [24 0 0 -24 0 0] MS
  650 + (y) SH
  651 + GR
  652 + GR
  653 +
  654 +% TEXT
  655 +NP
  656 +0 SG
  657 + GS
  658 + 1 W
  659 + 940 540 M
  660 + GS
  661 + 0 SG
  662 + /Courier FF [24 0 0 -24 0 0] MS
  663 + (x) SH
  664 + GR
  665 + GR
  666 +
  667 +% POLY/OPEN-SPLINE
  668 +0 SG
  669 +GS
  670 + NP
  671 + 55 280 M
  672 + 0 860 atan DU cos 8.000 MU exch sin 8.000 MU RM
  673 + 0 860 atan DU cos 8.000 MU 915 exch SU
  674 + exch sin 8.000 MU 280 exch SU L
  675 + TGSM
  676 + 1 W
  677 + S
  678 +GR
  679 +GS
  680 + TGSM
  681 + NP
  682 + 55 280 8.000 3.000 -860 0 TGAT
  683 + 1 SG CP F
  684 + 0 SG
  685 + NP
  686 + 55 280 8.000 3.000 -860 0 TGAT
  687 + CP F
  688 +GR
  689 +GS
  690 + TGSM
  691 + NP
  692 + 915 280 8.000 3.000 860 0 TGAT
  693 + 1 SG CP F
  694 + 0 SG
  695 + NP
  696 + 915 280 8.000 3.000 860 0 TGAT
  697 + CP F
  698 +GR
  699 +
  700 +% TEXT
  701 +NP
  702 +0 SG
  703 + GS
  704 + 1 W
  705 + 320 265 M
  706 + GS
  707 + 0 SG
  708 + /Courier FF [24 0 0 -24 0 0] MS
  709 + (dielectric width) SH
  710 + GR
  711 + GR
  712 +
  713 +% POLY/OPEN-SPLINE
  714 +0 SG
  715 +GS
  716 + NP
  717 + 30 360 M
  718 + 425 0 atan DU cos 8.000 MU exch sin 8.000 MU RM
  719 + 425 0 atan DU cos 8.000 MU 30 exch SU
  720 + exch sin 8.000 MU 785 exch SU L
  721 + TGSM
  722 + 1 W
  723 + S
  724 +GR
  725 +GS
  726 + TGSM
  727 + NP
  728 + 30 360 8.000 3.000 0 -425 TGAT
  729 + 1 SG CP F
  730 + 0 SG
  731 + NP
  732 + 30 360 8.000 3.000 0 -425 TGAT
  733 + CP F
  734 +GR
  735 +GS
  736 + TGSM
  737 + NP
  738 + 30 785 8.000 3.000 0 425 TGAT
  739 + 1 SG CP F
  740 + 0 SG
  741 + NP
  742 + 30 785 8.000 3.000 0 425 TGAT
  743 + CP F
  744 +GR
  745 +
  746 +% TEXT
  747 +NP
  748 +0 SG
  749 +GS
  750 + -192 584 TR
  751 + [0.000 -1.000 1.000 0.000 193 107] CO
  752 + -192 NE 584 NE TR
  753 +GR
  754 + GS
  755 + 1 W
  756 + -192 584 TR
  757 + [0.000 -1.000 1.000 0.000 193 107] CO
  758 + 0 19 M
  759 + GS
  760 + 0 SG
  761 + /Courier FF [24 0 0 -24 0 0] MS
  762 + (dielectric height) SH
  763 + GR
  764 + GR
  765 +
  766 +% POLY/OPEN-SPLINE
  767 +0.000 0.000 1.000 RG
  768 +GS
  769 + NP
  770 + 475 555 M
  771 + -150 -45 atan DU cos 8.000 MU 430 exch SU
  772 + exch sin 8.000 MU 405 exch SU L
  773 + TGSM
  774 + 1 W
  775 + S
  776 +GR
  777 +GS
  778 + TGSM
  779 + NP
  780 + 430 405 8.000 3.000 -45 -150 TGAT
  781 + 1 SG CP F
  782 + 0.000 0.000 1.000 RG
  783 + NP
  784 + 430 405 8.000 3.000 -45 -150 TGAT
  785 + CP F
  786 +GR
  787 +
  788 +% TEXT
  789 +NP
  790 + /tgifstrw 0 def
  791 + /tgifstrw tgifstrw
  792 + /Courier FF [24 0 0 -24 0 0] MS
  793 + (row 1 offset) TGSW
  794 + add def
  795 +0 SG
  796 +NP 280 500 M tgifstrw 0 RL 0 25 RL tgifstrw neg 0 RL CP 1 SG F
  797 +0 SG
  798 + GS
  799 + 1 W
  800 + 280 520 M
  801 + GS
  802 + 0.000 0.000 1.000 RG
  803 + /Courier FF [24 0 0 -24 0 0] MS
  804 + (row 1 offset) SH
  805 + GR
  806 + GR
  807 +
  808 +% POLY/OPEN-SPLINE
  809 +0.000 0.000 1.000 RG
  810 +GS
  811 + NP
  812 + 475 555 M
  813 + 55 -135 atan DU cos 8.000 MU 340 exch SU
  814 + exch sin 8.000 MU 610 exch SU L
  815 + TGSM
  816 + 1 W
  817 + S
  818 +GR
  819 +GS
  820 + TGSM
  821 + NP
  822 + 340 610 8.000 3.000 -135 55 TGAT
  823 + 1 SG CP F
  824 + 0.000 0.000 1.000 RG
  825 + NP
  826 + 340 610 8.000 3.000 -135 55 TGAT
  827 + CP F
  828 +GR
  829 +
  830 +% TEXT
  831 +NP
  832 +0 SG
  833 + GS
  834 + 1 W
  835 + 205 580 M
  836 + GS
  837 + 0.000 0.000 1.000 RG
  838 + /Courier FF [24 0 0 -24 0 0] MS
  839 + (row 2 offset) SH
  840 + GR
  841 + GR
  842 +
  843 +% POLY/OPEN-SPLINE
  844 +0.000 0.000 1.000 RG
  845 +GS
  846 + NP
  847 + 475 555 M
  848 + 190 0 atan DU cos 8.000 MU 475 exch SU
  849 + exch sin 8.000 MU 745 exch SU L
  850 + TGSM
  851 + 1 W
  852 + S
  853 +GR
  854 +GS
  855 + TGSM
  856 + NP
  857 + 475 745 8.000 3.000 0 190 TGAT
  858 + 1 SG CP F
  859 + 0.000 0.000 1.000 RG
  860 + NP
  861 + 475 745 8.000 3.000 0 190 TGAT
  862 + CP F
  863 +GR
  864 +
  865 +% TEXT
  866 +NP
  867 +0 SG
  868 + GS
  869 + 1 W
  870 + 490 695 M
  871 + GS
  872 + 0.000 0.000 1.000 RG
  873 + /Courier FF [24 0 0 -24 0 0] MS
  874 + (row n offset) SH
  875 + GR
  876 + GR
  877 +
  878 +% TEXT
  879 +NP
  880 +0 SG
  881 + GS
  882 + 1 W
  883 + 665 455 M
  884 + GS
  885 + 1.000 0.000 1.000 RG
  886 + /Courier FF [24 0 0 -24 0 0] MS
  887 + (Conductor No n,) SH
  888 + GR
  889 + 0 24 RM
  890 + GS
  891 + 1.000 0.000 1.000 RG
  892 + /Courier FF [24 0 0 -24 0 0] MS
  893 + (row 1) SH
  894 + GR
  895 + GR
  896 +
  897 +% POLY/OPEN-SPLINE
  898 +1.000 0.000 1.000 RG
  899 +GS
  900 + NP
  901 + 765 435 M
  902 + -30 5 atan DU cos 8.000 MU 770 exch SU
  903 + exch sin 8.000 MU 405 exch SU L
  904 + TGSM
  905 + 1 W
  906 + S
  907 +GR
  908 +GS
  909 + TGSM
  910 + NP
  911 + 770 405 8.000 3.000 5 -30 TGAT
  912 + 1 SG CP F
  913 + 1.000 0.000 1.000 RG
  914 + NP
  915 + 770 405 8.000 3.000 5 -30 TGAT
  916 + CP F
  917 +GR
  918 +
  919 +GR
  920 +tgifsavedpage restore
  921 +end
  922 +showpage
  923 +
  924 +%%Trailer
  925 +%MatchingCreationDate: Wed Jun 20 11:47:45 2018
  926 +%%DocumentFonts: Courier
  927 +%%EOF
DOCUMENTATION/USER_GUIDE/Imgs/ML_flex_cable.obj 0 → 100644
@@ -0,0 +1,343 @@ @@ -0,0 +1,343 @@
  1 +%TGIF 4.2.5-QPL
  2 +state(0,37,100.000,0,176,0,16,1,14,1,1,0,0,1,2,1,0,'Courier',0,138240,0,0,1,5,0,0,1,1,0,16,0,0,1,1,1,1,1050,1485,1,0,2880,0).
  3 +%
  4 +% @(#)$Header$
  5 +% %W%
  6 +%
  7 +unit("1 pixel/pixel").
  8 +color_info(50,65535,0,[
  9 + "Black", 0, 0, 0, 0, 0, 0, 1,
  10 + "White", 65535, 65535, 65535, 65535, 65535, 65535, 1,
  11 + "#000080", 0, 0, 32896, 0, 0, 32768, 1,
  12 + "#008000", 0, 32896, 0, 0, 32768, 0, 1,
  13 + "#008080", 0, 32896, 32896, 0, 32768, 32768, 1,
  14 + "#800000", 32896, 0, 0, 32768, 0, 0, 1,
  15 + "#800080", 32896, 0, 32896, 32768, 0, 32768, 1,
  16 + "#ff8000", 65535, 32896, 0, 65280, 32768, 0, 1,
  17 + "#808080", 32896, 32896, 32896, 32768, 32768, 32768, 1,
  18 + "#c0c0c0", 49344, 49344, 49344, 49152, 49152, 49152, 1,
  19 + "#0000ff", 0, 0, 65535, 0, 0, 65280, 1,
  20 + "#00ff00", 0, 65535, 0, 0, 65280, 0, 1,
  21 + "#00ffff", 0, 65535, 65535, 0, 65280, 65280, 1,
  22 + "#ff0000", 65535, 0, 0, 65280, 0, 0, 1,
  23 + "#ff00ff", 65535, 0, 65535, 65280, 0, 65280, 1,
  24 + "#ffff00", 65535, 65535, 0, 65280, 65280, 0, 1,
  25 + "#4c4c4c", 19532, 19532, 19532, 19456, 19456, 19456, 1,
  26 + "#b3b3b3", 46003, 46003, 46003, 45824, 45824, 45824, 1,
  27 + "#e6e6e6", 59110, 59110, 59110, 58880, 58880, 58880, 1,
  28 + "#dc2300", 56540, 8995, 0, 56320, 8960, 0, 1,
  29 + "#ff3333", 65535, 13107, 13107, 65280, 13056, 13056, 1,
  30 + "#b84747", 47288, 18247, 18247, 47104, 18176, 18176, 1,
  31 + "#99284c", 39321, 10280, 19532, 39168, 10240, 19456, 1,
  32 + "#94476b", 38036, 18247, 27499, 37888, 18176, 27392, 1,
  33 + "#9966cc", 39321, 26214, 52428, 39168, 26112, 52224, 1,
  34 + "#6b2394", 27499, 8995, 38036, 27392, 8960, 37888, 1,
  35 + "#5e11a6", 24158, 4369, 42662, 24064, 4352, 42496, 1,
  36 + "#4700b8", 18247, 0, 47288, 18176, 0, 47104, 1,
  37 + "#2323dc", 8995, 8995, 56540, 8960, 8960, 56320, 1,
  38 + "#0099ff", 0, 39321, 65535, 0, 39168, 65280, 1,
  39 + "#99ccff", 39321, 52428, 65535, 39168, 52224, 65280, 1,
  40 + "#00dcff", 0, 56540, 65535, 0, 56320, 65280, 1,
  41 + "#23b8dc", 8995, 47288, 56540, 8960, 47104, 56320, 1,
  42 + "#33a3a3", 13107, 41891, 41891, 13056, 41728, 41728, 1,
  43 + "#355e00", 13621, 24158, 0, 13568, 24064, 0, 1,
  44 + "#7da647", 32125, 42662, 18247, 32000, 42496, 18176, 1,
  45 + "#00ae00", 0, 44718, 0, 0, 44544, 0, 1,
  46 + "#3deb3d", 15677, 60395, 15677, 15616, 60160, 15616, 1,
  47 + "#ffff99", 65535, 65535, 39321, 65280, 65280, 39168, 1,
  48 + "#e6e64c", 59110, 59110, 19532, 58880, 58880, 19456, 1,
  49 + "#b3b300", 46003, 46003, 0, 45824, 45824, 0, 1,
  50 + "#666600", 26214, 26214, 0, 26112, 26112, 0, 1,
  51 + "#4c1900", 19532, 6425, 0, 19456, 6400, 0, 1,
  52 + "#663300", 26214, 13107, 0, 26112, 13056, 0, 1,
  53 + "#804c19", 32896, 19532, 6425, 32768, 19456, 6400, 1,
  54 + "#996633", 39321, 26214, 13107, 39168, 26112, 13056, 1,
  55 + "#cc6633", 52428, 26214, 13107, 52224, 26112, 13056, 1,
  56 + "#ff6633", 65535, 26214, 13107, 65280, 26112, 13056, 1,
  57 + "#ff9966", 65535, 39321, 26214, 65280, 39168, 26112, 1,
  58 + "#ffcc99", 65535, 52428, 39321, 65280, 52224, 39168, 1
  59 +]).
  60 +script_frac("0.6").
  61 +fg_bg_colors('#ff00ff','white').
  62 +dont_reencode("FFDingbests:ZapfDingbats").
  63 +objshadow_info('#c0c0c0',2,2).
  64 +rotate_pivot(0,0,0,0).
  65 +spline_tightness(1).
  66 +page(1,"",1,'').
  67 +text('Black',260,861,1,0,1,480,24,27,19,5,0,0,0,0,-65534,480,24,0,0,"",0,0,0,0,880,'',[
  68 +minilines(480,24,0,0,0,0,0,[
  69 +mini_line(480,19,5,0,0,0,[
  70 +str_block(0,480,19,5,0,-2,0,0,0,[
  71 +str_seg('Black','Courier',0,138240,480,19,5,0,-2,0,0,0,0,0,
  72 + "Multi-layer conductor Flex cable")])
  73 +])
  74 +])]).
  75 +text('Black',120,306,1,0,1,75,24,173,19,5,0,0,0,0,-65534,75,24,0,0,"",0,0,0,0,325,'',[
  76 +minilines(75,24,0,0,0,0,0,[
  77 +mini_line(75,19,5,0,0,0,[
  78 +str_block(0,75,19,5,0,-1,0,0,0,[
  79 +str_seg('Black','Courier',0,138240,75,19,5,0,-1,0,0,0,0,0,
  80 + "width")])
  81 +])
  82 +])]).
  83 +text('Black',70,456,1,0,1,210,24,284,19,5,0,0,0,0,-65534,210,24,0,0,"",0,0,0,0,475,'',[
  84 +minilines(210,24,0,0,0,0,0,[
  85 +mini_line(210,19,5,0,0,0,[
  86 +str_block(0,210,19,5,0,-3,0,0,0,[
  87 +str_seg('#ff00ff','Courier',0,138240,210,19,5,0,-3,0,0,0,0,0,
  88 + "Conductor No 1")])
  89 +])
  90 +])]).
  91 +text('Black',235,391,1,0,1,90,24,288,19,5,0,0,0,0,-65534,90,24,0,0,"",0,0,0,0,410,'',[
  92 +minilines(90,24,0,0,0,0,0,[
  93 +mini_line(90,19,5,0,0,0,[
  94 +str_block(0,90,19,5,0,-3,0,0,0,[
  95 +str_seg('Black','Courier',0,138240,90,19,5,0,-3,0,0,0,0,0,
  96 + "height")])
  97 +])
  98 +])]).
  99 +box('Black','',70,390,220,420,0,3,1,291,0,0,0,0,0,'3',0,[
  100 +]).
  101 +poly('Black','',2,[
  102 + 70,340,220,340],3,1,1,300,0,0,0,0,0,0,0,'1',0,0,
  103 + "0","",[
  104 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  105 +]).
  106 +poly('Black','',2,[
  107 + 230,390,230,420],3,1,1,316,0,0,0,0,0,0,0,'1',0,0,
  108 + "0","",[
  109 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  110 +]).
  111 +poly('Black','',2,[
  112 + 220,340,325,340],3,1,1,319,0,0,0,0,0,0,0,'1',0,0,
  113 + "0","",[
  114 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  115 +]).
  116 +text('Black',220,306,1,0,1,150,24,320,19,5,0,0,0,0,-65534,150,24,0,0,"",0,0,0,0,325,'',[
  117 +minilines(150,24,0,0,0,0,0,[
  118 +mini_line(150,19,5,0,0,0,[
  119 +str_block(0,150,19,5,0,-1,0,0,0,[
  120 +str_seg('Black','Courier',0,138240,150,19,5,0,-1,0,0,0,0,0,
  121 + "separation")])
  122 +])
  123 +])]).
  124 +box('#ff0000','',55,360,920,790,0,2,1,322,0,0,0,0,0,'2',0,[
  125 +]).
  126 +box('Black','',330,390,480,420,0,3,1,325,0,0,0,0,0,'3',0,[
  127 +]).
  128 +box('Black','',695,390,845,420,0,3,1,326,0,0,0,0,0,'3',0,[
  129 +]).
  130 +poly('Black','',2,[
  131 + 495,410,655,410],0,4,1,330,0,0,7,0,0,0,0,'4',0,0,
  132 + "0","",[
  133 + 0,14,6,0,'14','6','0'],[0,14,6,0,'14','6','0'],[
  134 +]).
  135 +text('Black',315,456,1,0,1,210,24,353,19,5,0,0,0,0,-65534,210,24,0,0,"",0,0,0,0,475,'',[
  136 +minilines(210,24,0,0,0,0,0,[
  137 +mini_line(210,19,5,0,0,0,[
  138 +str_block(0,210,19,5,0,-4,0,0,0,[
  139 +str_seg('#ff00ff','Courier',0,138240,210,19,5,0,-4,0,0,0,0,0,
  140 + "Conductor No 2")])
  141 +])
  142 +])]).
  143 +text('Black',730,816,1,0,1,225,24,356,19,5,0,0,0,0,-65534,225,24,0,0,"",0,0,0,0,835,'',[
  144 +minilines(225,24,0,0,0,0,0,[
  145 +mini_line(225,19,5,0,0,0,[
  146 +str_block(0,225,19,5,0,-2,0,0,0,[
  147 +str_seg('#ff00ff','Courier',0,138240,225,19,5,0,-2,0,0,0,0,0,
  148 + "Conductor No nc")])
  149 +])
  150 +])]).
  151 +box('Black','',100,740,875,755,0,3,1,369,0,0,0,0,0,'3',0,[
  152 +]).
  153 +box('Black','',130,595,280,625,0,3,1,379,0,0,0,0,0,'3',0,[
  154 +]).
  155 +box('Black','',400,595,553,625,0,3,1,382,0,0,0,0,0,'3',0,[
  156 +]).
  157 +poly('Black','',2,[
  158 + 296,610,384,610],0,4,1,383,0,0,7,0,0,0,0,'4',0,0,
  159 + "0","",[
  160 + 0,14,6,0,'14','6','0'],[0,14,6,0,'14','6','0'],[
  161 +]).
  162 +poly('Black','',2,[
  163 + 230,665,230,730],0,4,1,391,0,0,1,0,0,0,0,'4',0,0,
  164 + "0","",[
  165 + 0,14,6,0,'14','6','0'],[0,14,6,0,'14','6','0'],[
  166 +]).
  167 +poly('Black','',2,[
  168 + 750,660,750,725],0,4,1,399,0,0,1,0,0,0,0,'4',0,0,
  169 + "0","",[
  170 + 0,14,6,0,'14','6','0'],[0,14,6,0,'14','6','0'],[
  171 +]).
  172 +poly('#ff00ff','',2,[
  173 + 850,805,770,745],1,1,1,401,0,0,0,0,0,0,0,'1',0,0,
  174 + "0","",[
  175 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  176 +]).
  177 +poly('#ff00ff','',2,[
  178 + 175,450,170,405],1,1,1,403,0,0,0,0,0,0,0,'1',0,0,
  179 + "0","",[
  180 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  181 +]).
  182 +poly('#ff00ff','',2,[
  183 + 425,460,415,405],1,1,1,408,0,0,0,0,0,0,0,'1',0,0,
  184 + "0","",[
  185 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  186 +]).
  187 +text('Black',950,256,2,0,1,90,48,410,19,5,0,0,0,0,-65534,90,48,0,0,"",0,0,0,0,275,'',[
  188 +minilines(90,48,0,0,0,0,0,[
  189 +mini_line(60,19,5,0,0,0,[
  190 +str_block(0,60,19,5,0,-14,0,0,0,[
  191 +str_seg('Black','Courier',0,138240,60,19,5,0,-14,0,0,0,0,0,
  192 + "Row ")])
  193 +]),
  194 +mini_line(90,19,5,0,0,0,[
  195 +str_block(0,90,19,5,0,-2,0,0,0,[
  196 +str_seg('Black','Courier',0,138240,90,19,5,0,-2,0,0,0,0,0,
  197 + "Number")])
  198 +])
  199 +])]).
  200 +poly('Black','',2,[
  201 + 985,310,985,365],1,1,1,412,0,0,0,0,0,0,0,'1',0,0,
  202 + "0","",[
  203 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  204 +]).
  205 +text('Black',970,386,1,0,1,15,24,413,19,5,0,0,0,0,-65534,15,24,0,0,"",0,0,0,0,405,'',[
  206 +minilines(15,24,0,0,0,0,0,[
  207 +mini_line(15,19,5,0,0,0,[
  208 +str_block(0,15,19,5,0,-3,0,0,0,[
  209 +str_seg('Black','Courier',0,138240,15,19,5,0,-3,0,0,0,0,0,
  210 + "1")])
  211 +])
  212 +])]).
  213 +text('Black',975,601,1,0,1,15,24,415,19,5,0,0,0,0,-65534,15,24,0,0,"",0,0,0,0,620,'',[
  214 +minilines(15,24,0,0,0,0,0,[
  215 +mini_line(15,19,5,0,0,0,[
  216 +str_block(0,15,19,5,0,-4,0,0,0,[
  217 +str_seg('Black','Courier',0,138240,15,19,5,0,-4,0,0,0,0,0,
  218 + "2")])
  219 +])
  220 +])]).
  221 +text('Black',940,741,1,0,1,90,24,417,19,5,0,0,0,0,-65534,90,24,0,0,"",0,0,0,0,760,'',[
  222 +minilines(90,24,0,0,0,0,0,[
  223 +mini_line(90,19,5,0,0,0,[
  224 +str_block(0,90,19,5,0,-3,0,0,0,[
  225 +str_seg('Black','Courier',0,138240,90,19,5,0,-3,0,0,0,0,0,
  226 + "n_rows")])
  227 +])
  228 +])]).
  229 +poly('Black','',2,[
  230 + 980,650,980,715],0,4,1,420,0,0,1,0,0,0,0,'4',0,0,
  231 + "0","",[
  232 + 0,14,6,0,'14','6','0'],[0,14,6,0,'14','6','0'],[
  233 +]).
  234 +poly('Black','',2,[
  235 + 475,555,475,185],1,1,1,421,0,0,0,0,0,0,0,'1',0,0,
  236 + "0","",[
  237 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  238 +]).
  239 +poly('Black','',2,[
  240 + 475,555,960,555],1,1,1,422,0,0,0,0,0,0,0,'1',0,0,
  241 + "0","",[
  242 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  243 +]).
  244 +text('Black',490,171,1,0,1,15,24,423,19,5,0,0,0,0,-65534,15,24,0,0,"",0,0,0,0,190,'',[
  245 +minilines(15,24,0,0,0,0,0,[
  246 +mini_line(15,19,5,0,0,0,[
  247 +str_block(0,15,19,5,0,-2,0,0,0,[
  248 +str_seg('Black','Courier',0,138240,15,19,5,0,-2,0,0,0,0,0,
  249 + "y")])
  250 +])
  251 +])]).
  252 +text('Black',940,521,1,0,1,15,24,425,19,5,0,0,0,0,-65534,15,24,0,0,"",0,0,0,0,540,'',[
  253 +minilines(15,24,0,0,0,0,0,[
  254 +mini_line(15,19,5,0,0,0,[
  255 +str_block(0,15,19,5,0,-1,0,0,0,[
  256 +str_seg('Black','Courier',0,138240,15,19,5,0,-1,0,0,0,0,0,
  257 + "x")])
  258 +])
  259 +])]).
  260 +poly('Black','',2,[
  261 + 55,280,915,280],3,1,1,431,0,0,0,0,0,0,0,'1',0,0,
  262 + "0","",[
  263 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  264 +]).
  265 +text('Black',320,246,1,0,1,240,24,432,19,5,0,0,0,0,-65534,240,24,0,0,"",0,0,0,0,265,'',[
  266 +minilines(240,24,0,0,0,0,0,[
  267 +mini_line(240,19,5,0,0,0,[
  268 +str_block(0,240,19,5,0,-1,0,0,0,[
  269 +str_seg('Black','Courier',0,138240,240,19,5,0,-1,0,0,0,0,0,
  270 + "dielectric width")])
  271 +])
  272 +])]).
  273 +poly('Black','',2,[
  274 + 30,360,30,785],3,1,1,436,0,0,0,0,0,0,0,'1',0,0,
  275 + "0","",[
  276 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  277 +]).
  278 +text('Black',-192,584,1,0,1,24,255,437,19,5,0,0,0,0,-65534,255,24,0,0,"",0,1,0,0,603,'',[
  279 + -192,584,-192,584,63,608,1.74623e-13,-1000,1000,1.74623e-13,193,107,-193,583,64,609],[
  280 +minilines(255,24,0,0,0,0,0,[
  281 +mini_line(255,19,5,0,0,0,[
  282 +str_block(0,255,19,5,0,-3,0,0,0,[
  283 +str_seg('Black','Courier',0,138240,255,19,5,0,-3,0,0,0,0,0,
  284 + "dielectric height")])
  285 +])
  286 +])]).
  287 +poly('#0000ff','',2,[
  288 + 475,555,430,405],1,1,1,455,0,0,0,0,0,0,0,'1',0,0,
  289 + "0","",[
  290 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  291 +]).
  292 +text('Black',280,501,1,0,1,180,24,458,19,5,2,0,0,0,-65534,180,24,0,0,"",0,0,0,0,520,'',[
  293 +minilines(180,24,0,0,0,0,0,[
  294 +mini_line(180,19,5,0,0,0,[
  295 +str_block(0,180,19,5,0,-3,0,0,0,[
  296 +str_seg('#0000ff','Courier',0,138240,180,19,5,0,-3,0,0,0,0,0,
  297 + "row 1 offset")])
  298 +])
  299 +])]).
  300 +poly('#0000ff','',2,[
  301 + 475,555,340,610],1,1,1,462,0,0,0,0,0,0,0,'1',0,0,
  302 + "0","",[
  303 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  304 +]).
  305 +text('Black',205,561,1,0,1,180,24,464,19,5,0,0,0,0,-65534,180,24,0,0,"",0,0,0,0,580,'',[
  306 +minilines(180,24,0,0,0,0,0,[
  307 +mini_line(180,19,5,0,0,0,[
  308 +str_block(0,180,19,5,0,-3,0,0,0,[
  309 +str_seg('#0000ff','Courier',0,138240,180,19,5,0,-3,0,0,0,0,0,
  310 + "row 2 offset")])
  311 +])
  312 +])]).
  313 +poly('#0000ff','',2,[
  314 + 475,555,475,745],1,1,1,466,0,0,0,0,0,0,0,'1',0,0,
  315 + "0","",[
  316 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  317 +]).
  318 +text('Black',490,676,1,0,1,180,24,467,19,5,0,0,0,0,-65534,180,24,0,0,"",0,0,0,0,695,'',[
  319 +minilines(180,24,0,0,0,0,0,[
  320 +mini_line(180,19,5,0,0,0,[
  321 +str_block(0,180,19,5,0,-3,0,0,0,[
  322 +str_seg('#0000ff','Courier',0,138240,180,19,5,0,-3,0,0,0,0,0,
  323 + "row n offset")])
  324 +])
  325 +])]).
  326 +text('Black',665,436,2,0,1,225,48,470,19,5,0,0,0,0,-65534,225,48,0,0,"",0,0,0,0,455,'',[
  327 +minilines(225,48,0,0,0,0,0,[
  328 +mini_line(225,19,5,0,0,0,[
  329 +str_block(0,225,19,5,0,-6,0,0,0,[
  330 +str_seg('#ff00ff','Courier',0,138240,225,19,5,0,-6,0,0,0,0,0,
  331 + "Conductor No n,")])
  332 +]),
  333 +mini_line(75,19,5,0,0,0,[
  334 +str_block(0,75,19,5,0,-3,0,0,0,[
  335 +str_seg('#ff00ff','Courier',0,138240,75,19,5,0,-3,0,0,0,0,0,
  336 + "row 1")])
  337 +])
  338 +])]).
  339 +poly('#ff00ff','',2,[
  340 + 765,435,770,405],1,1,1,559,0,2,0,0,0,0,0,'1',0,0,
  341 + "0","",[
  342 + 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
  343 +]).
DOCUMENTATION/USER_GUIDE/Tex/creating_a_cable_bundle_model.tex
@@ -71,6 +71,10 @@ In addition to the data required to specify a cable bundle, additional flags may @@ -71,6 +71,10 @@ In addition to the data required to specify a cable bundle, additional flags may
71 \item `verbose' output detailed summary of the software operation and calculation results.\\ 71 \item `verbose' output detailed summary of the software operation and calculation results.\\
72 \item `use\_Laplace' use the numerical Laplace solver to calculate inductance and capacitance matrices for the external domain and any overshielded domains. By default, approximate analytic formulae are used. \\ 72 \item `use\_Laplace' use the numerical Laplace solver to calculate inductance and capacitance matrices for the external domain and any overshielded domains. By default, approximate analytic formulae are used. \\
73 \item `plot\_mesh' output a vtk file which shows the mesh used in Finite Element Laplace calculations.\\ 73 \item `plot\_mesh' output a vtk file which shows the mesh used in Finite Element Laplace calculations.\\
  74 +\item `direct\_solver' Solve the Finite Element matrix equation using a direct solver i.e. by calculating the matrix inverse. \\
  75 +\item `iterative\_solver' Solve the Finite Element matrix equation using an iterative solver. This is much more efficient than the direct solver and is the default option \\
  76 +\item `inf\_gnd' Include the ground plane as a boundary condition on the y=0 boundary in the Finite Element Laplace solution for the bundle cross section. the outer boundary in this case is a semi-circle. \\
  77 +\item `finite\_gnd' Include the ground plane as a finite conductor in the Finite Element Laplace solution for the bundle cross section. In this case the ground plane is a finite rectangular conductor within a circular boundary. \\
74 \end{enumerate} 78 \end{enumerate}
75 79
76 If the Laplace solver is used then the mesh generation is be controlled by the parameters 80 If the Laplace solver is used then the mesh generation is be controlled by the parameters
@@ -86,10 +90,12 @@ If the Laplace solver is used then the mesh generation is be controlled by the p @@ -86,10 +90,12 @@ If the Laplace solver is used then the mesh generation is be controlled by the p
86 The edge length of elements on a cylindrical conductor of radius r is 90 The edge length of elements on a cylindrical conductor of radius r is
87 $\frac{r}{Laplace\_surface\_mesh\_constant}$. The default value is 3. \\ 91 $\frac{r}{Laplace\_surface\_mesh\_constant}$. The default value is 3. \\
88 92
  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 +
89 \end{enumerate} 95 \end{enumerate}
90 96
91 The default parameters are a compromise between accuracy and computation time for the Laplace solution. 97 The default parameters are a compromise between accuracy and computation time for the Laplace solution.
92 -The default values may be overridden by the user by appending the following to the end of the \textbf{.bundle\_spec file}: 98 +The default values may be overridden by the user by appending the following to the end of the \textbf{.bundle\_spec} file:
93 99
94 \begin{verbatim} 100 \begin{verbatim}
95 Laplace_boundary_constant 101 Laplace_boundary_constant
@@ -98,6 +104,14 @@ Laplace_surface_mesh_constant @@ -98,6 +104,14 @@ Laplace_surface_mesh_constant
98 5 104 5
99 \end{verbatim} 105 \end{verbatim}
100 106
  107 +If the iterative solver is used to solve the Finite Element matrix equations then the tolerance for the iterative solution may be set using the parameter $cg\_tol$. The default value is $10^{-12}$. The parameter may be set (in this example to 1E-14) by including the following lines int the \textbf{.bundle\_spec} file:
  108 +
  109 +\begin{verbatim}
  110 +cg_tol
  111 +1E-14
  112 +\end{verbatim}
  113 +
  114 +
101 A ground plane may be included in the bundle as shown in figure \ref{fig_ground_plane_specification} 115 A ground plane may be included in the bundle as shown in figure \ref{fig_ground_plane_specification}
102 116
103 \begin{figure}[h] 117 \begin{figure}[h]
DOCUMENTATION/USER_GUIDE/Tex/creating_a_cable_model.tex
@@ -214,6 +214,8 @@ The flags which may be applied in a \textbf{cable\_spec} file are as follows: @@ -214,6 +214,8 @@ The flags which may be applied in a \textbf{cable\_spec} file are as follows:
214 \item `use\_Laplace' use the numerical Laplace solver to calculate inductance and capacitance matrices for the internal domains. By default, approximate analytic formulae are used. \\ 214 \item `use\_Laplace' use the numerical Laplace solver to calculate inductance and capacitance matrices for the internal domains. By default, approximate analytic formulae are used. \\
215 \item `no\_Laplace' use the (approximate) analytic formulae to calculate inductance and capacitance matrices for the internal domains. \\ 215 \item `no\_Laplace' use the (approximate) analytic formulae to calculate inductance and capacitance matrices for the internal domains. \\
216 \item `plot\_mesh' output a vtk file which shows the mesh used in Finite Element Laplace calculations.\\ 216 \item `plot\_mesh' output a vtk file which shows the mesh used in Finite Element Laplace calculations.\\
  217 +\item `direct\_solver' Solve the Finite Element matrix equation using a direct solver i.e. by calculating the matrix inverse. \\
  218 +\item `iterative\_solver' Solve the Finite Element matrix equation using an iterative solver. This is much more efficient than the direct solver and is the default option \\
217 \end{enumerate} 219 \end{enumerate}
218 220
219 If the Laplace solver is used then the mesh generation is controlled by the parameter 221 If the Laplace solver is used then the mesh generation is controlled by the parameter
@@ -229,6 +231,13 @@ Laplace_surface_mesh_constant @@ -229,6 +231,13 @@ Laplace_surface_mesh_constant
229 5 231 5
230 \end{verbatim} 232 \end{verbatim}
231 233
  234 +If the iterative solver is used to solve the Finite Element matrix equations then the tolerance for the iterative solution may be set using the parameter $cg\_tol$. The default value is $10^{-12}$. The parameter may be set (in this example to 1E-14) by including the following lines int the \textbf{.cable\_spec} file:
  235 +
  236 +\begin{verbatim}
  237 +cg_tol
  238 +1E-14
  239 +\end{verbatim}
  240 +
232 \subsection{Cable models available} \label{available_cable_models} 241 \subsection{Cable models available} \label{available_cable_models}
233 242
234 The available cable models are described below. For each cable type a figure is provided which shows the cable cross section and the conductor numbering used for the cable. The parameters required to specify a cable are outlined and an example \textbf{.cable\_spec} file is provided. 243 The available cable models are described below. For each cable type a figure is provided which shows the cable cross section and the conductor numbering used for the cable. The parameters required to specify a cable are outlined and an example \textbf{.cable\_spec} file is provided.
@@ -809,29 +818,41 @@ Overshield @@ -809,29 +818,41 @@ Overshield
809 818
810 \subsubsection{Flex cable} \label{flex_cable} 819 \subsubsection{Flex cable} \label{flex_cable}
811 820
812 -Figure \ref{fig:flex_cable} shows the cross section of the flex cable model.  
813 -A description of the model parameters is described in table \ref{table_flex_cable} followed by an example. The flex cable differs from most other cable models in that the number of conductors is a parameter of the model. The conductors are numbered from left to right. 821 +Version 4.0.0 of the SACAMOS software introduces a new flex cable model in which more than one row of conductors can be included within the rectangular dielelctric region. This allows flex cables with multiple layers as well as cables with different conductor dimensions and spacings to be simulated.
  822 +Figure \ref{fig:flex_cable} shows the cross section of the new flex cable model.
  823 +A description of the model parameters is described in table \ref{table_flex_cable} followed by an example. The flex cable differs from most other cable models in that the number of conductors is a parameter of the model. The conductors are numbered from left to right in each row.
814 824
815 \begin{figure}[h] 825 \begin{figure}[h]
816 \centering 826 \centering
817 -\includegraphics[scale=0.5]{./Imgs/flex_cable.eps} 827 +\includegraphics[scale=0.65]{./Imgs/ML_flex_cable.eps}
818 \caption{flex cable} 828 \caption{flex cable}
819 \label{fig:flex_cable} 829 \label{fig:flex_cable}
820 \end{figure} 830 \end{figure}
821 831
  832 +
822 \begin{table}[h] 833 \begin{table}[h]
823 \begin{center} 834 \begin{center}
824 \begin{tabular}{ | p{3cm} | p{3cm} | p{6cm} |} 835 \begin{tabular}{ | p{3cm} | p{3cm} | p{6cm} |}
825 \hline 836 \hline
826 example value & unit & Comment \\ \hline 837 example value & unit & Comment \\ \hline
827 8 & integer & Number of conductors - can be any number of conductors in a flex cable model \\ \hline 838 8 & integer & Number of conductors - can be any number of conductors in a flex cable model \\ \hline
828 -6 & integer & Number of parameters, always 6 for flex cables \\ \hline  
829 -1.0e-3 & metre & parameter 1: conductor width (x) \\ \hline  
830 -0.2e-3 & metre & parameter 2: conductor height (y) \\ \hline  
831 -0.6e-3 & metre & parameter 3: conductor separation (x)\\ \hline  
832 -1.0e-3 & metre & parameter 4: dielectric offset in x \\ \hline  
833 -0.2e-3 & metre & parameter 5: dielectric offset in y \\ \hline  
834 -5E7 & Siemens/metre & parameter 6: conductivity \\ \hline 839 +6 & integer & Number of parameters = (number of rows of conductors)*6+4 \\ \hline
  840 +6.0e-3 & metre & parameter 1: dielectric width (x) \\ \hline
  841 +1.2e-3 & metre & parameter 2: dielectric height (y) \\ \hline
  842 +2 & integer & parameter 3: number of rows of conductors\\ \hline
  843 +1.0e-3 & metre & parameter 4: row 1 centre offset x \\ \hline
  844 +0.4e-3 & metre & parameter 5: row 1 centre offset y \\ \hline
  845 +0.6e-3 & metre & parameter 6: row 1 conductor width (x dimension) \\ \hline
  846 +1.0e-4 & metre & parameter 7: row 1 conductor height (y dimension) \\ \hline
  847 +0.2e-3 & metre & parameter 8: row 1 conductor separation \\ \hline
  848 +3 & metre & parameter 9: row 1 number of conductors \\ \hline
  849 +1.0e-3 & metre & parameter 10: row 2 centre offset x \\ \hline
  850 +-0.4e-3 & metre & parameter 11: row 2 centre offset y \\ \hline
  851 +0.6e-3 & metre & parameter 12: row 2 conductor width (x dimension) \\ \hline
  852 +1.0e-4 & metre & parameter 13: row 2 conductor height (y dimension) \\ \hline
  853 +0.2e-3 & metre & parameter 14: row 2 conductor separation \\ \hline
  854 +3 & metre & parameter 15: row 2 number of conductors \\ \hline
  855 +5E7 & Siemens/metre & parameter 16: conductivity \\ \hline
835 1 & integer & number of frequency dependent parameters \\ \hline 856 1 & integer & number of frequency dependent parameters \\ \hline
836 $\epsilon\left(j\omega \right)$ & rational function coefficients & Frequency dependent dielectric relative permittivity model\\ \hline 857 $\epsilon\left(j\omega \right)$ & rational function coefficients & Frequency dependent dielectric relative permittivity model\\ \hline
837 \end{tabular} 858 \end{tabular}
@@ -848,24 +869,30 @@ $\epsilon\left(j\omega \right)$ & rational function coefficients & Frequency dep @@ -848,24 +869,30 @@ $\epsilon\left(j\omega \right)$ & rational function coefficients & Frequency dep
848 \begin{verbatim} 869 \begin{verbatim}
849 #MOD_cable_lib_dir 870 #MOD_cable_lib_dir
850 . 871 .
851 -Flex_cable 872 +flex_cable
852 3 # number of conductors 873 3 # number of conductors
853 -6 # number of parameters  
854 -1.0e-3 # parameter 1: conductor width (x dimension)  
855 -0.25e-3 # parameter 2: conductor height (y dimension)  
856 -0.5e-3 # parameter 3: conductor separation (x dimension)  
857 -0.2e-3 # parameter 4: dielectric offset x  
858 -0.1e-3 # parameter 5: dielectric offset y  
859 -5E7 # parameter 6: conductivity 874 +10 # number of parameters
  875 +5.0e-3 # parameter 1: dielectric width (x dimension)
  876 +1.25e-3 # parameter 2: dielectric height (y dimension)
  877 +1 # parameter 3: number of rows of conductors
  878 +0.0e-3 # parameter 4: row 1 centre offset x
  879 +0.0e-3 # parameter 5: row 1 centre offset y
  880 +1.0e-3 # parameter 6: row 1 conductor width (x dimension)
  881 +0.25e-3 # parameter 7: row 1 conductor height (y dimension)
  882 +0.5e-3 # parameter 8: row 1 conductor separation
  883 +3 # parameter 9: row 1 number of conductors
  884 +0.0 # parameter 10: conductivity
860 1 # number of frequency dependent parameters 885 1 # number of frequency dependent parameters
861 # dielectric relative permittivity model follows 886 # dielectric relative permittivity model follows
862 - 1E9 # w normalisation constant  
863 - 1 # a order, a coefficients follow below:  
864 - 2.2 2.0  
865 - 1 # b order, b coefficients follow below:  
866 - 1.0 1.0 887 + 1E9 # w normalisation constant
  888 + 0 # a order, a coefficients follow below:
  889 + 2.2
  890 + 0 # b order, b coefficients follow below:
  891 + 1.0
867 \end{verbatim} 892 \end{verbatim}
868 893
  894 +When creating cable bundle models including flex cables the mesh control parameter $Max\_mesh\_edge\_length$ may be used to give an additional degree of control over the Finite Element mash. The number of mesh elements in the y direction on conductors (height) is set by the $Laplace\_surface\_mesh\_constant$ parameter (although the minimum number is two).
  895 +
869 \clearpage 896 \clearpage
870 897
871 \subsubsection{D connector} \label{Dconnector} 898 \subsubsection{D connector} \label{Dconnector}
DOCUMENTATION/USER_GUIDE/Tex/introduction.tex
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 2
3 \section{Software overview} 3 \section{Software overview}
4 4
5 -The purpose of the SACAMOS software is to enable the creation of Spice cable models from the description/ characterisation of cables and bundles of cables together with information required to specify a particular modelling scenario (for example the specification of incident field excitation or transfer impedance coupling model). 5 +The purpose of the SACAMOS software is to enable the creation of Spice cable models from the description/ characterisation of cables and bundles of cables together with information required to specify a particular modelling scenario (for example the specification of incident field excitation or transfer impedance coupling model). This User Guide relates to version 4.0.0 of the SACAMOS software.
6 6
7 A cable bundle may consist of multiple individual cables usually with the addition of a ground plane. This is illustrated in figure\ref{fig_cable_bundle} The cables may consist of shielded and/ or unshielded conductors. 7 A cable bundle may consist of multiple individual cables usually with the addition of a ground plane. This is illustrated in figure\ref{fig_cable_bundle} The cables may consist of shielded and/ or unshielded conductors.
8 8
DOCUMENTATION/USER_GUIDE/Tex/preamble.tex
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 \newcommand{\DocumentTitle}{User Guide} 3 \newcommand{\DocumentTitle}{User Guide}
4 \newcommand{\DocumentSubTitle}{SACAMOS: State of the Art CAble MOdels for Spice} 4 \newcommand{\DocumentSubTitle}{SACAMOS: State of the Art CAble MOdels for Spice}
5 \newcommand{\DocumentSubSubTitle}{Open Souce Cable Models for EMI Simulations} 5 \newcommand{\DocumentSubSubTitle}{Open Souce Cable Models for EMI Simulations}
6 -\newcommand{\DocumentVersion}{1.1} 6 +\newcommand{\DocumentVersion}{1.2}
7 \newcommand{\DocumentAuthors}{Christopher Smartt\footnote{\UONname, contact: Chris.Smartt@nottingham.ac.uk}, David Thomas$^1$, Steve Greedy$^1$, \\ Jaco Verpoorte\footnote{\NLRname, contact: Jaco.Verpoorte@nlr.nl}, Jesper Lansink Rotgerink$^2$ and Harmen Schippers$^2$} 7 \newcommand{\DocumentAuthors}{Christopher Smartt\footnote{\UONname, contact: Chris.Smartt@nottingham.ac.uk}, David Thomas$^1$, Steve Greedy$^1$, \\ Jaco Verpoorte\footnote{\NLRname, contact: Jaco.Verpoorte@nlr.nl}, Jesper Lansink Rotgerink$^2$ and Harmen Schippers$^2$}
8 \newcommand{\License}{This document is subject to the GNU Free Documentation License (version 2.0).} 8 \newcommand{\License}{This document is subject to the GNU Free Documentation License (version 2.0).}
9 \newcommand{\Reference}{ESA 40000112765/14/NL/HK.} 9 \newcommand{\Reference}{ESA 40000112765/14/NL/HK.}
SRC/GENERAL_MODULES/constants.F90
@@ -106,6 +106,8 @@ IMPLICIT NONE @@ -106,6 +106,8 @@ IMPLICIT NONE
106 ! if Laplace_surface_mesh_constant=5 we have just over 30 elements on the circumference 106 ! if Laplace_surface_mesh_constant=5 we have just over 30 elements on the circumference
107 107
108 real(dp) :: max_mesh_edge_length=1d30 ! the maximum mesh edge length on internal boundaries 108 real(dp) :: max_mesh_edge_length=1d30 ! the maximum mesh edge length on internal boundaries
  109 +
  110 + real(dp) :: cg_tol=1d-12 ! tolerance for conjugate gradient solution of Finite element Laplace matrix equation
109 111
110 real(dp) :: Twisted_pair_equivalent_radius=1.5d0 ! The twisted pair commmon mode interaction is calculated by treating the 112 real(dp) :: Twisted_pair_equivalent_radius=1.5d0 ! The twisted pair commmon mode interaction is calculated by treating the
111 ! common mode as being carried on an 'equivalent cylindrical conductor' 113 ! common mode as being carried on an 'equivalent cylindrical conductor'
SRC/PUL_PARAMETER_CALCULATION/CG_solve.F90
@@ -25,9 +25,9 @@ @@ -25,9 +25,9 @@
25 ! 25 !
26 ! The University of Nottingham can be contacted at: ggiemr@nottingham.ac.uk 26 ! The University of Nottingham can be contacted at: ggiemr@nottingham.ac.uk
27 ! 27 !
28 -! SUBROUTINE solve_real_symm(n, b, x,tol) 28 +! SUBROUTINE solve_real_symm(n, b, x,tol,itmax)
29 ! SUBROUTINE dot ( n, x, y ,res) 29 ! SUBROUTINE dot ( n, x, y ,res)
30 -! SUBROUTINE solve_complex_symm(n, b, x,tol) 30 +! SUBROUTINE solve_complex_symm(n, b, x,tolitmax)
31 ! SUBROUTINE zdot ( n, x, y ,res) 31 ! SUBROUTINE zdot ( n, x, y ,res)
32 ! 32 !
33 ! NAME 33 ! NAME
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
44 ! 44 !
45 ! COMMENTS 45 ! COMMENTS
46 ! 46 !
47 -SUBROUTINE solve_real_symm(n, b, x,tol) 47 +SUBROUTINE solve_real_symm(n, b, x,tol,itmax)
48 48
49 USE type_specifications 49 USE type_specifications
50 50
@@ -57,6 +57,7 @@ integer,intent(IN) :: n @@ -57,6 +57,7 @@ integer,intent(IN) :: n
57 real(dp),intent(IN) :: b(n) 57 real(dp),intent(IN) :: b(n)
58 real(dp),intent(INOUT) :: x(n) ! x contains the initial guess for x 58 real(dp),intent(INOUT) :: x(n) ! x contains the initial guess for x
59 real(dp),intent(IN) :: tol 59 real(dp),intent(IN) :: tol
  60 +integer,intent(IN) :: itmax
60 61
61 ! local variables 62 ! local variables
62 63
@@ -115,7 +116,7 @@ minres=.TRUE. @@ -115,7 +116,7 @@ minres=.TRUE.
115 pkb=rkb 116 pkb=rkb
116 117
117 ! iteration loop 118 ! iteration loop
118 - do itloop=1,2*n 119 + do itloop=1,itmax
119 120
120 ! calculate ak=(rkb.rk)/(pkb.A.pk) 121 ! calculate ak=(rkb.rk)/(pkb.A.pk)
121 122
@@ -167,7 +168,11 @@ minres=.TRUE. @@ -167,7 +168,11 @@ minres=.TRUE.
167 168
168 end do ! next iteration 169 end do ! next iteration
169 170
170 -! finish 171 +! We only get here if the iterative solution has not converged after itmax iterations
  172 +
  173 + run_status='ERROR in solve_real_symm: maximum number of iterations exceeded'
  174 + CALL write_program_status()
  175 + STOP 1
171 176
172 RETURN 177 RETURN
173 178
@@ -219,7 +224,7 @@ END SUBROUTINE dot @@ -219,7 +224,7 @@ END SUBROUTINE dot
219 ! 224 !
220 ! COMMENTS 225 ! COMMENTS
221 ! 226 !
222 - SUBROUTINE solve_complex_symm(n, b, x,tol) 227 + SUBROUTINE solve_complex_symm(n, b, x,tol,itmax)
223 228
224 USE type_specifications 229 USE type_specifications
225 230
@@ -232,6 +237,7 @@ integer,intent(IN) :: n @@ -232,6 +237,7 @@ integer,intent(IN) :: n
232 complex(dp),intent(IN) :: b(n) 237 complex(dp),intent(IN) :: b(n)
233 complex(dp),intent(INOUT) :: x(n) ! x contains the initial guess for x 238 complex(dp),intent(INOUT) :: x(n) ! x contains the initial guess for x
234 real(dp),intent(IN) :: tol 239 real(dp),intent(IN) :: tol
  240 +integer,intent(IN) :: itmax
235 241
236 ! local variables 242 ! local variables
237 243
@@ -291,7 +297,7 @@ minres=.TRUE. @@ -291,7 +297,7 @@ minres=.TRUE.
291 pkb=rkb 297 pkb=rkb
292 298
293 ! iteration loop 299 ! iteration loop
294 - do itloop=1,2*n 300 + do itloop=1,itmax
295 301
296 ! calculate ak=(rkb.rk)/(pkb.A.pk) 302 ! calculate ak=(rkb.rk)/(pkb.A.pk)
297 303
@@ -343,7 +349,11 @@ minres=.TRUE. @@ -343,7 +349,11 @@ minres=.TRUE.
343 349
344 end do ! next iteration 350 end do ! next iteration
345 351
346 -! finish 352 +! We only get here if the iterative solution has not converged after itmax iterations
  353 +
  354 + run_status='ERROR in solve_complex_symm: maximum number of iterations exceeded'
  355 + CALL write_program_status()
  356 + STOP 1
347 357
348 RETURN 358 RETURN
349 359
SRC/PUL_PARAMETER_CALCULATION/Laplace.F90
@@ -284,23 +284,10 @@ integer :: ierr ! error code for matrix inversion @@ -284,23 +284,10 @@ integer :: ierr ! error code for matrix inversion
284 284
285 ! variables for iterative solver 285 ! variables for iterative solver
286 286
287 -logical checkA  
288 integer itnlim 287 integer itnlim
289 real(dp) rtol 288 real(dp) rtol
290 -integer nout  
291 -logical goodb  
292 -logical precon  
293 -real(dp) shift  
294 -  
295 -integer istop, itn  
296 -real(dp) anorm, acond, rnorm, ynorm  
297 289
298 -real(dp),allocatable :: r1(:)  
299 -real(dp),allocatable :: r2(:)  
300 -real(dp),allocatable :: vt(:)  
301 -real(dp),allocatable :: wt(:)  
302 -real(dp),allocatable :: yt(:)  
303 -real(dp),allocatable :: bt(:) 290 +real(dp),allocatable :: bt(:) ! real vectors for conjugate gradient solution for lossless problems
304 real(dp),allocatable :: xt(:) 291 real(dp),allocatable :: xt(:)
305 292
306 logical :: lossy_dielectric ! flag to indicate lossy dielectric i.e. we must solve a complex problem 293 logical :: lossy_dielectric ! flag to indicate lossy dielectric i.e. we must solve a complex problem
@@ -1095,19 +1082,9 @@ if (direct_solver) then @@ -1095,19 +1082,9 @@ if (direct_solver) then
1095 1082
1096 else if(.NOT.lossy_dielectric) then 1083 else if(.NOT.lossy_dielectric) then
1097 1084
1098 - checkA = .true.  
1099 - itnlim = N_unknown * 2  
1100 - rtol = 1.0D-12  
1101 - nout=6  
1102 - goodb=.FALSE.  
1103 - precon = .FALSE.  
1104 - shift=0d0 1085 + itnlim = N_unknown * 2 ! maximum number of iterations set to twice the number of unknowns
  1086 + rtol = cg_tol
1105 1087
1106 - allocate(r1(1:N_unknown))  
1107 - allocate(r2(1:N_unknown))  
1108 - allocate(vt(1:N_unknown))  
1109 - allocate(wt(1:N_unknown))  
1110 - allocate(yt(1:N_unknown))  
1111 allocate(xt(1:N_unknown)) 1088 allocate(xt(1:N_unknown))
1112 allocate(bt(1:N_unknown)) 1089 allocate(bt(1:N_unknown))
1113 1090
@@ -1122,32 +1099,21 @@ else if(.NOT.lossy_dielectric) then @@ -1122,32 +1099,21 @@ else if(.NOT.lossy_dielectric) then
1122 b_tmp(1:N_unknown)=-matmul(K_rhs,v_tmp) 1099 b_tmp(1:N_unknown)=-matmul(K_rhs,v_tmp)
1123 bt(1:N_unknown)=b_tmp(1:N_unknown) 1100 bt(1:N_unknown)=b_tmp(1:N_unknown)
1124 1101
1125 -! UoN conjugate gradient solution  
1126 - CALL solve_real_symm(N_unknown, bt, xt, rtol) 1102 +! conjugate gradient solution
  1103 + CALL solve_real_symm(N_unknown, bt, xt, rtol, itnlim)
1127 1104
1128 x(j1,j2,1:N_unknown)=xt(1:N_unknown) 1105 x(j1,j2,1:N_unknown)=xt(1:N_unknown)
1129 1106
1130 end do 1107 end do
1131 end do 1108 end do
1132 1109
1133 - deallocate(r1)  
1134 - deallocate(r2)  
1135 - deallocate(vt)  
1136 - deallocate(wt)  
1137 - deallocate(yt)  
1138 deallocate(xt) 1110 deallocate(xt)
1139 deallocate(bt) 1111 deallocate(bt)
1140 1112
1141 else if (lossy_dielectric) then 1113 else if (lossy_dielectric) then
1142 1114
1143 - itnlim=4*N_unknown  
1144 - nout=6  
1145 - wantse=.FALSE.  
1146 - atol=1D-8  
1147 - btol=1d-8  
1148 - conlim=1d10  
1149 - damp=0d0  
1150 - allocate(se(1:N_unknown)) 1115 + itnlim = N_unknown * 2 ! maximum number of iterations set to twice the number of unknowns
  1116 + rtol = cg_tol
1151 1117
1152 ! Iterative solution 1118 ! Iterative solution
1153 do j1=1,jmax-1 1119 do j1=1,jmax-1
@@ -1155,20 +1121,15 @@ else if (lossy_dielectric) then @@ -1155,20 +1121,15 @@ else if (lossy_dielectric) then
1155 1121
1156 v_tmp(1:n_known)=V(j1,j2,1:n_known) 1122 v_tmp(1:n_known)=V(j1,j2,1:n_known)
1157 b_tmp(1:N_unknown)=-matmul(K_rhs,v_tmp) 1123 b_tmp(1:N_unknown)=-matmul(K_rhs,v_tmp)
1158 - n=N_unknown  
1159 - m=N_unknown  
1160 -  
1161 -! UoN conjugate gradient solution  
1162 - rtol = 1.0D-12  
1163 - CALL solve_complex_symm(N_unknown, b_tmp, x_tmp, rtol) 1124 +
  1125 +! conjugate gradient solution
  1126 + CALL solve_complex_symm(N_unknown, b_tmp, x_tmp, rtol,itnlim )
1164 1127
1165 x(j1,j2,1:N_unknown)=x_tmp(1:N_unknown) 1128 x(j1,j2,1:N_unknown)=x_tmp(1:N_unknown)
1166 1129
1167 end do 1130 end do
1168 end do 1131 end do
1169 -  
1170 - deallocate(se)  
1171 - 1132 +
1172 end if 1133 end if
1173 1134
1174 ! STAGE 12 Determine the voltage phi in each node of the mesh 1135 ! STAGE 12 Determine the voltage phi in each node of the mesh
SRC/cable_bundle_model_builder.F90
@@ -347,19 +347,23 @@ integer :: dim @@ -347,19 +347,23 @@ integer :: dim
347 347
348 ! redefine mesh generation parameters if required 348 ! redefine mesh generation parameters if required
349 if (INDEX(line,'laplace_boundary_constant').NE.0) then 349 if (INDEX(line,'laplace_boundary_constant').NE.0) then
350 - read(bundle_spec_file_unit,*,END=100,ERR=100)Laplace_boundary_constant 350 + read(bundle_spec_file_unit,*,END=9000,ERR=9000)Laplace_boundary_constant
351 end if 351 end if
352 352
353 if (INDEX(line,'laplace_surface_mesh_constant').NE.0) then 353 if (INDEX(line,'laplace_surface_mesh_constant').NE.0) then
354 - read(bundle_spec_file_unit,*,END=100,ERR=100)Laplace_surface_mesh_constant 354 + read(bundle_spec_file_unit,*,END=9000,ERR=9000)Laplace_surface_mesh_constant
355 end if 355 end if
356 356
357 if (INDEX(line,'twisted_pair_equivalent_radius').NE.0) then 357 if (INDEX(line,'twisted_pair_equivalent_radius').NE.0) then
358 - read(bundle_spec_file_unit,*,END=100,ERR=100)Twisted_pair_equivalent_radius 358 + read(bundle_spec_file_unit,*,END=9000,ERR=9000)Twisted_pair_equivalent_radius
359 end if 359 end if
360 360
361 if (INDEX(line,'max_mesh_edge_length').NE.0) then 361 if (INDEX(line,'max_mesh_edge_length').NE.0) then
362 - read(bundle_spec_file_unit,*,END=100,ERR=100)max_mesh_edge_length 362 + read(bundle_spec_file_unit,*,END=9000,ERR=9000)max_mesh_edge_length
  363 + end if
  364 +
  365 + if (INDEX(line,'cg_tol').NE.0) then
  366 + read(bundle_spec_file_unit,*,END=9000,ERR=9000)cg_tol
363 end if 367 end if
364 368
365 end do ! continue until all flags are read - indicated by an end of file. 369 end do ! continue until all flags are read - indicated by an end of file.
@@ -485,7 +489,12 @@ integer :: dim @@ -485,7 +489,12 @@ integer :: dim
485 489
486 run_status='Finished_Correctly' 490 run_status='Finished_Correctly'
487 CALL write_program_status() 491 CALL write_program_status()
488 - 492 +
  493 + STOP
  494 +
  495 +9000 run_status='ERROR reading control parameter from the bundle_spec file'
  496 + CALL write_program_status()
  497 + STOP 1
489 498
490 END PROGRAM cable_bundle_model_builder 499 END PROGRAM cable_bundle_model_builder
491 500
SRC/cable_model_builder.F90
@@ -430,19 +430,23 @@ integer :: i @@ -430,19 +430,23 @@ integer :: i
430 430
431 ! redefine mesh generation parameters if required 431 ! redefine mesh generation parameters if required
432 if (INDEX(line,'laplace_boundary_constant').NE.0) then 432 if (INDEX(line,'laplace_boundary_constant').NE.0) then
433 - read(cable_spec_file_unit,*,END=100,ERR=100)Laplace_boundary_constant 433 + read(cable_spec_file_unit,*,END=9000,ERR=9000)Laplace_boundary_constant
434 end if 434 end if
435 435
436 if (INDEX(line,'laplace_surface_mesh_constant').NE.0) then 436 if (INDEX(line,'laplace_surface_mesh_constant').NE.0) then
437 - read(cable_spec_file_unit,*,END=100,ERR=100)Laplace_surface_mesh_constant 437 + read(cable_spec_file_unit,*,END=9000,ERR=9000)Laplace_surface_mesh_constant
438 end if 438 end if
439 439
440 if (INDEX(line,'twisted_pair_equivalent_radius').NE.0) then 440 if (INDEX(line,'twisted_pair_equivalent_radius').NE.0) then
441 - read(cable_spec_file_unit,*,END=100,ERR=100)Twisted_pair_equivalent_radius 441 + read(cable_spec_file_unit,*,END=9000,ERR=9000)Twisted_pair_equivalent_radius
442 end if 442 end if
443 443
444 if (INDEX(line,'max_mesh_edge_length').NE.0) then 444 if (INDEX(line,'max_mesh_edge_length').NE.0) then
445 - read(cable_spec_file_unit,*,END=100,ERR=100)max_mesh_edge_length 445 + read(cable_spec_file_unit,*,END=9000,ERR=9000)max_mesh_edge_length
  446 + end if
  447 +
  448 + if (INDEX(line,'cg_tol').NE.0) then
  449 + read(cable_spec_file_unit,*,END=9000,ERR=9000)cg_tol
446 end if 450 end if
447 451
448 end do ! continue until all flags are read - indicated by an end of file. 452 end do ! continue until all flags are read - indicated by an end of file.
@@ -532,6 +536,12 @@ integer :: i @@ -532,6 +536,12 @@ integer :: i
532 run_status='Finished_Correctly' 536 run_status='Finished_Correctly'
533 CALL write_program_status() 537 CALL write_program_status()
534 538
  539 + STOP
  540 +
  541 +9000 run_status='ERROR reading control parameter from the cable_spec file'
  542 + CALL write_program_status()
  543 + STOP 1
  544 +
535 END PROGRAM cable_model_builder 545 END PROGRAM cable_model_builder
536 546
537 547