From a279a84395eccdef351c70abc8ab7331c1724308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20H=C3=B6rl?= <maximilian.hoerl@mathematik.uni-stuttgart.de> Date: Thu, 19 Mar 2020 14:39:58 +0100 Subject: [PATCH] add mmdg problems --- dune/mmdg/problems/coupleddgproblem.hh | 31 +- dune/mmdg/problems/dgproblem.hh | 2 +- .../mmdg/problems/inhomogeneousbulkproblem.hh | 6 - dune/mmdg/problems/mmdgproblem1.hh | 61 + dune/mmdg/problems/mmdgproblem2.hh | 89 + dune/mmdg/problems/poisson.hh | 8 +- dune/mmdg/problems/zeropoisson.hh | 8 +- src/grids/mmdg2.geo | 33 + src/grids/mmdg2.msh | 1633 +++++++++++++++++ src/mmdg.cc | 42 +- src/parameterMMDG.ini | 2 +- 11 files changed, 1873 insertions(+), 42 deletions(-) create mode 100644 dune/mmdg/problems/mmdgproblem1.hh create mode 100644 dune/mmdg/problems/mmdgproblem2.hh create mode 100644 src/grids/mmdg2.geo create mode 100644 src/grids/mmdg2.msh diff --git a/dune/mmdg/problems/coupleddgproblem.hh b/dune/mmdg/problems/coupleddgproblem.hh index e6fe7a4..72b1f03 100644 --- a/dune/mmdg/problems/coupleddgproblem.hh +++ b/dune/mmdg/problems/coupleddgproblem.hh @@ -6,34 +6,39 @@ //abstract class providing an interface for a coupled flow problem in a //fractured porous medium that is to be solved with a coupled discontinuous //Galerkin scheme -template<class Vector, class Scalar = double> -class CoupledDGProblem : public DGProblem<Vector, Scalar> +template<class Coordinate, class Scalar = double> +class CoupledDGProblem : public DGProblem<Coordinate, Scalar> { public: - static constexpr int dim = Vector::dimension; - using Base = DGProblem<Vector, Scalar>; + static constexpr int dim = Coordinate::dimension; + using Base = DGProblem<Coordinate, Scalar>; using Matrix = typename Base::Matrix; //the exact solution on the interface at position pos - virtual Scalar exactInterfaceSolution (const Vector& pos) const + virtual Scalar exactInterfaceSolution (const Coordinate& pos) const { return Scalar(0.0); } //interface source term at position pos - virtual Scalar qInterface (const Vector& pos) const + virtual Scalar qInterface (const Coordinate& pos) const { return Scalar(0.0); } //aperture d of the fracture at position pos - virtual Scalar aperture (const Vector& pos) const + virtual Scalar aperture (const Coordinate& pos) const { return Scalar(1.0); } + virtual Scalar interfaceBoundary(const Coordinate& pos) const + { + return exactInterfaceSolution(pos); + } + //tangential permeability tensor of the interface at position pos - virtual Matrix Kparallel (const Vector& pos) const + virtual Matrix Kparallel (const Coordinate& pos) const { Matrix permeability(0.0); @@ -47,12 +52,11 @@ class CoupledDGProblem : public DGProblem<Vector, Scalar> } //permeability of the fracture in normal direction at position pos - virtual Scalar Kperp (const Vector& pos) const + virtual Scalar Kperp (const Coordinate& pos) const { return Scalar(1.0); } - //returns the recommended quadrature order to compute an integral //over x * qInterface(x) virtual int quadratureOrder_qInterface () const @@ -60,6 +64,13 @@ class CoupledDGProblem : public DGProblem<Vector, Scalar> return 1; } + //returns the recommended quadrature order to compute an integral + //over x * interfaceBoundary(x) + virtual int quadratureOrderInterfaceBoundary () const + { //NOTE: only relevant for 3d, not implemented! + return 1; + } + //returns the recommended quadrature order to compute an integral //over Kparallel(x) virtual int quadratureOrder_Kparallel () const diff --git a/dune/mmdg/problems/dgproblem.hh b/dune/mmdg/problems/dgproblem.hh index 13d0bc4..b59b0a6 100644 --- a/dune/mmdg/problems/dgproblem.hh +++ b/dune/mmdg/problems/dgproblem.hh @@ -31,7 +31,7 @@ class DGProblem //boundary condition at position pos virtual Scalar boundary (const Coordinate& pos) const { - return Scalar(0.0); + return exactSolution(pos); } //permeability tensor at position pos diff --git a/dune/mmdg/problems/inhomogeneousbulkproblem.hh b/dune/mmdg/problems/inhomogeneousbulkproblem.hh index 8cf6424..4dcc907 100644 --- a/dune/mmdg/problems/inhomogeneousbulkproblem.hh +++ b/dune/mmdg/problems/inhomogeneousbulkproblem.hh @@ -32,12 +32,6 @@ class InhomogeneousBulkProblem : public DGProblem<Coordinate, Scalar> return pos * Coordinate(2.0); } - //boundary condition - virtual Scalar boundary (const Coordinate& pos) const - { - return exactSolution(pos); - } - //permeability tensor at position pos virtual Matrix K (const Coordinate& pos) const { diff --git a/dune/mmdg/problems/mmdgproblem1.hh b/dune/mmdg/problems/mmdgproblem1.hh new file mode 100644 index 0000000..c2008c8 --- /dev/null +++ b/dune/mmdg/problems/mmdgproblem1.hh @@ -0,0 +1,61 @@ +#ifndef __DUNE_MMDG_MMDGPROBLEM1_HH__ +#define __DUNE_MMDG_MMDGPROBLEM1_HH__ + +#include <cmath> +#include <dune/mmdg/problems/coupleddgproblem.hh> + +//a coupled dg problem for dim = 2, +//taken from [Antonietti et al. (2019): Example 6.3] +template<class Coordinate, class Scalar = double> +class MMDGProblem1 : public CoupledDGProblem<Coordinate, Scalar> +{ + public: + static constexpr int dim = Coordinate::dimension; + + //the exact bulk solution at position pos + Scalar exactSolution (const Coordinate& pos) const + { + Scalar solution = pos * Coordinate(1.0); + + if (pos[0] > 0.5) + { + solution += 1.0; + } + + return solution; + } + + //the exact solution on the interface at position pos + Scalar exactInterfaceSolution (const Coordinate& pos) const + { + return pos * Coordinate(1.0) + 0.5; + } + + //indicates whether an exact solution is implemented for the problem + bool hasExactSolution () const + { + return true; + }; + + //aperture d of the fracture at position pos + Scalar aperture (const Coordinate& pos) const + { + return Scalar(1.0); + } + + //returns the recommended quadrature order to compute an integral + //over x * boundary(x) + int quadratureOrderBoundary () const + { + return 2; + } + + //returns the recommended quadrature order to compute an integral + //over x * interfaceBoundary(x) + int quadratureOrderInterfaceBoundary () const + { //NOTE: only relevant for 3d, not implemented! + return 2; + } +}; + +#endif diff --git a/dune/mmdg/problems/mmdgproblem2.hh b/dune/mmdg/problems/mmdgproblem2.hh new file mode 100644 index 0000000..79e0595 --- /dev/null +++ b/dune/mmdg/problems/mmdgproblem2.hh @@ -0,0 +1,89 @@ +#ifndef __DUNE_MMDG_MMDGPROBLEM2_HH__ +#define __DUNE_MMDG_MMDGPROBLEM2_HH__ + +#include <cmath> +#include <dune/mmdg/problems/coupleddgproblem.hh> + +//a coupled dg problem for dim = 2, +//taken from [Antonietti et al. (2019): Example 6.3] +template<class Coordinate, class Scalar = double> +class MMDGProblem2 : public CoupledDGProblem<Coordinate, Scalar> +{ + public: + static constexpr int dim = Coordinate::dimension; + + //the exact bulk solution at position pos + Scalar exactSolution (const Coordinate& pos) const + { + Scalar solution = + (pos[0] < 0.5) ? std::sin(4 * pos[0]) : std::cos(4 * pos[0]); + return solution * std::cos(M_PI * pos[1]); + } + + //the exact solution on the interface at position pos + Scalar exactInterfaceSolution (const Coordinate& pos) const + { + constexpr Scalar cos2 = std::cos(2.0); + constexpr Scalar sin2 = std::sin(2.0); + return 0.75 * (cos2 - sin2) * std::cos(M_PI * pos[1]); + } + + //indicates whether an exact solution is implemented for the problem + bool hasExactSolution () const + { + return true; + }; + + //bulk source term at position pos + Scalar q (const Coordinate& pos) const + { + constexpr Scalar sourcefactor = 16.0 + M_PI * M_PI; + Scalar source = + (pos[0] < 0.5) ? std::sin(4 * pos[0]) : std::cos(4 * pos[0]); + return sourcefactor * source * std::cos(M_PI * pos[1]); + } + + //interface source term at position pos + Scalar qInterface (const Coordinate& pos) const + { + constexpr Scalar sourcefactor = + (std::cos(2.0) + std::sin(2.0)) * (4.0 + 0.1875 * M_PI * M_PI); + return sourcefactor * aperture(pos) * std::cos(M_PI * pos[1]); + } + + //aperture d of the fracture at position pos + Scalar aperture (const Coordinate& pos) const + { + return Scalar(0.25); + } + + //returns the recommended quadrature order to compute an integral + //over x * q(x) + int quadratureOrder_q () const + { + return 10; + } + + //returns the recommended quadrature order to compute an integral + //over x * boundary(x) + int quadratureOrderBoundary () const + { + return 10; + } + + //returns the recommended quadrature order to compute an integral + //over x * interfaceBoundary(x) + int quadratureOrderInterfaceBoundary () const + { //NOTE: only relevant for 3d, not implemented! + return 10; + } + + //returns the recommended quadrature order to compute an integral + //over x * qInterface(x) + int quadratureOrder_qInterface () const + { + return 10; + } +}; + +#endif diff --git a/dune/mmdg/problems/poisson.hh b/dune/mmdg/problems/poisson.hh index e6f3757..571d176 100644 --- a/dune/mmdg/problems/poisson.hh +++ b/dune/mmdg/problems/poisson.hh @@ -12,7 +12,7 @@ class Poisson : public DGProblem<Coordinate, Scalar> //1d: f(x) = x, //2d: f(x,y) = x*y, //3d: f(x,y,z) = x*y*z - virtual Scalar exactSolution (const Coordinate& pos) const + Scalar exactSolution (const Coordinate& pos) const { Scalar solution(1.0); @@ -29,12 +29,6 @@ class Poisson : public DGProblem<Coordinate, Scalar> { return true; }; - - //boundary condition - virtual Scalar boundary (const Coordinate& pos) const - { - return exactSolution(pos); - } }; #endif diff --git a/dune/mmdg/problems/zeropoisson.hh b/dune/mmdg/problems/zeropoisson.hh index dce45f3..56525ab 100644 --- a/dune/mmdg/problems/zeropoisson.hh +++ b/dune/mmdg/problems/zeropoisson.hh @@ -15,7 +15,7 @@ class ZeroPoisson : public DGProblem<Coordinate, Scalar> static constexpr int dim = Coordinate::dimension; //the exact solution at position pos - virtual Scalar exactSolution (const Coordinate& pos) const + Scalar exactSolution (const Coordinate& pos) const { if constexpr (dim == 1) { @@ -54,6 +54,12 @@ class ZeroPoisson : public DGProblem<Coordinate, Scalar> { return Scalar(-1.0); } + + //boundary condition at position pos + virtual Scalar boundary (const Coordinate& pos) const + { + return Scalar(0.0); + } }; #endif diff --git a/src/grids/mmdg2.geo b/src/grids/mmdg2.geo new file mode 100644 index 0000000..b5958f8 --- /dev/null +++ b/src/grids/mmdg2.geo @@ -0,0 +1,33 @@ +//characteristic length +lc = 5e-2; + +//domain corners, domain = [0,1] x [0,1] +Point(1) = {0, 0, 0, lc}; +Point(2) = {1, 0, 0, lc}; +Point(3) = {1, 1, 0, lc}; +Point(4) = {0, 1, 0, lc}; + +//points for interface x = 0.5 +Point(5) = {0.5, 0, 0, lc}; +Point(6) = {0.5, 1, 0, lc}; +Point(7) = {0.5, 0.5, 0, lc}; + +//domain outline +Line(1) = {1, 2}; +Line(2) = {2, 3}; +Line(3) = {3, 4}; +Line(4) = {4, 1}; + +//interface outline +Line(6) = {5, 7}; +Line(7) = {7, 6}; + +//curve loops +Curve Loop(1) = {1:4}; //domain boundary + +//surfaces +Plane Surface(1) = {1}; +Physical Surface(1) = {1}; + +Curve{6:7} In Surface{1}; +Physical Curve(2) = {6:7}; diff --git a/src/grids/mmdg2.msh b/src/grids/mmdg2.msh new file mode 100644 index 0000000..b339829 --- /dev/null +++ b/src/grids/mmdg2.msh @@ -0,0 +1,1633 @@ +$MeshFormat +2.2 0 8 +$EndMeshFormat +$Nodes +563 +1 0 0 0 +2 1 0 0 +3 1 1 0 +4 0 1 0 +5 0.5 0 0 +6 0.5 1 0 +7 0.5 0.5 0 +8 0.04999999999989965 0 0 +9 0.09999999999981467 0 0 +10 0.1499999999997036 0 0 +11 0.1999999999995579 0 0 +12 0.2499999999994121 0 0 +13 0.2999999999992664 0 0 +14 0.3499999999991206 0 0 +15 0.3999999999989749 0 0 +16 0.4499999999988292 0 0 +17 0.4999999999986943 0 0 +18 0.5499999999988151 0 0 +19 0.5999999999989468 0 0 +20 0.6499999999990784 0 0 +21 0.69999999999921 0 0 +22 0.7499999999993417 0 0 +23 0.7999999999994734 0 0 +24 0.8499999999996051 0 0 +25 0.8999999999997368 0 0 +26 0.9499999999998684 0 0 +27 1 0.04999999999989965 0 +28 1 0.09999999999981467 0 +29 1 0.1499999999997036 0 +30 1 0.1999999999995579 0 +31 1 0.2499999999994121 0 +32 1 0.2999999999992664 0 +33 1 0.3499999999991206 0 +34 1 0.3999999999989749 0 +35 1 0.4499999999988292 0 +36 1 0.4999999999986943 0 +37 1 0.5499999999988151 0 +38 1 0.5999999999989468 0 +39 1 0.6499999999990784 0 +40 1 0.69999999999921 0 +41 1 0.7499999999993417 0 +42 1 0.7999999999994734 0 +43 1 0.8499999999996051 0 +44 1 0.8999999999997368 0 +45 1 0.9499999999998684 0 +46 0.9499999999997918 1 0 +47 0.8999999999995836 1 0 +48 0.8499999999996529 1 0 +49 0.7999999999999998 1 0 +50 0.7500000000003466 1 0 +51 0.7000000000006934 1 0 +52 0.6500000000010401 1 0 +53 0.6000000000013869 1 0 +54 0.5500000000017335 1 0 +55 0.5000000000020587 1 0 +56 0.4500000000018723 1 0 +57 0.4000000000016644 1 0 +58 0.3500000000014564 1 0 +59 0.3000000000012483 1 0 +60 0.2500000000010403 1 0 +61 0.2000000000008322 1 0 +62 0.1500000000006241 1 0 +63 0.100000000000416 1 0 +64 0.05000000000020799 1 0 +65 0 0.9499999999997918 0 +66 0 0.8999999999995836 0 +67 0 0.8499999999996529 0 +68 0 0.7999999999999998 0 +69 0 0.7500000000003466 0 +70 0 0.7000000000006934 0 +71 0 0.6500000000010401 0 +72 0 0.6000000000013869 0 +73 0 0.5500000000017335 0 +74 0 0.5000000000020587 0 +75 0 0.4500000000018723 0 +76 0 0.4000000000016644 0 +77 0 0.3500000000014564 0 +78 0 0.3000000000012483 0 +79 0 0.2500000000010403 0 +80 0 0.2000000000008322 0 +81 0 0.1500000000006241 0 +82 0 0.100000000000416 0 +83 0 0.05000000000020799 0 +84 0.5 0.04999999999990733 0 +85 0.5 0.09999999999977893 0 +86 0.5 0.1499999999996332 0 +87 0.5 0.1999999999994874 0 +88 0.5 0.2499999999993471 0 +89 0.5 0.2999999999994734 0 +90 0.5 0.349999999999605 0 +91 0.5 0.3999999999997367 0 +92 0.5 0.4499999999998684 0 +93 0.5 0.5499999999999999 0 +94 0.5 0.5999999999999998 0 +95 0.5 0.6499999999999998 0 +96 0.5 0.6999999999999998 0 +97 0.5 0.7499999999999999 0 +98 0.5 0.7999999999999998 0 +99 0.5 0.8499999999999999 0 +100 0.5 0.8999999999999999 0 +101 0.5 0.95 0 +102 0.2515812791296091 0.5767092243116723 0 +103 0.7526674788316902 0.5217836869746929 0 +104 0.2508518336673701 0.2756940839641325 0 +105 0.7479607916065552 0.2815465624477155 0 +106 0.7438598012736586 0.7611196813925792 0 +107 0.21381578947297 0.7861842105269725 0 +108 0.3286009331475617 0.4305480250902119 0 +109 0.158258452239206 0.4237106331629431 0 +110 0.8434659090909049 0.3994318181817656 0 +111 0.6565340909091169 0.3994318181818166 0 +112 0.3458199937943457 0.6934167473267424 0 +113 0.8411469216498332 0.6505044971077549 0 +114 0.3448130154986057 0.1533071452110411 0 +115 0.1541666666664694 0.1541666666664439 0 +116 0.656954158800285 0.1542419763194182 0 +117 0.8461988809063532 0.1538011190936646 0 +118 0.650838627485678 0.6385075094680863 0 +119 0.3440404810887656 0.8426452429393672 0 +120 0.8595933479273532 0.8582268511579644 0 +121 0.1407415089445264 0.6649716964832926 0 +122 0.6422327469600121 0.860866274229857 0 +123 0.3764672332430049 0.5550145918956179 0 +124 0.3837617003311505 0.2991849791901985 0 +125 0.1266610202840101 0.3041102028396466 0 +126 0.1249264579166344 0.8718386511928258 0 +127 0.8762500000000389 0.5249999999987545 0 +128 0.8746408699705447 0.276639808589424 0 +129 0.6259695625441751 0.2803509261660138 0 +130 0.1197643303045717 0.5422103973501704 0 +131 0.6231243831618701 0.516618049080281 0 +132 0.6151442034511861 0.7483881044402517 0 +133 0.7483681769361019 0.8900035173369321 0 +134 0.8867691063776216 0.7517482483543647 0 +135 0.2510693209738949 0.8810017898055184 0 +136 0.1068033039355767 0.7687101418144736 0 +137 0.7495669577964854 0.1147791361370822 0 +138 0.2500000000000112 0.1068693693694306 0 +139 0.2444930467820648 0.6641958973524997 0 +140 0.746400727650735 0.6639423076923162 0 +141 0.2510465408415901 0.3758246833816142 0 +142 0.2482213823278565 0.4743672965763535 0 +143 0.7488128085717385 0.3727858362419845 0 +144 0.4053538626773404 0.7724161352324153 0 +145 0.4081487352104243 0.6316524091422261 0 +146 0.4147370417026605 0.2212185316374052 0 +147 0.08979882213640072 0.2198536138523391 0 +148 0.4172000755432455 0.09250857979127143 0 +149 0.08292075297572266 0.08128902375347552 0 +150 0.9095916161657576 0.08228216308231449 0 +151 0.5904083838340058 0.08228216308235539 0 +152 0.4136070291733457 0.4628717821701323 0 +153 0.4148189164379924 0.9172352270398474 0 +154 0.08338824406742756 0.3830367563474834 0 +155 0.2957209880529692 0.7786893580646597 0 +156 0.9144657258064712 0.9144657258064937 0 +157 0.2680988053274525 0.1909346846844313 0 +158 0.9149725053795364 0.4473134504396444 0 +159 0.7338852877142129 0.1909375646353259 0 +160 0.4236049909386848 0.3781700697208207 0 +161 0.9145054163367383 0.3551935550946583 0 +162 0.586641441358917 0.3499708336643422 0 +163 0.9079333285173817 0.5998169428123623 0 +164 0.3245076187156029 0.6141056690030582 0 +165 0.08177516529375806 0.4697821522408521 0 +166 0.5853510056718721 0.4409697595979385 0 +167 0.9125113573522844 0.1960879040766246 0 +168 0.5835294349686022 0.2001102425799576 0 +169 0.1731520427478278 0.2378312005174092 0 +170 0.5836079544634742 0.5946363314726181 0 +171 0.5817322605430346 0.9172175367941724 0 +172 0.8131769161646418 0.716182322971773 0 +173 0.781113809444055 0.447072691471184 0 +174 0.5778165594931266 0.6792562300615532 0 +175 0.08311302840030867 0.6086370558028521 0 +176 0.3263815004215286 0.07675344797419922 0 +177 0.1745511627700396 0.07739073474494967 0 +178 0.8144489820758134 0.5727363821356337 0 +179 0.6887140301042267 0.4730483571684463 0 +180 0.8208832842029213 0.07981575111406404 0 +181 0.6750048183205375 0.07695006187298489 0 +182 0.8119752499461039 0.2276432156713508 0 +183 0.3323813655669311 0.2413778890900182 0 +184 0.3180879668862098 0.9229445113575938 0 +185 0.8126944403530443 0.3245650512472272 0 +186 0.6802794217489559 0.3247866886465339 0 +187 0.8180261120204082 0.9217429519196522 0 +188 0.6838122878606022 0.5675087270307926 0 +189 0.9277897408896619 0.6792769873510663 0 +190 0.9241257946360351 0.819825726346481 0 +191 0.5755189860618838 0.8161905396341169 0 +192 0.6816298810411938 0.7094234759399863 0 +193 0.6801644431765854 0.9258297190087702 0 +194 0.1745855079662627 0.6011024519914292 0 +195 0.1799197891137766 0.9259994774959697 0 +196 0.7807987128399495 0.8248315408813496 0 +197 0.07328042081328301 0.698649062736254 0 +198 0.07149093984708513 0.9285090601529152 0 +199 0.7105794435574802 0.829402425867841 0 +200 0.4276038155974892 0.7021957014489701 0 +201 0.3132006487427972 0.34883114381616 0 +202 0.3000160668595418 0.5239179613877745 0 +203 0.1941810387014985 0.5243734794707343 0 +204 0.4293031316142676 0.8406114314494514 0 +205 0.1962145234109274 0.3229594084248003 0 +206 0.06897757586503714 0.8298196180377231 0 +207 0.1688439169391101 0.7298171819140226 0 +208 0.6834236206749581 0.2441569009221671 0 +209 0.1876595666215892 0.8530559946755313 0 +210 0.7452581941864262 0.5947443040625404 0 +211 0.4335415525345332 0.1511754128320155 0 +212 0.06824071086501517 0.1549208972345935 0 +213 0.4371777799889955 0.5713115089863299 0 +214 0.8434127815887484 0.4652828483414261 0 +215 0.4264377680851403 0.2793855419253793 0 +216 0.06400301098277618 0.2813311503204765 0 +217 0.07223671937087728 0.522378015703996 0 +218 0.8411621086417369 0.7880188090232847 0 +219 0.9506615648032275 0.2755537272329055 0 +220 0.5493384351967636 0.2755537272329582 0 +221 0.9546343534472315 0.5248304128601845 0 +222 0.2658856319426988 0.8326032114945319 0 +223 0.5485042635581836 0.5236789895087931 0 +224 0.672363939793291 0.7702760849973336 0 +225 0.1477918590757341 0.3638881763539079 0 +226 0.3604572358757815 0.4701947444027691 0 +227 0.1553695381649042 0.4834541253224659 0 +228 0.7922931106601769 0.1510672961237151 0 +229 0.2039259797081894 0.1542442601120328 0 +230 0.9383453024464026 0.1467471704099969 0 +231 0.5614829285129257 0.1469216783625873 0 +232 0.2510023508318048 0.746199270607341 0 +233 0.3067900778517027 0.2927293884444851 0 +234 0.5569328744902532 0.7305536287244523 0 +235 0.1622778120327867 0.8026925325339693 0 +236 0.7076940317551 0.4210767639975784 0 +237 0.8048470624415416 0.519394040066643 0 +238 0.1225887292923334 0.9488942337473127 0 +239 0.4413874323739027 0.5067235290565875 0 +240 0.2734411088195188 0.4250000000004912 0 +241 0.7680530510929616 0.944438816267743 0 +242 0.7275352918284758 0.05541776111114569 0 +243 0.221641553782167 0.05407312164642285 0 +244 0.9443854045334297 0.7306301674576658 0 +245 0.2697030564058146 0.9479891057015082 0 +246 0.5501985962236302 0.8691335385847074 0 +247 0.6398288186580749 0.2085640600941155 0 +248 0.04297768516458864 0.7815704588581727 0 +249 0.7930269439410951 0.6376524696840798 0 +250 0.2797435937332181 0.6263811930372123 0 +251 0.04495565035227427 0.3298531849481773 0 +252 0.3475090006742731 0.7557865696296231 0 +253 0.8685922071692829 0.9501772851117655 0 +254 0.9438769877964219 0.4003896758173792 0 +255 0.6280906513127482 0.94960326569191 0 +256 0.1967733792658222 0.6516265018224703 0 +257 0.9508617426784171 0.8697376429505567 0 +258 0.3687447446332224 0.951966057290653 0 +259 0.4530012671215076 0.4217512756021096 0 +260 0.8586011264226888 0.7004733390943337 0 +261 0.6239989424617827 0.8074881498108039 0 +262 0.05099970239404802 0.426314248579828 0 +263 0.2925005591694761 0.1426223411053944 0 +264 0.305207738169825 0.8727857207229156 0 +265 0.6348728618428262 0.4700601279938092 0 +266 0.707555584329038 0.1459572049360533 0 +267 0.3703826390563846 0.0498941951627769 0 +268 0.1278464502656727 0.049418485379305 0 +269 0.8728691879736057 0.04974918551766429 0 +270 0.6271308120255006 0.04974918551745746 0 +271 0.2200127729456497 0.4213843599784256 0 +272 0.7054635908386302 0.6326818321366694 0 +273 0.6297195112761721 0.6923634931165709 0 +274 0.5590564406772021 0.3976532777493174 0 +275 0.4554852954175448 0.3280252590405957 0 +276 0.2951391753044041 0.6768620819250089 0 +277 0.3653395866195844 0.3840462060838131 0 +278 0.8657832444083408 0.5750292237499598 0 +279 0.04812584816282326 0.8752296209019026 0 +280 0.2274229303225645 0.2283786718733304 0 +281 0.7929812534857181 0.8721413812646253 0 +282 0.8613181555813366 0.2250971708537617 0 +283 0.302038566059371 0.4732378655115485 0 +284 0.5250000000008669 0.9749999999999995 0 +285 0.863084976138179 0.3283274317326611 0 +286 0.6425362039363494 0.356617561481856 0 +287 0.4472598698251035 0.05274013017496585 0 +288 0.05274013017492163 0.05274013017490473 0 +289 0.633503529867719 0.5915487292647263 0 +290 0.5526109541212529 0.05261095412119619 0 +291 0.9473890458787847 0.05261095412122744 0 +292 0.2805712647230724 0.05315447604836989 0 +293 0.7674128199541357 0.7194190668697971 0 +294 0.7833712512266024 0.04219929803434534 0 +295 0.5487793926557176 0.6307922157761511 0 +296 0.2658230101168828 0.3291687264736836 0 +297 0.0547648695351462 0.6527386643409112 0 +298 0.1978147043492032 0.4680528260255763 0 +299 0.7950001852695032 0.7737479003646668 0 +300 0.3679032874478954 0.6024418397517073 0 +301 0.7985642490559038 0.2769941840372488 0 +302 0.4508015547927592 0.9510439742348286 0 +303 0.1027784116315343 0.42615990424216 0 +304 0.5450009356570773 0.4758152373590973 0 +305 0.3614732574716991 0.648061044271667 0 +306 0.7923757857489827 0.3982936344743731 0 +307 0.1398573839923756 0.20357464747244 0 +308 0.1317784497722384 0.2538308885296189 0 +309 0.7653541748826322 0.3231671134183898 0 +310 0.9508335012155067 0.634368426216197 0 +311 0.1938221051813462 0.368417228951019 0 +312 0.6970656549900806 0.873798745816344 0 +313 0.3641473631020326 0.898077364791648 0 +314 0.04365068085189564 0.5698834005217178 0 +315 0.9553388838302084 0.4769228118404157 0 +316 0.8936499596027034 0.4021633966843485 0 +317 0.9553583061799507 0.3229831670250009 0 +318 0.5446416938200876 0.3229831670250622 0 +319 0.4469552361297266 0.7457476058754668 0 +320 0.6063613968686122 0.398005704001083 0 +321 0.3014537146400471 0.7264942782919481 0 +322 0.9498952275993305 0.9498952275993304 0 +323 0.131019452654394 0.6198094917345889 0 +324 0.4503889040059942 0.6685258698479203 0 +325 0.4502359084118406 0.7949796857708165 0 +326 0.3672531663320284 0.8030677114988526 0 +327 0.9536418849071302 0.5775843035094919 0 +328 0.3259666294139303 0.5657182286625093 0 +329 0.3621992483416103 0.1060473184492153 0 +330 0.1364718275415759 0.1077781724580602 0 +331 0.8687626374697649 0.1104205510858366 0 +332 0.6318677745464465 0.1096728687598075 0 +333 0.3660701157659065 0.1994005922261431 0 +334 0.2831563534688857 0.237792068910088 0 +335 0.4527760908179677 0.8773259662970352 0 +336 0.6996800753790632 0.5219425251044406 0 +337 0.7658048692751789 0.2311802098173873 0 +338 0.7373155702438111 0.4698184962838625 0 +339 0.2490006631940804 0.5267574092907412 0 +340 0.9581605839238559 0.78439844296799 0 +341 0.1235614307272812 0.7135481449108569 0 +342 0.7958635554319546 0.6786902899270544 0 +343 0.3777661006090199 0.2541663544336427 0 +344 0.956125426865132 0.2288404618086879 0 +345 0.5438745731349182 0.2288404618087291 0 +346 0.8985259885704222 0.8627850916897836 0 +347 0.541931453872776 0.7828792939016485 0 +348 0.4613614695698599 0.2320522101857836 0 +349 0.03656736801877967 0.2349626730650702 0 +350 0.3764144354916288 0.4325699786928565 0 +351 0.4559717414410547 0.112720461559786 0 +352 0.6958237804441326 0.3695005176780035 0 +353 0.217343346972753 0.9603915121204756 0 +354 0.04672873578903974 0.1131713270004445 0 +355 0.8936579525417213 0.6519967055178664 0 +356 0.3161682253790467 0.1920057699567232 0 +357 0.6040442625403145 0.6378507515266176 0 +358 0.2066411949829541 0.2755090592442346 0 +359 0.310081137389942 0.8234752714093748 0 +360 0.7153039662628493 0.9588578864282711 0 +361 0.8636256715457723 0.8996035022193374 0 +362 0.1126820996485443 0.8245440720281536 0 +363 0.8909033484963815 0.1550330460230882 0 +364 0.6110586734735325 0.1575978682283994 0 +365 0.2145282583234742 0.7076841532292177 0 +366 0.6913856346300077 0.1974394325196086 0 +367 0.7952245059022367 0.1117664809887161 0 +368 0.2258223227886782 0.61463549868505 0 +369 0.2059529007851119 0.1123540848004262 0 +370 0.5424963210487693 0.5749196876262659 0 +371 0.3848104466741283 0.7214058138712653 0 +372 0.4534730002148297 0.6136828148583167 0 +373 0.4615991457337512 0.4682693173657395 0 +374 0.188423647303393 0.1947720688720435 0 +375 0.8783200970377512 0.8125596987563636 0 +376 0.9543145456197994 0.1016302179138922 0 +377 0.545685454380176 0.1016302179139483 0 +378 0.03839055866046147 0.4822457360884172 0 +379 0.7045949263240072 0.2863736189208096 0 +380 0.9128155433308671 0.4985999294786986 0 +381 0.5884613853154571 0.4938841472329884 0 +382 0.9104233359930838 0.3026216579179801 0 +383 0.5904438646854993 0.3049651166252613 0 +384 0.09713602668249359 0.6527745883666145 0 +385 0.03887619954705014 0.7267824236490827 0 +386 0.6249660332697136 0.9024268829841018 0 +387 0.3945081250391737 0.5086216260080166 0 +388 0.03586871936274997 0.3778408379757219 0 +389 0.9101812144459118 0.5532519930298655 0 +390 0.1060213996700478 0.3322483481289706 0 +391 0.4664183106955475 0.3755893208725736 0 +392 0.1100079795410351 0.1722712281897298 0 +393 0.9613964173327638 0.1843351072589142 0 +394 0.5377773873232892 0.185174476550079 0 +395 0.908552373477584 0.2467557559811809 0 +396 0.5973235192365171 0.2493400781903916 0 +397 0.5380408206402242 0.9279578643006426 0 +398 0.570477288749999 0.9616297777977875 0 +399 0.388809937352209 0.1439909587215921 0 +400 0.08851609880495637 0.5660856307805239 0 +401 0.7429271426101407 0.8062468965766599 0 +402 0.4042680579742869 0.3365258843853147 0 +403 0.253636454654543 0.7891533306355344 0 +404 0.5971882674595442 0.8573507843388877 0 +405 0.2923638200484459 0.5873085406877392 0 +406 0.3950615394091093 0.8580390674132674 0 +407 0.7033093277020556 0.6788427902146031 0 +408 0.3023102094950434 0.3915748769900622 0 +409 0.5367057653278194 0.6781204149124314 0 +410 0.1731217831469617 0.6871764944881633 0 +411 0.114840651036257 0.5007584218131156 0 +412 0.2088391947632064 0.5672275834392964 0 +413 0.844937044459046 0.7473303306625639 0 +414 0.1641339954784737 0.5557950052192703 0 +415 0.5953173928749872 0.5493137725928927 0 +416 0.820934274056461 0.9632718106598323 0 +417 0.533529807231658 0.8236406744240944 0 +418 0.1644936903251171 0.8837557738168327 0 +419 0.7718970027153531 0.5607055355858108 0 +420 0.3250000000013523 0.9655701393925751 0 +421 0.4750000000019655 0.9750000000010288 0 +422 0.03978125740074399 0.960218742599256 0 +423 0.3253336291711085 0.03544175688164675 0 +424 0.1748078333634281 0.03617646835413551 0 +425 0.8254247446804416 0.03435284693321473 0 +426 0.6756672745958702 0.0357512158071291 0 +427 0.6628021485844944 0.2825148728679202 0 +428 0.9666296242476616 0.8247923624528213 0 +429 0.7262186354950022 0.5594687286836966 0 +430 0.8241129996215284 0.1882923768785796 0 +431 0.9088918317845918 0.9589589791938139 0 +432 0.819424811763265 0.4336942417943384 0 +433 0.9662072015708849 0.6752162248252229 0 +434 0.3971069982525843 0.6749262283681365 0 +435 0.1653861026614112 0.2868238168508843 0 +436 0.6587830526394849 0.5063159066623107 0 +437 0.8714320850882549 0.4382785859906945 0 +438 0.2063242591271887 0.8894981180966645 0 +439 0.03892138020403911 0.1919474368306918 0 +440 0.8333079671407269 0.6076109323166973 0 +441 0.7454533974032451 0.8494040846239586 0 +442 0.4618493871645863 0.1836344920009519 0 +443 0.2950123292983554 0.09984584366636108 0 +444 0.7242114300086356 0.3295334187169661 0 +445 0.7067984552896118 0.1023722060217777 0 +446 0.6747118121507834 0.9668581742257903 0 +447 0.9598062456738445 0.9097426565265226 0 +448 0.1739703730760638 0.9670570446727518 0 +449 0.8247803024369251 0.3636788725799618 0 +450 0.7538203922310709 0.4182421246471445 0 +451 0.7177177581065539 0.7273233157787865 0 +452 0.8402678943912008 0.5411602335518622 0 +453 0.538379832219864 0.4352268251502362 0 +454 0.4111670035829751 0.9610060386226685 0 +455 0.7771462665882074 0.4892793244638133 0 +456 0.8386984060096404 0.2593914294785446 0 +457 0.9613759328541867 0.3634304688634304 0 +458 0.2217690901300638 0.8262590333895744 0 +459 0.5827052920675764 0.7770999433022546 0 +460 0.6660935763644384 0.4390947530194214 0 +461 0.0363057157574701 0.6162518241335816 0 +462 0.6701508409971281 0.8253852743126282 0 +463 0.9616308407719858 0.4368556474621304 0 +464 0.8702877136028581 0.3690184257335378 0 +465 0.7252371199426095 0.2402131933611854 0 +466 0.3529882046559227 0.3232949172974672 0 +467 0.6482957873290891 0.5459806156268199 0 +468 0.5949032871776845 0.7126403640857071 0 +469 0.9183521973017387 0.7798324567765729 0 +470 0.09958604831713944 0.8986123864431483 0 +471 0.6527274392936553 0.7360364783364266 0 +472 0.9010250480356772 0.7078542953670037 0 +473 0.8258095122949474 0.8302380129709274 0 +474 0.4130016069039791 0.1798839974836216 0 +475 0.3248802652227022 0.1177304182460597 0 +476 0.7508394496900351 0.1577320708287108 0 +477 0.6723408388110276 0.6055473837736366 0 +478 0.6746697257154997 0.1185179024766501 0 +479 0.7217910584917159 0.9185857369716119 0 +480 0.2809449516509162 0.9088634335925578 0 +481 0.07940909152712169 0.7401725377300649 0 +482 0.09862492854378307 0.1294814370156988 0 +483 0.9106325418702413 0.03807098921469292 0 +484 0.5893674581292903 0.03807098921450259 0 +485 0.4122346433185356 0.03832254180285179 0 +486 0.08943127502491095 0.03807407642297211 0 +487 0.149303824887732 0.7584789348317238 0 +488 0.5376049679439473 0.361746544082568 0 +489 0.2420825208955287 0.1495769511103866 0 +490 0.3489751088352508 0.281093904597925 0 +491 0.7812571500901641 0.9088189765443493 0 +492 0.8399509015978703 0.2957321636275806 0 +493 0.03109074608805749 0.8261856834486344 0 +494 0.1504079253089343 0.8471774048494626 0 +495 0.03187960908213047 0.9227914847306899 0 +496 0.0776046194875037 0.9672805866284976 0 +497 0.03338429797909587 0.6856340301455962 0 +498 0.3432423094151338 0.5161175029780393 0 +499 0.6665910041537857 0.6738550527957845 0 +500 0.4655766584575174 0.8323659740373862 0 +501 0.1573783003985645 0.3274932325989703 0 +502 0.4081540522517544 0.8129785112084498 0 +503 0.6611072195990979 0.8907304055097682 0 +504 0.7095998210563753 0.7866256131543047 0 +505 0.2290183530327883 0.3095564955825394 0 +506 0.6437010800904848 0.2512741234131456 0 +507 0.261323309176359 0.7042871362812031 0 +508 0.1932953254146463 0.7551760472738744 0 +509 0.4638076361094834 0.7115671323830882 0 +510 0.8670089483915767 0.1836623233851438 0 +511 0.6301774042875443 0.4273453846959783 0 +512 0.8431028215326135 0.5016702874882334 0 +513 0.1268554022681612 0.5822733388131391 0 +514 0.633531352306924 0.313494759529419 0 +515 0.4614175637692671 0.5430812034740132 0 +516 0.1379185477709557 0.9072704423656233 0 +517 0.4138882886873885 0.5440477396665789 0 +518 0.468656906614509 0.2778926022301158 0 +519 0.7888035023986646 0.3564981015923873 0 +520 0.02862716420300607 0.2780210011911859 0 +521 0.4080871695424778 0.5947052323417098 0 +522 0.2223044471431596 0.4983877528408513 0 +523 0.1228254935227152 0.3910455860675279 0 +524 0.2830951022990783 0.36134985766538 0 +525 0.2810002251055679 0.5542671546788889 0 +526 0.8297517975182214 0.682905455391423 0 +527 0.1036525405690947 0.2782748407342104 0 +528 0.1194234122720508 0.463070049054326 0 +529 0.08134933879179561 0.7952160494156135 0 +530 0.7066187094383376 0.5919901951374671 0 +531 0.408586013518356 0.4156839405292063 0 +532 0.149657910737141 0.5213182858351513 0 +533 0.4680019492934596 0.9176602988818129 0 +534 0.1619280815217321 0.6375250237786889 0 +535 0.7798184944845393 0.1911421223258449 0 +536 0.2267209912221642 0.3421184203464783 0 +537 0.9109342284983142 0.1211808450034362 0 +538 0.5894115807795441 0.1214653661223027 0 +539 0.2748191696102124 0.4995701331916044 0 +540 0.2260952436543461 0.8581611924339676 0 +541 0.2259907767114256 0.1835813273304449 0 +542 0.09159307712091579 0.8589510400097642 0 +543 0.3321508325490524 0.7950159431214792 0 +544 0.2306815662097859 0.9205940056827621 0 +545 0.8773535914122752 0.4769299440420289 0 +546 0.4704738850732274 0.5781380443947324 0 +547 0.325467740415593 0.652693754555897 0 +548 0.8101880789298173 0.4741339301908435 0 +549 0.4700115909608551 0.0804079926512319 0 +550 0.02978850943595957 0.08018491266555673 0 +551 0.8698750772662855 0.6157752214277902 0 +552 0.784355289517629 0.5970139351166112 0 +553 0.1721771058479423 0.1215138882363577 0 +554 0.7556437831107942 0.6295380145242017 0 +555 0.8264923792233754 0.1214289741489539 0 +556 0.02927735552734363 0.5249295931888165 0 +557 0.4723952028845136 0.02760479711492055 0 +558 0.02760479711531391 0.02760479711545201 0 +559 0.972512494735176 0.02748750526471954 0 +560 0.5274875052647959 0.02748750526528779 0 +561 0.8320071794548398 0.8763905399065012 0 +562 0.7753162581913444 0.08079568547707067 0 +563 0.9748954462282632 0.9748954462283012 0 +$EndNodes +$Elements +1061 +1 1 2 2 6 5 84 +2 1 2 2 6 84 85 +3 1 2 2 6 85 86 +4 1 2 2 6 86 87 +5 1 2 2 6 87 88 +6 1 2 2 6 88 89 +7 1 2 2 6 89 90 +8 1 2 2 6 90 91 +9 1 2 2 6 91 92 +10 1 2 2 6 92 7 +11 1 2 2 7 7 93 +12 1 2 2 7 93 94 +13 1 2 2 7 94 95 +14 1 2 2 7 95 96 +15 1 2 2 7 96 97 +16 1 2 2 7 97 98 +17 1 2 2 7 98 99 +18 1 2 2 7 99 100 +19 1 2 2 7 100 101 +20 1 2 2 7 101 6 +21 2 2 1 1 466 233 490 +22 2 2 1 1 319 144 371 +23 2 2 1 1 146 215 343 +24 2 2 1 1 215 124 343 +25 2 2 1 1 86 211 351 +26 2 2 1 1 212 81 354 +27 2 2 1 1 260 355 472 +28 2 2 1 1 184 264 313 +29 2 2 1 1 218 134 375 +30 2 2 1 1 200 319 371 +31 2 2 1 1 235 107 458 +32 2 2 1 1 209 235 458 +33 2 2 1 1 264 119 313 +34 2 2 1 1 31 32 219 +35 2 2 1 1 89 88 220 +36 2 2 1 1 36 37 221 +37 2 2 1 1 49 241 416 +38 2 2 1 1 212 147 439 +39 2 2 1 1 201 233 466 +40 2 2 1 1 251 78 520 +41 2 2 1 1 215 146 348 +42 2 2 1 1 93 7 223 +43 2 2 1 1 132 224 261 +44 2 2 1 1 147 216 349 +45 2 2 1 1 84 290 377 +46 2 2 1 1 291 27 376 +47 2 2 1 1 148 211 399 +48 2 2 1 1 124 215 402 +49 2 2 1 1 211 86 442 +50 2 2 1 1 85 84 377 +51 2 2 1 1 27 28 376 +52 2 2 1 1 390 216 527 +53 2 2 1 1 147 212 392 +54 2 2 1 1 355 189 472 +55 2 2 1 1 29 230 376 +56 2 2 1 1 231 86 377 +57 2 2 1 1 251 216 390 +58 2 2 1 1 49 50 241 +59 2 2 1 1 124 466 490 +60 2 2 1 1 97 96 234 +61 2 2 1 1 118 273 357 +62 2 2 1 1 211 148 351 +63 2 2 1 1 81 212 439 +64 2 2 1 1 138 243 292 +65 2 2 1 1 135 222 264 +66 2 2 1 1 107 235 508 +67 2 2 1 1 319 97 325 +68 2 2 1 1 379 105 444 +69 2 2 1 1 97 98 325 +70 2 2 1 1 240 142 271 +71 2 2 1 1 226 108 350 +72 2 2 1 1 152 226 350 +73 2 2 1 1 105 309 444 +74 2 2 1 1 38 310 327 +75 2 2 1 1 111 286 352 +76 2 2 1 1 235 487 508 +77 2 2 1 1 224 192 451 +78 2 2 1 1 109 225 311 +79 2 2 1 1 77 78 251 +80 2 2 1 1 234 96 409 +81 2 2 1 1 224 451 504 +82 2 2 1 1 338 236 450 +83 2 2 1 1 203 227 298 +84 2 2 1 1 238 198 470 +85 2 2 1 1 238 470 516 +86 2 2 1 1 286 186 352 +87 2 2 1 1 216 251 520 +88 2 2 1 1 250 139 368 +89 2 2 1 1 171 246 404 +90 2 2 1 1 179 236 338 +91 2 2 1 1 139 256 368 +92 2 2 1 1 386 171 404 +93 2 2 1 1 407 140 451 +94 2 2 1 1 256 139 365 +95 2 2 1 1 59 60 245 +96 2 2 1 1 59 245 420 +97 2 2 1 1 260 113 355 +98 2 2 1 1 273 174 357 +99 2 2 1 1 40 41 244 +100 2 2 1 1 140 293 451 +101 2 2 1 1 256 365 410 +102 2 2 1 1 216 147 527 +103 2 2 1 1 375 134 469 +104 2 2 1 1 335 153 406 +105 2 2 1 1 233 201 296 +106 2 2 1 1 108 226 283 +107 2 2 1 1 177 243 369 +108 2 2 1 1 243 138 369 +109 2 2 1 1 28 29 376 +110 2 2 1 1 86 85 377 +111 2 2 1 1 40 244 433 +112 2 2 1 1 165 262 303 +113 2 2 1 1 262 154 303 +114 2 2 1 1 366 159 465 +115 2 2 1 1 183 233 334 +116 2 2 1 1 233 104 334 +117 2 2 1 1 165 217 378 +118 2 2 1 1 451 106 504 +119 2 2 1 1 208 366 465 +120 2 2 1 1 100 99 246 +121 2 2 1 1 241 187 416 +122 2 2 1 1 89 275 518 +123 2 2 1 1 192 224 471 +124 2 2 1 1 224 132 471 +125 2 2 1 1 271 142 298 +126 2 2 1 1 299 218 473 +127 2 2 1 1 202 283 498 +128 2 2 1 1 283 226 498 +129 2 2 1 1 196 299 473 +130 2 2 1 1 138 292 443 +131 2 2 1 1 136 235 362 +132 2 2 1 1 95 96 324 +133 2 2 1 1 442 146 474 +134 2 2 1 1 100 246 397 +135 2 2 1 1 204 335 406 +136 2 2 1 1 219 32 317 +137 2 2 1 1 89 220 318 +138 2 2 1 1 223 7 304 +139 2 2 1 1 36 221 315 +140 2 2 1 1 106 293 299 +141 2 2 1 1 293 172 299 +142 2 2 1 1 406 326 502 +143 2 2 1 1 341 197 384 +144 2 2 1 1 130 217 411 +145 2 2 1 1 217 165 411 +146 2 2 1 1 21 22 242 +147 2 2 1 1 221 37 327 +148 2 2 1 1 47 48 253 +149 2 2 1 1 119 326 406 +150 2 2 1 1 11 12 243 +151 2 2 1 1 93 223 370 +152 2 2 1 1 134 218 413 +153 2 2 1 1 227 109 298 +154 2 2 1 1 31 219 344 +155 2 2 1 1 220 88 345 +156 2 2 1 1 62 63 238 +157 2 2 1 1 174 234 409 +158 2 2 1 1 89 90 275 +159 2 2 1 1 310 163 327 +160 2 2 1 1 324 96 509 +161 2 2 1 1 203 339 412 +162 2 2 1 1 243 12 292 +163 2 2 1 1 242 22 294 +164 2 2 1 1 173 338 450 +165 2 2 1 1 227 203 532 +166 2 2 1 1 247 168 364 +167 2 2 1 1 116 247 364 +168 2 2 1 1 217 130 400 +169 2 2 1 1 271 109 311 +170 2 2 1 1 222 155 359 +171 2 2 1 1 141 240 271 +172 2 2 1 1 275 215 518 +173 2 2 1 1 155 222 403 +174 2 2 1 1 57 58 258 +175 2 2 1 1 222 135 540 +176 2 2 1 1 203 298 522 +177 2 2 1 1 43 44 257 +178 2 2 1 1 218 299 413 +179 2 2 1 1 104 233 296 +180 2 2 1 1 193 255 386 +181 2 2 1 1 245 184 420 +182 2 2 1 1 312 122 462 +183 2 2 1 1 112 252 321 +184 2 2 1 1 252 155 321 +185 2 2 1 1 52 53 255 +186 2 2 1 1 215 275 402 +187 2 2 1 1 226 152 387 +188 2 2 1 1 240 108 283 +189 2 2 1 1 121 341 384 +190 2 2 1 1 282 182 430 +191 2 2 1 1 249 113 342 +192 2 2 1 1 109 227 528 +193 2 2 1 1 117 228 555 +194 2 2 1 1 301 105 337 +195 2 2 1 1 182 301 337 +196 2 2 1 1 244 189 433 +197 2 2 1 1 348 146 442 +198 2 2 1 1 168 247 396 +199 2 2 1 1 299 172 413 +200 2 2 1 1 312 199 441 +201 2 2 1 1 225 109 523 +202 2 2 1 1 118 272 499 +203 2 2 1 1 155 232 321 +204 2 2 1 1 122 312 503 +205 2 2 1 1 127 380 389 +206 2 2 1 1 380 221 389 +207 2 2 1 1 295 94 370 +208 2 2 1 1 282 430 510 +209 2 2 1 1 193 386 503 +210 2 2 1 1 229 115 553 +211 2 2 1 1 272 407 499 +212 2 2 1 1 286 162 514 +213 2 2 1 1 142 240 283 +214 2 2 1 1 230 29 393 +215 2 2 1 1 86 231 394 +216 2 2 1 1 277 108 408 +217 2 2 1 1 201 277 408 +218 2 2 1 1 162 383 514 +219 2 2 1 1 268 177 330 +220 2 2 1 1 267 148 329 +221 2 2 1 1 176 267 329 +222 2 2 1 1 149 268 330 +223 2 2 1 1 185 285 449 +224 2 2 1 1 147 349 439 +225 2 2 1 1 139 250 276 +226 2 2 1 1 151 270 332 +227 2 2 1 1 270 181 332 +228 2 2 1 1 269 150 331 +229 2 2 1 1 180 269 331 +230 2 2 1 1 246 171 397 +231 2 2 1 1 103 237 419 +232 2 2 1 1 237 178 419 +233 2 2 1 1 68 69 248 +234 2 2 1 1 449 285 464 +235 2 2 1 1 38 39 310 +236 2 2 1 1 97 234 347 +237 2 2 1 1 21 242 426 +238 2 2 1 1 11 243 424 +239 2 2 1 1 236 111 352 +240 2 2 1 1 105 301 309 +241 2 2 1 1 301 185 309 +242 2 2 1 1 160 277 402 +243 2 2 1 1 136 341 487 +244 2 2 1 1 91 92 259 +245 2 2 1 1 244 41 340 +246 2 2 1 1 462 224 504 +247 2 2 1 1 125 390 527 +248 2 2 1 1 339 102 412 +249 2 2 1 1 95 94 295 +250 2 2 1 1 255 53 398 +251 2 2 1 1 228 137 367 +252 2 2 1 1 230 167 363 +253 2 2 1 1 168 231 364 +254 2 2 1 1 250 164 547 +255 2 2 1 1 66 67 279 +256 2 2 1 1 81 82 354 +257 2 2 1 1 14 15 267 +258 2 2 1 1 9 10 268 +259 2 2 1 1 273 118 499 +260 2 2 1 1 24 25 269 +261 2 2 1 1 19 20 270 +262 2 2 1 1 240 141 408 +263 2 2 1 1 241 50 360 +264 2 2 1 1 85 86 351 +265 2 2 1 1 175 400 513 +266 2 2 1 1 75 76 262 +267 2 2 1 1 286 111 320 +268 2 2 1 1 162 286 320 +269 2 2 1 1 228 117 430 +270 2 2 1 1 371 112 434 +271 2 2 1 1 219 382 395 +272 2 2 1 1 382 128 395 +273 2 2 1 1 383 220 396 +274 2 2 1 1 129 383 396 +275 2 2 1 1 330 115 482 +276 2 2 1 1 261 122 404 +277 2 2 1 1 191 261 404 +278 2 2 1 1 323 175 513 +279 2 2 1 1 223 381 415 +280 2 2 1 1 132 261 459 +281 2 2 1 1 163 310 355 +282 2 2 1 1 310 189 355 +283 2 2 1 1 133 312 441 +284 2 2 1 1 137 228 476 +285 2 2 1 1 115 229 374 +286 2 2 1 1 381 131 415 +287 2 2 1 1 232 107 508 +288 2 2 1 1 396 247 506 +289 2 2 1 1 245 60 353 +290 2 2 1 1 342 113 526 +291 2 2 1 1 161 254 316 +292 2 2 1 1 12 13 292 +293 2 2 1 1 276 250 547 +294 2 2 1 1 117 331 363 +295 2 2 1 1 332 116 364 +296 2 2 1 1 22 23 294 +297 2 2 1 1 167 230 393 +298 2 2 1 1 231 168 394 +299 2 2 1 1 370 223 415 +300 2 2 1 1 115 392 482 +301 2 2 1 1 47 253 431 +302 2 2 1 1 296 201 524 +303 2 2 1 1 205 311 501 +304 2 2 1 1 208 247 366 +305 2 2 1 1 107 232 403 +306 2 2 1 1 232 155 403 +307 2 2 1 1 311 225 501 +308 2 2 1 1 215 348 518 +309 2 2 1 1 333 114 399 +310 2 2 1 1 242 181 426 +311 2 2 1 1 143 236 352 +312 2 2 1 1 279 67 493 +313 2 2 1 1 243 177 424 +314 2 2 1 1 164 300 305 +315 2 2 1 1 300 145 305 +316 2 2 1 1 280 157 334 +317 2 2 1 1 104 280 334 +318 2 2 1 1 112 305 434 +319 2 2 1 1 144 252 371 +320 2 2 1 1 263 114 356 +321 2 2 1 1 157 263 356 +322 2 2 1 1 280 169 374 +323 2 2 1 1 288 149 550 +324 2 2 1 1 190 257 346 +325 2 2 1 1 109 271 298 +326 2 2 1 1 190 346 375 +327 2 2 1 1 199 462 504 +328 2 2 1 1 99 100 335 +329 2 2 1 1 333 399 474 +330 2 2 1 1 123 517 521 +331 2 2 1 1 239 7 515 +332 2 2 1 1 134 244 469 +333 2 2 1 1 233 183 490 +334 2 2 1 1 148 287 549 +335 2 2 1 1 149 354 550 +336 2 2 1 1 402 277 466 +337 2 2 1 1 277 160 531 +338 2 2 1 1 300 123 521 +339 2 2 1 1 341 136 481 +340 2 2 1 1 289 118 357 +341 2 2 1 1 170 289 357 +342 2 2 1 1 170 295 370 +343 2 2 1 1 7 239 373 +344 2 2 1 1 225 390 501 +345 2 2 1 1 349 216 520 +346 2 2 1 1 333 146 343 +347 2 2 1 1 183 333 343 +348 2 2 1 1 171 255 398 +349 2 2 1 1 351 148 549 +350 2 2 1 1 234 132 459 +351 2 2 1 1 336 188 467 +352 2 2 1 1 136 362 529 +353 2 2 1 1 103 336 338 +354 2 2 1 1 336 179 338 +355 2 2 1 1 156 253 361 +356 2 2 1 1 95 324 372 +357 2 2 1 1 94 95 372 +358 2 2 1 1 236 179 460 +359 2 2 1 1 111 236 460 +360 2 2 1 1 280 104 358 +361 2 2 1 1 169 280 358 +362 2 2 1 1 436 336 467 +363 2 2 1 1 264 222 359 +364 2 2 1 1 254 158 316 +365 2 2 1 1 137 242 562 +366 2 2 1 1 284 397 398 +367 2 2 1 1 258 184 313 +368 2 2 1 1 211 442 474 +369 2 2 1 1 261 224 462 +370 2 2 1 1 132 234 468 +371 2 2 1 1 350 277 531 +372 2 2 1 1 266 159 366 +373 2 2 1 1 116 266 366 +374 2 2 1 1 235 136 487 +375 2 2 1 1 166 274 320 +376 2 2 1 1 274 162 320 +377 2 2 1 1 252 144 326 +378 2 2 1 1 153 258 313 +379 2 2 1 1 276 112 321 +380 2 2 1 1 253 187 361 +381 2 2 1 1 199 312 462 +382 2 2 1 1 170 370 415 +383 2 2 1 1 234 174 468 +384 2 2 1 1 57 258 454 +385 2 2 1 1 363 331 537 +386 2 2 1 1 332 364 538 +387 2 2 1 1 238 63 496 +388 2 2 1 1 141 271 311 +389 2 2 1 1 307 147 392 +390 2 2 1 1 334 157 356 +391 2 2 1 1 183 334 356 +392 2 2 1 1 257 44 447 +393 2 2 1 1 55 56 421 +394 2 2 1 1 54 55 284 +395 2 2 1 1 284 55 421 +396 2 2 1 1 238 195 448 +397 2 2 1 1 62 238 448 +398 2 2 1 1 106 299 401 +399 2 2 1 1 299 196 401 +400 2 2 1 1 75 262 378 +401 2 2 1 1 64 4 422 +402 2 2 1 1 4 65 422 +403 2 2 1 1 140 249 342 +404 2 2 1 1 248 206 493 +405 2 2 1 1 206 279 493 +406 2 2 1 1 390 125 501 +407 2 2 1 1 99 335 500 +408 2 2 1 1 235 209 494 +409 2 2 1 1 236 143 450 +410 2 2 1 1 226 387 498 +411 2 2 1 1 329 148 399 +412 2 2 1 1 289 170 415 +413 2 2 1 1 41 42 340 +414 2 2 1 1 133 241 479 +415 2 2 1 1 303 109 528 +416 2 2 1 1 228 367 555 +417 2 2 1 1 147 308 527 +418 2 2 1 1 289 415 467 +419 2 2 1 1 174 295 357 +420 2 2 1 1 295 170 357 +421 2 2 1 1 237 103 455 +422 2 2 1 1 369 138 489 +423 2 2 1 1 229 369 489 +424 2 2 1 1 178 237 452 +425 2 2 1 1 206 248 529 +426 2 2 1 1 261 191 459 +427 2 2 1 1 322 46 431 +428 2 2 1 1 346 120 375 +429 2 2 1 1 262 165 378 +430 2 2 1 1 46 47 431 +431 2 2 1 1 256 194 368 +432 2 2 1 1 239 152 373 +433 2 2 1 1 257 156 346 +434 2 2 1 1 247 116 366 +435 2 2 1 1 68 248 493 +436 2 2 1 1 307 169 308 +437 2 2 1 1 147 307 308 +438 2 2 1 1 50 51 360 +439 2 2 1 1 198 238 496 +440 2 2 1 1 242 137 445 +441 2 2 1 1 181 242 445 +442 2 2 1 1 77 251 388 +443 2 2 1 1 302 56 454 +444 2 2 1 1 369 229 553 +445 2 2 1 1 34 254 457 +446 2 2 1 1 119 264 359 +447 2 2 1 1 341 121 410 +448 2 2 1 1 207 341 410 +449 2 2 1 1 254 34 463 +450 2 2 1 1 152 239 387 +451 2 2 1 1 365 139 507 +452 2 2 1 1 232 365 507 +453 2 2 1 1 7 92 304 +454 2 2 1 1 265 131 381 +455 2 2 1 1 166 265 381 +456 2 2 1 1 113 249 440 +457 2 2 1 1 60 61 353 +458 2 2 1 1 387 123 498 +459 2 2 1 1 341 207 487 +460 2 2 1 1 339 203 522 +461 2 2 1 1 378 217 556 +462 2 2 1 1 35 36 315 +463 2 2 1 1 32 33 317 +464 2 2 1 1 90 89 318 +465 2 2 1 1 244 134 472 +466 2 2 1 1 189 244 472 +467 2 2 1 1 56 57 454 +468 2 2 1 1 300 164 328 +469 2 2 1 1 123 300 328 +470 2 2 1 1 102 250 368 +471 2 2 1 1 37 38 327 +472 2 2 1 1 45 322 447 +473 2 2 1 1 44 45 447 +474 2 2 1 1 7 93 515 +475 2 2 1 1 191 246 417 +476 2 2 1 1 246 99 417 +477 2 2 1 1 281 133 441 +478 2 2 1 1 196 281 441 +479 2 2 1 1 242 294 562 +480 2 2 1 1 259 92 373 +481 2 2 1 1 390 225 523 +482 2 2 1 1 280 374 541 +483 2 2 1 1 408 141 524 +484 2 2 1 1 98 97 347 +485 2 2 1 1 72 73 314 +486 2 2 1 1 159 476 535 +487 2 2 1 1 88 87 345 +488 2 2 1 1 30 31 344 +489 2 2 1 1 281 473 561 +490 2 2 1 1 252 112 371 +491 2 2 1 1 244 340 469 +492 2 2 1 1 108 277 350 +493 2 2 1 1 197 297 384 +494 2 2 1 1 195 238 516 +495 2 2 1 1 249 140 554 +496 2 2 1 1 172 293 342 +497 2 2 1 1 293 140 342 +498 2 2 1 1 251 154 388 +499 2 2 1 1 326 119 543 +500 2 2 1 1 108 240 408 +501 2 2 1 1 274 91 488 +502 2 2 1 1 52 255 446 +503 2 2 1 1 255 193 446 +504 2 2 1 1 187 241 491 +505 2 2 1 1 241 133 491 +506 2 2 1 1 248 69 385 +507 2 2 1 1 246 191 404 +508 2 2 1 1 288 8 486 +509 2 2 1 1 16 287 485 +510 2 2 1 1 259 160 391 +511 2 2 1 1 91 259 391 +512 2 2 1 1 432 110 437 +513 2 2 1 1 152 259 373 +514 2 2 1 1 91 274 453 +515 2 2 1 1 290 18 484 +516 2 2 1 1 26 291 483 +517 2 2 1 1 144 319 325 +518 2 2 1 1 119 359 543 +519 2 2 1 1 87 86 394 +520 2 2 1 1 29 30 393 +521 2 2 1 1 184 245 480 +522 2 2 1 1 346 156 361 +523 2 2 1 1 253 48 416 +524 2 2 1 1 187 253 416 +525 2 2 1 1 255 171 386 +526 2 2 1 1 154 251 390 +527 2 2 1 1 247 208 506 +528 2 2 1 1 14 267 423 +529 2 2 1 1 267 176 423 +530 2 2 1 1 268 10 424 +531 2 2 1 1 177 268 424 +532 2 2 1 1 71 297 497 +533 2 2 1 1 269 180 425 +534 2 2 1 1 24 269 425 +535 2 2 1 1 181 270 426 +536 2 2 1 1 270 20 426 +537 2 2 1 1 358 205 435 +538 2 2 1 1 148 267 485 +539 2 2 1 1 268 149 486 +540 2 2 1 1 281 196 473 +541 2 2 1 1 257 190 428 +542 2 2 1 1 43 257 428 +543 2 2 1 1 158 254 463 +544 2 2 1 1 150 269 483 +545 2 2 1 1 270 151 484 +546 2 2 1 1 440 249 552 +547 2 2 1 1 172 260 413 +548 2 2 1 1 260 134 413 +549 2 2 1 1 184 258 420 +550 2 2 1 1 258 58 420 +551 2 2 1 1 254 161 457 +552 2 2 1 1 154 262 388 +553 2 2 1 1 302 153 533 +554 2 2 1 1 250 102 405 +555 2 2 1 1 164 250 405 +556 2 2 1 1 145 324 434 +557 2 2 1 1 324 200 434 +558 2 2 1 1 92 7 373 +559 2 2 1 1 292 176 443 +560 2 2 1 1 290 151 377 +561 2 2 1 1 150 291 376 +562 2 2 1 1 265 179 436 +563 2 2 1 1 131 265 436 +564 2 2 1 1 122 386 404 +565 2 2 1 1 153 313 406 +566 2 2 1 1 262 76 388 +567 2 2 1 1 258 153 454 +568 2 2 1 1 473 120 561 +569 2 2 1 1 253 156 431 +570 2 2 1 1 70 71 497 +571 2 2 1 1 8 9 486 +572 2 2 1 1 15 16 485 +573 2 2 1 1 324 145 372 +574 2 2 1 1 18 19 484 +575 2 2 1 1 25 26 483 +576 2 2 1 1 435 205 501 +577 2 2 1 1 153 335 533 +578 2 2 1 1 267 15 485 +579 2 2 1 1 9 268 486 +580 2 2 1 1 200 324 509 +581 2 2 1 1 375 120 473 +582 2 2 1 1 218 375 473 +583 2 2 1 1 19 270 484 +584 2 2 1 1 269 25 483 +585 2 2 1 1 275 90 391 +586 2 2 1 1 273 192 471 +587 2 2 1 1 132 273 471 +588 2 2 1 1 87 88 348 +589 2 2 1 1 156 257 447 +590 2 2 1 1 114 333 356 +591 2 2 1 1 333 183 356 +592 2 2 1 1 69 70 385 +593 2 2 1 1 186 286 514 +594 2 2 1 1 79 80 349 +595 2 2 1 1 287 148 485 +596 2 2 1 1 149 288 486 +597 2 2 1 1 487 207 508 +598 2 2 1 1 278 127 389 +599 2 2 1 1 163 278 389 +600 2 2 1 1 186 379 444 +601 2 2 1 1 259 152 531 +602 2 2 1 1 476 228 535 +603 2 2 1 1 151 290 484 +604 2 2 1 1 291 150 483 +605 2 2 1 1 140 272 554 +606 2 2 1 1 272 210 554 +607 2 2 1 1 167 282 510 +608 2 2 1 1 33 34 457 +609 2 2 1 1 155 252 543 +610 2 2 1 1 154 390 523 +611 2 2 1 1 34 35 463 +612 2 2 1 1 162 274 488 +613 2 2 1 1 109 303 523 +614 2 2 1 1 285 128 382 +615 2 2 1 1 161 285 382 +616 2 2 1 1 129 396 506 +617 2 2 1 1 410 121 534 +618 2 2 1 1 256 410 534 +619 2 2 1 1 91 90 488 +620 2 2 1 1 214 432 437 +621 2 2 1 1 314 73 556 +622 2 2 1 1 178 440 552 +623 2 2 1 1 265 166 511 +624 2 2 1 1 160 259 531 +625 2 2 1 1 397 171 398 +626 2 2 1 1 263 157 489 +627 2 2 1 1 107 403 458 +628 2 2 1 1 403 222 458 +629 2 2 1 1 76 77 388 +630 2 2 1 1 158 315 380 +631 2 2 1 1 315 221 380 +632 2 2 1 1 160 275 391 +633 2 2 1 1 274 166 453 +634 2 2 1 1 266 137 476 +635 2 2 1 1 192 407 451 +636 2 2 1 1 297 71 461 +637 2 2 1 1 175 323 384 +638 2 2 1 1 323 121 384 +639 2 2 1 1 113 260 526 +640 2 2 1 1 194 256 534 +641 2 2 1 1 128 282 395 +642 2 2 1 1 282 167 395 +643 2 2 1 1 217 314 556 +644 2 2 1 1 221 327 389 +645 2 2 1 1 327 163 389 +646 2 2 1 1 354 149 482 +647 2 2 1 1 212 354 482 +648 2 2 1 1 92 91 453 +649 2 2 1 1 161 316 464 +650 2 2 1 1 272 140 407 +651 2 2 1 1 260 172 526 +652 2 2 1 1 344 219 395 +653 2 2 1 1 167 344 395 +654 2 2 1 1 345 168 396 +655 2 2 1 1 220 345 396 +656 2 2 1 1 275 160 402 +657 2 2 1 1 219 317 382 +658 2 2 1 1 317 161 382 +659 2 2 1 1 318 220 383 +660 2 2 1 1 162 318 383 +661 2 2 1 1 335 204 500 +662 2 2 1 1 112 276 547 +663 2 2 1 1 480 245 544 +664 2 2 1 1 223 304 381 +665 2 2 1 1 97 319 509 +666 2 2 1 1 307 115 374 +667 2 2 1 1 169 307 374 +668 2 2 1 1 134 260 472 +669 2 2 1 1 120 346 361 +670 2 2 1 1 96 97 509 +671 2 2 1 1 248 481 529 +672 2 2 1 1 197 341 481 +673 2 2 1 1 80 81 439 +674 2 2 1 1 86 87 442 +675 2 2 1 1 279 206 542 +676 2 2 1 1 297 175 384 +677 2 2 1 1 122 261 462 +678 2 2 1 1 263 138 443 +679 2 2 1 1 292 13 423 +680 2 2 1 1 176 292 423 +681 2 2 1 1 137 266 445 +682 2 2 1 1 180 294 425 +683 2 2 1 1 294 23 425 +684 2 2 1 1 135 480 544 +685 2 2 1 1 285 161 464 +686 2 2 1 1 368 194 412 +687 2 2 1 1 204 406 502 +688 2 2 1 1 481 136 529 +689 2 2 1 1 345 87 394 +690 2 2 1 1 30 344 393 +691 2 2 1 1 179 265 460 +692 2 2 1 1 94 93 370 +693 2 2 1 1 241 360 479 +694 2 2 1 1 71 72 461 +695 2 2 1 1 295 174 409 +696 2 2 1 1 95 295 409 +697 2 2 1 1 282 128 456 +698 2 2 1 1 182 282 456 +699 2 2 1 1 174 273 468 +700 2 2 1 1 135 264 480 +701 2 2 1 1 264 184 480 +702 2 2 1 1 114 263 475 +703 2 2 1 1 266 116 478 +704 2 2 1 1 210 272 530 +705 2 2 1 1 365 232 508 +706 2 2 1 1 110 316 437 +707 2 2 1 1 138 263 489 +708 2 2 1 1 159 266 476 +709 2 2 1 1 304 166 381 +710 2 2 1 1 347 234 459 +711 2 2 1 1 278 178 452 +712 2 2 1 1 127 278 452 +713 2 2 1 1 273 132 468 +714 2 2 1 1 272 118 477 +715 2 2 1 1 314 217 400 +716 2 2 1 1 283 202 539 +717 2 2 1 1 159 337 465 +718 2 2 1 1 415 131 467 +719 2 2 1 1 90 91 391 +720 2 2 1 1 192 273 499 +721 2 2 1 1 153 302 454 +722 2 2 1 1 74 75 378 +723 2 2 1 1 372 145 521 +724 2 2 1 1 178 278 440 +725 2 2 1 1 66 279 495 +726 2 2 1 1 279 198 495 +727 2 2 1 1 315 158 463 +728 2 2 1 1 305 112 547 +729 2 2 1 1 294 180 562 +730 2 2 1 1 348 88 518 +731 2 2 1 1 337 159 535 +732 2 2 1 1 79 349 520 +733 2 2 1 1 115 307 392 +734 2 2 1 1 277 201 466 +735 2 2 1 1 308 169 435 +736 2 2 1 1 200 371 434 +737 2 2 1 1 363 167 510 +738 2 2 1 1 161 317 457 +739 2 2 1 1 202 328 525 +740 2 2 1 1 166 304 453 +741 2 2 1 1 318 162 488 +742 2 2 1 1 376 230 537 +743 2 2 1 1 150 376 537 +744 2 2 1 1 231 377 538 +745 2 2 1 1 377 151 538 +746 2 2 1 1 139 276 507 +747 2 2 1 1 198 279 470 +748 2 2 1 1 185 301 492 +749 2 2 1 1 344 167 393 +750 2 2 1 1 168 345 394 +751 2 2 1 1 175 314 400 +752 2 2 1 1 278 163 551 +753 2 2 1 1 102 368 412 +754 2 2 1 1 187 281 561 +755 2 2 1 1 101 100 397 +756 2 2 1 1 53 54 398 +757 2 2 1 1 157 280 541 +758 2 2 1 1 208 379 427 +759 2 2 1 1 175 297 461 +760 2 2 1 1 133 281 491 +761 2 2 1 1 166 320 511 +762 2 2 1 1 281 187 491 +763 2 2 1 1 239 515 517 +764 2 2 1 1 347 191 417 +765 2 2 1 1 98 347 417 +766 2 2 1 1 293 106 451 +767 2 2 1 1 114 329 399 +768 2 2 1 1 512 237 548 +769 2 2 1 1 188 289 467 +770 2 2 1 1 118 289 477 +771 2 2 1 1 289 188 477 +772 2 2 1 1 427 186 514 +773 2 2 1 1 128 285 492 +774 2 2 1 1 296 141 536 +775 2 2 1 1 322 156 447 +776 2 2 1 1 313 119 406 +777 2 2 1 1 142 283 539 +778 2 2 1 1 110 449 464 +779 2 2 1 1 156 322 431 +780 2 2 1 1 285 185 492 +781 2 2 1 1 317 33 457 +782 2 2 1 1 287 84 549 +783 2 2 1 1 287 16 557 +784 2 2 1 1 84 287 557 +785 2 2 1 1 8 288 558 +786 2 2 1 1 98 99 500 +787 2 2 1 1 173 306 432 +788 2 2 1 1 325 98 500 +789 2 2 1 1 144 325 502 +790 2 2 1 1 325 204 502 +791 2 2 1 1 190 340 428 +792 2 2 1 1 340 42 428 +793 2 2 1 1 336 103 429 +794 2 2 1 1 188 336 429 +795 2 2 1 1 304 92 453 +796 2 2 1 1 470 126 516 +797 2 2 1 1 328 164 405 +798 2 2 1 1 143 306 450 +799 2 2 1 1 35 315 463 +800 2 2 1 1 290 84 560 +801 2 2 1 1 18 290 560 +802 2 2 1 1 27 291 559 +803 2 2 1 1 291 26 559 +804 2 2 1 1 276 321 507 +805 2 2 1 1 550 83 558 +806 2 2 1 1 194 323 513 +807 2 2 1 1 328 202 498 +808 2 2 1 1 123 328 498 +809 2 2 1 1 288 550 558 +810 2 2 1 1 96 95 409 +811 2 2 1 1 306 110 432 +812 2 2 1 1 306 143 519 +813 2 2 1 1 305 145 434 +814 2 2 1 1 101 302 533 +815 2 2 1 1 74 378 556 +816 2 2 1 1 190 375 469 +817 2 2 1 1 48 49 416 +818 2 2 1 1 169 358 435 +819 2 2 1 1 310 39 433 +820 2 2 1 1 125 308 435 +821 2 2 1 1 99 98 417 +822 2 2 1 1 301 182 456 +823 2 2 1 1 58 59 420 +824 2 2 1 1 90 318 488 +825 2 2 1 1 189 310 433 +826 2 2 1 1 309 143 444 +827 2 2 1 1 103 338 455 +828 2 2 1 1 152 350 531 +829 2 2 1 1 515 213 517 +830 2 2 1 1 199 401 441 +831 2 2 1 1 195 353 448 +832 2 2 1 1 353 61 448 +833 2 2 1 1 213 372 521 +834 2 2 1 1 314 175 461 +835 2 2 1 1 105 379 465 +836 2 2 1 1 379 208 465 +837 2 2 1 1 208 427 506 +838 2 2 1 1 13 14 423 +839 2 2 1 1 10 11 424 +840 2 2 1 1 361 187 561 +841 2 2 1 1 110 306 449 +842 2 2 1 1 23 24 425 +843 2 2 1 1 20 21 426 +844 2 2 1 1 306 173 450 +845 2 2 1 1 331 150 537 +846 2 2 1 1 151 332 538 +847 2 2 1 1 42 43 428 +848 2 2 1 1 297 197 497 +849 2 2 1 1 127 512 545 +850 2 2 1 1 39 40 433 +851 2 2 1 1 193 312 479 +852 2 2 1 1 312 133 479 +853 2 2 1 1 353 195 544 +854 2 2 1 1 65 66 495 +855 2 2 1 1 63 64 496 +856 2 2 1 1 316 158 437 +857 2 2 1 1 104 296 505 +858 2 2 1 1 54 284 398 +859 2 2 1 1 284 101 397 +860 2 2 1 1 517 213 521 +861 2 2 1 1 380 127 545 +862 2 2 1 1 141 296 524 +863 2 2 1 1 362 206 529 +864 2 2 1 1 489 157 541 +865 2 2 1 1 385 70 497 +866 2 2 1 1 149 330 482 +867 2 2 1 1 100 101 533 +868 2 2 1 1 51 52 446 +869 2 2 1 1 142 339 522 +870 2 2 1 1 328 405 525 +871 2 2 1 1 176 329 475 +872 2 2 1 1 61 62 448 +873 2 2 1 1 179 336 436 +874 2 2 1 1 298 142 522 +875 2 2 1 1 365 207 410 +876 2 2 1 1 72 314 461 +877 2 2 1 1 309 185 519 +878 2 2 1 1 316 110 464 +879 2 2 1 1 330 177 553 +880 2 2 1 1 252 326 543 +881 2 2 1 1 172 342 526 +882 2 2 1 1 374 229 541 +883 2 2 1 1 180 331 555 +884 2 2 1 1 214 512 548 +885 2 2 1 1 332 181 478 +886 2 2 1 1 180 367 562 +887 2 2 1 1 360 51 446 +888 2 2 1 1 193 360 446 +889 2 2 1 1 458 222 540 +890 2 2 1 1 338 173 455 +891 2 2 1 1 145 300 521 +892 2 2 1 1 302 101 421 +893 2 2 1 1 56 302 421 +894 2 2 1 1 103 419 429 +895 2 2 1 1 419 210 429 +896 2 2 1 1 311 205 536 +897 2 2 1 1 182 337 535 +898 2 2 1 1 362 235 494 +899 2 2 1 1 143 352 444 +900 2 2 1 1 303 154 523 +901 2 2 1 1 165 303 528 +902 2 2 1 1 355 113 551 +903 2 2 1 1 87 348 442 +904 2 2 1 1 349 80 439 +905 2 2 1 1 124 402 466 +906 2 2 1 1 146 333 474 +907 2 2 1 1 183 343 490 +908 2 2 1 1 141 311 536 +909 2 2 1 1 337 105 465 +910 2 2 1 1 116 332 478 +911 2 2 1 1 352 186 444 +912 2 2 1 1 312 193 503 +913 2 2 1 1 84 85 549 +914 2 2 1 1 164 305 547 +915 2 2 1 1 82 83 550 +916 2 2 1 1 329 114 475 +917 2 2 1 1 67 68 493 +918 2 2 1 1 191 347 459 +919 2 2 1 1 308 125 527 +920 2 2 1 1 143 309 519 +921 2 2 1 1 358 104 505 +922 2 2 1 1 205 358 505 +923 2 2 1 1 93 94 546 +924 2 2 1 1 340 190 469 +925 2 2 1 1 323 194 534 +926 2 2 1 1 204 325 500 +927 2 2 1 1 320 111 511 +928 2 2 1 1 319 200 509 +929 2 2 1 1 321 232 507 +930 2 2 1 1 326 144 502 +931 2 2 1 1 430 117 510 +932 2 2 1 1 130 411 532 +933 2 2 1 1 411 227 532 +934 2 2 1 1 245 353 544 +935 2 2 1 1 400 130 513 +936 2 2 1 1 412 194 414 +937 2 2 1 1 203 412 414 +938 2 2 1 1 470 279 542 +939 2 2 1 1 248 385 481 +940 2 2 1 1 83 1 558 +941 2 2 1 1 1 8 558 +942 2 2 1 1 17 84 557 +943 2 2 1 1 16 17 557 +944 2 2 1 1 88 89 518 +945 2 2 1 1 17 18 560 +946 2 2 1 1 84 17 560 +947 2 2 1 1 26 2 559 +948 2 2 1 1 2 27 559 +949 2 2 1 1 78 79 520 +950 2 2 1 1 121 323 534 +951 2 2 1 1 367 180 555 +952 2 2 1 1 322 45 563 +953 2 2 1 1 46 322 563 +954 2 2 1 1 379 186 427 +955 2 2 1 1 177 369 553 +956 2 2 1 1 343 124 490 +957 2 2 1 1 131 436 467 +958 2 2 1 1 73 74 556 +959 2 2 1 1 3 46 563 +960 2 2 1 1 45 3 563 +961 2 2 1 1 101 284 421 +962 2 2 1 1 195 438 544 +963 2 2 1 1 418 209 438 +964 2 2 1 1 163 355 551 +965 2 2 1 1 102 339 525 +966 2 2 1 1 339 202 525 +967 2 2 1 1 414 194 513 +968 2 2 1 1 229 489 541 +969 2 2 1 1 115 330 553 +970 2 2 1 1 125 435 501 +971 2 2 1 1 360 193 479 +972 2 2 1 1 331 117 555 +973 2 2 1 1 335 100 533 +974 2 2 1 1 339 142 539 +975 2 2 1 1 202 339 539 +976 2 2 1 1 301 456 492 +977 2 2 1 1 418 195 516 +978 2 2 1 1 387 239 517 +979 2 2 1 1 126 362 494 +980 2 2 1 1 158 380 545 +981 2 2 1 1 383 129 514 +982 2 2 1 1 401 196 441 +983 2 2 1 1 207 365 508 +984 2 2 1 1 427 129 506 +985 2 2 1 1 422 65 495 +986 2 2 1 1 64 422 496 +987 2 2 1 1 117 363 510 +988 2 2 1 1 113 440 551 +989 2 2 1 1 85 351 549 +990 2 2 1 1 354 82 550 +991 2 2 1 1 195 418 438 +992 2 2 1 1 449 306 519 +993 2 2 1 1 197 385 497 +994 2 2 1 1 386 122 503 +995 2 2 1 1 237 455 548 +996 2 2 1 1 385 197 481 +997 2 2 1 1 362 126 542 +998 2 2 1 1 230 363 537 +999 2 2 1 1 364 231 538 +1000 2 2 1 1 443 176 475 +1001 2 2 1 1 359 155 543 +1002 2 2 1 1 206 362 542 +1003 2 2 1 1 120 361 561 +1004 2 2 1 1 399 211 474 +1005 2 2 1 1 392 212 482 +1006 2 2 1 1 407 192 499 +1007 2 2 1 1 430 182 535 +1008 2 2 1 1 437 158 545 +1009 2 2 1 1 418 126 494 +1010 2 2 1 1 209 418 494 +1011 2 2 1 1 181 445 478 +1012 2 2 1 1 401 199 504 +1013 2 2 1 1 367 137 562 +1014 2 2 1 1 505 296 536 +1015 2 2 1 1 372 213 546 +1016 2 2 1 1 94 372 546 +1017 2 2 1 1 123 387 517 +1018 2 2 1 1 106 401 504 +1019 2 2 1 1 203 414 532 +1020 2 2 1 1 185 449 519 +1021 2 2 1 1 201 408 524 +1022 2 2 1 1 263 443 475 +1023 2 2 1 1 445 266 478 +1024 2 2 1 1 198 422 495 +1025 2 2 1 1 422 198 496 +1026 2 2 1 1 456 128 492 +1027 2 2 1 1 227 411 528 +1028 2 2 1 1 411 165 528 +1029 2 2 1 1 438 209 540 +1030 2 2 1 1 512 214 545 +1031 2 2 1 1 210 552 554 +1032 2 2 1 1 130 414 513 +1033 2 2 1 1 552 249 554 +1034 2 2 1 1 405 102 525 +1035 2 2 1 1 126 418 516 +1036 2 2 1 1 452 237 512 +1037 2 2 1 1 127 452 512 +1038 2 2 1 1 173 432 548 +1039 2 2 1 1 129 427 514 +1040 2 2 1 1 111 460 511 +1041 2 2 1 1 414 130 532 +1042 2 2 1 1 272 477 530 +1043 2 2 1 1 477 188 530 +1044 2 2 1 1 432 214 548 +1045 2 2 1 1 460 265 511 +1046 2 2 1 1 188 429 530 +1047 2 2 1 1 429 210 530 +1048 2 2 1 1 210 419 552 +1049 2 2 1 1 228 430 535 +1050 2 2 1 1 515 93 546 +1051 2 2 1 1 419 178 552 +1052 2 2 1 1 135 438 540 +1053 2 2 1 1 214 437 545 +1054 2 2 1 1 438 135 544 +1055 2 2 1 1 209 458 540 +1056 2 2 1 1 440 278 551 +1057 2 2 1 1 455 173 548 +1058 2 2 1 1 126 470 542 +1059 2 2 1 1 205 505 536 +1060 2 2 1 1 213 515 546 +1061 2 2 1 1 101 6 421 +$EndElements diff --git a/src/mmdg.cc b/src/mmdg.cc index e2d4348..4c96269 100644 --- a/src/mmdg.cc +++ b/src/mmdg.cc @@ -5,6 +5,7 @@ #include <sys/stat.h> #include <sys/types.h> #include <type_traits> +#include <string> #include <dune/common/exceptions.hh> #include <dune/common/parametertree.hh> @@ -19,7 +20,8 @@ #include <dune/mmdg/mmdg.hh> #include <dune/mmdg/clockhelper.hh> #include <dune/mmdg/problems/coupleddgproblem.hh> - +#include <dune/mmdg/problems/mmdgproblem1.hh> +#include <dune/mmdg/problems/mmdgproblem2.hh> int main(int argc, char** argv) { @@ -52,31 +54,39 @@ int main(int argc, char** argv) const double mu = std::stod(pt["mu"]); const double xi = std::stod(pt["xi"]); //coupling parameter - //create a grid from .dgf file - GridFactory gridFactory( "grids/sphere" + std::to_string(dim) + "d.msh" ); - const Grid& grid = *gridFactory.grid(); - const GridView& gridView = grid.leafGridView(); - const IGrid& iGrid = grid.interfaceGrid(); - const IGridView& iGridView = iGrid.leafGridView(); - - //element mapper for the leaf grid views - const Mapper mapper(gridView, Dune::mcmgElementLayout()); - const IMapper iMapper(iGridView, Dune::mcmgElementLayout()); - Problem* problem; //problem to be solved + std::string gridType; + //determine problem type - if (pt["problem"] == "poisson") - { //TODO - problem = new CoupledDGProblem<Coordinate>(); + if (pt["problem"] == "mmdg1") + { + problem = new MMDGProblem1<Coordinate>(); + gridType = "mmdg2"; + } + else if (pt["problem"] == "mmdg2") + { + problem = new MMDGProblem2<Coordinate>(); + gridType = "mmdg2"; } else { DUNE_THROW(Dune::Exception, "Invalid problem type or parameter 'problem' not specified in file " - "parameterDG.ini (use 'poisson' or TODO)"); + "parameterDG.ini (use 'mmdg2' or TODO)"); } + //create a grid from .dgf file + GridFactory gridFactory( "grids/" + gridType + ".msh" ); + const Grid& grid = *gridFactory.grid(); + const GridView& gridView = grid.leafGridView(); + const IGrid& iGrid = grid.interfaceGrid(); + const IGridView& iGridView = iGrid.leafGridView(); + + //element mapper for the leaf grid views + const Mapper mapper(gridView, Dune::mcmgElementLayout()); + const IMapper iMapper(iGridView, Dune::mcmgElementLayout()); + MMDG mmdg(grid, gridView, mapper, iGridView, iMapper, *problem); mmdg(mu, xi); diff --git a/src/parameterMMDG.ini b/src/parameterMMDG.ini index c787684..4abb5ef 100644 --- a/src/parameterMMDG.ini +++ b/src/parameterMMDG.ini @@ -1,3 +1,3 @@ mu = 1000 xi = 0.75 -problem = poisson +problem = mmdg1 -- GitLab