]> git.leopard-lacewing.eu Git - bacc.git/commitdiff
[src] neue Quadratur Implementiert (mit Nachbarn)
authortreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Sat, 22 Oct 2011 09:16:02 +0000 (09:16 +0000)
committertreecity <treecity@26120e32-c555-405d-b3e1-1f783fb42516>
Sat, 22 Oct 2011 09:16:02 +0000 (09:16 +0000)
[doc] Nachbarschafts Skizzen erstellt
[doc] einige Meshes Aktualisiert (Nachbarn)

git-svn-id: https://drops.fb12.tu-berlin.de/svn/bacc/trunk@56 26120e32-c555-405d-b3e1-1f783fb42516

doc/fig/Net_Split.svg [new file with mode: 0644]
doc/fig/Net_SplitDN.eps [new file with mode: 0644]
doc/fig/Net_SplitDO.eps [new file with mode: 0644]
doc/fig/Net_SplitSN.eps [new file with mode: 0644]
doc/fig/Net_SplitSO.eps [new file with mode: 0644]
src/nMesh/exmpl_2DLShape.mat
src/nMesh/exmpl_2DQuad2.mat [new file with mode: 0644]
src/nMesh/quadNorm.m [new file with mode: 0644]
src/nMesh/refineQuad.m
src/refineQuad.m

diff --git a/doc/fig/Net_Split.svg b/doc/fig/Net_Split.svg
new file mode 100644 (file)
index 0000000..81876f0
--- /dev/null
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="200"
+   height="200"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="Net_Split.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.8"
+     inkscape:cx="95.337668"
+     inkscape:cy="109.5734"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer6"
+     showgrid="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:snap-global="true"
+     inkscape:window-width="1390"
+     inkscape:window-height="876"
+     inkscape:window-x="50"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     inkscape:snap-grids="false"
+     inkscape:snap-to-guides="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3003"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="100,100"
+       id="guide3015" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="100,100"
+       id="guide3017" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="80,80"
+       id="guide3021" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="120,120"
+       id="guide3023" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="100,155"
+       id="guide4138" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="100,45"
+       id="guide4140" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="100,175"
+       id="guide4142" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="100,135"
+       id="guide4144" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="100,65"
+       id="guide4146" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="100,25"
+       id="guide4148" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="RS"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-852.36218)"
+     style="display:inline">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 190,10 -50,0 -20,180 50,0"
+       id="path3139"
+       inkscape:connector-curvature="0"
+       transform="translate(0,852.36218)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="path3915-9-8-0"
+       sodipodi:cx="-145"
+       sodipodi:cy="-35"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       d="m -140,-35 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       transform="translate(273.06913,932.36218)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="RD"
+     style="display:none">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 190,10 -50,0 -10,70 50,0"
+       id="path3114"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 180,120 -50,0 -10,70 50,0"
+       id="path3116"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:type="arc"
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="path3915-9"
+       sodipodi:cx="-145"
+       sodipodi:cy="-35"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       d="m -140,-35 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       transform="translate(274.89948,60)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="path3915-9-3"
+       sodipodi:cx="-145"
+       sodipodi:cy="-35"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       d="m -140,-35 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       transform="translate(264.82935,170)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="LS"
+     style="display:inline">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="M 10,190 60,190 80,10 30,10"
+       id="path3909"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:type="arc"
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="path3915-9-8-1"
+       sodipodi:cx="-145"
+       sodipodi:cy="-35"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       d="m -140,-35 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       transform="translate(229.0923,80)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="LD"
+     style="display:none">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 10,190 50,0 10,-70 -50,0"
+       id="path3911"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="M 20,80 70,80 80,10 30,10"
+       id="path3913"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:type="arc"
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="path3915-9-32"
+       sodipodi:cx="-145"
+       sodipodi:cy="-35"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       d="m -140,-35 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       transform="translate(230.89286,60)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="path3915-9-9"
+       sodipodi:cx="-145"
+       sodipodi:cy="-35"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       d="m -140,-35 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       transform="translate(220.85072,170)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="KL"
+     style="display:none">
+    <path
+       sodipodi:type="arc"
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="path3915-9-8-0-9"
+       sodipodi:cx="-145"
+       sodipodi:cy="-35"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       d="m -140,-35 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       transform="translate(216.94404,190)" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="KR"
+     style="display:none">
+    <path
+       sodipodi:type="arc"
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="path3915-9-8-2"
+       sodipodi:cx="-145"
+       sodipodi:cy="-35"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       d="m -140,-35 a 5,5 0 1 1 -10,0 5,5 0 1 1 10,0 z"
+       transform="translate(260.85187,190)" />
+  </g>
+</svg>
diff --git a/doc/fig/Net_SplitDN.eps b/doc/fig/Net_SplitDN.eps
new file mode 100644 (file)
index 0000000..5253682
--- /dev/null
@@ -0,0 +1,109 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: cairo 1.10.2 (http://cairographics.org)
+%%CreationDate: Fri Oct 21 21:17:10 2011
+%%Pages: 1
+%%BoundingBox: 0 -1 144 147
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%EndComments
+%%BeginProlog
+/cairo_eps_state save def
+/dict_count countdictstack def
+/op_count count 1 sub def
+userdict begin
+/q { gsave } bind def
+/Q { grestore } bind def
+/cm { 6 array astore concat } bind def
+/w { setlinewidth } bind def
+/J { setlinecap } bind def
+/j { setlinejoin } bind def
+/M { setmiterlimit } bind def
+/d { setdash } bind def
+/m { moveto } bind def
+/l { lineto } bind def
+/c { curveto } bind def
+/h { closepath } bind def
+/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
+      0 exch rlineto 0 rlineto closepath } bind def
+/S { stroke } bind def
+/f { fill } bind def
+/f* { eofill } bind def
+/n { newpath } bind def
+/W { clip } bind def
+/W* { eoclip } bind def
+/BT { } bind def
+/ET { } bind def
+/pdfmark where { pop globaldict /?pdfmark /exec load put }
+    { globaldict begin /?pdfmark /pop load def /pdfmark
+    /cleartomark load def end } ifelse
+/BDC { mark 3 1 roll /BDC pdfmark } bind def
+/EMC { mark /EMC pdfmark } bind def
+/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
+/Tj { show currentpoint cairo_store_point } bind def
+/TJ {
+  {
+    dup
+    type /stringtype eq
+    { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
+  } forall
+  currentpoint cairo_store_point
+} bind def
+/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
+    cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
+/Tf { pop /cairo_font exch def /cairo_font_matrix where
+      { pop cairo_selectfont } if } bind def
+/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
+      /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
+      /cairo_font where { pop cairo_selectfont } if } bind def
+/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
+      cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
+/g { setgray } bind def
+/rg { setrgbcolor } bind def
+/d1 { setcachedevice } bind def
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+%%PageBoundingBox: 0 -1 144 147
+%%EndPageSetup
+q 0 -1 144 148 rectclip q
+0 146.4 144 -147 re W n
+0 g
+2.4 w
+0 J
+0 j
+[] 0.0 d
+4 M q 1 0 0 -1 0 146.399994 cm
+144 1.199 m 104 1.199 l 96 57.199 l 136 57.199 l S Q
+q 1 0 0 -1 0 146.399994 cm
+136 89.199 m 96 89.199 l 88 145.199 l 128 145.199 l S Q
+q 1 0 0 -1 0 146.399994 cm
+99.918 13.199 m 99.918 15.41 98.129 17.199 95.918 17.199 c 93.711 
+17.199 91.918 15.41 91.918 13.199 c 91.918 10.992 93.711 9.199 95.918 
+9.199 c 98.129 9.199 99.918 10.992 99.918 13.199 c h
+99.918 13.199 m S Q
+q 1 0 0 -1 0 146.399994 cm
+91.863 101.199 m 91.863 103.41 90.074 105.199 87.863 105.199 c 85.656 
+105.199 83.863 103.41 83.863 101.199 c 83.863 98.992 85.656 97.199 
+87.863 97.199 c 90.074 97.199 91.863 98.992 91.863 101.199 c h
+91.863 101.199 m S Q
+q 1 0 0 -1 0 146.399994 cm
+0 145.199 m 40 145.199 l 48 89.199 l 8 89.199 l S Q
+q 1 0 0 -1 0 146.399994 cm
+8 57.199 m 48 57.199 l 56 1.199 l 16 1.199 l S Q
+q 1 0 0 -1 0 146.399994 cm
+64.715 13.199 m 64.715 15.41 62.922 17.199 60.715 17.199 c 58.504 
+17.199 56.715 15.41 56.715 13.199 c 56.715 10.992 58.504 9.199 60.715 
+9.199 c 62.922 9.199 64.715 10.992 64.715 13.199 c h
+64.715 13.199 m S Q
+q 1 0 0 -1 0 146.399994 cm
+56.68 101.199 m 56.68 103.41 54.891 105.199 52.68 105.199 c 50.473 
+105.199 48.68 103.41 48.68 101.199 c 48.68 98.992 50.473 97.199 52.68 
+97.199 c 54.891 97.199 56.68 98.992 56.68 101.199 c h
+56.68 101.199 m S Q
+Q Q
+showpage
+%%Trailer
+count op_count sub {pop} repeat
+countdictstack dict_count sub {end} repeat
+cairo_eps_state restore
+%%EOF
diff --git a/doc/fig/Net_SplitDO.eps b/doc/fig/Net_SplitDO.eps
new file mode 100644 (file)
index 0000000..b9b204b
--- /dev/null
@@ -0,0 +1,107 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: cairo 1.10.2 (http://cairographics.org)
+%%CreationDate: Fri Oct 21 21:16:40 2011
+%%Pages: 1
+%%BoundingBox: 0 -1 144 147
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%EndComments
+%%BeginProlog
+/cairo_eps_state save def
+/dict_count countdictstack def
+/op_count count 1 sub def
+userdict begin
+/q { gsave } bind def
+/Q { grestore } bind def
+/cm { 6 array astore concat } bind def
+/w { setlinewidth } bind def
+/J { setlinecap } bind def
+/j { setlinejoin } bind def
+/M { setmiterlimit } bind def
+/d { setdash } bind def
+/m { moveto } bind def
+/l { lineto } bind def
+/c { curveto } bind def
+/h { closepath } bind def
+/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
+      0 exch rlineto 0 rlineto closepath } bind def
+/S { stroke } bind def
+/f { fill } bind def
+/f* { eofill } bind def
+/n { newpath } bind def
+/W { clip } bind def
+/W* { eoclip } bind def
+/BT { } bind def
+/ET { } bind def
+/pdfmark where { pop globaldict /?pdfmark /exec load put }
+    { globaldict begin /?pdfmark /pop load def /pdfmark
+    /cleartomark load def end } ifelse
+/BDC { mark 3 1 roll /BDC pdfmark } bind def
+/EMC { mark /EMC pdfmark } bind def
+/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
+/Tj { show currentpoint cairo_store_point } bind def
+/TJ {
+  {
+    dup
+    type /stringtype eq
+    { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
+  } forall
+  currentpoint cairo_store_point
+} bind def
+/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
+    cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
+/Tf { pop /cairo_font exch def /cairo_font_matrix where
+      { pop cairo_selectfont } if } bind def
+/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
+      /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
+      /cairo_font where { pop cairo_selectfont } if } bind def
+/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
+      cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
+/g { setgray } bind def
+/rg { setrgbcolor } bind def
+/d1 { setcachedevice } bind def
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+%%PageBoundingBox: 0 -1 144 147
+%%EndPageSetup
+q 0 -1 144 148 rectclip q
+0 146.4 144 -147 re W n
+0 g
+2.4 w
+0 J
+0 j
+[] 0.0 d
+4 M q 1 0 0 -1 0 146.399994 cm
+144 1.199 m 104 1.199 l 88 145.199 l 128 145.199 l S Q
+q 1 0 0 -1 0 146.399994 cm
+98.457 29.199 m 98.457 31.41 96.664 33.199 94.457 33.199 c 92.246 
+33.199 90.457 31.41 90.457 29.199 c 90.457 26.992 92.246 25.199 94.457 
+25.199 c 96.664 25.199 98.457 26.992 98.457 29.199 c h
+98.457 29.199 m S Q
+q 1 0 0 -1 0 146.399994 cm
+0 145.199 m 40 145.199 l 48 89.199 l 8 89.199 l S Q
+q 1 0 0 -1 0 146.399994 cm
+8 57.199 m 48 57.199 l 56 1.199 l 16 1.199 l S Q
+q 1 0 0 -1 0 146.399994 cm
+64.715 13.199 m 64.715 15.41 62.922 17.199 60.715 17.199 c 58.504 
+17.199 56.715 15.41 56.715 13.199 c 56.715 10.992 58.504 9.199 60.715 
+9.199 c 62.922 9.199 64.715 10.992 64.715 13.199 c h
+64.715 13.199 m S Q
+q 1 0 0 -1 0 146.399994 cm
+56.68 101.199 m 56.68 103.41 54.891 105.199 52.68 105.199 c 50.473 
+105.199 48.68 103.41 48.68 101.199 c 48.68 98.992 50.473 97.199 52.68 
+97.199 c 54.891 97.199 56.68 98.992 56.68 101.199 c h
+56.68 101.199 m S Q
+q 1 0 0 -1 0 146.399994 cm
+88.68 117.199 m 88.68 119.41 86.891 121.199 84.68 121.199 c 82.473 
+121.199 80.68 119.41 80.68 117.199 c 80.68 114.992 82.473 113.199 84.68 
+113.199 c 86.891 113.199 88.68 114.992 88.68 117.199 c h
+88.68 117.199 m S Q
+Q Q
+showpage
+%%Trailer
+count op_count sub {pop} repeat
+countdictstack dict_count sub {end} repeat
+cairo_eps_state restore
+%%EOF
diff --git a/doc/fig/Net_SplitSN.eps b/doc/fig/Net_SplitSN.eps
new file mode 100644 (file)
index 0000000..51a8aeb
--- /dev/null
@@ -0,0 +1,107 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: cairo 1.10.2 (http://cairographics.org)
+%%CreationDate: Fri Oct 21 21:17:32 2011
+%%Pages: 1
+%%BoundingBox: 0 -1 144 147
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%EndComments
+%%BeginProlog
+/cairo_eps_state save def
+/dict_count countdictstack def
+/op_count count 1 sub def
+userdict begin
+/q { gsave } bind def
+/Q { grestore } bind def
+/cm { 6 array astore concat } bind def
+/w { setlinewidth } bind def
+/J { setlinecap } bind def
+/j { setlinejoin } bind def
+/M { setmiterlimit } bind def
+/d { setdash } bind def
+/m { moveto } bind def
+/l { lineto } bind def
+/c { curveto } bind def
+/h { closepath } bind def
+/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
+      0 exch rlineto 0 rlineto closepath } bind def
+/S { stroke } bind def
+/f { fill } bind def
+/f* { eofill } bind def
+/n { newpath } bind def
+/W { clip } bind def
+/W* { eoclip } bind def
+/BT { } bind def
+/ET { } bind def
+/pdfmark where { pop globaldict /?pdfmark /exec load put }
+    { globaldict begin /?pdfmark /pop load def /pdfmark
+    /cleartomark load def end } ifelse
+/BDC { mark 3 1 roll /BDC pdfmark } bind def
+/EMC { mark /EMC pdfmark } bind def
+/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
+/Tj { show currentpoint cairo_store_point } bind def
+/TJ {
+  {
+    dup
+    type /stringtype eq
+    { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
+  } forall
+  currentpoint cairo_store_point
+} bind def
+/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
+    cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
+/Tf { pop /cairo_font exch def /cairo_font_matrix where
+      { pop cairo_selectfont } if } bind def
+/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
+      /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
+      /cairo_font where { pop cairo_selectfont } if } bind def
+/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
+      cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
+/g { setgray } bind def
+/rg { setrgbcolor } bind def
+/d1 { setcachedevice } bind def
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+%%PageBoundingBox: 0 -1 144 147
+%%EndPageSetup
+q 0 -1 144 148 rectclip q
+0 146.4 144 -147 re W n
+0 g
+2.4 w
+0 J
+0 j
+[] 0.0 d
+4 M q 1 0 0 -1 0 146.399994 cm
+144 1.199 m 104 1.199 l 96 57.199 l 136 57.199 l S Q
+q 1 0 0 -1 0 146.399994 cm
+136 89.199 m 96 89.199 l 88 145.199 l 128 145.199 l S Q
+q 1 0 0 -1 0 146.399994 cm
+99.918 13.199 m 99.918 15.41 98.129 17.199 95.918 17.199 c 93.711 
+17.199 91.918 15.41 91.918 13.199 c 91.918 10.992 93.711 9.199 95.918 
+9.199 c 98.129 9.199 99.918 10.992 99.918 13.199 c h
+99.918 13.199 m S Q
+q 1 0 0 -1 0 146.399994 cm
+91.863 101.199 m 91.863 103.41 90.074 105.199 87.863 105.199 c 85.656 
+105.199 83.863 103.41 83.863 101.199 c 83.863 98.992 85.656 97.199 
+87.863 97.199 c 90.074 97.199 91.863 98.992 91.863 101.199 c h
+91.863 101.199 m S Q
+q 1 0 0 -1 0 146.399994 cm
+0 145.199 m 40 145.199 l 56 1.199 l 16 1.199 l S Q
+q 1 0 0 -1 0 146.399994 cm
+63.273 29.199 m 63.273 31.41 61.484 33.199 59.273 33.199 c 57.066 
+33.199 55.273 31.41 55.273 29.199 c 55.273 26.992 57.066 25.199 59.273 
+25.199 c 61.484 25.199 63.273 26.992 63.273 29.199 c h
+63.273 29.199 m S Q
+q 1 0 0 -1 0 146.399994 cm
+53.555 117.199 m 53.555 119.41 51.766 121.199 49.555 121.199 c 47.348 
+121.199 45.555 119.41 45.555 117.199 c 45.555 114.992 47.348 113.199 
+49.555 113.199 c 51.766 113.199 53.555 114.992 53.555 117.199 c h
+53.555 117.199 m S Q
+Q Q
+showpage
+%%Trailer
+count op_count sub {pop} repeat
+countdictstack dict_count sub {end} repeat
+cairo_eps_state restore
+%%EOF
diff --git a/doc/fig/Net_SplitSO.eps b/doc/fig/Net_SplitSO.eps
new file mode 100644 (file)
index 0000000..38bf943
--- /dev/null
@@ -0,0 +1,95 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: cairo 1.10.2 (http://cairographics.org)
+%%CreationDate: Fri Oct 21 21:16:03 2011
+%%Pages: 1
+%%BoundingBox: 0 -1 144 147
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%EndComments
+%%BeginProlog
+/cairo_eps_state save def
+/dict_count countdictstack def
+/op_count count 1 sub def
+userdict begin
+/q { gsave } bind def
+/Q { grestore } bind def
+/cm { 6 array astore concat } bind def
+/w { setlinewidth } bind def
+/J { setlinecap } bind def
+/j { setlinejoin } bind def
+/M { setmiterlimit } bind def
+/d { setdash } bind def
+/m { moveto } bind def
+/l { lineto } bind def
+/c { curveto } bind def
+/h { closepath } bind def
+/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
+      0 exch rlineto 0 rlineto closepath } bind def
+/S { stroke } bind def
+/f { fill } bind def
+/f* { eofill } bind def
+/n { newpath } bind def
+/W { clip } bind def
+/W* { eoclip } bind def
+/BT { } bind def
+/ET { } bind def
+/pdfmark where { pop globaldict /?pdfmark /exec load put }
+    { globaldict begin /?pdfmark /pop load def /pdfmark
+    /cleartomark load def end } ifelse
+/BDC { mark 3 1 roll /BDC pdfmark } bind def
+/EMC { mark /EMC pdfmark } bind def
+/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
+/Tj { show currentpoint cairo_store_point } bind def
+/TJ {
+  {
+    dup
+    type /stringtype eq
+    { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
+  } forall
+  currentpoint cairo_store_point
+} bind def
+/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
+    cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
+/Tf { pop /cairo_font exch def /cairo_font_matrix where
+      { pop cairo_selectfont } if } bind def
+/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
+      /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
+      /cairo_font where { pop cairo_selectfont } if } bind def
+/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
+      cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
+/g { setgray } bind def
+/rg { setrgbcolor } bind def
+/d1 { setcachedevice } bind def
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+%%PageBoundingBox: 0 -1 144 147
+%%EndPageSetup
+q 0 -1 144 148 rectclip q
+0 146.4 144 -147 re W n
+0 g
+2.4 w
+0 J
+0 j
+[] 0.0 d
+4 M q 1 0 0 -1 0 146.399994 cm
+144 1.199 m 104 1.199 l 88 145.199 l 128 145.199 l S Q
+q 1 0 0 -1 0 146.399994 cm
+98.457 29.199 m 98.457 31.41 96.664 33.199 94.457 33.199 c 92.246 
+33.199 90.457 31.41 90.457 29.199 c 90.457 26.992 92.246 25.199 94.457 
+25.199 c 96.664 25.199 98.457 26.992 98.457 29.199 c h
+98.457 29.199 m S Q
+q 1 0 0 -1 0 146.399994 cm
+0 145.199 m 40 145.199 l 56 1.199 l 16 1.199 l S Q
+q 1 0 0 -1 0 146.399994 cm
+63.273 29.199 m 63.273 31.41 61.484 33.199 59.273 33.199 c 57.066 
+33.199 55.273 31.41 55.273 29.199 c 55.273 26.992 57.066 25.199 59.273 
+25.199 c 61.484 25.199 63.273 26.992 63.273 29.199 c h
+63.273 29.199 m S Q
+Q Q
+showpage
+%%Trailer
+count op_count sub {pop} repeat
+countdictstack dict_count sub {end} repeat
+cairo_eps_state restore
+%%EOF
index 5a82bf5d89e9e1537dd679fa801d3eac7e96bc7c..35f0ff82ede436925b2beb430e65411416c3762a 100644 (file)
Binary files a/src/nMesh/exmpl_2DLShape.mat and b/src/nMesh/exmpl_2DLShape.mat differ
diff --git a/src/nMesh/exmpl_2DQuad2.mat b/src/nMesh/exmpl_2DQuad2.mat
new file mode 100644 (file)
index 0000000..d685be4
Binary files /dev/null and b/src/nMesh/exmpl_2DQuad2.mat differ
diff --git a/src/nMesh/quadNorm.m b/src/nMesh/quadNorm.m
new file mode 100644 (file)
index 0000000..18b0f85
--- /dev/null
@@ -0,0 +1,45 @@
+function n = quadNorm(coordinates, elements,varargin)
+%
+% norm = quadNorm(coordinates, elements)
+% norm = quadNorm(coordinates, elements, 'FLAG')
+%
+% Diese Funktion Berechnet die Orthogonalen mit Laenge 1 über alle Flächen
+% FLAG:
+% w -> Laenge entspricht Flaecheninhalt
+%
+% P.Schaefer
+
+%% Parameterueberpruefung
+w = 1;
+
+optargin = size(varargin,2);
+if(optargin>1)
+    error('Zu viele Argumente');
+elseif(optargin==1)
+    if(ismember('w',varargin{1}))
+        w = 0;
+    end
+end
+
+    %Numbers needed
+    s_ele = size(elements,1);
+    
+
+%%  calculate the Norm
+    n = zeros(size(elements,1),3);
+    for i = 1:s_ele
+        % normalized Vector on every triangle
+        tri = elements(i,:);
+        a = (coordinates(tri(2),:)-coordinates(tri(1),:));
+        b = (coordinates(tri(4),:)-coordinates(tri(1),:));
+        N = cross(a',b');
+        if(w)
+            N = N/norm(N);
+        end
+        n(i,:) = N;
+    end
+
+end
+
+
+
index 8bc9d88e22626b374d5146809b30e45b676f2949..4fde40a74c730b1e9c6210b0f652bdc7212a3a21 100644 (file)
@@ -1,4 +1,4 @@
-function [coo,ele,f2s] = refineQuad(coordinates,elements,type)
+function [coo,ele,nei,f2s] = refineQuad(coordinates,elements,neigh,type)
 %
 %  [coordinates,elements,fa2so] = refineQuad(coordinates,elements,type)
 %
@@ -14,36 +14,48 @@ function [coo,ele,f2s] = refineQuad(coordinates,elements,type)
 %
 % P. Schaefer
 
+
+%Type wenn nur ein Wert: aufblaehen
 if([1 1] == size(type))
     type = repmat(type, size(elements,1),1);
 end
 
+%Globale Variabelen aufbauen
 global G_ref_E;
 global G_ref_C;
 global G_ref_N;
 global G_ref_f2s;
 global G_ref_t;
 
+%Elementanzahl speichern
 c_loop = size(elements,1);
 
-
+%Globale Variablen zuweisen
 G_ref_E = elements;
 G_ref_C = coordinates;
+G_ref_N = neigh;
 G_ref_t = type;
 G_ref_f2s = repmat([1:c_loop]',1,4);
 
+%Parameter Freigeben (Speicher...)
+clear elements coordinates neigh type
+
+%Jedes Element verfeinern
 for i = 1:c_loop
   refine(i);
 end
 
+%Rueckgabe zuweisen
 coo = G_ref_C;
 ele = G_ref_E;
+nei = G_ref_N;
 f2s = G_ref_f2s;
 
-%igitigit
+%Doppelte Koordinaten loeschen
  [coo l pos] = unique(coo,'rows');
  ele = pos(ele);
 
+ %Globale Variablen freigeben
 clear G_ref_E G_ref_C G_ref_N G_ref_f2s G_ref_t
 end
 
@@ -51,7 +63,7 @@ end
 function refine(ele)
 % global G_ref_E;
 % global G_ref_C;
-global G_ref_N;
+global G_ref_N;
 % global G_ref_f2s;
 global G_ref_t;
 
@@ -59,12 +71,26 @@ if(G_ref_t(ele)==1)
   return;
 end
 
-% Ueberpruefe Nachbarn
-
+% Ueberpruefe Nachbarn auf Nodes
+N = G_ref_N(ele,G_ref_N(ele,5:8)==0);
+N2 = N(N~=0);
+if(~isempty(N2))
+  N3=mod(find((G_ref_N(N2',:)==ele)')-1,4)+5; % ACHTUNG noch mal überprüfen
+  N4=N2(diag(G_ref_N(N2',N3'))~=0);
+  
+  % wenn ungueltig verfeinere sie (link auf Soll verfeinert werden?)
+  if(~isempty(N4))
+    for i = 1:length(N4)
+%       if(G_ref_t(N4(i))<=2)
+        G_ref_t(N4(i))=2; %WIRD GNADENLOS AUF 2 GESETZT
+        refine(N4(i));
+%       else
+%         mod(find(G_ref_N(N4(i),:)==ele)-1,2)
+%       end
+    end
+  end
+end
 
-% wenn ungueltig verfeinere sie (link auf Soll verfeinert werden?)
-% G_ref_M(k) =
-% refine(k);
 
 % verfeinere dieses element
 refineE(ele);
@@ -102,7 +128,7 @@ global G_ref_t;
         G_ref_E(c_ele+2,:) = [c_coo+1,el(2),c_coo+2,c_coo+5];
         G_ref_E(c_ele+3,:) = [el(1),c_coo+1,c_coo+5,c_coo+4];
     
-        G_ref_f2s(ele,2:4)=c_ele+1:c_ele+3;
+        G_ref_f2s(ele,1:3)=c_ele+3:-1:c_ele+1;
     elseif(G_ref_t(ele)==3)
         G_ref_C(c_coo+1,:) = (G_ref_C(el(1),:)+G_ref_C(el(4),:))/2;
         G_ref_C(c_coo+2,:) = (G_ref_C(el(2),:)+G_ref_C(el(3),:))/2;
@@ -111,7 +137,7 @@ global G_ref_t;
         G_ref_E(ele,2) = c_coo+2;
         
         G_ref_E(c_ele+1,:) = [el(1),el(2),c_coo+2,c_coo+1];
-        G_ref_f2s(ele,[3 4])=c_ele+1;
+        G_ref_f2s(ele,[1 2])=c_ele+1;
      elseif(G_ref_t(ele)==4)
         G_ref_C(c_coo+1,:) = (G_ref_C(el(1),:)+G_ref_C(el(2),:))/2;
         G_ref_C(c_coo+2,:) = (G_ref_C(el(4),:)+G_ref_C(el(3),:))/2;
@@ -120,7 +146,7 @@ global G_ref_t;
         G_ref_E(ele,3) = c_coo+2;
         
         G_ref_E(c_ele+1,:) = [c_coo+1,el(2),el(3),c_coo+2];
-        G_ref_f2s(ele,[2 4])=c_ele+1;
+        G_ref_f2s(ele,[2 3])=c_ele+1;
     end
     
     G_ref_t(ele) = 1;
@@ -129,10 +155,122 @@ end
 
 function updateN(ele)
 % Nachbarschaften werden neu gesetzt (nach N und f2s)
-global G_ref_E;
+global G_ref_E;
 % global G_ref_C;
-% global G_ref_N;
-% global G_ref_f2s;
+global G_ref_N;
+global G_ref_f2s;
+
+
+%Innere Beziehungen setzen
+% ...
+
+this = G_ref_N(ele,:);
+split = G_ref_f2s(ele,:);
+S = find(mod((this(1:4)~=0).*(this(5:8)==0),2))' %An welchen Kanten habe ich Nachbarn
+D = find(this(5:8)~=0)'
+MS = mod(find((G_ref_N(this(S),:)==ele)')-1,4)+1  %An welchen Kanten bin ich Nachbar
+MD = mod(find((G_ref_N(this([D D+4]),:)==ele)')-1,4)+1
+
+G_ref_N(split,1:8) = 0;
+
+if(split(1)==split(2))
+  G_ref_N(split([1 3])',1:4) = [ 0 0 split(3) 0;split(1) 0 0 0];
+      % Beziehungen fuer Kanten mit einem Nachbar
+    for i = 1:length(S)
+      if(mod(S(i),2)==0)
+        G_ref_N(this(S(i)),[MS(i) MS(i)+4]) = [split(S(i)) split(mod(S(i),4)+1)];
+        G_ref_N([split(S(i)) split(mod(S(i),4)+1)]',S(i))=this(S(i));
+      else
+        G_ref_N(this(S(i)),MS(i)) = split(S(i));
+        G_ref_N(split(S(i)),S(i)) = this(S(i));
+      end
+    end
+  
+    % Beziehungen fuer Kanten mit zwei Nachbarn
+    for i = 1:length(D)
+      if(mod(S(i),2)==0)
+        if(length(unique([G_ref_E(this(D(i)),:) G_ref_E(split(D(i)),:)]))==7)
+          G_ref_N(this(D(i)),MD(1,i)) = split(D(i));
+          G_ref_N(this(D(i)+4),MD(2,i)) = split(mod(D(i),4)+1);
+          G_ref_N(split(D(i)),D(i)) = this(D(i));
+          G_ref_N(split(mod(D(i),4)+1),D(i)) = this(D(i)+4);
+        else
+          G_ref_N(this(D(i)),MD(1,i)) = split(mod(D(i),4)+1);
+          G_ref_N(this(D(i)+4),MD(2,i)) = split(D(i));
+          G_ref_N(split(D(i)),D(i)) = this(D(i)+4);
+          G_ref_N(split(mod(D(i),4)+1),D(i)) = this(D(i));      
+        end
+      else
+        G_ref_N(this(D(i)),MD(1,i)) = split(D(i));
+        G_ref_N(this(D(i)+4),MD(2,i)) = split(D(i));
+        G_ref_N(split(D(i)),[D(i) D(i)+4]) = [this(D(i)) this(D(i)+4)];
+      end
+    end
+  
+elseif(split(1)==split(4))
+  G_ref_N(split([1 2])',1:4) = [ 0 split(2) 0 0;0 0 0 split(1)];
+    % Beziehungen fuer Kanten mit einem Nachbar
+    for i = 1:length(S)
+      if(mod(S(i),2)==1)
+        G_ref_N(this(S(i)),[MS(i) MS(i)+4]) = [split(S(i)) split(mod(S(i),4)+1)];
+        G_ref_N([split(S(i)) split(mod(S(i),4)+1)]',S(i))=this(S(i));
+      else
+        G_ref_N(this(S(i)),MS(i)) = split(S(i));
+        G_ref_N(split(S(i)),S(i)) = this(S(i));
+      end
+    end
+  
+    % Beziehungen fuer Kanten mit zwei Nachbarn
+    for i = 1:length(D)
+      if(mod(S(i),2)==1)
+        if(length(unique([G_ref_E(this(D(i)),:) G_ref_E(split(D(i)),:)]))==7)
+          G_ref_N(this(D(i)),MD(1,i)) = split(D(i));
+          G_ref_N(this(D(i)+4),MD(2,i)) = split(mod(D(i),4)+1);
+          G_ref_N(split(D(i)),D(i)) = this(D(i));
+          G_ref_N(split(mod(D(i),4)+1),D(i)) = this(D(i)+4);
+        else
+          G_ref_N(this(D(i)),MD(1,i)) = split(mod(D(i),4)+1);
+          G_ref_N(this(D(i)+4),MD(2,i)) = split(D(i));
+          G_ref_N(split(D(i)),D(i)) = this(D(i)+4);
+          G_ref_N(split(mod(D(i),4)+1),D(i)) = this(D(i));      
+        end
+      else
+        G_ref_N(this(D(i)),MD(1,i)) = split(D(i));
+        G_ref_N(this(D(i)+4),MD(2,i)) = split(D(i));
+        G_ref_N(split(D(i)),[D(i) D(i)+4]) = [this(D(i)) this(D(i)+4)];
+      end
+    end
+  
+else
+  G_ref_N(split',1:4) = [0 split(2) split(4) 0; 0 0 split(3) split(1);...
+                         split(2) 0 0 split(4); split(1) split(3) 0 0];
+  
+    % Beziehungen fuer Kanten mit einem Nachbar
+    for i = 1:length(S)
+      G_ref_N(this(S(i)),[MS(i) MS(i)+4]) = [split(S(i)) split(mod(S(i),4)+1)];
+      G_ref_N([split(S(i)) split(mod(S(i),4)+1)]',S(i))=this(S(i));
+    end
+  
+    % Beziehungen fuer Kanten mit zwei Nachbarn
+    for i = 1:length(D)
+      if(length(unique([G_ref_E(this(D(i)),:) G_ref_E(split(D(i)),:)]))==7)
+        G_ref_N(this(D(i)),MD(1,i)) = split(D(i));
+        G_ref_N(this(D(i)+4),MD(2,i)) = split(mod(D(i),4)+1);
+        G_ref_N(split(D(i)),D(i)) = this(D(i));
+        G_ref_N(split(mod(D(i),4)+1),D(i)) = this(D(i)+4);
+      else
+        G_ref_N(this(D(i)),MD(1,i)) = split(mod(D(i),4)+1);
+        G_ref_N(this(D(i)+4),MD(2,i)) = split(D(i));
+        G_ref_N(split(D(i)),D(i)) = this(D(i)+4);
+        G_ref_N(split(mod(D(i),4)+1),D(i)) = this(D(i));      
+      end
+    end
+  
+end
+
+
+
+
 
 end
 
index 666acf3f11c7c3b9399c217259f1330b06ebace9..f5f68cbae4bcde1937e8dd7fc467f87a71463afd 100644 (file)
@@ -60,7 +60,7 @@ for i = 1:c_loop
         elements(i,3) = c_coo+2;
         
         elements(c_ele+1,:) = [c_coo+1,el(2),el(3),c_coo+2];
-        fa2so(i,[2 4])=c_ele+1;
+        fa2so(i,[2 3])=c_ele+1;
     end
 end