diff --git a/bin/analyzegrid/CMakeLists.txt b/bin/analyzegrid/CMakeLists.txt index bfc2f7f0a275677bd0905103e9b7b5332c310841..d3322e2914a2272d0c70d7afd88b3d13d11d9e8d 100644 --- a/bin/analyzegrid/CMakeLists.txt +++ b/bin/analyzegrid/CMakeLists.txt @@ -1,4 +1,6 @@ if(consistent-edge-orientation_FOUND) add_executable(analyze_grid analyze_grid.cc) dune_symlink_to_source_files(FILES test_2d_structured.ini test_3d_structured.ini test_2d_unstructured.ini test_3d_unstructured.ini) + + add_executable(consistent_gmsh consistent_gmsh.cc) endif() diff --git a/bin/analyzegrid/analyze_grid.cc b/bin/analyzegrid/analyze_grid.cc index 5ceed213057f56917deafd37cc0f9ccf3722f703..bc7c0a93304f21ae8016e970ba4831e7b8716ca0 100644 --- a/bin/analyzegrid/analyze_grid.cc +++ b/bin/analyzegrid/analyze_grid.cc @@ -42,7 +42,57 @@ int main(int argc, char** argv){ std::string filename = std::string(argv[2]); std::cout << "writing into: " << filename << std::endl; - if (quadrilateral){ + bool gmsh = initree.hasKey("gmshFile"); + + if (gmsh){ + // From the ini file we can't extract if the grid is a 2D or a 3D + // grid. We just try the 3D case. If the msh file is a 2D grid Dune will + // throw an error and we do the 2D version below. Not pretty but it + // works. + try{ + // Setup grid (view)... + const int dim = 3; + using Grid = Dune::UGGrid<dim>; + using GV = Grid::LeafGridView; + IniGridFactory<Grid> factory(initree); + std::shared_ptr<Grid> grid = factory.getGrid(); + + // Note: As long as createConsistentGrid drops boundary faces we assume + // that the users already provides a consistent gmsh file. + // std::shared_ptr<Grid> grid_nonconsistent = factory.getGrid(); + // std::shared_ptr<Grid> grid = createConsistentGrid(grid_nonconsistent); + + GV gv = grid->leafGridView(); + + // Extract facemod/facedir intersection variation + using ES = Dune::PDELab::AllEntitySet<GV>; + ES es(gv); + std::cout << "Analyse 3d gmsh grid" << std::endl; + analyze_grid(es, filename); + } + catch(Dune::Exception &e){ + // Setup grid (view)... + const int dim = 2; + using Grid = Dune::UGGrid<dim>; + using GV = Grid::LeafGridView; + IniGridFactory<Grid> factory(initree); + std::shared_ptr<Grid> grid = factory.getGrid(); + + // Note: As long as createConsistentGrid drops boundary faces we assume + // that the users already provides a consistent gmsh file. + // std::shared_ptr<Grid> grid_nonconsistent = factory.getGrid(); + // std::shared_ptr<Grid> grid = createConsistentGrid(grid_nonconsistent); + + GV gv = grid->leafGridView(); + + // Extract facemod/facedir intersection variation + using ES = Dune::PDELab::AllEntitySet<GV>; + ES es(gv); + std::cout << "Analyse 3d gmsh grid" << std::endl; + analyze_grid(es, filename); + } + } + else if (quadrilateral){ if (unstructured){ std::vector<int> tmp; std::vector<int> dim_counter = initree.get("elements", tmp); @@ -50,8 +100,6 @@ int main(int argc, char** argv){ std::cout << "dim: " << dim << std::endl; if (dim == 2){ - std::cout << "Analyse 2d unstructured quadrilateral grid" << std::endl; - // Setup grid (view)... using Grid = Dune::UGGrid<2>; using GV = Grid::LeafGridView; @@ -63,11 +111,10 @@ int main(int argc, char** argv){ // Extract facemod/facedir intersection variation using ES = Dune::PDELab::AllEntitySet<GV>; ES es(gv); + std::cout << "Analyse 2d unstructured quadrilateral grid" << std::endl; analyze_grid(es, filename); } else if (dim == 3){ - std::cout << "Analyse 3d unstructured quadrilateral grid" << std::endl; - // Setup grid (view)... using Grid = Dune::UGGrid<3>; using GV = Grid::LeafGridView; @@ -79,6 +126,7 @@ int main(int argc, char** argv){ // Extract facemod/facedir intersection variation using ES = Dune::PDELab::AllEntitySet<GV>; ES es(gv); + std::cout << "Analyse 3d unstructured quadrilateral grid" << std::endl; analyze_grid(es, filename); } else{ @@ -92,8 +140,6 @@ int main(int argc, char** argv){ std::cout << "dim: " << dim << std::endl; if (dim == 2){ - std::cout << "Analyse 2d structured quadrilateral grid" << std::endl; - // For structured grids we already know the variation beforehand. This // is only implemented to cover all the cases. @@ -107,11 +153,10 @@ int main(int argc, char** argv){ // Extract facemod/facedir intersection variation using ES = Dune::PDELab::AllEntitySet<GV>; ES es(gv); + std::cout << "Analyse 2d structured quadrilateral grid" << std::endl; analyze_grid(es, filename); } if (dim == 3){ - std::cout << "Analyse 3d structured quadrilateral grid" << std::endl; - // For structured grids we already know the variation beforehand. This // is only implemented to cover all the cases. @@ -125,6 +170,7 @@ int main(int argc, char** argv){ // Extract facemod/facedir intersection variation using ES = Dune::PDELab::AllEntitySet<GV>; ES es(gv); + std::cout << "Analyse 3d structured quadrilateral grid" << std::endl; analyze_grid(es, filename); } else{ diff --git a/bin/analyzegrid/consistent_gmsh.cc b/bin/analyzegrid/consistent_gmsh.cc new file mode 100644 index 0000000000000000000000000000000000000000..cda4729adfbaf307e4aa846984424b244778786a --- /dev/null +++ b/bin/analyzegrid/consistent_gmsh.cc @@ -0,0 +1,60 @@ +#include "config.h" + +#include <iostream> +#include <iomanip> +#include <dune/common/parallel/mpihelper.hh> +#include <dune/grid/uggrid.hh> +#include <dune/grid/io/file/gmshreader.hh> + +#include <dune/consistent-edge-orientation/createconsistentgrid.hh> + +int main(int argc, char** argv){ + try + { + if (argc != 3){ + std::cout << "Need input gmsh file and output filename." << std::endl; + return 1; + } + + // Initialize basic stuff... + Dune::MPIHelper& mpihelper = Dune::MPIHelper::instance(argc, argv); + using RangeType = double; + std::string infile = std::string(argv[1]); + + // From the ini file we can't extract if the grid is a 2D or a 3D grid. We + // just try the 3D case. If the msh file is a 2D grid Dune will throw an + // error and we do the 2D version below. Not pretty but it works. + try{ + // Setup grid (view)... + const int dim = 3; + using Grid = Dune::UGGrid<dim>; + using GV = Grid::LeafGridView; + auto grid = Dune::GmshReader<Grid>::read(infile); + GV gv = grid->leafGridView(); + + std::string filename = std::string(argv[2]); + createConsistentGmshFile(gv, filename); + } + catch(Dune::Exception &e){ + // Setup grid (view)... + const int dim = 2; + using Grid = Dune::UGGrid<dim>; + using GV = Grid::LeafGridView; + auto grid = Dune::GmshReader<Grid>::read(infile); + GV gv = grid->leafGridView(); + + std::string filename = std::string(argv[2]); + createConsistentGmshFile(gv, filename); + } + return 0; + + } + catch (Dune::Exception& e) + { std::cerr << "Dune reported error: " << e << std::endl; + return 1; + } + catch (std::exception& e) + { std::cerr << "Unknown exception thrown!" << std::endl; + return 1; + } +} diff --git a/python/dune/perftool/options.py b/python/dune/perftool/options.py index 9d4ccb3f5da38ac1d83bd5d7b63f7c7a1059c99d..25fd514582a9873eb26cf59f50897b1dbe59cdc9 100644 --- a/python/dune/perftool/options.py +++ b/python/dune/perftool/options.py @@ -54,6 +54,7 @@ class PerftoolGlobalOptionsArray(ImmutableRecord): operators = PerftoolOption(default="r", helpstr="A comma separated list of operators, each name will be interpreted as a subsection name within the formcompiler section") target_name = PerftoolOption(default=None, helpstr="The target name from CMake") operator_to_build = PerftoolOption(default=None, helpstr="The operators from the list that is about to be build now. CMake sets this one!!!") + debug_interpolate_input = PerftoolOption(default=False, helpstr="Should the input for printresidual and printmatix be interpolated (instead of random input).") # Arguments that are mainly to be set by logic depending on other options max_vector_width = PerftoolOption(default=256, helpstr=None) diff --git a/python/dune/perftool/pdelab/driver/gridfunctionspace.py b/python/dune/perftool/pdelab/driver/gridfunctionspace.py index eb8688e01dfeede43d13c166b838b357841599eb..659ef658f15f618391981ef607b18eb038cd6214 100644 --- a/python/dune/perftool/pdelab/driver/gridfunctionspace.py +++ b/python/dune/perftool/pdelab/driver/gridfunctionspace.py @@ -83,10 +83,16 @@ def define_grid(name): # TODO: In principle this is only necessary if we use sum factorization in # one of the operators. So this could be turned off if that is not the case. if isQuadrilateral(get_trial_element().cell()) and get_option("grid_unstructured"): - include_file("dune/consistent-edge-orientation/createconsistentgrid.hh", filetag="driver") + # TODO: createConsistentGrid drops boundary faces. Instead of using + # this we assume that the user already provides a constistent gmsh + # file. This can be createt by createConsistentGmshFile, see + # dune-perftool/bin/analyzegrid/consistent_gmsh.cc + # include_file("dune/consistent-edge-orientation/createconsistentgrid.hh", filetag="driver") + # return ["IniGridFactory<{}> factory({});".format(_type, ini), + # "std::shared_ptr<{}> grid_nonconsistent = factory.getGrid();".format(_type), + # "std::shared_ptr<{}> grid = createConsistentGrid(grid_nonconsistent);".format(_type)] return ["IniGridFactory<{}> factory({});".format(_type, ini), - "std::shared_ptr<{}> grid_nonconsistent = factory.getGrid();".format(_type), - "std::shared_ptr<{}> grid = createConsistentGrid(grid_nonconsistent);".format(_type)] + "std::shared_ptr<{}> grid = factory.getGrid();".format(_type)] return ["IniGridFactory<{}> factory({});".format(_type, ini), "std::shared_ptr<{}> grid = factory.getGrid();".format(_type)] diff --git a/python/dune/perftool/pdelab/driver/solve.py b/python/dune/perftool/pdelab/driver/solve.py index 0648df399d809fd84d30624711dfc2fb02bbc631..cdf41b82ddd3a4f33e3beb0b8ef29cfab6d012e5 100644 --- a/python/dune/perftool/pdelab/driver/solve.py +++ b/python/dune/perftool/pdelab/driver/solve.py @@ -9,6 +9,7 @@ from dune.perftool.pdelab.driver import (get_form_ident, name_initree, ) from dune.perftool.pdelab.driver.gridfunctionspace import (name_trial_gfs, + name_leafview, type_domainfield, type_trial_gfs, ) @@ -19,6 +20,7 @@ from dune.perftool.pdelab.driver.gridoperator import (name_gridoperator, type_gridoperator, ) from dune.perftool.pdelab.driver.interpolate import interpolate_dirichlet_data +from dune.perftool.pdelab.geometry import world_dimension @preamble(section="solver") @@ -204,6 +206,32 @@ def name_stationarynonlinearproblemsolver(go_type, go): return name +def random_input(v): + return [" // Setup random input", + " std::size_t seed = 0;", + " auto rng = std::mt19937_64(seed);", + " auto dist = std::uniform_real_distribution<>(-1., 1.);", + " for (auto& v : {})".format(v), + " v = dist(rng);"] + + +def interpolate_input(v): + dim = world_dimension() + gv = name_leafview() + gfs = name_trial_gfs() + expr = [] + for i in range(dim): + expr.append("x[{}]*x[{}]".format(i, i)) + expr = "+".join(expr) + return [" // Interpolate input", + " auto interpolate_lambda = [] (const auto& x){", + " return std::exp({});".format(expr), + " };", + " auto interpolate = Dune::PDELab::makeGridFunctionFromCallable({}, interpolate_lambda);".format(gv), + " Dune::PDELab::interpolate(interpolate,{},{});".format(gfs, v), + ] + + @preamble(section="printing") def print_residual(): ini = name_initree() @@ -212,16 +240,15 @@ def print_residual(): t_v = type_vector(get_form_ident()) include_file("random", system=True, filetag="driver") + if get_option("debug_interpolate_input"): + input = interpolate_input(v) + else: + input = random_input(v) + return ["if ({}.get<bool>(\"printresidual\", false)) {{".format(ini), " using Dune::PDELab::Backend::native;", - " {} r({});".format(t_v, v), - " // Setup random input", - " std::size_t seed = 0;", - " auto rng = std::mt19937_64(seed);", - " auto dist = std::uniform_real_distribution<>(-1., 1.);", - " for (auto& v : {})".format(v), - " v = dist(rng);", - " r=0.0;", + " {} r({});".format(t_v, v)] + input + \ + [" r=0.0;", " {}.residual({}, r);".format(n_go, v), " Dune::printvector(std::cout, native(r), \"residual vector\", \"row\");", "}"] @@ -235,14 +262,15 @@ def print_matrix(): v = name_vector(get_form_ident()) t_v = type_vector(get_form_ident()) + if get_option("debug_interpolate_input"): + input = interpolate_input(v) + else: + input = random_input(v) + return ["if ({}.get<bool>(\"printmatrix\", false)) {{".format(ini), - " // Setup random input", - " std::size_t seed = 0;", - " auto rng = std::mt19937_64(seed);", - " auto dist = std::uniform_real_distribution<>(1., 10.);", - " for (auto& v : {})".format(v), - " v = dist(rng);", - " using M = typename {}::Traits::Jacobian;".format(t_go), + " using Dune::PDELab::Backend::native;", + " {} r({});".format(t_v, v)] + input + \ + [" using M = typename {}::Traits::Jacobian;".format(t_go), " M m({});".format(n_go), " {}.jacobian({},m);".format(n_go, v), " using Dune::PDELab::Backend::native;", diff --git a/python/dune/perftool/sumfact/accumulation.py b/python/dune/perftool/sumfact/accumulation.py index abad6788cb31f90276dbde32e2fb5aa2b6faa3af..dff7cfccd8a0282a2b0cf87e8c4a0ea3c709a010 100644 --- a/python/dune/perftool/sumfact/accumulation.py +++ b/python/dune/perftool/sumfact/accumulation.py @@ -126,11 +126,11 @@ class AccumulationOutput(SumfactKernelInterfaceBase, ImmutableRecord): def realize(self, sf, result, insn_dep, inames=None, additional_inames=()): trial_leaf_element = get_leaf(self.trial_element, self.trial_element_index) if self.trial_element is not None else None - basis_size = tuple(mat.basis_size for mat in sf.matrix_sequence) + basis_size = tuple(mat.basis_size for mat in sf.permuted_matrix_sequence) if inames is None: inames = tuple(accum_iname(trial_leaf_element, mat.rows, i) - for i, mat in enumerate(sf.matrix_sequence)) + for i, mat in enumerate(sf.permuted_matrix_sequence)) # Determine the expression to accumulate with. This depends on the vectorization strategy! from dune.perftool.tools import maybe_wrap_subscript diff --git a/python/dune/perftool/sumfact/basis.py b/python/dune/perftool/sumfact/basis.py index e9584d1d644ec6ec3c61b2b8cd863e54192b47c9..b4795478e990e5f82090f8a6346ee73168ede6e9 100644 --- a/python/dune/perftool/sumfact/basis.py +++ b/python/dune/perftool/sumfact/basis.py @@ -89,7 +89,7 @@ class LFSSumfactKernelInput(SumfactKernelInterfaceBase, ImmutableRecord): from dune.perftool.sumfact.realization import name_buffer_storage name = "input_{}".format(sf.buffer) temporary_variable(name, - shape=(product(mat.basis_size for mat in sf.matrix_sequence), sf.vector_width), + shape=(product(mat.basis_size for mat in sf.permuted_matrix_sequence), sf.vector_width), custom_base_storage=name_buffer_storage(sf.buffer, 0), managed=True, ) diff --git a/python/dune/perftool/sumfact/geometry.py b/python/dune/perftool/sumfact/geometry.py index c4471ee3ab329eef051bfd1a27f0eb0fce1bd4c3..8455f78bda074359c7668e2c4674f7886741aea9 100644 --- a/python/dune/perftool/sumfact/geometry.py +++ b/python/dune/perftool/sumfact/geometry.py @@ -26,6 +26,7 @@ from dune.perftool.pdelab.localoperator import (name_ansatz_gfs_constructor_para lop_template_range_field, ) from dune.perftool.pdelab.restriction import restricted_name +from dune.perftool.sumfact.accumulation import basis_sf_kernels from dune.perftool.sumfact.basis import construct_basis_matrix_sequence from dune.perftool.sumfact.quadrature import (additional_inames, default_quadrature_inames) @@ -34,9 +35,6 @@ from dune.perftool.sumfact.realization import (name_buffer_storage, ) from dune.perftool.sumfact.switch import get_facedir, get_facemod from dune.perftool.sumfact.symbolic import SumfactKernelInterfaceBase, SumfactKernel -from dune.perftool.sumfact.tabulation import (quadrature_points_per_direction, - BasisTabulationMatrix, - ) from dune.perftool.sumfact.vectorization import attach_vectorization_info from dune.perftool.tools import get_pymbolic_basename from dune.perftool.options import get_form_option, option_switch @@ -71,18 +69,21 @@ class GeoCornersInput(SumfactKernelInterfaceBase, ImmutableRecord): """ ImmutableRecord.__init__(self, direction=direction, restriction=restriction) + def __repr__(self): + return ImmutableRecord.__repr__(self) + + def __str__(self): + return repr(self) + @property def stage(self): return 1 - def __repr__(self): - return ImmutableRecord.__repr__(self) - - def realize(self, sf, insn_dep): - # TODO: When we use vectorization this should be the offset - assert(get_form_option('vectorization_strategy') == 'none') - index = 0 + @property + def direct_is_possible(self): + return False + def realize(self, sf, insn_dep, index=0): # Note: world_dimension, since we only do evaluation of cell geometry mappings name = "input_{}".format(sf.buffer) temporary_variable(name, @@ -150,9 +151,14 @@ def pymbolic_spatial_coordinate_multilinear(do_predicates, visitor): ) vsf = attach_vectorization_info(sf) + # If this sum factorization kernel was not used in the dry run we + # just return 0 + if vsf == 0: + visitor.indices = None + return 0 + # Add a sum factorization kernel that implements the evaluation of # the basis functions at quadrature points (stage 1) - from dune.perftool.sumfact.realization import realize_sum_factorization_kernel var, _ = realize_sum_factorization_kernel(vsf) # The results of this function is already the right component of the @@ -260,12 +266,12 @@ def define_outer_normal(name, visitor): temporary_variable(name, shape=(world_dimension(),)) for i in range(world_dimension()): assignee = prim.Subscript(prim.Variable(name), i) - jit = pymbolic_jacobian_inverse(i, facedir_s, Restriction.POSITIVE, visitor) + ji = pymbolic_jacobian_inverse(facedir_s, i, Restriction.POSITIVE, visitor) # Note: 2*facemod_s-1 because of # -1 if facemod_s = 0 # +1 if facemod_s = 1 - expression = jit * (2 * facemod_s - 1) + expression = ji * (2 * facemod_s - 1) inames = default_quadrature_inames(visitor) + additional_inames(visitor) instruction(assignee=assignee, @@ -523,6 +529,12 @@ def _name_jacobian(i, j, restriction, visitor): ) vsf = attach_vectorization_info(sf) + # If this sum factorization kernel was not used in the dry run we + # just return 0 + if vsf == 0: + visitor.indices = None + return 0 + # Add a sum factorization kernel that implements the evaluation of # the basis functions at quadrature points (stage 1) var, _ = realize_sum_factorization_kernel(vsf) @@ -532,7 +544,7 @@ def _name_jacobian(i, j, restriction, visitor): def define_jacobian_inverse(name, restriction, visitor): - """Return jacobian inverse transposed of the geometry mapping (of a cell) + """Return jacobian inverse of the geometry mapping (of a cell) At the moment this only works for geometry mappings of cells and not for intersection. We only consider this case as it greatly simplifies code @@ -555,11 +567,20 @@ def define_jacobian_inverse(name, restriction, visitor): ) names_jacobian.append(name_jacobian) + # The sum factorization kernels from the geometry evaluation of the + # jacobians will never appear in the expression for the input of + # stage 3. This way the SumfactCollectMapper will never see them + # and they will be marked as inactive. Here we explicitly mark the + # as used. + basis_sf_kernels(expression.aggregate) + # Calculate the inverse of the jacobian of the geometry mapping and the - # determinant by calling a c++ function + # determinant by calling a c++ function. Note: The result will be column + # major -> fortran style. name_detjac = name_jacobian_determinant(visitor) temporary_variable(name_detjac, shape=()) - temporary_variable(name, shape=(dim, dim), managed=True) + ftags = ",".join(["f"] * 2) + temporary_variable(name, shape=(dim, dim), dim_tags=ftags, managed=True) include_file('dune/perftool/sumfact/invertgeometry.hh', filetag='operatorfile') code = "{} = invert_and_return_determinant({}, {});".format(name_detjac, ", ".join(names_jacobian), diff --git a/python/dune/perftool/sumfact/permutation.py b/python/dune/perftool/sumfact/permutation.py index b00be306a7f6c724b35107c30692c2f0d1b4f14a..211bf22a3d3d586991381a3862af149e61a1de56 100644 --- a/python/dune/perftool/sumfact/permutation.py +++ b/python/dune/perftool/sumfact/permutation.py @@ -2,6 +2,9 @@ import itertools +from dune.perftool.options import get_option +from dune.perftool.sumfact.switch import get_facedir, get_facemod + def sumfact_permutation_heuristic(permutations, stage): """Heuristic to choose a permutation @@ -49,7 +52,7 @@ def sumfact_permutation_strategy(sf): heuristic is used to pick one. """ # Extract information from the SumfactKernel object - matrix_sequence = sf.matrix_sequence + matrix_sequence = sf.permuted_matrix_sequence stage = sf.stage # Combine permutation and matrix_sequence @@ -74,6 +77,13 @@ def sumfact_permutation_strategy(sf): def permute_forward(t, perm): + """Forward permute t according to perm (not inplace) + + Example: + t = ('a', 'b', 'c') + perm = (1, 2, 0) + -> ('b', 'c', 'a') + """ tmp = [] for pos in perm: tmp.append(t[pos]) @@ -81,7 +91,55 @@ def permute_forward(t, perm): def permute_backward(t, perm): + """Backward permute t according to perm (not inplace) + + Inverse of permute_forward(t, perm). + + Example: + t = ('a', 'b', 'c') + perm = (1, 2, 0) + -> ('c', 'a', 'b') + """ tmp = [None] * len(t) for i, pos in enumerate(perm): tmp[pos] = t[i] return tuple(tmp) + + +def sumfact_quadrature_permutation_strategy(dim, restriction): + """Return order of direction for the quadrature points for stage 2 + + On intersection we need to make sure to go through the quadrature points of + self and neighbor in the same order. We do this by making the grid edge + consistent and complying to a convention of the directions depending on the + dimension, restriction, facedir and facemod. + + In order to derive those conventions you need to draw the cells with edge + orientation and see how to match the intersections. + """ + # Use a simpler convention for structured grids. In this case we can always + # go through the directions in the normal order. The same is true for 2D + # and sum factorization on volumes. + if (not get_option('grid_unstructured')) or dim == 2 or restriction == 0: + return tuple(range(dim)) + else: + def _order_on_self(restriction): + facedir = get_facedir(restriction) + facemod = get_facemod(restriction) + + # Here we specify the convention + if (facedir, facemod) in [(0, 0), (1, 1), (2, 0)]: + return tuple(range(dim)) + else: + l = list(range(dim)) + l.reverse() + return tuple(l) + + # On neighbor we need the reverse order + if restriction == 1: + return _order_on_self(restriction) + else: + assert restriction == 2 + l = list(_order_on_self(restriction)) + l.reverse() + return tuple(l) diff --git a/python/dune/perftool/sumfact/quadrature.py b/python/dune/perftool/sumfact/quadrature.py index 6fe70fa441979c4ae00a5f44acc8136def9f5fb0..398e793d49d5beb98d35e14a859936e15f03332c 100644 --- a/python/dune/perftool/sumfact/quadrature.py +++ b/python/dune/perftool/sumfact/quadrature.py @@ -177,6 +177,17 @@ def quadrature_weight(visitor): def define_quadrature_position(name, local_index): + # TODO: This whole function looks quite suspicious: + # - qps_per_dir not used + # - probably rename index to local_index + # + # This whole function is probably not used anymore since we use sum + # factorization for evaluation of global coordinate, jacobian inverse + # transposed and determinant of the jacobian of the geometry mapping. + # + # Needs to be fixed. Or removed. Added to my to do list ;) + assert False + qps_per_dir = quadrature_points_per_direction() local_qps_per_dir = local_quadrature_points_per_direction() qp_bound = local_qps_per_dir[index] diff --git a/python/dune/perftool/sumfact/realization.py b/python/dune/perftool/sumfact/realization.py index 794e67e1dc1a7947f82399554e9678114c017101..2c5f8a3c3b44e1dd473816464b7856432bdc37b4 100644 --- a/python/dune/perftool/sumfact/realization.py +++ b/python/dune/perftool/sumfact/realization.py @@ -76,8 +76,8 @@ def _realize_sum_factorization_kernel(sf): for buf in buffers: # Determine the necessary size of the buffer. We assume that we do not # underintegrate the form!!! - size = max(product(m.quadrature_size for m in sf.matrix_sequence) * sf.vector_width, - product(m.basis_size for m in sf.matrix_sequence) * sf.vector_width) + size = max(product(m.quadrature_size for m in sf.permuted_matrix_sequence) * sf.vector_width, + product(m.basis_size for m in sf.permuted_matrix_sequence) * sf.vector_width) temporary_variable("{}_dummy".format(buf), shape=(size,), custom_base_storage=buf, @@ -161,7 +161,7 @@ def realize_sumfact_kernel_function(sf): perm = sumfact_permutation_strategy(sf) # Permute matrix sequence - matrix_sequence = permute_forward(sf.matrix_sequence, perm) + matrix_sequence = permute_forward(sf.permuted_matrix_sequence, perm) # Product of all matrices for l, matrix in enumerate(matrix_sequence): @@ -190,12 +190,17 @@ def realize_sumfact_kernel_function(sf): # first matrix multiplication this can be taken from # * an input temporary (default) # * a global data structure (if FastDGGridOperator is in use) - # * a value from a global data structure, broadcasted to a vector type (vectorized + FastDGGridOperator) + # * a value from a global data structure, broadcasted to a vector type + # (vectorized + FastDGGridOperator) input_inames = (k_expr,) + tuple(prim.Variable(j) for j in out_inames[1:]) if l == 0 and sf.stage == 1 and sf.interface.direct_is_possible: - # See comment below - input_inames = permute_backward(input_inames, perm) + # One permutation for cost reduction, see comment below inp_shape = permute_backward(inp_shape, perm) + input_inames = permute_backward(input_inames, perm) + + # And one more for permuted quadrature points, see comment below + inp_shape = permute_backward(inp_shape, sf.quadrature_permutation) + input_inames = permute_backward(input_inames, sf.quadrature_permutation) input_summand = sf.interface.realize_direct(inp_shape, input_inames) else: @@ -206,6 +211,13 @@ def realize_sumfact_kernel_function(sf): if l == 0: inp_shape = permute_backward(inp_shape, perm) input_inames = permute_backward(input_inames, perm) + if sf.stage == 1: + # In the unstructured case the sf.permuted_matrix_sequence could + # already be permuted according to + # sf.quadrature_permutation. We also need to reverse this + # permutation to get the input from 0 to d-1. + inp_shape = permute_backward(inp_shape, sf.quadrature_permutation) + input_inames = permute_backward(input_inames, sf.quadrature_permutation) # Get a temporary that interprets the base storage of the input # as a column-major matrix. In later iteration of the matrix loop @@ -215,7 +227,8 @@ def realize_sumfact_kernel_function(sf): dim_tags=ftags, ) - # The input temporary will only be read from, so we need to silence the loopy warning + # The input temporary will only be read from, so we need to silence + # the loopy warning silenced_warning('read_no_write({})'.format(inp)) input_summand = prim.Subscript(prim.Variable(inp), @@ -235,6 +248,9 @@ def realize_sumfact_kernel_function(sf): output_shape = tuple(out_shape[1:]) + (out_shape[0],) if l == len(matrix_sequence) - 1: output_shape = permute_backward(output_shape, perm) + if sf.stage == 3: + output_shape = permute_backward(output_shape, sf.quadrature_permutation) + out = buffer.get_temporary("buff_step{}_out".format(l), shape=output_shape + vec_shape, dim_tags=ftags, @@ -253,6 +269,8 @@ def realize_sumfact_kernel_function(sf): output_inames = tuple(prim.Variable(i) for i in out_inames[1:]) + (prim.Variable(out_inames[0]),) if l == len(matrix_sequence) - 1: output_inames = permute_backward(output_inames, perm) + if sf.stage == 3: + output_inames = permute_backward(output_inames, sf.quadrature_permutation) # Collect the key word arguments for the loopy instruction insn_args = {"depends_on": insn_dep} diff --git a/python/dune/perftool/sumfact/symbolic.py b/python/dune/perftool/sumfact/symbolic.py index fb283a0536318c1585a0963a33ca76105571cb84..85601c1e84e44bb15f998e227da0b980e63789d9 100644 --- a/python/dune/perftool/sumfact/symbolic.py +++ b/python/dune/perftool/sumfact/symbolic.py @@ -6,6 +6,7 @@ from dune.perftool.generation import (get_counted_variable, transform, ) from dune.perftool.pdelab.geometry import local_dimension, world_dimension +from dune.perftool.sumfact.permutation import permute_forward, sumfact_quadrature_permutation_strategy from dune.perftool.sumfact.quadrature import quadrature_inames from dune.perftool.sumfact.tabulation import BasisTabulationMatrixBase, BasisTabulationMatrixArray from dune.perftool.loopy.target import dtype_floatingpoint, type_floatingpoint @@ -158,7 +159,7 @@ class VectorSumfactKernelOutput(SumfactKernelInterfaceBase): from dune.perftool.sumfact.accumulation import accum_iname element = get_leaf(trial_element, trial_element_index) if trial_element is not None else None inames = tuple(accum_iname(element, mat.rows, i) - for i, mat in enumerate(sf.matrix_sequence)) + for i, mat in enumerate(sf.permuted_matrix_sequence)) veciname = accum_iname(element, sf.vector_width // len(outputs), "vec") transform(lp.tag_inames, [(veciname, "vec")]) @@ -224,6 +225,7 @@ class SumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable): insn_dep=frozenset(), interface=SumfactKernelInterfaceBase(), predicates=frozenset(), + quadrature_permutation=None, ): """Create a sum factorization kernel @@ -269,9 +271,10 @@ class SumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable): Arguments: ---------- - matrix_sequence: A tuple of BasisTabulationMatrixBase instances - The list of tensors to be applied to the input. - Order of application is from 0 up. + matrix_sequence: A tuple of BasisTabulationMatrixBase instances The + list of tensors to be applied to the input ordered from direction 0 + to d-1. This might not be the order in which the tensors will be + applied. buffer: A string identifying the flip flop buffer in use for intermediate results. The memory is expected to be pre-initialized with the input or you have to provide @@ -296,6 +299,27 @@ class SumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable): for a in SumfactKernel.init_arg_names: defaultdict[a] = eval(a) + dim = len(matrix_sequence) + + # Not sure if this whole permuting would make sense if we would do sum + # factorized evaluation of intersections where len(matrix_sequence) + # would not be equal to world dim. + assert dim == world_dimension() + + # Get restriction for this sum factorization kernel. Note: For + # accumulation output we have a restriction for the test (index 0) and + # ansatz (index 1) space. We need the restriction corresponding to the + # test space since we are in stage 3 + restriction = interface.restriction + if isinstance(restriction, tuple): + assert interface.stage is 3 + assert len(restriction) is 2 + restriction = restriction[0] + + # Store correct quadrature_permutation + quadrature_permuation = sumfact_quadrature_permutation_strategy(dim, restriction) + defaultdict['quadrature_permutation'] = quadrature_permuation + # Call the base class constructors ImmutableRecord.__init__(self, **defaultdict) prim.Variable.__init__(self, "SUMFACT") @@ -308,13 +332,14 @@ class SumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable): return tuple(getattr(self, arg) for arg in SumfactKernel.init_arg_names) def stringifier(self): + # Uses __str__ below return lp.symbolic.StringifyMapper def __str__(self): - # Above stringifier just calls back into this + # Return permuted_matrix_sequence return "SF{}:[{}]->[{}]".format(self.stage, str(self.interface), - ", ".join(str(m) for m in self.matrix_sequence)) + ", ".join(str(m) for m in self.permuted_matrix_sequence)) mapper_method = "map_sumfact_kernel" @@ -325,13 +350,25 @@ class SumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable): @property def function_name(self): """ The name of the function that implements this kernel """ - return "sfimpl_{}{}".format("_".join(str(m) for m in self.matrix_sequence), + # Use permuted_matrix_sequence here since this is more consistent with + # the vectorized case + name = "sfimpl_{}{}".format("_".join(str(m) for m in self.permuted_matrix_sequence), self.interface.function_name_suffix) + # On unstructured we need different permutation of the input to realize + # different permuation of quadrature points on self and neighbor. Mangle + # the permutation of the quadrature points into the name to generate + # sperate functions. + if self.quadrature_permutation != tuple(range(len(self.matrix_sequence))): + name_quad_perm = "_qpperm_{}".format("".join(str(a) for a in self.quadrature_permutation)) + name = name + name_quad_perm + + return name + @property def parallel_key(self): """ A key that identifies parallellizable kernels. """ - return tuple(m.basis_size for m in self.matrix_sequence) + (self.stage, self.buffer) + return tuple(m.basis_size for m in self.permuted_matrix_sequence) + (self.stage, self.buffer) @property def cache_key(self): @@ -395,13 +432,26 @@ class SumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable): """ return 0 + @property + def permuted_matrix_sequence(self): + """Matrix sequence ordered according to desired quadrature point ordered + + Except for face integrals on 3D unstructured grids this will just be + the matrix sequence. In this special case it might be the reverse order + to ensure that quadrature points are visited in the same order on self + and neighbor. + """ + perm = self.quadrature_permutation + permuted_matrix_sequence = permute_forward(self.matrix_sequence, perm) + return permuted_matrix_sequence + @property def quadrature_shape(self): """ The shape of a temporary for the quadrature points Takes into account the lower dimensionality of faces and vectorization. """ - return tuple(mat.quadrature_size for mat in self.matrix_sequence) + return tuple(mat.quadrature_size for mat in self.permuted_matrix_sequence) def quadrature_index(self, sf, visitor): if visitor.current_info[1] is None: @@ -414,14 +464,14 @@ class SumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable): element = element.extract_component(element_index)[1] quad_inames = quadrature_inames(element) - if len(self.matrix_sequence) == local_dimension(): + if len(self.permuted_matrix_sequence) == local_dimension(): return tuple(prim.Variable(i) for i in quad_inames) # Traverse all the quadrature inames and map them to their correct direction index = [] i = 0 for d in range(world_dimension()): - if self.matrix_sequence[d].face is None: + if self.permuted_matrix_sequence[d].face is None: index.append(prim.Variable(quad_inames[i])) i = i + 1 else: @@ -444,7 +494,7 @@ class SumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable): Takes into account vectorization. """ - return tuple(mat.basis_size for mat in self.matrix_sequence) + return tuple(mat.basis_size for mat in self.permuted_matrix_sequence) @property def dof_dimtags(self): @@ -519,7 +569,7 @@ class SumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable): """ The total number of floating point operations for the kernel to be carried out """ from dune.perftool.sumfact.permutation import flop_cost - return flop_cost(self.matrix_sequence) + return flop_cost(self.permuted_matrix_sequence) # Extract the argument list and store it on the class. This needs to be done @@ -548,14 +598,18 @@ class VectorizedSumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable) # Assert properties of the matrix sequence of the underlying kernels for i in range(kernels[0].length): - assert len(set(tuple(k.matrix_sequence[i].rows for k in kernels))) == 1 - assert len(set(tuple(k.matrix_sequence[i].cols for k in kernels))) == 1 - assert len(set(tuple(k.matrix_sequence[i].direction for k in kernels))) == 1 - assert len(set(tuple(k.matrix_sequence[i].transpose for k in kernels))) == 1 + assert len(set(tuple(k.permuted_matrix_sequence[i].rows for k in kernels))) == 1 + assert len(set(tuple(k.permuted_matrix_sequence[i].cols for k in kernels))) == 1 + assert len(set(tuple(k.permuted_matrix_sequence[i].direction for k in kernels))) == 1 + assert len(set(tuple(k.permuted_matrix_sequence[i].transpose for k in kernels))) == 1 # Join the instruction dependencies of all subkernels insn_dep = insn_dep.union(k.insn_dep for k in kernels) + # Assert that quadrature permutation is the same for all kernels + for k in kernels: + assert k.quadrature_permutation == kernels[0].quadrature_permutation + # We currently assume that all subkernels are consecutive, 0-based within the vector assert None not in kernels @@ -605,14 +659,17 @@ class VectorizedSumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable) # # Deduce all data fields of normal sum factorization kernels from the underlying kernels # - @property def matrix_sequence(self): - return tuple(BasisTabulationMatrixArray(tuple(k.matrix_sequence[i] for k in self.kernels), + return tuple(BasisTabulationMatrixArray(tuple(k.permuted_matrix_sequence[i] for k in self.kernels), width=self.vector_width, ) for i in range(self.length)) + @property + def permuted_matrix_sequence(self): + return self.matrix_sequence + @property def stage(self): return self.kernels[0].stage @@ -621,6 +678,10 @@ class VectorizedSumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable) def restriction(self): return self.kernels[0].restriction + @property + def quadrature_permutation(self): + return self.kernels[0].quadrature_permutation + @property def within_inames(self): return self.kernels[0].within_inames @@ -678,7 +739,7 @@ class VectorizedSumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable) def horizontal_index(self, sf): for i, k in enumerate(self.kernels): if sf.inout_key == k.inout_key: - if tuple(mat.derivative for mat in sf.matrix_sequence) == tuple(mat.derivative for mat in k.matrix_sequence): + if tuple(mat.derivative for mat in sf.permuted_matrix_sequence) == tuple(mat.derivative for mat in k.permuted_matrix_sequence): return i return 0 @@ -733,7 +794,7 @@ class VectorizedSumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable) quad_inames = quadrature_inames(element) sliced = 0 - if len(sf.matrix_sequence) == local_dimension(): + if len(sf.permuted_matrix_sequence) == local_dimension(): for d in range(local_dimension()): if self.matrix_sequence[d].slice_size: sliced = prim.Variable(quad_inames[d]) @@ -803,7 +864,7 @@ class VectorizedSumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable) to be executed - neglecting the existence of caches of course """ dofs = product(mat.basis_size for mat in self.matrix_sequence) - matrices = sum(mat.memory_traffic for mat in set(matrix_sequence)) + matrices = sum(mat.memory_traffic for mat in set(self.matrix_sequence)) fbytes = get_option("precision_bits") / 8 return (dofs + matrices) * fbytes diff --git a/python/dune/perftool/sumfact/tabulation.py b/python/dune/perftool/sumfact/tabulation.py index de13c45c3105e8c0e7411d1d849f7f55f4629e96..e913ed6243ff50f1e028bcff41dc2d2547e0c690 100644 --- a/python/dune/perftool/sumfact/tabulation.py +++ b/python/dune/perftool/sumfact/tabulation.py @@ -51,6 +51,17 @@ class BasisTabulationMatrix(BasisTabulationMatrixBase, ImmutableRecord): slice_size=None, slice_index=None, ): + """ + Arguments: + ---------- + basis_size: Number of 1D basis functions in this direction + transpose: Do we need the transposed of this matrix + derivative: Do we use derivaties of the basis functions for this direction + face: On a face with the normal direction equal to direction this is facemod (else it is None) + direction: Direction corresponding to this matrix + slice_size: Number of slices for this direction + slice_index: To which slice does this belong + """ assert(isinstance(basis_size, int)) ImmutableRecord.__init__(self, basis_size=basis_size, diff --git a/python/dune/perftool/sumfact/vectorization.py b/python/dune/perftool/sumfact/vectorization.py index aed3f4a30b9115fc0a4aef1169f85db8e492853a..27585679b456dd27a3470b999798fab02823eb3b 100644 --- a/python/dune/perftool/sumfact/vectorization.py +++ b/python/dune/perftool/sumfact/vectorization.py @@ -16,8 +16,7 @@ from dune.perftool.generation import (backend, from dune.perftool.pdelab.restriction import (Restriction, restricted_name, ) -from dune.perftool.sumfact.tabulation import (BasisTabulationMatrixArray, - quadrature_points_per_direction, +from dune.perftool.sumfact.tabulation import (quadrature_points_per_direction, set_quadrature_points, ) from dune.perftool.error import PerftoolVectorizationError @@ -254,7 +253,7 @@ def level1_optimal_vectorization_strategy(sumfacts, width): sf = next(iter(sumfacts)) depth = 1 while depth <= width: - i = 0 if sf.matrix_sequence[0].face is None else 1 + i = 0 if sf.permuted_matrix_sequence[0].face is None else 1 quad = list(quadrature_points_per_direction()) quad[i] = round_to_multiple(quad[i], depth) quad_points.append(tuple(quad)) @@ -390,14 +389,14 @@ def get_vectorization_dict(sumfacts, vertical, horizontal, qp): continue # Determine the slicing direction - slice_direction = 0 if sf.matrix_sequence[0].face is None else 1 + slice_direction = 0 if sf.permuted_matrix_sequence[0].face is None else 1 if qp[slice_direction] % vertical != 0: return None # Split the basis tabulation matrices - oldtab = sf.matrix_sequence[slice_direction] + oldtab = sf.permuted_matrix_sequence[slice_direction] for i in range(vertical): - seq = list(sf.matrix_sequence) + seq = list(sf.permuted_matrix_sequence) seq[slice_direction] = oldtab.copy(slice_size=vertical, slice_index=i) kernels.append(sf.copy(matrix_sequence=tuple(seq))) diff --git a/test/sumfact/poisson/CMakeLists.txt b/test/sumfact/poisson/CMakeLists.txt index a304dc7fcb6649ff6440688fcd0055d3645c65f4..91e9e60755a314f083cbb3d25088a52192c9cade 100644 --- a/test/sumfact/poisson/CMakeLists.txt +++ b/test/sumfact/poisson/CMakeLists.txt @@ -61,6 +61,24 @@ if(consistent-edge-orientation_FOUND) INIFILE poisson_dg_3d_unstructured.mini ANALYZE_GRID ) + dune_add_formcompiler_system_test(UFLFILE poisson_dg_2d.ufl + BASENAME sumfact_poisson_dg_2d_gmsh + INIFILE poisson_dg_2d_gmsh.mini + ANALYZE_GRID + ) + dune_add_formcompiler_system_test(UFLFILE poisson_dg_3d.ufl + BASENAME sumfact_poisson_dg_3d_gmsh + INIFILE poisson_dg_3d_gmsh.mini + ANALYZE_GRID + ) + dune_add_formcompiler_system_test(UFLFILE poisson_dg_3d.ufl + BASENAME sumfact_poisson_fastdg_3d_gmsh + INIFILE poisson_fastdg_3d_gmsh.mini + ANALYZE_GRID + ) + dune_symlink_to_source_files(FILES square_quad.msh square_quad_consistent.msh) + dune_symlink_to_source_files(FILES cube_hexa_2.msh cube_hexa_2_consistent.msh) + dune_symlink_to_source_files(FILES cube_hexa.msh cube_hexa_consistent.msh) endif() #============================================= diff --git a/test/sumfact/poisson/cube_hexa.msh b/test/sumfact/poisson/cube_hexa.msh new file mode 100644 index 0000000000000000000000000000000000000000..15101b483ece71544a5f223606e9d8f912ea5fa1 --- /dev/null +++ b/test/sumfact/poisson/cube_hexa.msh @@ -0,0 +1,1738 @@ +$MeshFormat +2.2 0 8 +$EndMeshFormat +$Nodes +729 +1 0 0 0 +2 1 0 0 +3 1 1 0 +4 0 1 0 +5 0 0 1 +6 1 0 1 +7 1 1 1 +8 0 1 1 +9 0.1249999999997731 0 0 +10 0.2499999999994109 0 0 +11 0.3749999999990461 0 0 +12 0.4999999999986921 0 0 +13 0.6249999999990109 0 0 +14 0.7499999999993406 0 0 +15 0.8749999999996703 0 0 +16 1 0.1249999999997731 0 +17 1 0.2499999999994109 0 +18 1 0.3749999999990461 0 +19 1 0.4999999999986921 0 +20 1 0.6249999999990109 0 +21 1 0.7499999999993406 0 +22 1 0.8749999999996703 0 +23 0.8749999999995012 1 0 +24 0.7500000000003471 1 0 +25 0.625000000001214 1 0 +26 0.5000000000020595 1 0 +27 0.3750000000015609 1 0 +28 0.2500000000010405 1 0 +29 0.1250000000005203 1 0 +30 0 0.8749999999995012 0 +31 0 0.7500000000003471 0 +32 0 0.625000000001214 0 +33 0 0.5000000000020595 0 +34 0 0.3750000000015609 0 +35 0 0.2500000000010405 0 +36 0 0.1250000000005203 0 +37 0.1249999999997731 0 1 +38 0.2499999999994109 0 1 +39 0.3749999999990461 0 1 +40 0.4999999999986921 0 1 +41 0.6249999999990109 0 1 +42 0.7499999999993406 0 1 +43 0.8749999999996703 0 1 +44 1 0.1249999999997731 1 +45 1 0.2499999999994109 1 +46 1 0.3749999999990461 1 +47 1 0.4999999999986921 1 +48 1 0.6249999999990109 1 +49 1 0.7499999999993406 1 +50 1 0.8749999999996703 1 +51 0.8749999999995012 1 1 +52 0.7500000000003471 1 1 +53 0.625000000001214 1 1 +54 0.5000000000020595 1 1 +55 0.3750000000015609 1 1 +56 0.2500000000010405 1 1 +57 0.1250000000005203 1 1 +58 0 0.8749999999995012 1 +59 0 0.7500000000003471 1 +60 0 0.625000000001214 1 +61 0 0.5000000000020595 1 +62 0 0.3750000000015609 1 +63 0 0.2500000000010405 1 +64 0 0.1250000000005203 1 +65 0 0 0.125 +66 0 0 0.25 +67 0 0 0.375 +68 0 0 0.5 +69 0 0 0.625 +70 0 0 0.75 +71 0 0 0.875 +72 1 0 0.125 +73 1 0 0.25 +74 1 0 0.375 +75 1 0 0.5 +76 1 0 0.625 +77 1 0 0.75 +78 1 0 0.875 +79 1 1 0.125 +80 1 1 0.25 +81 1 1 0.375 +82 1 1 0.5 +83 1 1 0.625 +84 1 1 0.75 +85 1 1 0.875 +86 0 1 0.125 +87 0 1 0.25 +88 0 1 0.375 +89 0 1 0.5 +90 0 1 0.625 +91 0 1 0.75 +92 0 1 0.875 +93 0.1249999999998665 0.1250000000004269 0 +94 0.1249999999999599 0.2500000000008368 0 +95 0.1250000000000533 0.3750000000012466 0 +96 0.1250000000001467 0.5000000000016386 0 +97 0.1250000000002401 0.6250000000009386 0 +98 0.1250000000003335 0.7500000000002213 0 +99 0.1250000000004269 0.8749999999995224 0 +100 0.2499999999996146 0.1250000000003335 0 +101 0.2499999999998183 0.2500000000006331 0 +102 0.250000000000022 0.3750000000009321 0 +103 0.2500000000002257 0.5000000000012177 0 +104 0.2500000000004294 0.6250000000006631 0 +105 0.2500000000006332 0.7500000000000954 0 +106 0.2500000000008369 0.8749999999995435 0 +107 0.3749999999993604 0.1250000000002401 0 +108 0.3749999999996748 0.2500000000004294 0 +109 0.3749999999999891 0.3750000000006178 0 +110 0.3750000000003035 0.5000000000007968 0 +111 0.3750000000006178 0.6250000000003878 0 +112 0.3750000000009321 0.7499999999999697 0 +113 0.3750000000012466 0.8749999999995646 0 +114 0.499999999999113 0.1250000000001467 0 +115 0.499999999999534 0.2500000000002257 0 +116 0.4999999999999548 0.3750000000003034 0 +117 0.5000000000003758 0.5000000000003758 0 +118 0.5000000000007967 0.6250000000001126 0 +119 0.5000000000012177 0.7499999999998439 0 +120 0.5000000000016385 0.8749999999995857 0 +121 0.6249999999992863 0.1250000000000533 0 +122 0.6249999999995618 0.250000000000022 0 +123 0.6249999999998369 0.3749999999999891 0 +124 0.6250000000001126 0.4999999999999548 0 +125 0.6250000000003878 0.6249999999998371 0 +126 0.6250000000006634 0.7499999999997179 0 +127 0.6250000000009387 0.8749999999996068 0 +128 0.7499999999994663 0.1249999999999599 0 +129 0.7499999999995922 0.2499999999998183 0 +130 0.7499999999997179 0.3749999999996748 0 +131 0.7499999999998439 0.499999999999534 0 +132 0.7499999999999697 0.6249999999995618 0 +133 0.7500000000000953 0.7499999999995921 0 +134 0.7500000000002213 0.8749999999996281 0 +135 0.8749999999996492 0.1249999999998666 0 +136 0.8749999999996279 0.2499999999996146 0 +137 0.8749999999996068 0.3749999999993605 0 +138 0.8749999999995857 0.499999999999113 0 +139 0.8749999999995646 0.6249999999992862 0 +140 0.8749999999995435 0.7499999999994665 0 +141 0.8749999999995224 0.8749999999996492 0 +142 0.1249999999997731 0 0.125 +143 0.1249999999997731 0 0.25 +144 0.1249999999997731 0 0.375 +145 0.1249999999997731 0 0.5 +146 0.1249999999997731 0 0.625 +147 0.1249999999997731 0 0.75 +148 0.1249999999997731 0 0.875 +149 0.2499999999994109 0 0.125 +150 0.2499999999994109 0 0.25 +151 0.2499999999994109 0 0.375 +152 0.2499999999994109 0 0.5 +153 0.2499999999994109 0 0.625 +154 0.2499999999994109 0 0.75 +155 0.2499999999994109 0 0.875 +156 0.3749999999990461 0 0.125 +157 0.3749999999990461 0 0.25 +158 0.3749999999990461 0 0.375 +159 0.3749999999990461 0 0.5 +160 0.3749999999990461 0 0.625 +161 0.3749999999990461 0 0.75 +162 0.3749999999990461 0 0.875 +163 0.4999999999986921 0 0.125 +164 0.4999999999986921 0 0.25 +165 0.4999999999986921 0 0.375 +166 0.4999999999986921 0 0.5 +167 0.4999999999986921 0 0.625 +168 0.4999999999986921 0 0.75 +169 0.4999999999986921 0 0.875 +170 0.6249999999990109 0 0.125 +171 0.6249999999990109 0 0.25 +172 0.6249999999990109 0 0.375 +173 0.6249999999990109 0 0.5 +174 0.6249999999990109 0 0.625 +175 0.6249999999990109 0 0.75 +176 0.6249999999990109 0 0.875 +177 0.7499999999993406 0 0.125 +178 0.7499999999993406 0 0.25 +179 0.7499999999993406 0 0.375 +180 0.7499999999993406 0 0.5 +181 0.7499999999993406 0 0.625 +182 0.7499999999993406 0 0.75 +183 0.7499999999993406 0 0.875 +184 0.8749999999996703 0 0.125 +185 0.8749999999996703 0 0.25 +186 0.8749999999996703 0 0.375 +187 0.8749999999996703 0 0.5 +188 0.8749999999996703 0 0.625 +189 0.8749999999996703 0 0.75 +190 0.8749999999996703 0 0.875 +191 1 0.1249999999997731 0.125 +192 1 0.1249999999997731 0.25 +193 1 0.1249999999997731 0.375 +194 1 0.1249999999997731 0.5 +195 1 0.1249999999997731 0.625 +196 1 0.1249999999997731 0.75 +197 1 0.1249999999997731 0.875 +198 1 0.2499999999994109 0.125 +199 1 0.2499999999994109 0.25 +200 1 0.2499999999994109 0.375 +201 1 0.2499999999994109 0.5 +202 1 0.2499999999994109 0.625 +203 1 0.2499999999994109 0.75 +204 1 0.2499999999994109 0.875 +205 1 0.3749999999990461 0.125 +206 1 0.3749999999990461 0.25 +207 1 0.3749999999990461 0.375 +208 1 0.3749999999990461 0.5 +209 1 0.3749999999990461 0.625 +210 1 0.3749999999990461 0.75 +211 1 0.3749999999990461 0.875 +212 1 0.4999999999986921 0.125 +213 1 0.4999999999986921 0.25 +214 1 0.4999999999986921 0.375 +215 1 0.4999999999986921 0.5 +216 1 0.4999999999986921 0.625 +217 1 0.4999999999986921 0.75 +218 1 0.4999999999986921 0.875 +219 1 0.6249999999990109 0.125 +220 1 0.6249999999990109 0.25 +221 1 0.6249999999990109 0.375 +222 1 0.6249999999990109 0.5 +223 1 0.6249999999990109 0.625 +224 1 0.6249999999990109 0.75 +225 1 0.6249999999990109 0.875 +226 1 0.7499999999993406 0.125 +227 1 0.7499999999993406 0.25 +228 1 0.7499999999993406 0.375 +229 1 0.7499999999993406 0.5 +230 1 0.7499999999993406 0.625 +231 1 0.7499999999993406 0.75 +232 1 0.7499999999993406 0.875 +233 1 0.8749999999996703 0.125 +234 1 0.8749999999996703 0.25 +235 1 0.8749999999996703 0.375 +236 1 0.8749999999996703 0.5 +237 1 0.8749999999996703 0.625 +238 1 0.8749999999996703 0.75 +239 1 0.8749999999996703 0.875 +240 0.8749999999995012 1 0.125 +241 0.8749999999995012 1 0.25 +242 0.8749999999995012 1 0.375 +243 0.8749999999995012 1 0.5 +244 0.8749999999995012 1 0.625 +245 0.8749999999995012 1 0.75 +246 0.8749999999995012 1 0.875 +247 0.7500000000003471 1 0.125 +248 0.7500000000003471 1 0.25 +249 0.7500000000003471 1 0.375 +250 0.7500000000003471 1 0.5 +251 0.7500000000003471 1 0.625 +252 0.7500000000003471 1 0.75 +253 0.7500000000003471 1 0.875 +254 0.625000000001214 1 0.125 +255 0.625000000001214 1 0.25 +256 0.625000000001214 1 0.375 +257 0.625000000001214 1 0.5 +258 0.625000000001214 1 0.625 +259 0.625000000001214 1 0.75 +260 0.625000000001214 1 0.875 +261 0.5000000000020595 1 0.125 +262 0.5000000000020595 1 0.25 +263 0.5000000000020595 1 0.375 +264 0.5000000000020595 1 0.5 +265 0.5000000000020595 1 0.625 +266 0.5000000000020595 1 0.75 +267 0.5000000000020595 1 0.875 +268 0.3750000000015609 1 0.125 +269 0.3750000000015609 1 0.25 +270 0.3750000000015609 1 0.375 +271 0.3750000000015609 1 0.5 +272 0.3750000000015609 1 0.625 +273 0.3750000000015609 1 0.75 +274 0.3750000000015609 1 0.875 +275 0.2500000000010405 1 0.125 +276 0.2500000000010405 1 0.25 +277 0.2500000000010405 1 0.375 +278 0.2500000000010405 1 0.5 +279 0.2500000000010405 1 0.625 +280 0.2500000000010405 1 0.75 +281 0.2500000000010405 1 0.875 +282 0.1250000000005203 1 0.125 +283 0.1250000000005203 1 0.25 +284 0.1250000000005203 1 0.375 +285 0.1250000000005203 1 0.5 +286 0.1250000000005203 1 0.625 +287 0.1250000000005203 1 0.75 +288 0.1250000000005203 1 0.875 +289 0 0.8749999999995012 0.125 +290 0 0.8749999999995012 0.25 +291 0 0.8749999999995012 0.375 +292 0 0.8749999999995012 0.5 +293 0 0.8749999999995012 0.625 +294 0 0.8749999999995012 0.75 +295 0 0.8749999999995012 0.875 +296 0 0.7500000000003471 0.125 +297 0 0.7500000000003471 0.25 +298 0 0.7500000000003471 0.375 +299 0 0.7500000000003471 0.5 +300 0 0.7500000000003471 0.625 +301 0 0.7500000000003471 0.75 +302 0 0.7500000000003471 0.875 +303 0 0.625000000001214 0.125 +304 0 0.625000000001214 0.25 +305 0 0.625000000001214 0.375 +306 0 0.625000000001214 0.5 +307 0 0.625000000001214 0.625 +308 0 0.625000000001214 0.75 +309 0 0.625000000001214 0.875 +310 0 0.5000000000020595 0.125 +311 0 0.5000000000020595 0.25 +312 0 0.5000000000020595 0.375 +313 0 0.5000000000020595 0.5 +314 0 0.5000000000020595 0.625 +315 0 0.5000000000020595 0.75 +316 0 0.5000000000020595 0.875 +317 0 0.3750000000015609 0.125 +318 0 0.3750000000015609 0.25 +319 0 0.3750000000015609 0.375 +320 0 0.3750000000015609 0.5 +321 0 0.3750000000015609 0.625 +322 0 0.3750000000015609 0.75 +323 0 0.3750000000015609 0.875 +324 0 0.2500000000010405 0.125 +325 0 0.2500000000010405 0.25 +326 0 0.2500000000010405 0.375 +327 0 0.2500000000010405 0.5 +328 0 0.2500000000010405 0.625 +329 0 0.2500000000010405 0.75 +330 0 0.2500000000010405 0.875 +331 0 0.1250000000005203 0.125 +332 0 0.1250000000005203 0.25 +333 0 0.1250000000005203 0.375 +334 0 0.1250000000005203 0.5 +335 0 0.1250000000005203 0.625 +336 0 0.1250000000005203 0.75 +337 0 0.1250000000005203 0.875 +338 0.1249999999998665 0.1250000000004269 1 +339 0.1249999999999599 0.2500000000008368 1 +340 0.1250000000000533 0.3750000000012466 1 +341 0.1250000000001467 0.5000000000016386 1 +342 0.1250000000002401 0.6250000000009386 1 +343 0.1250000000003335 0.7500000000002213 1 +344 0.1250000000004269 0.8749999999995224 1 +345 0.2499999999996146 0.1250000000003335 1 +346 0.2499999999998183 0.2500000000006331 1 +347 0.250000000000022 0.3750000000009321 1 +348 0.2500000000002257 0.5000000000012177 1 +349 0.2500000000004294 0.6250000000006631 1 +350 0.2500000000006332 0.7500000000000954 1 +351 0.2500000000008369 0.8749999999995435 1 +352 0.3749999999993604 0.1250000000002401 1 +353 0.3749999999996748 0.2500000000004294 1 +354 0.3749999999999891 0.3750000000006178 1 +355 0.3750000000003035 0.5000000000007968 1 +356 0.3750000000006178 0.6250000000003878 1 +357 0.3750000000009321 0.7499999999999697 1 +358 0.3750000000012466 0.8749999999995646 1 +359 0.499999999999113 0.1250000000001467 1 +360 0.499999999999534 0.2500000000002257 1 +361 0.4999999999999548 0.3750000000003034 1 +362 0.5000000000003758 0.5000000000003758 1 +363 0.5000000000007967 0.6250000000001126 1 +364 0.5000000000012177 0.7499999999998439 1 +365 0.5000000000016385 0.8749999999995857 1 +366 0.6249999999992863 0.1250000000000533 1 +367 0.6249999999995618 0.250000000000022 1 +368 0.6249999999998369 0.3749999999999891 1 +369 0.6250000000001126 0.4999999999999548 1 +370 0.6250000000003878 0.6249999999998371 1 +371 0.6250000000006634 0.7499999999997179 1 +372 0.6250000000009387 0.8749999999996068 1 +373 0.7499999999994663 0.1249999999999599 1 +374 0.7499999999995922 0.2499999999998183 1 +375 0.7499999999997179 0.3749999999996748 1 +376 0.7499999999998439 0.499999999999534 1 +377 0.7499999999999697 0.6249999999995618 1 +378 0.7500000000000953 0.7499999999995921 1 +379 0.7500000000002213 0.8749999999996281 1 +380 0.8749999999996492 0.1249999999998666 1 +381 0.8749999999996279 0.2499999999996146 1 +382 0.8749999999996068 0.3749999999993605 1 +383 0.8749999999995857 0.499999999999113 1 +384 0.8749999999995646 0.6249999999992862 1 +385 0.8749999999995435 0.7499999999994665 1 +386 0.8749999999995224 0.8749999999996492 1 +387 0.1249999999998665 0.1250000000004269 0.125 +388 0.1249999999998665 0.1250000000004269 0.25 +389 0.1249999999998665 0.1250000000004269 0.375 +390 0.1249999999998665 0.1250000000004269 0.5 +391 0.1249999999998665 0.1250000000004269 0.625 +392 0.1249999999998665 0.1250000000004269 0.75 +393 0.1249999999998665 0.1250000000004269 0.875 +394 0.1249999999999599 0.2500000000008368 0.125 +395 0.1249999999999599 0.2500000000008368 0.25 +396 0.1249999999999599 0.2500000000008368 0.375 +397 0.1249999999999599 0.2500000000008368 0.5 +398 0.1249999999999599 0.2500000000008368 0.625 +399 0.1249999999999599 0.2500000000008368 0.75 +400 0.1249999999999599 0.2500000000008368 0.875 +401 0.1250000000000533 0.3750000000012466 0.125 +402 0.1250000000000533 0.3750000000012466 0.25 +403 0.1250000000000533 0.3750000000012466 0.375 +404 0.1250000000000533 0.3750000000012466 0.5 +405 0.1250000000000533 0.3750000000012466 0.625 +406 0.1250000000000533 0.3750000000012466 0.75 +407 0.1250000000000533 0.3750000000012466 0.875 +408 0.1250000000001467 0.5000000000016386 0.125 +409 0.1250000000001467 0.5000000000016386 0.25 +410 0.1250000000001467 0.5000000000016386 0.375 +411 0.1250000000001467 0.5000000000016386 0.5 +412 0.1250000000001467 0.5000000000016386 0.625 +413 0.1250000000001467 0.5000000000016386 0.75 +414 0.1250000000001467 0.5000000000016386 0.875 +415 0.1250000000002401 0.6250000000009386 0.125 +416 0.1250000000002401 0.6250000000009386 0.25 +417 0.1250000000002401 0.6250000000009386 0.375 +418 0.1250000000002401 0.6250000000009386 0.5 +419 0.1250000000002401 0.6250000000009386 0.625 +420 0.1250000000002401 0.6250000000009386 0.75 +421 0.1250000000002401 0.6250000000009386 0.875 +422 0.1250000000003335 0.7500000000002213 0.125 +423 0.1250000000003335 0.7500000000002213 0.25 +424 0.1250000000003335 0.7500000000002213 0.375 +425 0.1250000000003335 0.7500000000002213 0.5 +426 0.1250000000003335 0.7500000000002213 0.625 +427 0.1250000000003335 0.7500000000002213 0.75 +428 0.1250000000003335 0.7500000000002213 0.875 +429 0.1250000000004269 0.8749999999995224 0.125 +430 0.1250000000004269 0.8749999999995224 0.25 +431 0.1250000000004269 0.8749999999995224 0.375 +432 0.1250000000004269 0.8749999999995224 0.5 +433 0.1250000000004269 0.8749999999995224 0.625 +434 0.1250000000004269 0.8749999999995224 0.75 +435 0.1250000000004269 0.8749999999995224 0.875 +436 0.2499999999996146 0.1250000000003335 0.125 +437 0.2499999999996146 0.1250000000003335 0.25 +438 0.2499999999996146 0.1250000000003335 0.375 +439 0.2499999999996146 0.1250000000003335 0.5 +440 0.2499999999996146 0.1250000000003335 0.625 +441 0.2499999999996146 0.1250000000003335 0.75 +442 0.2499999999996146 0.1250000000003335 0.875 +443 0.2499999999998183 0.2500000000006331 0.125 +444 0.2499999999998183 0.2500000000006331 0.25 +445 0.2499999999998183 0.2500000000006331 0.375 +446 0.2499999999998183 0.2500000000006331 0.5 +447 0.2499999999998183 0.2500000000006331 0.625 +448 0.2499999999998183 0.2500000000006331 0.75 +449 0.2499999999998183 0.2500000000006331 0.875 +450 0.250000000000022 0.3750000000009321 0.125 +451 0.250000000000022 0.3750000000009321 0.25 +452 0.250000000000022 0.3750000000009321 0.375 +453 0.250000000000022 0.3750000000009321 0.5 +454 0.250000000000022 0.3750000000009321 0.625 +455 0.250000000000022 0.3750000000009321 0.75 +456 0.250000000000022 0.3750000000009321 0.875 +457 0.2500000000002257 0.5000000000012177 0.125 +458 0.2500000000002257 0.5000000000012177 0.25 +459 0.2500000000002257 0.5000000000012177 0.375 +460 0.2500000000002257 0.5000000000012177 0.5 +461 0.2500000000002257 0.5000000000012177 0.625 +462 0.2500000000002257 0.5000000000012177 0.75 +463 0.2500000000002257 0.5000000000012177 0.875 +464 0.2500000000004294 0.6250000000006631 0.125 +465 0.2500000000004294 0.6250000000006631 0.25 +466 0.2500000000004294 0.6250000000006631 0.375 +467 0.2500000000004294 0.6250000000006631 0.5 +468 0.2500000000004294 0.6250000000006631 0.625 +469 0.2500000000004294 0.6250000000006631 0.75 +470 0.2500000000004294 0.6250000000006631 0.875 +471 0.2500000000006332 0.7500000000000954 0.125 +472 0.2500000000006332 0.7500000000000954 0.25 +473 0.2500000000006332 0.7500000000000954 0.375 +474 0.2500000000006332 0.7500000000000954 0.5 +475 0.2500000000006332 0.7500000000000954 0.625 +476 0.2500000000006332 0.7500000000000954 0.75 +477 0.2500000000006332 0.7500000000000954 0.875 +478 0.2500000000008369 0.8749999999995435 0.125 +479 0.2500000000008369 0.8749999999995435 0.25 +480 0.2500000000008369 0.8749999999995435 0.375 +481 0.2500000000008369 0.8749999999995435 0.5 +482 0.2500000000008369 0.8749999999995435 0.625 +483 0.2500000000008369 0.8749999999995435 0.75 +484 0.2500000000008369 0.8749999999995435 0.875 +485 0.3749999999993604 0.1250000000002401 0.125 +486 0.3749999999993604 0.1250000000002401 0.25 +487 0.3749999999993604 0.1250000000002401 0.375 +488 0.3749999999993604 0.1250000000002401 0.5 +489 0.3749999999993604 0.1250000000002401 0.625 +490 0.3749999999993604 0.1250000000002401 0.75 +491 0.3749999999993604 0.1250000000002401 0.875 +492 0.3749999999996748 0.2500000000004294 0.125 +493 0.3749999999996748 0.2500000000004294 0.25 +494 0.3749999999996748 0.2500000000004294 0.375 +495 0.3749999999996748 0.2500000000004294 0.5 +496 0.3749999999996748 0.2500000000004294 0.625 +497 0.3749999999996748 0.2500000000004294 0.75 +498 0.3749999999996748 0.2500000000004294 0.875 +499 0.3749999999999891 0.3750000000006178 0.125 +500 0.3749999999999891 0.3750000000006178 0.25 +501 0.3749999999999891 0.3750000000006178 0.375 +502 0.3749999999999891 0.3750000000006178 0.5 +503 0.3749999999999891 0.3750000000006178 0.625 +504 0.3749999999999891 0.3750000000006178 0.75 +505 0.3749999999999891 0.3750000000006178 0.875 +506 0.3750000000003035 0.5000000000007968 0.125 +507 0.3750000000003035 0.5000000000007968 0.25 +508 0.3750000000003035 0.5000000000007968 0.375 +509 0.3750000000003035 0.5000000000007968 0.5 +510 0.3750000000003035 0.5000000000007968 0.625 +511 0.3750000000003035 0.5000000000007968 0.75 +512 0.3750000000003035 0.5000000000007968 0.875 +513 0.3750000000006178 0.6250000000003878 0.125 +514 0.3750000000006178 0.6250000000003878 0.25 +515 0.3750000000006178 0.6250000000003878 0.375 +516 0.3750000000006178 0.6250000000003878 0.5 +517 0.3750000000006178 0.6250000000003878 0.625 +518 0.3750000000006178 0.6250000000003878 0.75 +519 0.3750000000006178 0.6250000000003878 0.875 +520 0.3750000000009321 0.7499999999999697 0.125 +521 0.3750000000009321 0.7499999999999697 0.25 +522 0.3750000000009321 0.7499999999999697 0.375 +523 0.3750000000009321 0.7499999999999697 0.5 +524 0.3750000000009321 0.7499999999999697 0.625 +525 0.3750000000009321 0.7499999999999697 0.75 +526 0.3750000000009321 0.7499999999999697 0.875 +527 0.3750000000012466 0.8749999999995646 0.125 +528 0.3750000000012466 0.8749999999995646 0.25 +529 0.3750000000012466 0.8749999999995646 0.375 +530 0.3750000000012466 0.8749999999995646 0.5 +531 0.3750000000012466 0.8749999999995646 0.625 +532 0.3750000000012466 0.8749999999995646 0.75 +533 0.3750000000012466 0.8749999999995646 0.875 +534 0.499999999999113 0.1250000000001467 0.125 +535 0.499999999999113 0.1250000000001467 0.25 +536 0.499999999999113 0.1250000000001467 0.375 +537 0.499999999999113 0.1250000000001467 0.5 +538 0.499999999999113 0.1250000000001467 0.625 +539 0.499999999999113 0.1250000000001467 0.75 +540 0.499999999999113 0.1250000000001467 0.875 +541 0.499999999999534 0.2500000000002257 0.125 +542 0.499999999999534 0.2500000000002257 0.25 +543 0.499999999999534 0.2500000000002257 0.375 +544 0.499999999999534 0.2500000000002257 0.5 +545 0.499999999999534 0.2500000000002257 0.625 +546 0.499999999999534 0.2500000000002257 0.75 +547 0.499999999999534 0.2500000000002257 0.875 +548 0.4999999999999548 0.3750000000003034 0.125 +549 0.4999999999999548 0.3750000000003034 0.25 +550 0.4999999999999548 0.3750000000003034 0.375 +551 0.4999999999999548 0.3750000000003034 0.5 +552 0.4999999999999548 0.3750000000003034 0.625 +553 0.4999999999999548 0.3750000000003034 0.75 +554 0.4999999999999548 0.3750000000003034 0.875 +555 0.5000000000003758 0.5000000000003758 0.125 +556 0.5000000000003758 0.5000000000003758 0.25 +557 0.5000000000003758 0.5000000000003758 0.375 +558 0.5000000000003758 0.5000000000003758 0.5 +559 0.5000000000003758 0.5000000000003758 0.625 +560 0.5000000000003758 0.5000000000003758 0.75 +561 0.5000000000003758 0.5000000000003758 0.875 +562 0.5000000000007967 0.6250000000001126 0.125 +563 0.5000000000007967 0.6250000000001126 0.25 +564 0.5000000000007967 0.6250000000001126 0.375 +565 0.5000000000007967 0.6250000000001126 0.5 +566 0.5000000000007967 0.6250000000001126 0.625 +567 0.5000000000007967 0.6250000000001126 0.75 +568 0.5000000000007967 0.6250000000001126 0.875 +569 0.5000000000012177 0.7499999999998439 0.125 +570 0.5000000000012177 0.7499999999998439 0.25 +571 0.5000000000012177 0.7499999999998439 0.375 +572 0.5000000000012177 0.7499999999998439 0.5 +573 0.5000000000012177 0.7499999999998439 0.625 +574 0.5000000000012177 0.7499999999998439 0.75 +575 0.5000000000012177 0.7499999999998439 0.875 +576 0.5000000000016385 0.8749999999995857 0.125 +577 0.5000000000016385 0.8749999999995857 0.25 +578 0.5000000000016385 0.8749999999995857 0.375 +579 0.5000000000016385 0.8749999999995857 0.5 +580 0.5000000000016385 0.8749999999995857 0.625 +581 0.5000000000016385 0.8749999999995857 0.75 +582 0.5000000000016385 0.8749999999995857 0.875 +583 0.6249999999992863 0.1250000000000533 0.125 +584 0.6249999999992863 0.1250000000000533 0.25 +585 0.6249999999992863 0.1250000000000533 0.375 +586 0.6249999999992863 0.1250000000000533 0.5 +587 0.6249999999992863 0.1250000000000533 0.625 +588 0.6249999999992863 0.1250000000000533 0.75 +589 0.6249999999992863 0.1250000000000533 0.875 +590 0.6249999999995618 0.250000000000022 0.125 +591 0.6249999999995618 0.250000000000022 0.25 +592 0.6249999999995618 0.250000000000022 0.375 +593 0.6249999999995618 0.250000000000022 0.5 +594 0.6249999999995618 0.250000000000022 0.625 +595 0.6249999999995618 0.250000000000022 0.75 +596 0.6249999999995618 0.250000000000022 0.875 +597 0.6249999999998369 0.3749999999999891 0.125 +598 0.6249999999998369 0.3749999999999891 0.25 +599 0.6249999999998369 0.3749999999999891 0.375 +600 0.6249999999998369 0.3749999999999891 0.5 +601 0.6249999999998369 0.3749999999999891 0.625 +602 0.6249999999998369 0.3749999999999891 0.75 +603 0.6249999999998369 0.3749999999999891 0.875 +604 0.6250000000001126 0.4999999999999548 0.125 +605 0.6250000000001126 0.4999999999999548 0.25 +606 0.6250000000001126 0.4999999999999548 0.375 +607 0.6250000000001126 0.4999999999999548 0.5 +608 0.6250000000001126 0.4999999999999548 0.625 +609 0.6250000000001126 0.4999999999999548 0.75 +610 0.6250000000001126 0.4999999999999548 0.875 +611 0.6250000000003878 0.6249999999998371 0.125 +612 0.6250000000003878 0.6249999999998371 0.25 +613 0.6250000000003878 0.6249999999998371 0.375 +614 0.6250000000003878 0.6249999999998371 0.5 +615 0.6250000000003878 0.6249999999998371 0.625 +616 0.6250000000003878 0.6249999999998371 0.75 +617 0.6250000000003878 0.6249999999998371 0.875 +618 0.6250000000006634 0.7499999999997179 0.125 +619 0.6250000000006634 0.7499999999997179 0.25 +620 0.6250000000006634 0.7499999999997179 0.375 +621 0.6250000000006634 0.7499999999997179 0.5 +622 0.6250000000006634 0.7499999999997179 0.625 +623 0.6250000000006634 0.7499999999997179 0.75 +624 0.6250000000006634 0.7499999999997179 0.875 +625 0.6250000000009387 0.8749999999996068 0.125 +626 0.6250000000009387 0.8749999999996068 0.25 +627 0.6250000000009387 0.8749999999996068 0.375 +628 0.6250000000009387 0.8749999999996068 0.5 +629 0.6250000000009387 0.8749999999996068 0.625 +630 0.6250000000009387 0.8749999999996068 0.75 +631 0.6250000000009387 0.8749999999996068 0.875 +632 0.7499999999994663 0.1249999999999599 0.125 +633 0.7499999999994663 0.1249999999999599 0.25 +634 0.7499999999994663 0.1249999999999599 0.375 +635 0.7499999999994663 0.1249999999999599 0.5 +636 0.7499999999994663 0.1249999999999599 0.625 +637 0.7499999999994663 0.1249999999999599 0.75 +638 0.7499999999994663 0.1249999999999599 0.875 +639 0.7499999999995922 0.2499999999998183 0.125 +640 0.7499999999995922 0.2499999999998183 0.25 +641 0.7499999999995922 0.2499999999998183 0.375 +642 0.7499999999995922 0.2499999999998183 0.5 +643 0.7499999999995922 0.2499999999998183 0.625 +644 0.7499999999995922 0.2499999999998183 0.75 +645 0.7499999999995922 0.2499999999998183 0.875 +646 0.7499999999997179 0.3749999999996748 0.125 +647 0.7499999999997179 0.3749999999996748 0.25 +648 0.7499999999997179 0.3749999999996748 0.375 +649 0.7499999999997179 0.3749999999996748 0.5 +650 0.7499999999997179 0.3749999999996748 0.625 +651 0.7499999999997179 0.3749999999996748 0.75 +652 0.7499999999997179 0.3749999999996748 0.875 +653 0.7499999999998439 0.499999999999534 0.125 +654 0.7499999999998439 0.499999999999534 0.25 +655 0.7499999999998439 0.499999999999534 0.375 +656 0.7499999999998439 0.499999999999534 0.5 +657 0.7499999999998439 0.499999999999534 0.625 +658 0.7499999999998439 0.499999999999534 0.75 +659 0.7499999999998439 0.499999999999534 0.875 +660 0.7499999999999697 0.6249999999995618 0.125 +661 0.7499999999999697 0.6249999999995618 0.25 +662 0.7499999999999697 0.6249999999995618 0.375 +663 0.7499999999999697 0.6249999999995618 0.5 +664 0.7499999999999697 0.6249999999995618 0.625 +665 0.7499999999999697 0.6249999999995618 0.75 +666 0.7499999999999697 0.6249999999995618 0.875 +667 0.7500000000000953 0.7499999999995921 0.125 +668 0.7500000000000953 0.7499999999995921 0.25 +669 0.7500000000000953 0.7499999999995921 0.375 +670 0.7500000000000953 0.7499999999995921 0.5 +671 0.7500000000000953 0.7499999999995921 0.625 +672 0.7500000000000953 0.7499999999995921 0.75 +673 0.7500000000000953 0.7499999999995921 0.875 +674 0.7500000000002213 0.8749999999996281 0.125 +675 0.7500000000002213 0.8749999999996281 0.25 +676 0.7500000000002213 0.8749999999996281 0.375 +677 0.7500000000002213 0.8749999999996281 0.5 +678 0.7500000000002213 0.8749999999996281 0.625 +679 0.7500000000002213 0.8749999999996281 0.75 +680 0.7500000000002213 0.8749999999996281 0.875 +681 0.8749999999996492 0.1249999999998666 0.125 +682 0.8749999999996492 0.1249999999998666 0.25 +683 0.8749999999996492 0.1249999999998666 0.375 +684 0.8749999999996492 0.1249999999998666 0.5 +685 0.8749999999996492 0.1249999999998666 0.625 +686 0.8749999999996492 0.1249999999998666 0.75 +687 0.8749999999996492 0.1249999999998666 0.875 +688 0.8749999999996279 0.2499999999996146 0.125 +689 0.8749999999996279 0.2499999999996146 0.25 +690 0.8749999999996279 0.2499999999996146 0.375 +691 0.8749999999996279 0.2499999999996146 0.5 +692 0.8749999999996279 0.2499999999996146 0.625 +693 0.8749999999996279 0.2499999999996146 0.75 +694 0.8749999999996279 0.2499999999996146 0.875 +695 0.8749999999996068 0.3749999999993605 0.125 +696 0.8749999999996068 0.3749999999993605 0.25 +697 0.8749999999996068 0.3749999999993605 0.375 +698 0.8749999999996068 0.3749999999993605 0.5 +699 0.8749999999996068 0.3749999999993605 0.625 +700 0.8749999999996068 0.3749999999993605 0.75 +701 0.8749999999996068 0.3749999999993605 0.875 +702 0.8749999999995857 0.499999999999113 0.125 +703 0.8749999999995857 0.499999999999113 0.25 +704 0.8749999999995857 0.499999999999113 0.375 +705 0.8749999999995857 0.499999999999113 0.5 +706 0.8749999999995857 0.499999999999113 0.625 +707 0.8749999999995857 0.499999999999113 0.75 +708 0.8749999999995857 0.499999999999113 0.875 +709 0.8749999999995646 0.6249999999992862 0.125 +710 0.8749999999995646 0.6249999999992862 0.25 +711 0.8749999999995646 0.6249999999992862 0.375 +712 0.8749999999995646 0.6249999999992862 0.5 +713 0.8749999999995646 0.6249999999992862 0.625 +714 0.8749999999995646 0.6249999999992862 0.75 +715 0.8749999999995646 0.6249999999992862 0.875 +716 0.8749999999995435 0.7499999999994665 0.125 +717 0.8749999999995435 0.7499999999994665 0.25 +718 0.8749999999995435 0.7499999999994665 0.375 +719 0.8749999999995435 0.7499999999994665 0.5 +720 0.8749999999995435 0.7499999999994665 0.625 +721 0.8749999999995435 0.7499999999994665 0.75 +722 0.8749999999995435 0.7499999999994665 0.875 +723 0.8749999999995224 0.8749999999996492 0.125 +724 0.8749999999995224 0.8749999999996492 0.25 +725 0.8749999999995224 0.8749999999996492 0.375 +726 0.8749999999995224 0.8749999999996492 0.5 +727 0.8749999999995224 0.8749999999996492 0.625 +728 0.8749999999995224 0.8749999999996492 0.75 +729 0.8749999999995224 0.8749999999996492 0.875 +$EndNodes +$Elements +1000 +1 15 2 0 1 1 +2 15 2 0 2 2 +3 15 2 0 3 3 +4 15 2 0 4 4 +5 15 2 0 5 5 +6 15 2 0 6 6 +7 15 2 0 10 7 +8 15 2 0 14 8 +9 1 2 0 5 1 9 +10 1 2 0 5 9 10 +11 1 2 0 5 10 11 +12 1 2 0 5 11 12 +13 1 2 0 5 12 13 +14 1 2 0 5 13 14 +15 1 2 0 5 14 15 +16 1 2 0 5 15 2 +17 1 2 0 6 2 16 +18 1 2 0 6 16 17 +19 1 2 0 6 17 18 +20 1 2 0 6 18 19 +21 1 2 0 6 19 20 +22 1 2 0 6 20 21 +23 1 2 0 6 21 22 +24 1 2 0 6 22 3 +25 1 2 0 7 3 23 +26 1 2 0 7 23 24 +27 1 2 0 7 24 25 +28 1 2 0 7 25 26 +29 1 2 0 7 26 27 +30 1 2 0 7 27 28 +31 1 2 0 7 28 29 +32 1 2 0 7 29 4 +33 1 2 0 8 4 30 +34 1 2 0 8 30 31 +35 1 2 0 8 31 32 +36 1 2 0 8 32 33 +37 1 2 0 8 33 34 +38 1 2 0 8 34 35 +39 1 2 0 8 35 36 +40 1 2 0 8 36 1 +41 1 2 0 12 5 37 +42 1 2 0 12 37 38 +43 1 2 0 12 38 39 +44 1 2 0 12 39 40 +45 1 2 0 12 40 41 +46 1 2 0 12 41 42 +47 1 2 0 12 42 43 +48 1 2 0 12 43 6 +49 1 2 0 13 6 44 +50 1 2 0 13 44 45 +51 1 2 0 13 45 46 +52 1 2 0 13 46 47 +53 1 2 0 13 47 48 +54 1 2 0 13 48 49 +55 1 2 0 13 49 50 +56 1 2 0 13 50 7 +57 1 2 0 14 7 51 +58 1 2 0 14 51 52 +59 1 2 0 14 52 53 +60 1 2 0 14 53 54 +61 1 2 0 14 54 55 +62 1 2 0 14 55 56 +63 1 2 0 14 56 57 +64 1 2 0 14 57 8 +65 1 2 0 15 8 58 +66 1 2 0 15 58 59 +67 1 2 0 15 59 60 +68 1 2 0 15 60 61 +69 1 2 0 15 61 62 +70 1 2 0 15 62 63 +71 1 2 0 15 63 64 +72 1 2 0 15 64 5 +73 1 2 0 17 1 65 +74 1 2 0 17 65 66 +75 1 2 0 17 66 67 +76 1 2 0 17 67 68 +77 1 2 0 17 68 69 +78 1 2 0 17 69 70 +79 1 2 0 17 70 71 +80 1 2 0 17 71 5 +81 1 2 0 18 2 72 +82 1 2 0 18 72 73 +83 1 2 0 18 73 74 +84 1 2 0 18 74 75 +85 1 2 0 18 75 76 +86 1 2 0 18 76 77 +87 1 2 0 18 77 78 +88 1 2 0 18 78 6 +89 1 2 0 22 3 79 +90 1 2 0 22 79 80 +91 1 2 0 22 80 81 +92 1 2 0 22 81 82 +93 1 2 0 22 82 83 +94 1 2 0 22 83 84 +95 1 2 0 22 84 85 +96 1 2 0 22 85 7 +97 1 2 0 26 4 86 +98 1 2 0 26 86 87 +99 1 2 0 26 87 88 +100 1 2 0 26 88 89 +101 1 2 0 26 89 90 +102 1 2 0 26 90 91 +103 1 2 0 26 91 92 +104 1 2 0 26 92 8 +105 3 2 0 10 1 9 93 36 +106 3 2 0 10 36 93 94 35 +107 3 2 0 10 35 94 95 34 +108 3 2 0 10 34 95 96 33 +109 3 2 0 10 33 96 97 32 +110 3 2 0 10 32 97 98 31 +111 3 2 0 10 31 98 99 30 +112 3 2 0 10 30 99 29 4 +113 3 2 0 10 9 10 100 93 +114 3 2 0 10 93 100 101 94 +115 3 2 0 10 94 101 102 95 +116 3 2 0 10 95 102 103 96 +117 3 2 0 10 96 103 104 97 +118 3 2 0 10 97 104 105 98 +119 3 2 0 10 98 105 106 99 +120 3 2 0 10 99 106 28 29 +121 3 2 0 10 10 11 107 100 +122 3 2 0 10 100 107 108 101 +123 3 2 0 10 101 108 109 102 +124 3 2 0 10 102 109 110 103 +125 3 2 0 10 103 110 111 104 +126 3 2 0 10 104 111 112 105 +127 3 2 0 10 105 112 113 106 +128 3 2 0 10 106 113 27 28 +129 3 2 0 10 11 12 114 107 +130 3 2 0 10 107 114 115 108 +131 3 2 0 10 108 115 116 109 +132 3 2 0 10 109 116 117 110 +133 3 2 0 10 110 117 118 111 +134 3 2 0 10 111 118 119 112 +135 3 2 0 10 112 119 120 113 +136 3 2 0 10 113 120 26 27 +137 3 2 0 10 12 13 121 114 +138 3 2 0 10 114 121 122 115 +139 3 2 0 10 115 122 123 116 +140 3 2 0 10 116 123 124 117 +141 3 2 0 10 117 124 125 118 +142 3 2 0 10 118 125 126 119 +143 3 2 0 10 119 126 127 120 +144 3 2 0 10 120 127 25 26 +145 3 2 0 10 13 14 128 121 +146 3 2 0 10 121 128 129 122 +147 3 2 0 10 122 129 130 123 +148 3 2 0 10 123 130 131 124 +149 3 2 0 10 124 131 132 125 +150 3 2 0 10 125 132 133 126 +151 3 2 0 10 126 133 134 127 +152 3 2 0 10 127 134 24 25 +153 3 2 0 10 14 15 135 128 +154 3 2 0 10 128 135 136 129 +155 3 2 0 10 129 136 137 130 +156 3 2 0 10 130 137 138 131 +157 3 2 0 10 131 138 139 132 +158 3 2 0 10 132 139 140 133 +159 3 2 0 10 133 140 141 134 +160 3 2 0 10 134 141 23 24 +161 3 2 0 10 15 2 16 135 +162 3 2 0 10 135 16 17 136 +163 3 2 0 10 136 17 18 137 +164 3 2 0 10 137 18 19 138 +165 3 2 0 10 138 19 20 139 +166 3 2 0 10 139 20 21 140 +167 3 2 0 10 140 21 22 141 +168 3 2 0 10 141 22 3 23 +169 3 2 0 19 1 9 142 65 +170 3 2 0 19 65 142 143 66 +171 3 2 0 19 66 143 144 67 +172 3 2 0 19 67 144 145 68 +173 3 2 0 19 68 145 146 69 +174 3 2 0 19 69 146 147 70 +175 3 2 0 19 70 147 148 71 +176 3 2 0 19 71 148 37 5 +177 3 2 0 19 9 10 149 142 +178 3 2 0 19 142 149 150 143 +179 3 2 0 19 143 150 151 144 +180 3 2 0 19 144 151 152 145 +181 3 2 0 19 145 152 153 146 +182 3 2 0 19 146 153 154 147 +183 3 2 0 19 147 154 155 148 +184 3 2 0 19 148 155 38 37 +185 3 2 0 19 10 11 156 149 +186 3 2 0 19 149 156 157 150 +187 3 2 0 19 150 157 158 151 +188 3 2 0 19 151 158 159 152 +189 3 2 0 19 152 159 160 153 +190 3 2 0 19 153 160 161 154 +191 3 2 0 19 154 161 162 155 +192 3 2 0 19 155 162 39 38 +193 3 2 0 19 11 12 163 156 +194 3 2 0 19 156 163 164 157 +195 3 2 0 19 157 164 165 158 +196 3 2 0 19 158 165 166 159 +197 3 2 0 19 159 166 167 160 +198 3 2 0 19 160 167 168 161 +199 3 2 0 19 161 168 169 162 +200 3 2 0 19 162 169 40 39 +201 3 2 0 19 12 13 170 163 +202 3 2 0 19 163 170 171 164 +203 3 2 0 19 164 171 172 165 +204 3 2 0 19 165 172 173 166 +205 3 2 0 19 166 173 174 167 +206 3 2 0 19 167 174 175 168 +207 3 2 0 19 168 175 176 169 +208 3 2 0 19 169 176 41 40 +209 3 2 0 19 13 14 177 170 +210 3 2 0 19 170 177 178 171 +211 3 2 0 19 171 178 179 172 +212 3 2 0 19 172 179 180 173 +213 3 2 0 19 173 180 181 174 +214 3 2 0 19 174 181 182 175 +215 3 2 0 19 175 182 183 176 +216 3 2 0 19 176 183 42 41 +217 3 2 0 19 14 15 184 177 +218 3 2 0 19 177 184 185 178 +219 3 2 0 19 178 185 186 179 +220 3 2 0 19 179 186 187 180 +221 3 2 0 19 180 187 188 181 +222 3 2 0 19 181 188 189 182 +223 3 2 0 19 182 189 190 183 +224 3 2 0 19 183 190 43 42 +225 3 2 0 19 15 2 72 184 +226 3 2 0 19 184 72 73 185 +227 3 2 0 19 185 73 74 186 +228 3 2 0 19 186 74 75 187 +229 3 2 0 19 187 75 76 188 +230 3 2 0 19 188 76 77 189 +231 3 2 0 19 189 77 78 190 +232 3 2 0 19 190 78 6 43 +233 3 2 0 23 2 16 191 72 +234 3 2 0 23 72 191 192 73 +235 3 2 0 23 73 192 193 74 +236 3 2 0 23 74 193 194 75 +237 3 2 0 23 75 194 195 76 +238 3 2 0 23 76 195 196 77 +239 3 2 0 23 77 196 197 78 +240 3 2 0 23 78 197 44 6 +241 3 2 0 23 16 17 198 191 +242 3 2 0 23 191 198 199 192 +243 3 2 0 23 192 199 200 193 +244 3 2 0 23 193 200 201 194 +245 3 2 0 23 194 201 202 195 +246 3 2 0 23 195 202 203 196 +247 3 2 0 23 196 203 204 197 +248 3 2 0 23 197 204 45 44 +249 3 2 0 23 17 18 205 198 +250 3 2 0 23 198 205 206 199 +251 3 2 0 23 199 206 207 200 +252 3 2 0 23 200 207 208 201 +253 3 2 0 23 201 208 209 202 +254 3 2 0 23 202 209 210 203 +255 3 2 0 23 203 210 211 204 +256 3 2 0 23 204 211 46 45 +257 3 2 0 23 18 19 212 205 +258 3 2 0 23 205 212 213 206 +259 3 2 0 23 206 213 214 207 +260 3 2 0 23 207 214 215 208 +261 3 2 0 23 208 215 216 209 +262 3 2 0 23 209 216 217 210 +263 3 2 0 23 210 217 218 211 +264 3 2 0 23 211 218 47 46 +265 3 2 0 23 19 20 219 212 +266 3 2 0 23 212 219 220 213 +267 3 2 0 23 213 220 221 214 +268 3 2 0 23 214 221 222 215 +269 3 2 0 23 215 222 223 216 +270 3 2 0 23 216 223 224 217 +271 3 2 0 23 217 224 225 218 +272 3 2 0 23 218 225 48 47 +273 3 2 0 23 20 21 226 219 +274 3 2 0 23 219 226 227 220 +275 3 2 0 23 220 227 228 221 +276 3 2 0 23 221 228 229 222 +277 3 2 0 23 222 229 230 223 +278 3 2 0 23 223 230 231 224 +279 3 2 0 23 224 231 232 225 +280 3 2 0 23 225 232 49 48 +281 3 2 0 23 21 22 233 226 +282 3 2 0 23 226 233 234 227 +283 3 2 0 23 227 234 235 228 +284 3 2 0 23 228 235 236 229 +285 3 2 0 23 229 236 237 230 +286 3 2 0 23 230 237 238 231 +287 3 2 0 23 231 238 239 232 +288 3 2 0 23 232 239 50 49 +289 3 2 0 23 22 3 79 233 +290 3 2 0 23 233 79 80 234 +291 3 2 0 23 234 80 81 235 +292 3 2 0 23 235 81 82 236 +293 3 2 0 23 236 82 83 237 +294 3 2 0 23 237 83 84 238 +295 3 2 0 23 238 84 85 239 +296 3 2 0 23 239 85 7 50 +297 3 2 0 27 3 23 240 79 +298 3 2 0 27 79 240 241 80 +299 3 2 0 27 80 241 242 81 +300 3 2 0 27 81 242 243 82 +301 3 2 0 27 82 243 244 83 +302 3 2 0 27 83 244 245 84 +303 3 2 0 27 84 245 246 85 +304 3 2 0 27 85 246 51 7 +305 3 2 0 27 23 24 247 240 +306 3 2 0 27 240 247 248 241 +307 3 2 0 27 241 248 249 242 +308 3 2 0 27 242 249 250 243 +309 3 2 0 27 243 250 251 244 +310 3 2 0 27 244 251 252 245 +311 3 2 0 27 245 252 253 246 +312 3 2 0 27 246 253 52 51 +313 3 2 0 27 24 25 254 247 +314 3 2 0 27 247 254 255 248 +315 3 2 0 27 248 255 256 249 +316 3 2 0 27 249 256 257 250 +317 3 2 0 27 250 257 258 251 +318 3 2 0 27 251 258 259 252 +319 3 2 0 27 252 259 260 253 +320 3 2 0 27 253 260 53 52 +321 3 2 0 27 25 26 261 254 +322 3 2 0 27 254 261 262 255 +323 3 2 0 27 255 262 263 256 +324 3 2 0 27 256 263 264 257 +325 3 2 0 27 257 264 265 258 +326 3 2 0 27 258 265 266 259 +327 3 2 0 27 259 266 267 260 +328 3 2 0 27 260 267 54 53 +329 3 2 0 27 26 27 268 261 +330 3 2 0 27 261 268 269 262 +331 3 2 0 27 262 269 270 263 +332 3 2 0 27 263 270 271 264 +333 3 2 0 27 264 271 272 265 +334 3 2 0 27 265 272 273 266 +335 3 2 0 27 266 273 274 267 +336 3 2 0 27 267 274 55 54 +337 3 2 0 27 27 28 275 268 +338 3 2 0 27 268 275 276 269 +339 3 2 0 27 269 276 277 270 +340 3 2 0 27 270 277 278 271 +341 3 2 0 27 271 278 279 272 +342 3 2 0 27 272 279 280 273 +343 3 2 0 27 273 280 281 274 +344 3 2 0 27 274 281 56 55 +345 3 2 0 27 28 29 282 275 +346 3 2 0 27 275 282 283 276 +347 3 2 0 27 276 283 284 277 +348 3 2 0 27 277 284 285 278 +349 3 2 0 27 278 285 286 279 +350 3 2 0 27 279 286 287 280 +351 3 2 0 27 280 287 288 281 +352 3 2 0 27 281 288 57 56 +353 3 2 0 27 29 4 86 282 +354 3 2 0 27 282 86 87 283 +355 3 2 0 27 283 87 88 284 +356 3 2 0 27 284 88 89 285 +357 3 2 0 27 285 89 90 286 +358 3 2 0 27 286 90 91 287 +359 3 2 0 27 287 91 92 288 +360 3 2 0 27 288 92 8 57 +361 3 2 0 31 4 30 289 86 +362 3 2 0 31 86 289 290 87 +363 3 2 0 31 87 290 291 88 +364 3 2 0 31 88 291 292 89 +365 3 2 0 31 89 292 293 90 +366 3 2 0 31 90 293 294 91 +367 3 2 0 31 91 294 295 92 +368 3 2 0 31 92 295 58 8 +369 3 2 0 31 30 31 296 289 +370 3 2 0 31 289 296 297 290 +371 3 2 0 31 290 297 298 291 +372 3 2 0 31 291 298 299 292 +373 3 2 0 31 292 299 300 293 +374 3 2 0 31 293 300 301 294 +375 3 2 0 31 294 301 302 295 +376 3 2 0 31 295 302 59 58 +377 3 2 0 31 31 32 303 296 +378 3 2 0 31 296 303 304 297 +379 3 2 0 31 297 304 305 298 +380 3 2 0 31 298 305 306 299 +381 3 2 0 31 299 306 307 300 +382 3 2 0 31 300 307 308 301 +383 3 2 0 31 301 308 309 302 +384 3 2 0 31 302 309 60 59 +385 3 2 0 31 32 33 310 303 +386 3 2 0 31 303 310 311 304 +387 3 2 0 31 304 311 312 305 +388 3 2 0 31 305 312 313 306 +389 3 2 0 31 306 313 314 307 +390 3 2 0 31 307 314 315 308 +391 3 2 0 31 308 315 316 309 +392 3 2 0 31 309 316 61 60 +393 3 2 0 31 33 34 317 310 +394 3 2 0 31 310 317 318 311 +395 3 2 0 31 311 318 319 312 +396 3 2 0 31 312 319 320 313 +397 3 2 0 31 313 320 321 314 +398 3 2 0 31 314 321 322 315 +399 3 2 0 31 315 322 323 316 +400 3 2 0 31 316 323 62 61 +401 3 2 0 31 34 35 324 317 +402 3 2 0 31 317 324 325 318 +403 3 2 0 31 318 325 326 319 +404 3 2 0 31 319 326 327 320 +405 3 2 0 31 320 327 328 321 +406 3 2 0 31 321 328 329 322 +407 3 2 0 31 322 329 330 323 +408 3 2 0 31 323 330 63 62 +409 3 2 0 31 35 36 331 324 +410 3 2 0 31 324 331 332 325 +411 3 2 0 31 325 332 333 326 +412 3 2 0 31 326 333 334 327 +413 3 2 0 31 327 334 335 328 +414 3 2 0 31 328 335 336 329 +415 3 2 0 31 329 336 337 330 +416 3 2 0 31 330 337 64 63 +417 3 2 0 31 36 1 65 331 +418 3 2 0 31 331 65 66 332 +419 3 2 0 31 332 66 67 333 +420 3 2 0 31 333 67 68 334 +421 3 2 0 31 334 68 69 335 +422 3 2 0 31 335 69 70 336 +423 3 2 0 31 336 70 71 337 +424 3 2 0 31 337 71 5 64 +425 3 2 0 32 5 37 338 64 +426 3 2 0 32 64 338 339 63 +427 3 2 0 32 63 339 340 62 +428 3 2 0 32 62 340 341 61 +429 3 2 0 32 61 341 342 60 +430 3 2 0 32 60 342 343 59 +431 3 2 0 32 59 343 344 58 +432 3 2 0 32 58 344 57 8 +433 3 2 0 32 37 38 345 338 +434 3 2 0 32 338 345 346 339 +435 3 2 0 32 339 346 347 340 +436 3 2 0 32 340 347 348 341 +437 3 2 0 32 341 348 349 342 +438 3 2 0 32 342 349 350 343 +439 3 2 0 32 343 350 351 344 +440 3 2 0 32 344 351 56 57 +441 3 2 0 32 38 39 352 345 +442 3 2 0 32 345 352 353 346 +443 3 2 0 32 346 353 354 347 +444 3 2 0 32 347 354 355 348 +445 3 2 0 32 348 355 356 349 +446 3 2 0 32 349 356 357 350 +447 3 2 0 32 350 357 358 351 +448 3 2 0 32 351 358 55 56 +449 3 2 0 32 39 40 359 352 +450 3 2 0 32 352 359 360 353 +451 3 2 0 32 353 360 361 354 +452 3 2 0 32 354 361 362 355 +453 3 2 0 32 355 362 363 356 +454 3 2 0 32 356 363 364 357 +455 3 2 0 32 357 364 365 358 +456 3 2 0 32 358 365 54 55 +457 3 2 0 32 40 41 366 359 +458 3 2 0 32 359 366 367 360 +459 3 2 0 32 360 367 368 361 +460 3 2 0 32 361 368 369 362 +461 3 2 0 32 362 369 370 363 +462 3 2 0 32 363 370 371 364 +463 3 2 0 32 364 371 372 365 +464 3 2 0 32 365 372 53 54 +465 3 2 0 32 41 42 373 366 +466 3 2 0 32 366 373 374 367 +467 3 2 0 32 367 374 375 368 +468 3 2 0 32 368 375 376 369 +469 3 2 0 32 369 376 377 370 +470 3 2 0 32 370 377 378 371 +471 3 2 0 32 371 378 379 372 +472 3 2 0 32 372 379 52 53 +473 3 2 0 32 42 43 380 373 +474 3 2 0 32 373 380 381 374 +475 3 2 0 32 374 381 382 375 +476 3 2 0 32 375 382 383 376 +477 3 2 0 32 376 383 384 377 +478 3 2 0 32 377 384 385 378 +479 3 2 0 32 378 385 386 379 +480 3 2 0 32 379 386 51 52 +481 3 2 0 32 43 6 44 380 +482 3 2 0 32 380 44 45 381 +483 3 2 0 32 381 45 46 382 +484 3 2 0 32 382 46 47 383 +485 3 2 0 32 383 47 48 384 +486 3 2 0 32 384 48 49 385 +487 3 2 0 32 385 49 50 386 +488 3 2 0 32 386 50 7 51 +489 5 2 0 1 1 9 93 36 65 142 387 331 +490 5 2 0 1 65 142 387 331 66 143 388 332 +491 5 2 0 1 66 143 388 332 67 144 389 333 +492 5 2 0 1 67 144 389 333 68 145 390 334 +493 5 2 0 1 68 145 390 334 69 146 391 335 +494 5 2 0 1 69 146 391 335 70 147 392 336 +495 5 2 0 1 70 147 392 336 71 148 393 337 +496 5 2 0 1 71 148 393 337 5 37 338 64 +497 5 2 0 1 36 93 94 35 331 387 394 324 +498 5 2 0 1 331 387 394 324 332 388 395 325 +499 5 2 0 1 332 388 395 325 333 389 396 326 +500 5 2 0 1 333 389 396 326 334 390 397 327 +501 5 2 0 1 334 390 397 327 335 391 398 328 +502 5 2 0 1 335 391 398 328 336 392 399 329 +503 5 2 0 1 336 392 399 329 337 393 400 330 +504 5 2 0 1 337 393 400 330 64 338 339 63 +505 5 2 0 1 35 94 95 34 324 394 401 317 +506 5 2 0 1 324 394 401 317 325 395 402 318 +507 5 2 0 1 325 395 402 318 326 396 403 319 +508 5 2 0 1 326 396 403 319 327 397 404 320 +509 5 2 0 1 327 397 404 320 328 398 405 321 +510 5 2 0 1 328 398 405 321 329 399 406 322 +511 5 2 0 1 329 399 406 322 330 400 407 323 +512 5 2 0 1 330 400 407 323 63 339 340 62 +513 5 2 0 1 34 95 96 33 317 401 408 310 +514 5 2 0 1 317 401 408 310 318 402 409 311 +515 5 2 0 1 318 402 409 311 319 403 410 312 +516 5 2 0 1 319 403 410 312 320 404 411 313 +517 5 2 0 1 320 404 411 313 321 405 412 314 +518 5 2 0 1 321 405 412 314 322 406 413 315 +519 5 2 0 1 322 406 413 315 323 407 414 316 +520 5 2 0 1 323 407 414 316 62 340 341 61 +521 5 2 0 1 33 96 97 32 310 408 415 303 +522 5 2 0 1 310 408 415 303 311 409 416 304 +523 5 2 0 1 311 409 416 304 312 410 417 305 +524 5 2 0 1 312 410 417 305 313 411 418 306 +525 5 2 0 1 313 411 418 306 314 412 419 307 +526 5 2 0 1 314 412 419 307 315 413 420 308 +527 5 2 0 1 315 413 420 308 316 414 421 309 +528 5 2 0 1 316 414 421 309 61 341 342 60 +529 5 2 0 1 32 97 98 31 303 415 422 296 +530 5 2 0 1 303 415 422 296 304 416 423 297 +531 5 2 0 1 304 416 423 297 305 417 424 298 +532 5 2 0 1 305 417 424 298 306 418 425 299 +533 5 2 0 1 306 418 425 299 307 419 426 300 +534 5 2 0 1 307 419 426 300 308 420 427 301 +535 5 2 0 1 308 420 427 301 309 421 428 302 +536 5 2 0 1 309 421 428 302 60 342 343 59 +537 5 2 0 1 31 98 99 30 296 422 429 289 +538 5 2 0 1 296 422 429 289 297 423 430 290 +539 5 2 0 1 297 423 430 290 298 424 431 291 +540 5 2 0 1 298 424 431 291 299 425 432 292 +541 5 2 0 1 299 425 432 292 300 426 433 293 +542 5 2 0 1 300 426 433 293 301 427 434 294 +543 5 2 0 1 301 427 434 294 302 428 435 295 +544 5 2 0 1 302 428 435 295 59 343 344 58 +545 5 2 0 1 30 99 29 4 289 429 282 86 +546 5 2 0 1 289 429 282 86 290 430 283 87 +547 5 2 0 1 290 430 283 87 291 431 284 88 +548 5 2 0 1 291 431 284 88 292 432 285 89 +549 5 2 0 1 292 432 285 89 293 433 286 90 +550 5 2 0 1 293 433 286 90 294 434 287 91 +551 5 2 0 1 294 434 287 91 295 435 288 92 +552 5 2 0 1 295 435 288 92 58 344 57 8 +553 5 2 0 1 9 10 100 93 142 149 436 387 +554 5 2 0 1 142 149 436 387 143 150 437 388 +555 5 2 0 1 143 150 437 388 144 151 438 389 +556 5 2 0 1 144 151 438 389 145 152 439 390 +557 5 2 0 1 145 152 439 390 146 153 440 391 +558 5 2 0 1 146 153 440 391 147 154 441 392 +559 5 2 0 1 147 154 441 392 148 155 442 393 +560 5 2 0 1 148 155 442 393 37 38 345 338 +561 5 2 0 1 93 100 101 94 387 436 443 394 +562 5 2 0 1 387 436 443 394 388 437 444 395 +563 5 2 0 1 388 437 444 395 389 438 445 396 +564 5 2 0 1 389 438 445 396 390 439 446 397 +565 5 2 0 1 390 439 446 397 391 440 447 398 +566 5 2 0 1 391 440 447 398 392 441 448 399 +567 5 2 0 1 392 441 448 399 393 442 449 400 +568 5 2 0 1 393 442 449 400 338 345 346 339 +569 5 2 0 1 94 101 102 95 394 443 450 401 +570 5 2 0 1 394 443 450 401 395 444 451 402 +571 5 2 0 1 395 444 451 402 396 445 452 403 +572 5 2 0 1 396 445 452 403 397 446 453 404 +573 5 2 0 1 397 446 453 404 398 447 454 405 +574 5 2 0 1 398 447 454 405 399 448 455 406 +575 5 2 0 1 399 448 455 406 400 449 456 407 +576 5 2 0 1 400 449 456 407 339 346 347 340 +577 5 2 0 1 95 102 103 96 401 450 457 408 +578 5 2 0 1 401 450 457 408 402 451 458 409 +579 5 2 0 1 402 451 458 409 403 452 459 410 +580 5 2 0 1 403 452 459 410 404 453 460 411 +581 5 2 0 1 404 453 460 411 405 454 461 412 +582 5 2 0 1 405 454 461 412 406 455 462 413 +583 5 2 0 1 406 455 462 413 407 456 463 414 +584 5 2 0 1 407 456 463 414 340 347 348 341 +585 5 2 0 1 96 103 104 97 408 457 464 415 +586 5 2 0 1 408 457 464 415 409 458 465 416 +587 5 2 0 1 409 458 465 416 410 459 466 417 +588 5 2 0 1 410 459 466 417 411 460 467 418 +589 5 2 0 1 411 460 467 418 412 461 468 419 +590 5 2 0 1 412 461 468 419 413 462 469 420 +591 5 2 0 1 413 462 469 420 414 463 470 421 +592 5 2 0 1 414 463 470 421 341 348 349 342 +593 5 2 0 1 97 104 105 98 415 464 471 422 +594 5 2 0 1 415 464 471 422 416 465 472 423 +595 5 2 0 1 416 465 472 423 417 466 473 424 +596 5 2 0 1 417 466 473 424 418 467 474 425 +597 5 2 0 1 418 467 474 425 419 468 475 426 +598 5 2 0 1 419 468 475 426 420 469 476 427 +599 5 2 0 1 420 469 476 427 421 470 477 428 +600 5 2 0 1 421 470 477 428 342 349 350 343 +601 5 2 0 1 98 105 106 99 422 471 478 429 +602 5 2 0 1 422 471 478 429 423 472 479 430 +603 5 2 0 1 423 472 479 430 424 473 480 431 +604 5 2 0 1 424 473 480 431 425 474 481 432 +605 5 2 0 1 425 474 481 432 426 475 482 433 +606 5 2 0 1 426 475 482 433 427 476 483 434 +607 5 2 0 1 427 476 483 434 428 477 484 435 +608 5 2 0 1 428 477 484 435 343 350 351 344 +609 5 2 0 1 99 106 28 29 429 478 275 282 +610 5 2 0 1 429 478 275 282 430 479 276 283 +611 5 2 0 1 430 479 276 283 431 480 277 284 +612 5 2 0 1 431 480 277 284 432 481 278 285 +613 5 2 0 1 432 481 278 285 433 482 279 286 +614 5 2 0 1 433 482 279 286 434 483 280 287 +615 5 2 0 1 434 483 280 287 435 484 281 288 +616 5 2 0 1 435 484 281 288 344 351 56 57 +617 5 2 0 1 10 11 107 100 149 156 485 436 +618 5 2 0 1 149 156 485 436 150 157 486 437 +619 5 2 0 1 150 157 486 437 151 158 487 438 +620 5 2 0 1 151 158 487 438 152 159 488 439 +621 5 2 0 1 152 159 488 439 153 160 489 440 +622 5 2 0 1 153 160 489 440 154 161 490 441 +623 5 2 0 1 154 161 490 441 155 162 491 442 +624 5 2 0 1 155 162 491 442 38 39 352 345 +625 5 2 0 1 100 107 108 101 436 485 492 443 +626 5 2 0 1 436 485 492 443 437 486 493 444 +627 5 2 0 1 437 486 493 444 438 487 494 445 +628 5 2 0 1 438 487 494 445 439 488 495 446 +629 5 2 0 1 439 488 495 446 440 489 496 447 +630 5 2 0 1 440 489 496 447 441 490 497 448 +631 5 2 0 1 441 490 497 448 442 491 498 449 +632 5 2 0 1 442 491 498 449 345 352 353 346 +633 5 2 0 1 101 108 109 102 443 492 499 450 +634 5 2 0 1 443 492 499 450 444 493 500 451 +635 5 2 0 1 444 493 500 451 445 494 501 452 +636 5 2 0 1 445 494 501 452 446 495 502 453 +637 5 2 0 1 446 495 502 453 447 496 503 454 +638 5 2 0 1 447 496 503 454 448 497 504 455 +639 5 2 0 1 448 497 504 455 449 498 505 456 +640 5 2 0 1 449 498 505 456 346 353 354 347 +641 5 2 0 1 102 109 110 103 450 499 506 457 +642 5 2 0 1 450 499 506 457 451 500 507 458 +643 5 2 0 1 451 500 507 458 452 501 508 459 +644 5 2 0 1 452 501 508 459 453 502 509 460 +645 5 2 0 1 453 502 509 460 454 503 510 461 +646 5 2 0 1 454 503 510 461 455 504 511 462 +647 5 2 0 1 455 504 511 462 456 505 512 463 +648 5 2 0 1 456 505 512 463 347 354 355 348 +649 5 2 0 1 103 110 111 104 457 506 513 464 +650 5 2 0 1 457 506 513 464 458 507 514 465 +651 5 2 0 1 458 507 514 465 459 508 515 466 +652 5 2 0 1 459 508 515 466 460 509 516 467 +653 5 2 0 1 460 509 516 467 461 510 517 468 +654 5 2 0 1 461 510 517 468 462 511 518 469 +655 5 2 0 1 462 511 518 469 463 512 519 470 +656 5 2 0 1 463 512 519 470 348 355 356 349 +657 5 2 0 1 104 111 112 105 464 513 520 471 +658 5 2 0 1 464 513 520 471 465 514 521 472 +659 5 2 0 1 465 514 521 472 466 515 522 473 +660 5 2 0 1 466 515 522 473 467 516 523 474 +661 5 2 0 1 467 516 523 474 468 517 524 475 +662 5 2 0 1 468 517 524 475 469 518 525 476 +663 5 2 0 1 469 518 525 476 470 519 526 477 +664 5 2 0 1 470 519 526 477 349 356 357 350 +665 5 2 0 1 105 112 113 106 471 520 527 478 +666 5 2 0 1 471 520 527 478 472 521 528 479 +667 5 2 0 1 472 521 528 479 473 522 529 480 +668 5 2 0 1 473 522 529 480 474 523 530 481 +669 5 2 0 1 474 523 530 481 475 524 531 482 +670 5 2 0 1 475 524 531 482 476 525 532 483 +671 5 2 0 1 476 525 532 483 477 526 533 484 +672 5 2 0 1 477 526 533 484 350 357 358 351 +673 5 2 0 1 106 113 27 28 478 527 268 275 +674 5 2 0 1 478 527 268 275 479 528 269 276 +675 5 2 0 1 479 528 269 276 480 529 270 277 +676 5 2 0 1 480 529 270 277 481 530 271 278 +677 5 2 0 1 481 530 271 278 482 531 272 279 +678 5 2 0 1 482 531 272 279 483 532 273 280 +679 5 2 0 1 483 532 273 280 484 533 274 281 +680 5 2 0 1 484 533 274 281 351 358 55 56 +681 5 2 0 1 11 12 114 107 156 163 534 485 +682 5 2 0 1 156 163 534 485 157 164 535 486 +683 5 2 0 1 157 164 535 486 158 165 536 487 +684 5 2 0 1 158 165 536 487 159 166 537 488 +685 5 2 0 1 159 166 537 488 160 167 538 489 +686 5 2 0 1 160 167 538 489 161 168 539 490 +687 5 2 0 1 161 168 539 490 162 169 540 491 +688 5 2 0 1 162 169 540 491 39 40 359 352 +689 5 2 0 1 107 114 115 108 485 534 541 492 +690 5 2 0 1 485 534 541 492 486 535 542 493 +691 5 2 0 1 486 535 542 493 487 536 543 494 +692 5 2 0 1 487 536 543 494 488 537 544 495 +693 5 2 0 1 488 537 544 495 489 538 545 496 +694 5 2 0 1 489 538 545 496 490 539 546 497 +695 5 2 0 1 490 539 546 497 491 540 547 498 +696 5 2 0 1 491 540 547 498 352 359 360 353 +697 5 2 0 1 108 115 116 109 492 541 548 499 +698 5 2 0 1 492 541 548 499 493 542 549 500 +699 5 2 0 1 493 542 549 500 494 543 550 501 +700 5 2 0 1 494 543 550 501 495 544 551 502 +701 5 2 0 1 495 544 551 502 496 545 552 503 +702 5 2 0 1 496 545 552 503 497 546 553 504 +703 5 2 0 1 497 546 553 504 498 547 554 505 +704 5 2 0 1 498 547 554 505 353 360 361 354 +705 5 2 0 1 109 116 117 110 499 548 555 506 +706 5 2 0 1 499 548 555 506 500 549 556 507 +707 5 2 0 1 500 549 556 507 501 550 557 508 +708 5 2 0 1 501 550 557 508 502 551 558 509 +709 5 2 0 1 502 551 558 509 503 552 559 510 +710 5 2 0 1 503 552 559 510 504 553 560 511 +711 5 2 0 1 504 553 560 511 505 554 561 512 +712 5 2 0 1 505 554 561 512 354 361 362 355 +713 5 2 0 1 110 117 118 111 506 555 562 513 +714 5 2 0 1 506 555 562 513 507 556 563 514 +715 5 2 0 1 507 556 563 514 508 557 564 515 +716 5 2 0 1 508 557 564 515 509 558 565 516 +717 5 2 0 1 509 558 565 516 510 559 566 517 +718 5 2 0 1 510 559 566 517 511 560 567 518 +719 5 2 0 1 511 560 567 518 512 561 568 519 +720 5 2 0 1 512 561 568 519 355 362 363 356 +721 5 2 0 1 111 118 119 112 513 562 569 520 +722 5 2 0 1 513 562 569 520 514 563 570 521 +723 5 2 0 1 514 563 570 521 515 564 571 522 +724 5 2 0 1 515 564 571 522 516 565 572 523 +725 5 2 0 1 516 565 572 523 517 566 573 524 +726 5 2 0 1 517 566 573 524 518 567 574 525 +727 5 2 0 1 518 567 574 525 519 568 575 526 +728 5 2 0 1 519 568 575 526 356 363 364 357 +729 5 2 0 1 112 119 120 113 520 569 576 527 +730 5 2 0 1 520 569 576 527 521 570 577 528 +731 5 2 0 1 521 570 577 528 522 571 578 529 +732 5 2 0 1 522 571 578 529 523 572 579 530 +733 5 2 0 1 523 572 579 530 524 573 580 531 +734 5 2 0 1 524 573 580 531 525 574 581 532 +735 5 2 0 1 525 574 581 532 526 575 582 533 +736 5 2 0 1 526 575 582 533 357 364 365 358 +737 5 2 0 1 113 120 26 27 527 576 261 268 +738 5 2 0 1 527 576 261 268 528 577 262 269 +739 5 2 0 1 528 577 262 269 529 578 263 270 +740 5 2 0 1 529 578 263 270 530 579 264 271 +741 5 2 0 1 530 579 264 271 531 580 265 272 +742 5 2 0 1 531 580 265 272 532 581 266 273 +743 5 2 0 1 532 581 266 273 533 582 267 274 +744 5 2 0 1 533 582 267 274 358 365 54 55 +745 5 2 0 1 12 13 121 114 163 170 583 534 +746 5 2 0 1 163 170 583 534 164 171 584 535 +747 5 2 0 1 164 171 584 535 165 172 585 536 +748 5 2 0 1 165 172 585 536 166 173 586 537 +749 5 2 0 1 166 173 586 537 167 174 587 538 +750 5 2 0 1 167 174 587 538 168 175 588 539 +751 5 2 0 1 168 175 588 539 169 176 589 540 +752 5 2 0 1 169 176 589 540 40 41 366 359 +753 5 2 0 1 114 121 122 115 534 583 590 541 +754 5 2 0 1 534 583 590 541 535 584 591 542 +755 5 2 0 1 535 584 591 542 536 585 592 543 +756 5 2 0 1 536 585 592 543 537 586 593 544 +757 5 2 0 1 537 586 593 544 538 587 594 545 +758 5 2 0 1 538 587 594 545 539 588 595 546 +759 5 2 0 1 539 588 595 546 540 589 596 547 +760 5 2 0 1 540 589 596 547 359 366 367 360 +761 5 2 0 1 115 122 123 116 541 590 597 548 +762 5 2 0 1 541 590 597 548 542 591 598 549 +763 5 2 0 1 542 591 598 549 543 592 599 550 +764 5 2 0 1 543 592 599 550 544 593 600 551 +765 5 2 0 1 544 593 600 551 545 594 601 552 +766 5 2 0 1 545 594 601 552 546 595 602 553 +767 5 2 0 1 546 595 602 553 547 596 603 554 +768 5 2 0 1 547 596 603 554 360 367 368 361 +769 5 2 0 1 116 123 124 117 548 597 604 555 +770 5 2 0 1 548 597 604 555 549 598 605 556 +771 5 2 0 1 549 598 605 556 550 599 606 557 +772 5 2 0 1 550 599 606 557 551 600 607 558 +773 5 2 0 1 551 600 607 558 552 601 608 559 +774 5 2 0 1 552 601 608 559 553 602 609 560 +775 5 2 0 1 553 602 609 560 554 603 610 561 +776 5 2 0 1 554 603 610 561 361 368 369 362 +777 5 2 0 1 117 124 125 118 555 604 611 562 +778 5 2 0 1 555 604 611 562 556 605 612 563 +779 5 2 0 1 556 605 612 563 557 606 613 564 +780 5 2 0 1 557 606 613 564 558 607 614 565 +781 5 2 0 1 558 607 614 565 559 608 615 566 +782 5 2 0 1 559 608 615 566 560 609 616 567 +783 5 2 0 1 560 609 616 567 561 610 617 568 +784 5 2 0 1 561 610 617 568 362 369 370 363 +785 5 2 0 1 118 125 126 119 562 611 618 569 +786 5 2 0 1 562 611 618 569 563 612 619 570 +787 5 2 0 1 563 612 619 570 564 613 620 571 +788 5 2 0 1 564 613 620 571 565 614 621 572 +789 5 2 0 1 565 614 621 572 566 615 622 573 +790 5 2 0 1 566 615 622 573 567 616 623 574 +791 5 2 0 1 567 616 623 574 568 617 624 575 +792 5 2 0 1 568 617 624 575 363 370 371 364 +793 5 2 0 1 119 126 127 120 569 618 625 576 +794 5 2 0 1 569 618 625 576 570 619 626 577 +795 5 2 0 1 570 619 626 577 571 620 627 578 +796 5 2 0 1 571 620 627 578 572 621 628 579 +797 5 2 0 1 572 621 628 579 573 622 629 580 +798 5 2 0 1 573 622 629 580 574 623 630 581 +799 5 2 0 1 574 623 630 581 575 624 631 582 +800 5 2 0 1 575 624 631 582 364 371 372 365 +801 5 2 0 1 120 127 25 26 576 625 254 261 +802 5 2 0 1 576 625 254 261 577 626 255 262 +803 5 2 0 1 577 626 255 262 578 627 256 263 +804 5 2 0 1 578 627 256 263 579 628 257 264 +805 5 2 0 1 579 628 257 264 580 629 258 265 +806 5 2 0 1 580 629 258 265 581 630 259 266 +807 5 2 0 1 581 630 259 266 582 631 260 267 +808 5 2 0 1 582 631 260 267 365 372 53 54 +809 5 2 0 1 13 14 128 121 170 177 632 583 +810 5 2 0 1 170 177 632 583 171 178 633 584 +811 5 2 0 1 171 178 633 584 172 179 634 585 +812 5 2 0 1 172 179 634 585 173 180 635 586 +813 5 2 0 1 173 180 635 586 174 181 636 587 +814 5 2 0 1 174 181 636 587 175 182 637 588 +815 5 2 0 1 175 182 637 588 176 183 638 589 +816 5 2 0 1 176 183 638 589 41 42 373 366 +817 5 2 0 1 121 128 129 122 583 632 639 590 +818 5 2 0 1 583 632 639 590 584 633 640 591 +819 5 2 0 1 584 633 640 591 585 634 641 592 +820 5 2 0 1 585 634 641 592 586 635 642 593 +821 5 2 0 1 586 635 642 593 587 636 643 594 +822 5 2 0 1 587 636 643 594 588 637 644 595 +823 5 2 0 1 588 637 644 595 589 638 645 596 +824 5 2 0 1 589 638 645 596 366 373 374 367 +825 5 2 0 1 122 129 130 123 590 639 646 597 +826 5 2 0 1 590 639 646 597 591 640 647 598 +827 5 2 0 1 591 640 647 598 592 641 648 599 +828 5 2 0 1 592 641 648 599 593 642 649 600 +829 5 2 0 1 593 642 649 600 594 643 650 601 +830 5 2 0 1 594 643 650 601 595 644 651 602 +831 5 2 0 1 595 644 651 602 596 645 652 603 +832 5 2 0 1 596 645 652 603 367 374 375 368 +833 5 2 0 1 123 130 131 124 597 646 653 604 +834 5 2 0 1 597 646 653 604 598 647 654 605 +835 5 2 0 1 598 647 654 605 599 648 655 606 +836 5 2 0 1 599 648 655 606 600 649 656 607 +837 5 2 0 1 600 649 656 607 601 650 657 608 +838 5 2 0 1 601 650 657 608 602 651 658 609 +839 5 2 0 1 602 651 658 609 603 652 659 610 +840 5 2 0 1 603 652 659 610 368 375 376 369 +841 5 2 0 1 124 131 132 125 604 653 660 611 +842 5 2 0 1 604 653 660 611 605 654 661 612 +843 5 2 0 1 605 654 661 612 606 655 662 613 +844 5 2 0 1 606 655 662 613 607 656 663 614 +845 5 2 0 1 607 656 663 614 608 657 664 615 +846 5 2 0 1 608 657 664 615 609 658 665 616 +847 5 2 0 1 609 658 665 616 610 659 666 617 +848 5 2 0 1 610 659 666 617 369 376 377 370 +849 5 2 0 1 125 132 133 126 611 660 667 618 +850 5 2 0 1 611 660 667 618 612 661 668 619 +851 5 2 0 1 612 661 668 619 613 662 669 620 +852 5 2 0 1 613 662 669 620 614 663 670 621 +853 5 2 0 1 614 663 670 621 615 664 671 622 +854 5 2 0 1 615 664 671 622 616 665 672 623 +855 5 2 0 1 616 665 672 623 617 666 673 624 +856 5 2 0 1 617 666 673 624 370 377 378 371 +857 5 2 0 1 126 133 134 127 618 667 674 625 +858 5 2 0 1 618 667 674 625 619 668 675 626 +859 5 2 0 1 619 668 675 626 620 669 676 627 +860 5 2 0 1 620 669 676 627 621 670 677 628 +861 5 2 0 1 621 670 677 628 622 671 678 629 +862 5 2 0 1 622 671 678 629 623 672 679 630 +863 5 2 0 1 623 672 679 630 624 673 680 631 +864 5 2 0 1 624 673 680 631 371 378 379 372 +865 5 2 0 1 127 134 24 25 625 674 247 254 +866 5 2 0 1 625 674 247 254 626 675 248 255 +867 5 2 0 1 626 675 248 255 627 676 249 256 +868 5 2 0 1 627 676 249 256 628 677 250 257 +869 5 2 0 1 628 677 250 257 629 678 251 258 +870 5 2 0 1 629 678 251 258 630 679 252 259 +871 5 2 0 1 630 679 252 259 631 680 253 260 +872 5 2 0 1 631 680 253 260 372 379 52 53 +873 5 2 0 1 14 15 135 128 177 184 681 632 +874 5 2 0 1 177 184 681 632 178 185 682 633 +875 5 2 0 1 178 185 682 633 179 186 683 634 +876 5 2 0 1 179 186 683 634 180 187 684 635 +877 5 2 0 1 180 187 684 635 181 188 685 636 +878 5 2 0 1 181 188 685 636 182 189 686 637 +879 5 2 0 1 182 189 686 637 183 190 687 638 +880 5 2 0 1 183 190 687 638 42 43 380 373 +881 5 2 0 1 128 135 136 129 632 681 688 639 +882 5 2 0 1 632 681 688 639 633 682 689 640 +883 5 2 0 1 633 682 689 640 634 683 690 641 +884 5 2 0 1 634 683 690 641 635 684 691 642 +885 5 2 0 1 635 684 691 642 636 685 692 643 +886 5 2 0 1 636 685 692 643 637 686 693 644 +887 5 2 0 1 637 686 693 644 638 687 694 645 +888 5 2 0 1 638 687 694 645 373 380 381 374 +889 5 2 0 1 129 136 137 130 639 688 695 646 +890 5 2 0 1 639 688 695 646 640 689 696 647 +891 5 2 0 1 640 689 696 647 641 690 697 648 +892 5 2 0 1 641 690 697 648 642 691 698 649 +893 5 2 0 1 642 691 698 649 643 692 699 650 +894 5 2 0 1 643 692 699 650 644 693 700 651 +895 5 2 0 1 644 693 700 651 645 694 701 652 +896 5 2 0 1 645 694 701 652 374 381 382 375 +897 5 2 0 1 130 137 138 131 646 695 702 653 +898 5 2 0 1 646 695 702 653 647 696 703 654 +899 5 2 0 1 647 696 703 654 648 697 704 655 +900 5 2 0 1 648 697 704 655 649 698 705 656 +901 5 2 0 1 649 698 705 656 650 699 706 657 +902 5 2 0 1 650 699 706 657 651 700 707 658 +903 5 2 0 1 651 700 707 658 652 701 708 659 +904 5 2 0 1 652 701 708 659 375 382 383 376 +905 5 2 0 1 131 138 139 132 653 702 709 660 +906 5 2 0 1 653 702 709 660 654 703 710 661 +907 5 2 0 1 654 703 710 661 655 704 711 662 +908 5 2 0 1 655 704 711 662 656 705 712 663 +909 5 2 0 1 656 705 712 663 657 706 713 664 +910 5 2 0 1 657 706 713 664 658 707 714 665 +911 5 2 0 1 658 707 714 665 659 708 715 666 +912 5 2 0 1 659 708 715 666 376 383 384 377 +913 5 2 0 1 132 139 140 133 660 709 716 667 +914 5 2 0 1 660 709 716 667 661 710 717 668 +915 5 2 0 1 661 710 717 668 662 711 718 669 +916 5 2 0 1 662 711 718 669 663 712 719 670 +917 5 2 0 1 663 712 719 670 664 713 720 671 +918 5 2 0 1 664 713 720 671 665 714 721 672 +919 5 2 0 1 665 714 721 672 666 715 722 673 +920 5 2 0 1 666 715 722 673 377 384 385 378 +921 5 2 0 1 133 140 141 134 667 716 723 674 +922 5 2 0 1 667 716 723 674 668 717 724 675 +923 5 2 0 1 668 717 724 675 669 718 725 676 +924 5 2 0 1 669 718 725 676 670 719 726 677 +925 5 2 0 1 670 719 726 677 671 720 727 678 +926 5 2 0 1 671 720 727 678 672 721 728 679 +927 5 2 0 1 672 721 728 679 673 722 729 680 +928 5 2 0 1 673 722 729 680 378 385 386 379 +929 5 2 0 1 134 141 23 24 674 723 240 247 +930 5 2 0 1 674 723 240 247 675 724 241 248 +931 5 2 0 1 675 724 241 248 676 725 242 249 +932 5 2 0 1 676 725 242 249 677 726 243 250 +933 5 2 0 1 677 726 243 250 678 727 244 251 +934 5 2 0 1 678 727 244 251 679 728 245 252 +935 5 2 0 1 679 728 245 252 680 729 246 253 +936 5 2 0 1 680 729 246 253 379 386 51 52 +937 5 2 0 1 15 2 16 135 184 72 191 681 +938 5 2 0 1 184 72 191 681 185 73 192 682 +939 5 2 0 1 185 73 192 682 186 74 193 683 +940 5 2 0 1 186 74 193 683 187 75 194 684 +941 5 2 0 1 187 75 194 684 188 76 195 685 +942 5 2 0 1 188 76 195 685 189 77 196 686 +943 5 2 0 1 189 77 196 686 190 78 197 687 +944 5 2 0 1 190 78 197 687 43 6 44 380 +945 5 2 0 1 135 16 17 136 681 191 198 688 +946 5 2 0 1 681 191 198 688 682 192 199 689 +947 5 2 0 1 682 192 199 689 683 193 200 690 +948 5 2 0 1 683 193 200 690 684 194 201 691 +949 5 2 0 1 684 194 201 691 685 195 202 692 +950 5 2 0 1 685 195 202 692 686 196 203 693 +951 5 2 0 1 686 196 203 693 687 197 204 694 +952 5 2 0 1 687 197 204 694 380 44 45 381 +953 5 2 0 1 136 17 18 137 688 198 205 695 +954 5 2 0 1 688 198 205 695 689 199 206 696 +955 5 2 0 1 689 199 206 696 690 200 207 697 +956 5 2 0 1 690 200 207 697 691 201 208 698 +957 5 2 0 1 691 201 208 698 692 202 209 699 +958 5 2 0 1 692 202 209 699 693 203 210 700 +959 5 2 0 1 693 203 210 700 694 204 211 701 +960 5 2 0 1 694 204 211 701 381 45 46 382 +961 5 2 0 1 137 18 19 138 695 205 212 702 +962 5 2 0 1 695 205 212 702 696 206 213 703 +963 5 2 0 1 696 206 213 703 697 207 214 704 +964 5 2 0 1 697 207 214 704 698 208 215 705 +965 5 2 0 1 698 208 215 705 699 209 216 706 +966 5 2 0 1 699 209 216 706 700 210 217 707 +967 5 2 0 1 700 210 217 707 701 211 218 708 +968 5 2 0 1 701 211 218 708 382 46 47 383 +969 5 2 0 1 138 19 20 139 702 212 219 709 +970 5 2 0 1 702 212 219 709 703 213 220 710 +971 5 2 0 1 703 213 220 710 704 214 221 711 +972 5 2 0 1 704 214 221 711 705 215 222 712 +973 5 2 0 1 705 215 222 712 706 216 223 713 +974 5 2 0 1 706 216 223 713 707 217 224 714 +975 5 2 0 1 707 217 224 714 708 218 225 715 +976 5 2 0 1 708 218 225 715 383 47 48 384 +977 5 2 0 1 139 20 21 140 709 219 226 716 +978 5 2 0 1 709 219 226 716 710 220 227 717 +979 5 2 0 1 710 220 227 717 711 221 228 718 +980 5 2 0 1 711 221 228 718 712 222 229 719 +981 5 2 0 1 712 222 229 719 713 223 230 720 +982 5 2 0 1 713 223 230 720 714 224 231 721 +983 5 2 0 1 714 224 231 721 715 225 232 722 +984 5 2 0 1 715 225 232 722 384 48 49 385 +985 5 2 0 1 140 21 22 141 716 226 233 723 +986 5 2 0 1 716 226 233 723 717 227 234 724 +987 5 2 0 1 717 227 234 724 718 228 235 725 +988 5 2 0 1 718 228 235 725 719 229 236 726 +989 5 2 0 1 719 229 236 726 720 230 237 727 +990 5 2 0 1 720 230 237 727 721 231 238 728 +991 5 2 0 1 721 231 238 728 722 232 239 729 +992 5 2 0 1 722 232 239 729 385 49 50 386 +993 5 2 0 1 141 22 3 23 723 233 79 240 +994 5 2 0 1 723 233 79 240 724 234 80 241 +995 5 2 0 1 724 234 80 241 725 235 81 242 +996 5 2 0 1 725 235 81 242 726 236 82 243 +997 5 2 0 1 726 236 82 243 727 237 83 244 +998 5 2 0 1 727 237 83 244 728 238 84 245 +999 5 2 0 1 728 238 84 245 729 239 85 246 +1000 5 2 0 1 729 239 85 246 386 50 7 51 +$EndElements diff --git a/test/sumfact/poisson/cube_hexa_2.msh b/test/sumfact/poisson/cube_hexa_2.msh new file mode 100644 index 0000000000000000000000000000000000000000..c2ecb0be0438733f3617ca4985870605b834aba8 --- /dev/null +++ b/test/sumfact/poisson/cube_hexa_2.msh @@ -0,0 +1,100 @@ +$MeshFormat +2.2 0 8 +$EndMeshFormat +$Nodes +27 +1 0 0 0 +2 1 0 0 +3 1 1 0 +4 0 1 0 +5 0 0 1 +6 1 0 1 +7 1 1 1 +8 0 1 1 +9 0.5 0 0 +10 1 0.5 0 +11 0.5 1 0 +12 0 0.5 0 +13 0.5 0 1 +14 1 0.5 1 +15 0.5 1 1 +16 0 0.5 1 +17 0 0 0.5 +18 1 0 0.5 +19 1 1 0.5 +20 0 1 0.5 +21 0.5 0.5 0 +22 0.5 0 0.5 +23 1 0.5 0.5 +24 0.5 1 0.5 +25 0 0.5 0.5 +26 0.5 0.5 1 +27 0.5 0.5 0.5 +$EndNodes +$Elements +64 +1 15 2 0 1 1 +2 15 2 0 2 2 +3 15 2 0 3 3 +4 15 2 0 4 4 +5 15 2 0 5 5 +6 15 2 0 6 6 +7 15 2 0 10 7 +8 15 2 0 14 8 +9 1 2 0 5 1 9 +10 1 2 0 5 9 2 +11 1 2 0 6 2 10 +12 1 2 0 6 10 3 +13 1 2 0 7 3 11 +14 1 2 0 7 11 4 +15 1 2 0 8 4 12 +16 1 2 0 8 12 1 +17 1 2 0 12 5 13 +18 1 2 0 12 13 6 +19 1 2 0 13 6 14 +20 1 2 0 13 14 7 +21 1 2 0 14 7 15 +22 1 2 0 14 15 8 +23 1 2 0 15 8 16 +24 1 2 0 15 16 5 +25 1 2 0 17 1 17 +26 1 2 0 17 17 5 +27 1 2 0 18 2 18 +28 1 2 0 18 18 6 +29 1 2 0 22 3 19 +30 1 2 0 22 19 7 +31 1 2 0 26 4 20 +32 1 2 0 26 20 8 +33 3 2 0 10 1 9 21 12 +34 3 2 0 10 12 21 11 4 +35 3 2 0 10 9 2 10 21 +36 3 2 0 10 21 10 3 11 +37 3 2 0 19 1 9 22 17 +38 3 2 0 19 17 22 13 5 +39 3 2 0 19 9 2 18 22 +40 3 2 0 19 22 18 6 13 +41 3 2 0 23 2 10 23 18 +42 3 2 0 23 18 23 14 6 +43 3 2 0 23 10 3 19 23 +44 3 2 0 23 23 19 7 14 +45 3 2 0 27 3 11 24 19 +46 3 2 0 27 19 24 15 7 +47 3 2 0 27 11 4 20 24 +48 3 2 0 27 24 20 8 15 +49 3 2 0 31 4 12 25 20 +50 3 2 0 31 20 25 16 8 +51 3 2 0 31 12 1 17 25 +52 3 2 0 31 25 17 5 16 +53 3 2 0 32 5 13 26 16 +54 3 2 0 32 16 26 15 8 +55 3 2 0 32 13 6 14 26 +56 3 2 0 32 26 14 7 15 +57 5 2 0 1 1 9 21 12 17 22 27 25 +58 5 2 0 1 17 22 27 25 5 13 26 16 +59 5 2 0 1 12 21 11 4 25 27 24 20 +60 5 2 0 1 25 27 24 20 16 26 15 8 +61 5 2 0 1 9 2 10 21 22 18 23 27 +62 5 2 0 1 22 18 23 27 13 6 14 26 +63 5 2 0 1 21 10 3 11 27 23 19 24 +64 5 2 0 1 27 23 19 24 26 14 7 15 +$EndElements diff --git a/test/sumfact/poisson/cube_hexa_2_consistent.msh b/test/sumfact/poisson/cube_hexa_2_consistent.msh new file mode 100644 index 0000000000000000000000000000000000000000..9516c8ae4871eb72b8a60b9d5db680ba8decf5b8 --- /dev/null +++ b/test/sumfact/poisson/cube_hexa_2_consistent.msh @@ -0,0 +1,44 @@ +$MeshFormat +2.0 0 8 +$EndMeshFormat +$Nodes +27 +1 0.5 0 0 +2 0.5 0.5 0 +3 0 0.5 0 +4 0 0 0 +5 0.5 0 0.5 +7 0 0.5 0.5 +8 0 0 0.5 +9 0.5 0 1 +10 0.5 0.5 1 +11 0 0.5 1 +12 0 0 1 +13 0.5 1 0 +14 0 1 0 +15 0.5 1 0.5 +16 0 1 0.5 +17 0.5 1 1 +18 0 1 1 +19 1 0 0 +20 1 0.5 0 +21 1 0 0.5 +22 1 0.5 0.5 +23 1 0 1 +24 1 0.5 1 +25 1 1 0 +26 1 1 0.5 +27 1 1 1 +6 0.5 0.5 0.5 +$EndNodes +$Elements +8 +1 5 0 2 3 4 1 6 7 8 5 +2 5 0 6 7 8 5 10 11 12 9 +3 5 0 2 13 14 3 6 15 16 7 +4 5 0 6 15 16 7 10 17 18 11 +5 5 0 2 1 19 20 6 5 21 22 +6 5 0 6 5 21 22 10 9 23 24 +7 5 0 2 20 25 13 6 22 26 15 +8 5 0 6 22 26 15 10 24 27 17 +$EndElements diff --git a/test/sumfact/poisson/cube_hexa_consistent.msh b/test/sumfact/poisson/cube_hexa_consistent.msh new file mode 100644 index 0000000000000000000000000000000000000000..b14f54f4a303156b44dc1e929c58c35c9a887637 --- /dev/null +++ b/test/sumfact/poisson/cube_hexa_consistent.msh @@ -0,0 +1,1250 @@ +$MeshFormat +2.0 0 8 +$EndMeshFormat +$Nodes +729 +1 0 0 0 +2 0.125 0 0 +3 0.125 0.125 0 +4 0 0.125 0 +5 0.125 0.25 0 +6 0 0.25 0 +7 0.125 0.375 0 +8 0 0.375 0 +9 0.125 0.5 0 +10 0 0.5 0 +11 0.125 0.625 0 +12 0 0.625 0 +13 0.125 0.75 0 +14 0 0.75 0 +15 0.125 0.875 0 +16 0 0.875 0 +17 0.125 1 0 +18 0 1 0 +19 0.25 0 0 +20 0.25 0.125 0 +21 0.25 0.25 0 +22 0.25 0.375 0 +23 0.25 0.5 0 +24 0.25 0.625 0 +25 0.25 0.75 0 +26 0.25 0.875 0 +27 0.25 1 0 +28 0.375 0 0 +29 0.375 0.125 0 +30 0.375 0.25 0 +31 0.375 0.375 0 +32 0.375 0.5 0 +33 0.375 0.625 0 +34 0.375 0.75 0 +35 0.375 0.875 0 +36 0.375 1 0 +37 0.5 0 0 +38 0.5 0.125 0 +39 0.5 0.25 0 +40 0.5 0.375 0 +41 0.5 0.5 0 +42 0.5 0.625 0 +43 0.5 0.75 0 +44 0.5 0.875 0 +45 0.5 1 0 +46 0.625 0 0 +47 0.625 0.125 0 +48 0.625 0.25 0 +49 0.625 0.375 0 +50 0.625 0.5 0 +51 0.625 0.625 0 +52 0.625 0.75 0 +53 0.625 0.875 0 +54 0.625 1 0 +55 0.75 0 0 +56 0.75 0.125 0 +57 0.75 0.25 0 +58 0.75 0.375 0 +59 0.75 0.5 0 +60 0.75 0.625 0 +61 0.75 0.75 0 +62 0.75 0.875 0 +63 0.75 1 0 +64 0.875 0 0 +65 0.875 0.125 0 +66 0.875 0.25 0 +67 0.875 0.375 0 +68 0.875 0.5 0 +69 0.875 0.625 0 +70 0.875 0.75 0 +71 0.875 0.875 0 +72 0.875 1 0 +73 1 0 0 +74 1 0.125 0 +75 1 0.25 0 +76 1 0.375 0 +77 1 0.5 0 +78 1 0.625 0 +79 1 0.75 0 +80 1 0.875 0 +81 1 1 0 +82 0.125 0 0.125 +83 0 0 0.125 +84 0.125 0 0.25 +85 0 0 0.25 +86 0.125 0 0.375 +87 0 0 0.375 +88 0.125 0 0.5 +89 0 0 0.5 +90 0.125 0 0.625 +91 0 0 0.625 +92 0.125 0 0.75 +93 0 0 0.75 +94 0.125 0 0.875 +95 0 0 0.875 +96 0.125 0 1 +97 0 0 1 +98 0.25 0 0.125 +99 0.25 0 0.25 +100 0.25 0 0.375 +101 0.25 0 0.5 +102 0.25 0 0.625 +103 0.25 0 0.75 +104 0.25 0 0.875 +105 0.25 0 1 +106 0.375 0 0.125 +107 0.375 0 0.25 +108 0.375 0 0.375 +109 0.375 0 0.5 +110 0.375 0 0.625 +111 0.375 0 0.75 +112 0.375 0 0.875 +113 0.375 0 1 +114 0.5 0 0.125 +115 0.5 0 0.25 +116 0.5 0 0.375 +117 0.5 0 0.5 +118 0.5 0 0.625 +119 0.5 0 0.75 +120 0.5 0 0.875 +121 0.5 0 1 +122 0.625 0 0.125 +123 0.625 0 0.25 +124 0.625 0 0.375 +125 0.625 0 0.5 +126 0.625 0 0.625 +127 0.625 0 0.75 +128 0.625 0 0.875 +129 0.625 0 1 +130 0.75 0 0.125 +131 0.75 0 0.25 +132 0.75 0 0.375 +133 0.75 0 0.5 +134 0.75 0 0.625 +135 0.75 0 0.75 +136 0.75 0 0.875 +137 0.75 0 1 +138 0.875 0 0.125 +139 0.875 0 0.25 +140 0.875 0 0.375 +141 0.875 0 0.5 +142 0.875 0 0.625 +143 0.875 0 0.75 +144 0.875 0 0.875 +145 0.875 0 1 +146 1 0 0.125 +147 1 0 0.25 +148 1 0 0.375 +149 1 0 0.5 +150 1 0 0.625 +151 1 0 0.75 +152 1 0 0.875 +153 1 0 1 +154 1 0.125 0.125 +155 1 0.125 0.25 +156 1 0.125 0.375 +157 1 0.125 0.5 +158 1 0.125 0.625 +159 1 0.125 0.75 +160 1 0.125 0.875 +161 1 0.125 1 +162 1 0.25 0.125 +163 1 0.25 0.25 +164 1 0.25 0.375 +165 1 0.25 0.5 +166 1 0.25 0.625 +167 1 0.25 0.75 +168 1 0.25 0.875 +169 1 0.25 1 +170 1 0.375 0.125 +171 1 0.375 0.25 +172 1 0.375 0.375 +173 1 0.375 0.5 +174 1 0.375 0.625 +175 1 0.375 0.75 +176 1 0.375 0.875 +177 1 0.375 1 +178 1 0.5 0.125 +179 1 0.5 0.25 +180 1 0.5 0.375 +181 1 0.5 0.5 +182 1 0.5 0.625 +183 1 0.5 0.75 +184 1 0.5 0.875 +185 1 0.5 1 +186 1 0.625 0.125 +187 1 0.625 0.25 +188 1 0.625 0.375 +189 1 0.625 0.5 +190 1 0.625 0.625 +191 1 0.625 0.75 +192 1 0.625 0.875 +193 1 0.625 1 +194 1 0.75 0.125 +195 1 0.75 0.25 +196 1 0.75 0.375 +197 1 0.75 0.5 +198 1 0.75 0.625 +199 1 0.75 0.75 +200 1 0.75 0.875 +201 1 0.75 1 +202 1 0.875 0.125 +203 1 0.875 0.25 +204 1 0.875 0.375 +205 1 0.875 0.5 +206 1 0.875 0.625 +207 1 0.875 0.75 +208 1 0.875 0.875 +209 1 0.875 1 +210 1 1 0.125 +211 1 1 0.25 +212 1 1 0.375 +213 1 1 0.5 +214 1 1 0.625 +215 1 1 0.75 +216 1 1 0.875 +217 1 1 1 +218 0.875 1 0.125 +219 0.875 1 0.25 +220 0.875 1 0.375 +221 0.875 1 0.5 +222 0.875 1 0.625 +223 0.875 1 0.75 +224 0.875 1 0.875 +225 0.875 1 1 +226 0.75 1 0.125 +227 0.75 1 0.25 +228 0.75 1 0.375 +229 0.75 1 0.5 +230 0.75 1 0.625 +231 0.75 1 0.75 +232 0.75 1 0.875 +233 0.75 1 1 +234 0.625 1 0.125 +235 0.625 1 0.25 +236 0.625 1 0.375 +237 0.625 1 0.5 +238 0.625 1 0.625 +239 0.625 1 0.75 +240 0.625 1 0.875 +241 0.625 1 1 +242 0.5 1 0.125 +243 0.5 1 0.25 +244 0.5 1 0.375 +245 0.5 1 0.5 +246 0.5 1 0.625 +247 0.5 1 0.75 +248 0.5 1 0.875 +249 0.5 1 1 +250 0.375 1 0.125 +251 0.375 1 0.25 +252 0.375 1 0.375 +253 0.375 1 0.5 +254 0.375 1 0.625 +255 0.375 1 0.75 +256 0.375 1 0.875 +257 0.375 1 1 +258 0.25 1 0.125 +259 0.25 1 0.25 +260 0.25 1 0.375 +261 0.25 1 0.5 +262 0.25 1 0.625 +263 0.25 1 0.75 +264 0.25 1 0.875 +265 0.25 1 1 +266 0.125 1 0.125 +267 0.125 1 0.25 +268 0.125 1 0.375 +269 0.125 1 0.5 +270 0.125 1 0.625 +271 0.125 1 0.75 +272 0.125 1 0.875 +273 0.125 1 1 +274 0 1 0.125 +275 0 1 0.25 +276 0 1 0.375 +277 0 1 0.5 +278 0 1 0.625 +279 0 1 0.75 +280 0 1 0.875 +281 0 1 1 +282 0 0.875 0.125 +283 0 0.875 0.25 +284 0 0.875 0.375 +285 0 0.875 0.5 +286 0 0.875 0.625 +287 0 0.875 0.75 +288 0 0.875 0.875 +289 0 0.875 1 +290 0 0.75 0.125 +291 0 0.75 0.25 +292 0 0.75 0.375 +293 0 0.75 0.5 +294 0 0.75 0.625 +295 0 0.75 0.75 +296 0 0.75 0.875 +297 0 0.75 1 +298 0 0.625 0.125 +299 0 0.625 0.25 +300 0 0.625 0.375 +301 0 0.625 0.5 +302 0 0.625 0.625 +303 0 0.625 0.75 +304 0 0.625 0.875 +305 0 0.625 1 +306 0 0.5 0.125 +307 0 0.5 0.25 +308 0 0.5 0.375 +309 0 0.5 0.5 +310 0 0.5 0.625 +311 0 0.5 0.75 +312 0 0.5 0.875 +313 0 0.5 1 +314 0 0.375 0.125 +315 0 0.375 0.25 +316 0 0.375 0.375 +317 0 0.375 0.5 +318 0 0.375 0.625 +319 0 0.375 0.75 +320 0 0.375 0.875 +321 0 0.375 1 +322 0 0.25 0.125 +323 0 0.25 0.25 +324 0 0.25 0.375 +325 0 0.25 0.5 +326 0 0.25 0.625 +327 0 0.25 0.75 +328 0 0.25 0.875 +329 0 0.25 1 +330 0 0.125 0.125 +331 0 0.125 0.25 +332 0 0.125 0.375 +333 0 0.125 0.5 +334 0 0.125 0.625 +335 0 0.125 0.75 +336 0 0.125 0.875 +337 0 0.125 1 +338 0.125 0.125 1 +339 0.125 0.25 1 +340 0.125 0.375 1 +341 0.125 0.5 1 +342 0.125 0.625 1 +343 0.125 0.75 1 +344 0.125 0.875 1 +345 0.25 0.125 1 +346 0.25 0.25 1 +347 0.25 0.375 1 +348 0.25 0.5 1 +349 0.25 0.625 1 +350 0.25 0.75 1 +351 0.25 0.875 1 +352 0.375 0.125 1 +353 0.375 0.25 1 +354 0.375 0.375 1 +355 0.375 0.5 1 +356 0.375 0.625 1 +357 0.375 0.75 1 +358 0.375 0.875 1 +359 0.5 0.125 1 +360 0.5 0.25 1 +361 0.5 0.375 1 +362 0.5 0.5 1 +363 0.5 0.625 1 +364 0.5 0.75 1 +365 0.5 0.875 1 +366 0.625 0.125 1 +367 0.625 0.25 1 +368 0.625 0.375 1 +369 0.625 0.5 1 +370 0.625 0.625 1 +371 0.625 0.75 1 +372 0.625 0.875 1 +373 0.75 0.125 1 +374 0.75 0.25 1 +375 0.75 0.375 1 +376 0.75 0.5 1 +377 0.75 0.625 1 +378 0.75 0.75 1 +379 0.75 0.875 1 +380 0.875 0.125 1 +381 0.875 0.25 1 +382 0.875 0.375 1 +383 0.875 0.5 1 +384 0.875 0.625 1 +385 0.875 0.75 1 +386 0.875 0.875 1 +387 0.125 0.125 0.125 +388 0.125 0.125 0.25 +389 0.125 0.125 0.375 +390 0.125 0.125 0.5 +391 0.125 0.125 0.625 +392 0.125 0.125 0.75 +393 0.125 0.125 0.875 +394 0.125 0.25 0.125 +395 0.125 0.25 0.25 +396 0.125 0.25 0.375 +397 0.125 0.25 0.5 +398 0.125 0.25 0.625 +399 0.125 0.25 0.75 +400 0.125 0.25 0.875 +401 0.125 0.375 0.125 +402 0.125 0.375 0.25 +403 0.125 0.375 0.375 +404 0.125 0.375 0.5 +405 0.125 0.375 0.625 +406 0.125 0.375 0.75 +407 0.125 0.375 0.875 +408 0.125 0.5 0.125 +409 0.125 0.5 0.25 +410 0.125 0.5 0.375 +411 0.125 0.5 0.5 +412 0.125 0.5 0.625 +413 0.125 0.5 0.75 +414 0.125 0.5 0.875 +415 0.125 0.625 0.125 +416 0.125 0.625 0.25 +417 0.125 0.625 0.375 +418 0.125 0.625 0.5 +419 0.125 0.625 0.625 +420 0.125 0.625 0.75 +421 0.125 0.625 0.875 +422 0.125 0.75 0.125 +423 0.125 0.75 0.25 +424 0.125 0.75 0.375 +425 0.125 0.75 0.5 +426 0.125 0.75 0.625 +427 0.125 0.75 0.75 +428 0.125 0.75 0.875 +429 0.125 0.875 0.125 +430 0.125 0.875 0.25 +431 0.125 0.875 0.375 +432 0.125 0.875 0.5 +433 0.125 0.875 0.625 +434 0.125 0.875 0.75 +435 0.125 0.875 0.875 +436 0.25 0.125 0.125 +437 0.25 0.125 0.25 +438 0.25 0.125 0.375 +439 0.25 0.125 0.5 +440 0.25 0.125 0.625 +441 0.25 0.125 0.75 +442 0.25 0.125 0.875 +443 0.25 0.25 0.125 +444 0.25 0.25 0.25 +445 0.25 0.25 0.375 +446 0.25 0.25 0.5 +447 0.25 0.25 0.625 +448 0.25 0.25 0.75 +449 0.25 0.25 0.875 +450 0.25 0.375 0.125 +451 0.25 0.375 0.25 +452 0.25 0.375 0.375 +453 0.25 0.375 0.5 +454 0.25 0.375 0.625 +455 0.25 0.375 0.75 +456 0.25 0.375 0.875 +457 0.25 0.5 0.125 +458 0.25 0.5 0.25 +459 0.25 0.5 0.375 +460 0.25 0.5 0.5 +461 0.25 0.5 0.625 +462 0.25 0.5 0.75 +463 0.25 0.5 0.875 +464 0.25 0.625 0.125 +465 0.25 0.625 0.25 +466 0.25 0.625 0.375 +467 0.25 0.625 0.5 +468 0.25 0.625 0.625 +469 0.25 0.625 0.75 +470 0.25 0.625 0.875 +471 0.25 0.75 0.125 +472 0.25 0.75 0.25 +473 0.25 0.75 0.375 +474 0.25 0.75 0.5 +475 0.25 0.75 0.625 +476 0.25 0.75 0.75 +477 0.25 0.75 0.875 +478 0.25 0.875 0.125 +479 0.25 0.875 0.25 +480 0.25 0.875 0.375 +481 0.25 0.875 0.5 +482 0.25 0.875 0.625 +483 0.25 0.875 0.75 +484 0.25 0.875 0.875 +485 0.375 0.125 0.125 +486 0.375 0.125 0.25 +487 0.375 0.125 0.375 +488 0.375 0.125 0.5 +489 0.375 0.125 0.625 +490 0.375 0.125 0.75 +491 0.375 0.125 0.875 +492 0.375 0.25 0.125 +493 0.375 0.25 0.25 +494 0.375 0.25 0.375 +495 0.375 0.25 0.5 +496 0.375 0.25 0.625 +497 0.375 0.25 0.75 +498 0.375 0.25 0.875 +499 0.375 0.375 0.125 +500 0.375 0.375 0.25 +501 0.375 0.375 0.375 +502 0.375 0.375 0.5 +503 0.375 0.375 0.625 +504 0.375 0.375 0.75 +505 0.375 0.375 0.875 +506 0.375 0.5 0.125 +507 0.375 0.5 0.25 +508 0.375 0.5 0.375 +509 0.375 0.5 0.5 +510 0.375 0.5 0.625 +511 0.375 0.5 0.75 +512 0.375 0.5 0.875 +513 0.375 0.625 0.125 +514 0.375 0.625 0.25 +515 0.375 0.625 0.375 +516 0.375 0.625 0.5 +517 0.375 0.625 0.625 +518 0.375 0.625 0.75 +519 0.375 0.625 0.875 +520 0.375 0.75 0.125 +521 0.375 0.75 0.25 +522 0.375 0.75 0.375 +523 0.375 0.75 0.5 +524 0.375 0.75 0.625 +525 0.375 0.75 0.75 +526 0.375 0.75 0.875 +527 0.375 0.875 0.125 +528 0.375 0.875 0.25 +529 0.375 0.875 0.375 +530 0.375 0.875 0.5 +531 0.375 0.875 0.625 +532 0.375 0.875 0.75 +533 0.375 0.875 0.875 +534 0.5 0.125 0.125 +535 0.5 0.125 0.25 +536 0.5 0.125 0.375 +537 0.5 0.125 0.5 +538 0.5 0.125 0.625 +539 0.5 0.125 0.75 +540 0.5 0.125 0.875 +541 0.5 0.25 0.125 +542 0.5 0.25 0.25 +543 0.5 0.25 0.375 +544 0.5 0.25 0.5 +545 0.5 0.25 0.625 +546 0.5 0.25 0.75 +547 0.5 0.25 0.875 +548 0.5 0.375 0.125 +549 0.5 0.375 0.25 +550 0.5 0.375 0.375 +551 0.5 0.375 0.5 +552 0.5 0.375 0.625 +553 0.5 0.375 0.75 +554 0.5 0.375 0.875 +555 0.5 0.5 0.125 +556 0.5 0.5 0.25 +557 0.5 0.5 0.375 +558 0.5 0.5 0.5 +559 0.5 0.5 0.625 +560 0.5 0.5 0.75 +561 0.5 0.5 0.875 +562 0.5 0.625 0.125 +563 0.5 0.625 0.25 +564 0.5 0.625 0.375 +565 0.5 0.625 0.5 +566 0.5 0.625 0.625 +567 0.5 0.625 0.75 +568 0.5 0.625 0.875 +569 0.5 0.75 0.125 +570 0.5 0.75 0.25 +571 0.5 0.75 0.375 +572 0.5 0.75 0.5 +573 0.5 0.75 0.625 +574 0.5 0.75 0.75 +575 0.5 0.75 0.875 +576 0.5 0.875 0.125 +577 0.5 0.875 0.25 +578 0.5 0.875 0.375 +579 0.5 0.875 0.5 +580 0.5 0.875 0.625 +581 0.5 0.875 0.75 +582 0.5 0.875 0.875 +583 0.625 0.125 0.125 +584 0.625 0.125 0.25 +585 0.625 0.125 0.375 +586 0.625 0.125 0.5 +587 0.625 0.125 0.625 +588 0.625 0.125 0.75 +589 0.625 0.125 0.875 +590 0.625 0.25 0.125 +591 0.625 0.25 0.25 +592 0.625 0.25 0.375 +593 0.625 0.25 0.5 +594 0.625 0.25 0.625 +595 0.625 0.25 0.75 +596 0.625 0.25 0.875 +597 0.625 0.375 0.125 +598 0.625 0.375 0.25 +599 0.625 0.375 0.375 +600 0.625 0.375 0.5 +601 0.625 0.375 0.625 +602 0.625 0.375 0.75 +603 0.625 0.375 0.875 +604 0.625 0.5 0.125 +605 0.625 0.5 0.25 +606 0.625 0.5 0.375 +607 0.625 0.5 0.5 +608 0.625 0.5 0.625 +609 0.625 0.5 0.75 +610 0.625 0.5 0.875 +611 0.625 0.625 0.125 +612 0.625 0.625 0.25 +613 0.625 0.625 0.375 +614 0.625 0.625 0.5 +615 0.625 0.625 0.625 +616 0.625 0.625 0.75 +617 0.625 0.625 0.875 +618 0.625 0.75 0.125 +619 0.625 0.75 0.25 +620 0.625 0.75 0.375 +621 0.625 0.75 0.5 +622 0.625 0.75 0.625 +623 0.625 0.75 0.75 +624 0.625 0.75 0.875 +625 0.625 0.875 0.125 +626 0.625 0.875 0.25 +627 0.625 0.875 0.375 +628 0.625 0.875 0.5 +629 0.625 0.875 0.625 +630 0.625 0.875 0.75 +631 0.625 0.875 0.875 +632 0.75 0.125 0.125 +633 0.75 0.125 0.25 +634 0.75 0.125 0.375 +635 0.75 0.125 0.5 +636 0.75 0.125 0.625 +637 0.75 0.125 0.75 +638 0.75 0.125 0.875 +639 0.75 0.25 0.125 +640 0.75 0.25 0.25 +641 0.75 0.25 0.375 +642 0.75 0.25 0.5 +643 0.75 0.25 0.625 +644 0.75 0.25 0.75 +645 0.75 0.25 0.875 +646 0.75 0.375 0.125 +647 0.75 0.375 0.25 +648 0.75 0.375 0.375 +649 0.75 0.375 0.5 +650 0.75 0.375 0.625 +651 0.75 0.375 0.75 +652 0.75 0.375 0.875 +653 0.75 0.5 0.125 +654 0.75 0.5 0.25 +655 0.75 0.5 0.375 +656 0.75 0.5 0.5 +657 0.75 0.5 0.625 +658 0.75 0.5 0.75 +659 0.75 0.5 0.875 +660 0.75 0.625 0.125 +661 0.75 0.625 0.25 +662 0.75 0.625 0.375 +663 0.75 0.625 0.5 +664 0.75 0.625 0.625 +665 0.75 0.625 0.75 +666 0.75 0.625 0.875 +667 0.75 0.75 0.125 +668 0.75 0.75 0.25 +669 0.75 0.75 0.375 +670 0.75 0.75 0.5 +671 0.75 0.75 0.625 +672 0.75 0.75 0.75 +673 0.75 0.75 0.875 +674 0.75 0.875 0.125 +675 0.75 0.875 0.25 +676 0.75 0.875 0.375 +677 0.75 0.875 0.5 +678 0.75 0.875 0.625 +679 0.75 0.875 0.75 +680 0.75 0.875 0.875 +681 0.875 0.125 0.125 +682 0.875 0.125 0.25 +683 0.875 0.125 0.375 +684 0.875 0.125 0.5 +685 0.875 0.125 0.625 +686 0.875 0.125 0.75 +687 0.875 0.125 0.875 +688 0.875 0.25 0.125 +689 0.875 0.25 0.25 +690 0.875 0.25 0.375 +691 0.875 0.25 0.5 +692 0.875 0.25 0.625 +693 0.875 0.25 0.75 +694 0.875 0.25 0.875 +695 0.875 0.375 0.125 +696 0.875 0.375 0.25 +697 0.875 0.375 0.375 +698 0.875 0.375 0.5 +699 0.875 0.375 0.625 +700 0.875 0.375 0.75 +701 0.875 0.375 0.875 +702 0.875 0.5 0.125 +703 0.875 0.5 0.25 +704 0.875 0.5 0.375 +705 0.875 0.5 0.5 +706 0.875 0.5 0.625 +707 0.875 0.5 0.75 +708 0.875 0.5 0.875 +709 0.875 0.625 0.125 +710 0.875 0.625 0.25 +711 0.875 0.625 0.375 +712 0.875 0.625 0.5 +713 0.875 0.625 0.625 +714 0.875 0.625 0.75 +715 0.875 0.625 0.875 +716 0.875 0.75 0.125 +717 0.875 0.75 0.25 +718 0.875 0.75 0.375 +719 0.875 0.75 0.5 +720 0.875 0.75 0.625 +721 0.875 0.75 0.75 +722 0.875 0.75 0.875 +723 0.875 0.875 0.125 +724 0.875 0.875 0.25 +725 0.875 0.875 0.375 +726 0.875 0.875 0.5 +727 0.875 0.875 0.625 +728 0.875 0.875 0.75 +729 0.875 0.875 0.875 +$EndNodes +$Elements +512 +1 5 0 2 3 4 1 82 387 330 83 +2 5 0 82 387 330 83 84 388 331 85 +3 5 0 84 388 331 85 86 389 332 87 +4 5 0 86 389 332 87 88 390 333 89 +5 5 0 88 390 333 89 90 391 334 91 +6 5 0 90 391 334 91 92 392 335 93 +7 5 0 92 392 335 93 94 393 336 95 +8 5 0 94 393 336 95 96 338 337 97 +9 5 0 3 5 6 4 387 394 322 330 +10 5 0 387 394 322 330 388 395 323 331 +11 5 0 388 395 323 331 389 396 324 332 +12 5 0 389 396 324 332 390 397 325 333 +13 5 0 390 397 325 333 391 398 326 334 +14 5 0 391 398 326 334 392 399 327 335 +15 5 0 392 399 327 335 393 400 328 336 +16 5 0 393 400 328 336 338 339 329 337 +17 5 0 5 7 8 6 394 401 314 322 +18 5 0 394 401 314 322 395 402 315 323 +19 5 0 395 402 315 323 396 403 316 324 +20 5 0 396 403 316 324 397 404 317 325 +21 5 0 397 404 317 325 398 405 318 326 +22 5 0 398 405 318 326 399 406 319 327 +23 5 0 399 406 319 327 400 407 320 328 +24 5 0 400 407 320 328 339 340 321 329 +25 5 0 7 9 10 8 401 408 306 314 +26 5 0 401 408 306 314 402 409 307 315 +27 5 0 402 409 307 315 403 410 308 316 +28 5 0 403 410 308 316 404 411 309 317 +29 5 0 404 411 309 317 405 412 310 318 +30 5 0 405 412 310 318 406 413 311 319 +31 5 0 406 413 311 319 407 414 312 320 +32 5 0 407 414 312 320 340 341 313 321 +33 5 0 9 11 12 10 408 415 298 306 +34 5 0 408 415 298 306 409 416 299 307 +35 5 0 409 416 299 307 410 417 300 308 +36 5 0 410 417 300 308 411 418 301 309 +37 5 0 411 418 301 309 412 419 302 310 +38 5 0 412 419 302 310 413 420 303 311 +39 5 0 413 420 303 311 414 421 304 312 +40 5 0 414 421 304 312 341 342 305 313 +41 5 0 11 13 14 12 415 422 290 298 +42 5 0 415 422 290 298 416 423 291 299 +43 5 0 416 423 291 299 417 424 292 300 +44 5 0 417 424 292 300 418 425 293 301 +45 5 0 418 425 293 301 419 426 294 302 +46 5 0 419 426 294 302 420 427 295 303 +47 5 0 420 427 295 303 421 428 296 304 +48 5 0 421 428 296 304 342 343 297 305 +49 5 0 13 15 16 14 422 429 282 290 +50 5 0 422 429 282 290 423 430 283 291 +51 5 0 423 430 283 291 424 431 284 292 +52 5 0 424 431 284 292 425 432 285 293 +53 5 0 425 432 285 293 426 433 286 294 +54 5 0 426 433 286 294 427 434 287 295 +55 5 0 427 434 287 295 428 435 288 296 +56 5 0 428 435 288 296 343 344 289 297 +57 5 0 15 17 18 16 429 266 274 282 +58 5 0 429 266 274 282 430 267 275 283 +59 5 0 430 267 275 283 431 268 276 284 +60 5 0 431 268 276 284 432 269 277 285 +61 5 0 432 269 277 285 433 270 278 286 +62 5 0 433 270 278 286 434 271 279 287 +63 5 0 434 271 279 287 435 272 280 288 +64 5 0 435 272 280 288 344 273 281 289 +65 5 0 2 19 20 3 82 98 436 387 +66 5 0 82 98 436 387 84 99 437 388 +67 5 0 84 99 437 388 86 100 438 389 +68 5 0 86 100 438 389 88 101 439 390 +69 5 0 88 101 439 390 90 102 440 391 +70 5 0 90 102 440 391 92 103 441 392 +71 5 0 92 103 441 392 94 104 442 393 +72 5 0 94 104 442 393 96 105 345 338 +73 5 0 3 20 21 5 387 436 443 394 +74 5 0 387 436 443 394 388 437 444 395 +75 5 0 388 437 444 395 389 438 445 396 +76 5 0 389 438 445 396 390 439 446 397 +77 5 0 390 439 446 397 391 440 447 398 +78 5 0 391 440 447 398 392 441 448 399 +79 5 0 392 441 448 399 393 442 449 400 +80 5 0 393 442 449 400 338 345 346 339 +81 5 0 5 21 22 7 394 443 450 401 +82 5 0 394 443 450 401 395 444 451 402 +83 5 0 395 444 451 402 396 445 452 403 +84 5 0 396 445 452 403 397 446 453 404 +85 5 0 397 446 453 404 398 447 454 405 +86 5 0 398 447 454 405 399 448 455 406 +87 5 0 399 448 455 406 400 449 456 407 +88 5 0 400 449 456 407 339 346 347 340 +89 5 0 7 22 23 9 401 450 457 408 +90 5 0 401 450 457 408 402 451 458 409 +91 5 0 402 451 458 409 403 452 459 410 +92 5 0 403 452 459 410 404 453 460 411 +93 5 0 404 453 460 411 405 454 461 412 +94 5 0 405 454 461 412 406 455 462 413 +95 5 0 406 455 462 413 407 456 463 414 +96 5 0 407 456 463 414 340 347 348 341 +97 5 0 9 23 24 11 408 457 464 415 +98 5 0 408 457 464 415 409 458 465 416 +99 5 0 409 458 465 416 410 459 466 417 +100 5 0 410 459 466 417 411 460 467 418 +101 5 0 411 460 467 418 412 461 468 419 +102 5 0 412 461 468 419 413 462 469 420 +103 5 0 413 462 469 420 414 463 470 421 +104 5 0 414 463 470 421 341 348 349 342 +105 5 0 11 24 25 13 415 464 471 422 +106 5 0 415 464 471 422 416 465 472 423 +107 5 0 416 465 472 423 417 466 473 424 +108 5 0 417 466 473 424 418 467 474 425 +109 5 0 418 467 474 425 419 468 475 426 +110 5 0 419 468 475 426 420 469 476 427 +111 5 0 420 469 476 427 421 470 477 428 +112 5 0 421 470 477 428 342 349 350 343 +113 5 0 13 25 26 15 422 471 478 429 +114 5 0 422 471 478 429 423 472 479 430 +115 5 0 423 472 479 430 424 473 480 431 +116 5 0 424 473 480 431 425 474 481 432 +117 5 0 425 474 481 432 426 475 482 433 +118 5 0 426 475 482 433 427 476 483 434 +119 5 0 427 476 483 434 428 477 484 435 +120 5 0 428 477 484 435 343 350 351 344 +121 5 0 15 26 27 17 429 478 258 266 +122 5 0 429 478 258 266 430 479 259 267 +123 5 0 430 479 259 267 431 480 260 268 +124 5 0 431 480 260 268 432 481 261 269 +125 5 0 432 481 261 269 433 482 262 270 +126 5 0 433 482 262 270 434 483 263 271 +127 5 0 434 483 263 271 435 484 264 272 +128 5 0 435 484 264 272 344 351 265 273 +129 5 0 19 28 29 20 98 106 485 436 +130 5 0 98 106 485 436 99 107 486 437 +131 5 0 99 107 486 437 100 108 487 438 +132 5 0 100 108 487 438 101 109 488 439 +133 5 0 101 109 488 439 102 110 489 440 +134 5 0 102 110 489 440 103 111 490 441 +135 5 0 103 111 490 441 104 112 491 442 +136 5 0 104 112 491 442 105 113 352 345 +137 5 0 20 29 30 21 436 485 492 443 +138 5 0 436 485 492 443 437 486 493 444 +139 5 0 437 486 493 444 438 487 494 445 +140 5 0 438 487 494 445 439 488 495 446 +141 5 0 439 488 495 446 440 489 496 447 +142 5 0 440 489 496 447 441 490 497 448 +143 5 0 441 490 497 448 442 491 498 449 +144 5 0 442 491 498 449 345 352 353 346 +145 5 0 21 30 31 22 443 492 499 450 +146 5 0 443 492 499 450 444 493 500 451 +147 5 0 444 493 500 451 445 494 501 452 +148 5 0 445 494 501 452 446 495 502 453 +149 5 0 446 495 502 453 447 496 503 454 +150 5 0 447 496 503 454 448 497 504 455 +151 5 0 448 497 504 455 449 498 505 456 +152 5 0 449 498 505 456 346 353 354 347 +153 5 0 22 31 32 23 450 499 506 457 +154 5 0 450 499 506 457 451 500 507 458 +155 5 0 451 500 507 458 452 501 508 459 +156 5 0 452 501 508 459 453 502 509 460 +157 5 0 453 502 509 460 454 503 510 461 +158 5 0 454 503 510 461 455 504 511 462 +159 5 0 455 504 511 462 456 505 512 463 +160 5 0 456 505 512 463 347 354 355 348 +161 5 0 23 32 33 24 457 506 513 464 +162 5 0 457 506 513 464 458 507 514 465 +163 5 0 458 507 514 465 459 508 515 466 +164 5 0 459 508 515 466 460 509 516 467 +165 5 0 460 509 516 467 461 510 517 468 +166 5 0 461 510 517 468 462 511 518 469 +167 5 0 462 511 518 469 463 512 519 470 +168 5 0 463 512 519 470 348 355 356 349 +169 5 0 24 33 34 25 464 513 520 471 +170 5 0 464 513 520 471 465 514 521 472 +171 5 0 465 514 521 472 466 515 522 473 +172 5 0 466 515 522 473 467 516 523 474 +173 5 0 467 516 523 474 468 517 524 475 +174 5 0 468 517 524 475 469 518 525 476 +175 5 0 469 518 525 476 470 519 526 477 +176 5 0 470 519 526 477 349 356 357 350 +177 5 0 25 34 35 26 471 520 527 478 +178 5 0 471 520 527 478 472 521 528 479 +179 5 0 472 521 528 479 473 522 529 480 +180 5 0 473 522 529 480 474 523 530 481 +181 5 0 474 523 530 481 475 524 531 482 +182 5 0 475 524 531 482 476 525 532 483 +183 5 0 476 525 532 483 477 526 533 484 +184 5 0 477 526 533 484 350 357 358 351 +185 5 0 26 35 36 27 478 527 250 258 +186 5 0 478 527 250 258 479 528 251 259 +187 5 0 479 528 251 259 480 529 252 260 +188 5 0 480 529 252 260 481 530 253 261 +189 5 0 481 530 253 261 482 531 254 262 +190 5 0 482 531 254 262 483 532 255 263 +191 5 0 483 532 255 263 484 533 256 264 +192 5 0 484 533 256 264 351 358 257 265 +193 5 0 28 37 38 29 106 114 534 485 +194 5 0 106 114 534 485 107 115 535 486 +195 5 0 107 115 535 486 108 116 536 487 +196 5 0 108 116 536 487 109 117 537 488 +197 5 0 109 117 537 488 110 118 538 489 +198 5 0 110 118 538 489 111 119 539 490 +199 5 0 111 119 539 490 112 120 540 491 +200 5 0 112 120 540 491 113 121 359 352 +201 5 0 29 38 39 30 485 534 541 492 +202 5 0 485 534 541 492 486 535 542 493 +203 5 0 486 535 542 493 487 536 543 494 +204 5 0 487 536 543 494 488 537 544 495 +205 5 0 488 537 544 495 489 538 545 496 +206 5 0 489 538 545 496 490 539 546 497 +207 5 0 490 539 546 497 491 540 547 498 +208 5 0 491 540 547 498 352 359 360 353 +209 5 0 30 39 40 31 492 541 548 499 +210 5 0 492 541 548 499 493 542 549 500 +211 5 0 493 542 549 500 494 543 550 501 +212 5 0 494 543 550 501 495 544 551 502 +213 5 0 495 544 551 502 496 545 552 503 +214 5 0 496 545 552 503 497 546 553 504 +215 5 0 497 546 553 504 498 547 554 505 +216 5 0 498 547 554 505 353 360 361 354 +217 5 0 31 40 41 32 499 548 555 506 +218 5 0 499 548 555 506 500 549 556 507 +219 5 0 500 549 556 507 501 550 557 508 +220 5 0 501 550 557 508 502 551 558 509 +221 5 0 502 551 558 509 503 552 559 510 +222 5 0 503 552 559 510 504 553 560 511 +223 5 0 504 553 560 511 505 554 561 512 +224 5 0 505 554 561 512 354 361 362 355 +225 5 0 32 41 42 33 506 555 562 513 +226 5 0 506 555 562 513 507 556 563 514 +227 5 0 507 556 563 514 508 557 564 515 +228 5 0 508 557 564 515 509 558 565 516 +229 5 0 509 558 565 516 510 559 566 517 +230 5 0 510 559 566 517 511 560 567 518 +231 5 0 511 560 567 518 512 561 568 519 +232 5 0 512 561 568 519 355 362 363 356 +233 5 0 33 42 43 34 513 562 569 520 +234 5 0 513 562 569 520 514 563 570 521 +235 5 0 514 563 570 521 515 564 571 522 +236 5 0 515 564 571 522 516 565 572 523 +237 5 0 516 565 572 523 517 566 573 524 +238 5 0 517 566 573 524 518 567 574 525 +239 5 0 518 567 574 525 519 568 575 526 +240 5 0 519 568 575 526 356 363 364 357 +241 5 0 34 43 44 35 520 569 576 527 +242 5 0 520 569 576 527 521 570 577 528 +243 5 0 521 570 577 528 522 571 578 529 +244 5 0 522 571 578 529 523 572 579 530 +245 5 0 523 572 579 530 524 573 580 531 +246 5 0 524 573 580 531 525 574 581 532 +247 5 0 525 574 581 532 526 575 582 533 +248 5 0 526 575 582 533 357 364 365 358 +249 5 0 35 44 45 36 527 576 242 250 +250 5 0 527 576 242 250 528 577 243 251 +251 5 0 528 577 243 251 529 578 244 252 +252 5 0 529 578 244 252 530 579 245 253 +253 5 0 530 579 245 253 531 580 246 254 +254 5 0 531 580 246 254 532 581 247 255 +255 5 0 532 581 247 255 533 582 248 256 +256 5 0 533 582 248 256 358 365 249 257 +257 5 0 37 46 47 38 114 122 583 534 +258 5 0 114 122 583 534 115 123 584 535 +259 5 0 115 123 584 535 116 124 585 536 +260 5 0 116 124 585 536 117 125 586 537 +261 5 0 117 125 586 537 118 126 587 538 +262 5 0 118 126 587 538 119 127 588 539 +263 5 0 119 127 588 539 120 128 589 540 +264 5 0 120 128 589 540 121 129 366 359 +265 5 0 38 47 48 39 534 583 590 541 +266 5 0 534 583 590 541 535 584 591 542 +267 5 0 535 584 591 542 536 585 592 543 +268 5 0 536 585 592 543 537 586 593 544 +269 5 0 537 586 593 544 538 587 594 545 +270 5 0 538 587 594 545 539 588 595 546 +271 5 0 539 588 595 546 540 589 596 547 +272 5 0 540 589 596 547 359 366 367 360 +273 5 0 39 48 49 40 541 590 597 548 +274 5 0 541 590 597 548 542 591 598 549 +275 5 0 542 591 598 549 543 592 599 550 +276 5 0 543 592 599 550 544 593 600 551 +277 5 0 544 593 600 551 545 594 601 552 +278 5 0 545 594 601 552 546 595 602 553 +279 5 0 546 595 602 553 547 596 603 554 +280 5 0 547 596 603 554 360 367 368 361 +281 5 0 40 49 50 41 548 597 604 555 +282 5 0 548 597 604 555 549 598 605 556 +283 5 0 549 598 605 556 550 599 606 557 +284 5 0 550 599 606 557 551 600 607 558 +285 5 0 551 600 607 558 552 601 608 559 +286 5 0 552 601 608 559 553 602 609 560 +287 5 0 553 602 609 560 554 603 610 561 +288 5 0 554 603 610 561 361 368 369 362 +289 5 0 41 50 51 42 555 604 611 562 +290 5 0 555 604 611 562 556 605 612 563 +291 5 0 556 605 612 563 557 606 613 564 +292 5 0 557 606 613 564 558 607 614 565 +293 5 0 558 607 614 565 559 608 615 566 +294 5 0 559 608 615 566 560 609 616 567 +295 5 0 560 609 616 567 561 610 617 568 +296 5 0 561 610 617 568 362 369 370 363 +297 5 0 42 51 52 43 562 611 618 569 +298 5 0 562 611 618 569 563 612 619 570 +299 5 0 563 612 619 570 564 613 620 571 +300 5 0 564 613 620 571 565 614 621 572 +301 5 0 565 614 621 572 566 615 622 573 +302 5 0 566 615 622 573 567 616 623 574 +303 5 0 567 616 623 574 568 617 624 575 +304 5 0 568 617 624 575 363 370 371 364 +305 5 0 43 52 53 44 569 618 625 576 +306 5 0 569 618 625 576 570 619 626 577 +307 5 0 570 619 626 577 571 620 627 578 +308 5 0 571 620 627 578 572 621 628 579 +309 5 0 572 621 628 579 573 622 629 580 +310 5 0 573 622 629 580 574 623 630 581 +311 5 0 574 623 630 581 575 624 631 582 +312 5 0 575 624 631 582 364 371 372 365 +313 5 0 44 53 54 45 576 625 234 242 +314 5 0 576 625 234 242 577 626 235 243 +315 5 0 577 626 235 243 578 627 236 244 +316 5 0 578 627 236 244 579 628 237 245 +317 5 0 579 628 237 245 580 629 238 246 +318 5 0 580 629 238 246 581 630 239 247 +319 5 0 581 630 239 247 582 631 240 248 +320 5 0 582 631 240 248 365 372 241 249 +321 5 0 46 55 56 47 122 130 632 583 +322 5 0 122 130 632 583 123 131 633 584 +323 5 0 123 131 633 584 124 132 634 585 +324 5 0 124 132 634 585 125 133 635 586 +325 5 0 125 133 635 586 126 134 636 587 +326 5 0 126 134 636 587 127 135 637 588 +327 5 0 127 135 637 588 128 136 638 589 +328 5 0 128 136 638 589 129 137 373 366 +329 5 0 47 56 57 48 583 632 639 590 +330 5 0 583 632 639 590 584 633 640 591 +331 5 0 584 633 640 591 585 634 641 592 +332 5 0 585 634 641 592 586 635 642 593 +333 5 0 586 635 642 593 587 636 643 594 +334 5 0 587 636 643 594 588 637 644 595 +335 5 0 588 637 644 595 589 638 645 596 +336 5 0 589 638 645 596 366 373 374 367 +337 5 0 48 57 58 49 590 639 646 597 +338 5 0 590 639 646 597 591 640 647 598 +339 5 0 591 640 647 598 592 641 648 599 +340 5 0 592 641 648 599 593 642 649 600 +341 5 0 593 642 649 600 594 643 650 601 +342 5 0 594 643 650 601 595 644 651 602 +343 5 0 595 644 651 602 596 645 652 603 +344 5 0 596 645 652 603 367 374 375 368 +345 5 0 49 58 59 50 597 646 653 604 +346 5 0 597 646 653 604 598 647 654 605 +347 5 0 598 647 654 605 599 648 655 606 +348 5 0 599 648 655 606 600 649 656 607 +349 5 0 600 649 656 607 601 650 657 608 +350 5 0 601 650 657 608 602 651 658 609 +351 5 0 602 651 658 609 603 652 659 610 +352 5 0 603 652 659 610 368 375 376 369 +353 5 0 50 59 60 51 604 653 660 611 +354 5 0 604 653 660 611 605 654 661 612 +355 5 0 605 654 661 612 606 655 662 613 +356 5 0 606 655 662 613 607 656 663 614 +357 5 0 607 656 663 614 608 657 664 615 +358 5 0 608 657 664 615 609 658 665 616 +359 5 0 609 658 665 616 610 659 666 617 +360 5 0 610 659 666 617 369 376 377 370 +361 5 0 51 60 61 52 611 660 667 618 +362 5 0 611 660 667 618 612 661 668 619 +363 5 0 612 661 668 619 613 662 669 620 +364 5 0 613 662 669 620 614 663 670 621 +365 5 0 614 663 670 621 615 664 671 622 +366 5 0 615 664 671 622 616 665 672 623 +367 5 0 616 665 672 623 617 666 673 624 +368 5 0 617 666 673 624 370 377 378 371 +369 5 0 52 61 62 53 618 667 674 625 +370 5 0 618 667 674 625 619 668 675 626 +371 5 0 619 668 675 626 620 669 676 627 +372 5 0 620 669 676 627 621 670 677 628 +373 5 0 621 670 677 628 622 671 678 629 +374 5 0 622 671 678 629 623 672 679 630 +375 5 0 623 672 679 630 624 673 680 631 +376 5 0 624 673 680 631 371 378 379 372 +377 5 0 53 62 63 54 625 674 226 234 +378 5 0 625 674 226 234 626 675 227 235 +379 5 0 626 675 227 235 627 676 228 236 +380 5 0 627 676 228 236 628 677 229 237 +381 5 0 628 677 229 237 629 678 230 238 +382 5 0 629 678 230 238 630 679 231 239 +383 5 0 630 679 231 239 631 680 232 240 +384 5 0 631 680 232 240 372 379 233 241 +385 5 0 55 64 65 56 130 138 681 632 +386 5 0 130 138 681 632 131 139 682 633 +387 5 0 131 139 682 633 132 140 683 634 +388 5 0 132 140 683 634 133 141 684 635 +389 5 0 133 141 684 635 134 142 685 636 +390 5 0 134 142 685 636 135 143 686 637 +391 5 0 135 143 686 637 136 144 687 638 +392 5 0 136 144 687 638 137 145 380 373 +393 5 0 56 65 66 57 632 681 688 639 +394 5 0 632 681 688 639 633 682 689 640 +395 5 0 633 682 689 640 634 683 690 641 +396 5 0 634 683 690 641 635 684 691 642 +397 5 0 635 684 691 642 636 685 692 643 +398 5 0 636 685 692 643 637 686 693 644 +399 5 0 637 686 693 644 638 687 694 645 +400 5 0 638 687 694 645 373 380 381 374 +401 5 0 57 66 67 58 639 688 695 646 +402 5 0 639 688 695 646 640 689 696 647 +403 5 0 640 689 696 647 641 690 697 648 +404 5 0 641 690 697 648 642 691 698 649 +405 5 0 642 691 698 649 643 692 699 650 +406 5 0 643 692 699 650 644 693 700 651 +407 5 0 644 693 700 651 645 694 701 652 +408 5 0 645 694 701 652 374 381 382 375 +409 5 0 58 67 68 59 646 695 702 653 +410 5 0 646 695 702 653 647 696 703 654 +411 5 0 647 696 703 654 648 697 704 655 +412 5 0 648 697 704 655 649 698 705 656 +413 5 0 649 698 705 656 650 699 706 657 +414 5 0 650 699 706 657 651 700 707 658 +415 5 0 651 700 707 658 652 701 708 659 +416 5 0 652 701 708 659 375 382 383 376 +417 5 0 59 68 69 60 653 702 709 660 +418 5 0 653 702 709 660 654 703 710 661 +419 5 0 654 703 710 661 655 704 711 662 +420 5 0 655 704 711 662 656 705 712 663 +421 5 0 656 705 712 663 657 706 713 664 +422 5 0 657 706 713 664 658 707 714 665 +423 5 0 658 707 714 665 659 708 715 666 +424 5 0 659 708 715 666 376 383 384 377 +425 5 0 60 69 70 61 660 709 716 667 +426 5 0 660 709 716 667 661 710 717 668 +427 5 0 661 710 717 668 662 711 718 669 +428 5 0 662 711 718 669 663 712 719 670 +429 5 0 663 712 719 670 664 713 720 671 +430 5 0 664 713 720 671 665 714 721 672 +431 5 0 665 714 721 672 666 715 722 673 +432 5 0 666 715 722 673 377 384 385 378 +433 5 0 61 70 71 62 667 716 723 674 +434 5 0 667 716 723 674 668 717 724 675 +435 5 0 668 717 724 675 669 718 725 676 +436 5 0 669 718 725 676 670 719 726 677 +437 5 0 670 719 726 677 671 720 727 678 +438 5 0 671 720 727 678 672 721 728 679 +439 5 0 672 721 728 679 673 722 729 680 +440 5 0 673 722 729 680 378 385 386 379 +441 5 0 62 71 72 63 674 723 218 226 +442 5 0 674 723 218 226 675 724 219 227 +443 5 0 675 724 219 227 676 725 220 228 +444 5 0 676 725 220 228 677 726 221 229 +445 5 0 677 726 221 229 678 727 222 230 +446 5 0 678 727 222 230 679 728 223 231 +447 5 0 679 728 223 231 680 729 224 232 +448 5 0 680 729 224 232 379 386 225 233 +449 5 0 64 73 74 65 138 146 154 681 +450 5 0 138 146 154 681 139 147 155 682 +451 5 0 139 147 155 682 140 148 156 683 +452 5 0 140 148 156 683 141 149 157 684 +453 5 0 141 149 157 684 142 150 158 685 +454 5 0 142 150 158 685 143 151 159 686 +455 5 0 143 151 159 686 144 152 160 687 +456 5 0 144 152 160 687 145 153 161 380 +457 5 0 65 74 75 66 681 154 162 688 +458 5 0 681 154 162 688 682 155 163 689 +459 5 0 682 155 163 689 683 156 164 690 +460 5 0 683 156 164 690 684 157 165 691 +461 5 0 684 157 165 691 685 158 166 692 +462 5 0 685 158 166 692 686 159 167 693 +463 5 0 686 159 167 693 687 160 168 694 +464 5 0 687 160 168 694 380 161 169 381 +465 5 0 66 75 76 67 688 162 170 695 +466 5 0 688 162 170 695 689 163 171 696 +467 5 0 689 163 171 696 690 164 172 697 +468 5 0 690 164 172 697 691 165 173 698 +469 5 0 691 165 173 698 692 166 174 699 +470 5 0 692 166 174 699 693 167 175 700 +471 5 0 693 167 175 700 694 168 176 701 +472 5 0 694 168 176 701 381 169 177 382 +473 5 0 67 76 77 68 695 170 178 702 +474 5 0 695 170 178 702 696 171 179 703 +475 5 0 696 171 179 703 697 172 180 704 +476 5 0 697 172 180 704 698 173 181 705 +477 5 0 698 173 181 705 699 174 182 706 +478 5 0 699 174 182 706 700 175 183 707 +479 5 0 700 175 183 707 701 176 184 708 +480 5 0 701 176 184 708 382 177 185 383 +481 5 0 68 77 78 69 702 178 186 709 +482 5 0 702 178 186 709 703 179 187 710 +483 5 0 703 179 187 710 704 180 188 711 +484 5 0 704 180 188 711 705 181 189 712 +485 5 0 705 181 189 712 706 182 190 713 +486 5 0 706 182 190 713 707 183 191 714 +487 5 0 707 183 191 714 708 184 192 715 +488 5 0 708 184 192 715 383 185 193 384 +489 5 0 69 78 79 70 709 186 194 716 +490 5 0 709 186 194 716 710 187 195 717 +491 5 0 710 187 195 717 711 188 196 718 +492 5 0 711 188 196 718 712 189 197 719 +493 5 0 712 189 197 719 713 190 198 720 +494 5 0 713 190 198 720 714 191 199 721 +495 5 0 714 191 199 721 715 192 200 722 +496 5 0 715 192 200 722 384 193 201 385 +497 5 0 70 79 80 71 716 194 202 723 +498 5 0 716 194 202 723 717 195 203 724 +499 5 0 717 195 203 724 718 196 204 725 +500 5 0 718 196 204 725 719 197 205 726 +501 5 0 719 197 205 726 720 198 206 727 +502 5 0 720 198 206 727 721 199 207 728 +503 5 0 721 199 207 728 722 200 208 729 +504 5 0 722 200 208 729 385 201 209 386 +505 5 0 71 80 81 72 723 202 210 218 +506 5 0 723 202 210 218 724 203 211 219 +507 5 0 724 203 211 219 725 204 212 220 +508 5 0 725 204 212 220 726 205 213 221 +509 5 0 726 205 213 221 727 206 214 222 +510 5 0 727 206 214 222 728 207 215 223 +511 5 0 728 207 215 223 729 208 216 224 +512 5 0 729 208 216 224 386 209 217 225 +$EndElements diff --git a/test/sumfact/poisson/poisson_2d_unstructured.mini b/test/sumfact/poisson/poisson_2d_unstructured.mini index b797809b2f626a3d8e9a0aa546df4e549f12e3fe..b7de167f8b04294285f3e75ff7553ec872b56e38 100644 --- a/test/sumfact/poisson/poisson_2d_unstructured.mini +++ b/test/sumfact/poisson/poisson_2d_unstructured.mini @@ -9,7 +9,7 @@ deg_suffix = deg{formcompiler.ufl_variants.degree} {deg_suffix} == deg1 | exclude {diff_suffix} == numdiff | exclude {quadvec_suffix} == quadvec | exclude -{gradvec_suffix} == gradvec | exclude +# {gradvec_suffix} == gradvec | exclude lowerleft = 0.0 0.0 upperright = 1.0 1.0 @@ -23,6 +23,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 5e-5, 5e-7 | expand deg grid_unstructured = 1 +debug_interpolate_input = 1 [formcompiler.r] numerical_jacobian = 1, 0 | expand num diff --git a/test/sumfact/poisson/poisson_3d_unstructured.mini b/test/sumfact/poisson/poisson_3d_unstructured.mini index 05f9a1d10e7068c6bb7f8c3c1742ed97f9ee86ab..0d8b46901303b6a2889ef52ab82c389c9f4c2ead 100644 --- a/test/sumfact/poisson/poisson_3d_unstructured.mini +++ b/test/sumfact/poisson/poisson_3d_unstructured.mini @@ -9,7 +9,7 @@ deg_suffix = deg{formcompiler.ufl_variants.degree} {deg_suffix} == deg1 | exclude {diff_suffix} == numdiff | exclude {quadvec_suffix} == quadvec | exclude -{gradvec_suffix} == gradvec | exclude +# {gradvec_suffix} == gradvec | exclude lowerleft = 0.0 0.0 0.0 upperright = 1.0 1.0 1.0 @@ -23,6 +23,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-4, 1e-8 | expand deg grid_unstructured = 1 +debug_interpolate_input = 1 [formcompiler.r] numerical_jacobian = 1, 0 | expand num diff --git a/test/sumfact/poisson/poisson_dg_2d_gmsh.mini b/test/sumfact/poisson/poisson_dg_2d_gmsh.mini new file mode 100644 index 0000000000000000000000000000000000000000..79df9ea4e0ce87805ea9220e3be9b05262beb596 --- /dev/null +++ b/test/sumfact/poisson/poisson_dg_2d_gmsh.mini @@ -0,0 +1,34 @@ +__name = sumfact_poisson_dg_2d_gmsh_{__exec_suffix} +__exec_suffix = {deg_suffix}_{diff_suffix}_{quadvec_suffix}_{gradvec_suffix} + +diff_suffix = numdiff, symdiff | expand num +quadvec_suffix = quadvec, nonquadvec | expand quad +gradvec_suffix = gradvec, nongradvec | expand grad +deg_suffix = deg{formcompiler.ufl_variants.degree} + +{deg_suffix} == deg1 | exclude +{diff_suffix} == numdiff | exclude +{quadvec_suffix} == quadvec | exclude +{gradvec_suffix} == gradvec | exclude + +# gmshFile = square_quad.msh +gmshFile = square_quad_consistent.msh + +[wrapper.vtkcompare] +name = {__name} +extension = vtu + +[formcompiler] +compare_l2errorsquared = 5e-5, 5e-7 | expand deg +grid_unstructured = 1 +debug_interpolate_input = 1 + +[formcompiler.r] +numerical_jacobian = 1, 0 | expand num +sumfact = 1 +sumfact_regular_jacobians = 1 +vectorization_quadloop = 1, 0 | expand quad +vectorization_strategy = explicit, none | expand grad + +[formcompiler.ufl_variants] +degree = 1, 2 | expand deg diff --git a/test/sumfact/poisson/poisson_dg_2d_unstructured.mini b/test/sumfact/poisson/poisson_dg_2d_unstructured.mini index 639b96da2988d7f50f4fbb4b1569f46997d21d31..fec1c93d095eb90dcbfc1a40e11f01af58ecced0 100644 --- a/test/sumfact/poisson/poisson_dg_2d_unstructured.mini +++ b/test/sumfact/poisson/poisson_dg_2d_unstructured.mini @@ -23,6 +23,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 5e-5, 5e-5 | expand deg grid_unstructured = 1 +debug_interpolate_input = 1 [formcompiler.r] numerical_jacobian = 1, 0 | expand num diff --git a/test/sumfact/poisson/poisson_dg_3d_gmsh.mini b/test/sumfact/poisson/poisson_dg_3d_gmsh.mini new file mode 100644 index 0000000000000000000000000000000000000000..eb320a2d90f99e9c2abd40470f160370677ebe81 --- /dev/null +++ b/test/sumfact/poisson/poisson_dg_3d_gmsh.mini @@ -0,0 +1,36 @@ +__name = sumfact_poisson_dg_3d_gmsh_{__exec_suffix} +__exec_suffix = {deg_suffix}_{diff_suffix}_{quadvec_suffix}_{gradvec_suffix} + +diff_suffix = numdiff, symdiff | expand num +quadvec_suffix = quadvec, nonquadvec | expand quad +gradvec_suffix = gradvec, nongradvec | expand grad +deg_suffix = deg{formcompiler.ufl_variants.degree} + +# {deg_suffix} == deg1 | exclude +{diff_suffix} == numdiff | exclude +{quadvec_suffix} == quadvec | exclude +{gradvec_suffix} == gradvec | exclude + +# gmshFile = cube_hexa_2.msh +# gmshFile = cube_hexa_2_consistent.msh +# gmshFile = cube_hexa.msh +gmshFile = cube_hexa_consistent.msh + +[wrapper.vtkcompare] +name = {__name} +extension = vtu + +[formcompiler] +compare_l2errorsquared = 1e-4, 5e-6 | expand deg +grid_unstructured = 1 +debug_interpolate_input = 1 + +[formcompiler.r] +numerical_jacobian = 1, 0 | expand num +sumfact = 1 +sumfact_regular_jacobians = 1 +vectorization_quadloop = 1, 0 | expand quad +vectorization_strategy = explicit, none | expand grad + +[formcompiler.ufl_variants] +degree = 1, 2 | expand deg diff --git a/test/sumfact/poisson/poisson_dg_3d_unstructured.mini b/test/sumfact/poisson/poisson_dg_3d_unstructured.mini index 012b3356b887eedc31a848b714790d2ac633445b..271b1f54d533db26bf7a205ff0df772ae0254b0c 100644 --- a/test/sumfact/poisson/poisson_dg_3d_unstructured.mini +++ b/test/sumfact/poisson/poisson_dg_3d_unstructured.mini @@ -6,7 +6,7 @@ quadvec_suffix = quadvec, nonquadvec | expand quad gradvec_suffix = gradvec, nongradvec | expand grad deg_suffix = deg{formcompiler.ufl_variants.degree} -{deg_suffix} == deg1 | exclude +# {deg_suffix} == deg1 | exclude {diff_suffix} == numdiff | exclude {quadvec_suffix} == quadvec | exclude {gradvec_suffix} == gradvec | exclude @@ -23,6 +23,7 @@ extension = vtu [formcompiler] compare_l2errorsquared = 1e-4, 5e-6 | expand deg grid_unstructured = 1 +debug_interpolate_input = 1 [formcompiler.r] numerical_jacobian = 1, 0 | expand num diff --git a/test/sumfact/poisson/poisson_fastdg_3d_gmsh.mini b/test/sumfact/poisson/poisson_fastdg_3d_gmsh.mini new file mode 100644 index 0000000000000000000000000000000000000000..52de26ab8457740a0ff15c6e2ce3a3969328ff0b --- /dev/null +++ b/test/sumfact/poisson/poisson_fastdg_3d_gmsh.mini @@ -0,0 +1,35 @@ +__name = sumfact_poisson_fastdg_3d_gmsh_{__exec_suffix} +__exec_suffix = {deg_suffix}_{quadvec_suffix}_{gradvec_suffix} + +quadvec_suffix = quadvec, nonquadvec | expand quad +gradvec_suffix = gradvec, nongradvec | expand grad +deg_suffix = deg{formcompiler.ufl_variants.degree} + +{deg_suffix} == deg1 | exclude +{quadvec_suffix} == quadvec | exclude +{gradvec_suffix} == gradvec | exclude + +# gmshFile = cube_hexa_2.msh +# gmshFile = cube_hexa_2_consistent.msh +# gmshFile = cube_hexa.msh +gmshFile = cube_hexa_consistent.msh + +[wrapper.vtkcompare] +name = {__name} +extension = vtu + +[formcompiler] +compare_l2errorsquared = 1e-4, 5e-6 | expand deg +grid_unstructured = 1 +debug_interpolate_input = 1 + +[formcompiler.r] +numerical_jacobian = 0 +sumfact = 1 +fastdg = 1 +sumfact_regular_jacobians = 1 +vectorization_quadloop = 1, 0 | expand quad +vectorization_strategy = explicit, none | expand grad + +[formcompiler.ufl_variants] +degree = 1, 2 | expand deg diff --git a/test/sumfact/poisson/square_quad.msh b/test/sumfact/poisson/square_quad.msh new file mode 100644 index 0000000000000000000000000000000000000000..238c938a13ac7226c8c5a1e35972afc32f6c9e01 --- /dev/null +++ b/test/sumfact/poisson/square_quad.msh @@ -0,0 +1,760 @@ +$MeshFormat +2.2 0 8 +$EndMeshFormat +$Nodes +358 +1 0 0 0 +2 1 0 0 +3 1 1 0 +4 0 1 0 +5 0.06249999999987327 0 0 +6 0.1249999999997738 0 0 +7 0.1874999999995943 0 0 +8 0.2499999999994121 0 0 +9 0.3124999999992298 0 0 +10 0.3749999999990476 0 0 +11 0.4374999999988654 0 0 +12 0.499999999998694 0 0 +13 0.5624999999988478 0 0 +14 0.6249999999990125 0 0 +15 0.687499999999177 0 0 +16 0.7499999999993416 0 0 +17 0.8124999999995062 0 0 +18 0.8749999999996708 0 0 +19 0.9374999999998354 0 0 +20 1 0.06249999999987327 0 +21 1 0.1249999999997738 0 +22 1 0.1874999999995943 0 +23 1 0.2499999999994121 0 +24 1 0.3124999999992298 0 +25 1 0.3749999999990476 0 +26 1 0.4374999999988654 0 +27 1 0.499999999998694 0 +28 1 0.5624999999988478 0 +29 1 0.6249999999990125 0 +30 1 0.687499999999177 0 +31 1 0.7499999999993416 0 +32 1 0.8124999999995062 0 +33 1 0.8749999999996708 0 +34 1 0.9374999999998354 0 +35 0.9374999999997397 1 0 +36 0.8749999999995011 1 0 +37 0.812499999999913 1 0 +38 0.7500000000003465 1 0 +39 0.68750000000078 1 0 +40 0.6250000000012137 1 0 +41 0.5625000000016472 1 0 +42 0.5000000000020591 1 0 +43 0.4375000000018207 1 0 +44 0.3750000000015605 1 0 +45 0.3125000000013005 1 0 +46 0.2500000000010404 1 0 +47 0.1875000000007803 1 0 +48 0.1250000000005203 1 0 +49 0.06250000000026013 1 0 +50 0 0.9374999999997397 0 +51 0 0.8749999999995011 0 +52 0 0.812499999999913 0 +53 0 0.7500000000003465 0 +54 0 0.68750000000078 0 +55 0 0.6250000000012137 0 +56 0 0.5625000000016472 0 +57 0 0.5000000000020591 0 +58 0 0.4375000000018207 0 +59 0 0.3750000000015605 0 +60 0 0.3125000000013005 0 +61 0 0.2500000000010404 0 +62 0 0.1875000000007803 0 +63 0 0.1250000000005203 0 +64 0 0.06250000000026013 0 +65 0.5127464108834361 0.4938075240045685 0 +66 0.7045654122206328 0.699257165189327 0 +67 0.3037025965421863 0.7148949194329823 0 +68 0.6907304616956041 0.2940327857559419 0 +69 0.2832143142193008 0.306358129943202 0 +70 0.4803961340697796 0.7752496889081802 0 +71 0.227985843215602 0.4843543392544795 0 +72 0.7790270330029132 0.5246737570585214 0 +73 0.5306301572388433 0.2247606467399142 0 +74 0.8231181582407401 0.8426610813175748 0 +75 0.1571378656067303 0.8234650195038205 0 +76 0.8218478222253042 0.1614357859603684 0 +77 0.1765809124360103 0.1571928775562044 0 +78 0.5705705364923944 0.6448270434334002 0 +79 0.3728897589274037 0.5698606376104332 0 +80 0.6646286345939451 0.4371528180370755 0 +81 0.4471050356198428 0.3652195764326732 0 +82 0.623893071763474 0.8302579195067334 0 +83 0.1699656668749552 0.6257444940228789 0 +84 0.8263571618504464 0.3760664956554074 0 +85 0.3769784690037707 0.1723503517809161 0 +86 0.8598335130131686 0.632960078278261 0 +87 0.347910732847252 0.8438506244328432 0 +88 0.6340588124729698 0.1363214110033205 0 +89 0.1561020739483758 0.3479668743159836 0 +90 0.4590973320210932 0.6631038211793432 0 +91 0.6683039822126751 0.544950220557412 0 +92 0.3438485959485511 0.4543679395714665 0 +93 0.5512832820882425 0.3365365122809588 0 +94 0.5270255419710042 0.8785453448856068 0 +95 0.1219036692109099 0.527697986959681 0 +96 0.8970432543151818 0.4671167696050739 0 +97 0.4729514580882741 0.1221559045251466 0 +98 0.730478086055354 0.8947192331334027 0 +99 0.1052450466697853 0.7307502701005275 0 +100 0.8990614748226586 0.2545683672637987 0 +101 0.2694511528233391 0.1054320714883231 0 +102 0.9003124547612094 0.7396643893751723 0 +103 0.7617218287539417 0.1110491337848177 0 +104 0.2594003907109461 0.8996845555783817 0 +105 0.1002946259180145 0.2593781041068103 0 +106 0.6096457042422353 0.7510652875725885 0 +107 0.2499491040156597 0.6155214470445275 0 +108 0.7433785791216606 0.3971856887064556 0 +109 0.396911850675904 0.2693420209058575 0 +110 0.9166392740445249 0.9168744254910748 0 +111 0.08312664916095736 0.9166493204494387 0 +112 0.9133048867747404 0.08612097614745651 0 +113 0.08335119767359792 0.08312429824178677 0 +114 0.7374136224290857 0.5977364673047995 0 +115 0.4088590731887419 0.7617329405518992 0 +116 0.6170523663439254 0.2569026413703456 0 +117 0.2397508212826245 0.4087288552167619 0 +118 0.8967595249194095 0.5673399779391339 0 +119 0.5804768695400293 0.08895894449743372 0 +120 0.7837280903248189 0.2664195242863915 0 +121 0.5005416726803884 0.5580297760524184 0 +122 0.5581949756471251 0.5380581165685291 0 +123 0.3992022375255779 0.4871517438179432 0 +124 0.5564501175972597 0.4339453115811294 0 +125 0.6408629502337785 0.6695178762538967 0 +126 0.3375118610245131 0.6510087471842952 0 +127 0.6510509346702228 0.3362863590180903 0 +128 0.3387860667100976 0.3483107416845936 0 +129 0.7975705510650148 0.9246640307328557 0 +130 0.075306876662125 0.797663000895132 0 +131 0.9213571871888036 0.1936909084781927 0 +132 0.2023737525059881 0.07533669190373711 0 +133 0.937010230156904 0.7968663840897089 0 +134 0.2031252163399925 0.9370240538694891 0 +135 0.8130017156025817 0.05344359587823479 0 +136 0.06297166525171748 0.2031146907094309 0 +137 0.6109709058292213 0.9028579507090543 0 +138 0.09722114200942064 0.6114307820792347 0 +139 0.9090041536575008 0.3899192860663143 0 +140 0.3891798912879891 0.09752071527974403 0 +141 0.9317612240758948 0.6620219631883564 0 +142 0.6470285876213527 0.06646873011055628 0 +143 0.337878227028316 0.9250723866768127 0 +144 0.07492660829788031 0.3378907974824507 0 +145 0.5093760847376683 0.6934496671187016 0 +146 0.2998518461469202 0.527081342910815 0 +147 0.7124394261080949 0.4811866884255591 0 +148 0.5043774408758802 0.3097584696317495 0 +149 0.4366382080458823 0.8398600104685259 0 +150 0.8469842300228229 0.5757463741552078 0 +151 0.1609974972179316 0.437321919416551 0 +152 0.5632175614754703 0.1422360717154926 0 +153 0.4430515414220014 0.4422591807638708 0 +154 0.5567095940160879 0.8094488434905865 0 +155 0.1917847819347475 0.5597361194499479 0 +156 0.8145162452493389 0.4452975382137428 0 +157 0.4464991017817165 0.1931780207708533 0 +158 0.6630643744175431 0.7985212972393017 0 +159 0.2018048785929702 0.6657213011189137 0 +160 0.768229322694386 0.3382509161117311 0 +161 0.3373283891121116 0.2065117628713391 0 +162 0.687134669536004 0.9200595062459077 0 +163 0.07992765578150537 0.6873682301848923 0 +164 0.9386131113947433 0.3054756447605375 0 +165 0.3128697591447412 0.08011071555442585 0 +166 0.4242952711438852 0.5422365685209474 0 +167 0.6098743941621707 0.4893327501017254 0 +168 0.5008654625680504 0.3755082748185399 0 +169 0.4514527215588985 0.7293062325825886 0 +170 0.7241653313218908 0.5374000444105103 0 +171 0.2847328479503536 0.4535223314514543 0 +172 0.5608743165345106 0.2758343689541629 0 +173 0.396900399713208 0.4044747734100212 0 +174 0.4921801724746196 0.9501496442618164 0 +175 0.04992529056198795 0.4922699521584035 0 +176 0.92886912486521 0.5149978978765074 0 +177 0.5227932470122388 0.06056637474932566 0 +178 0.5028047000032245 0.8257066567860027 0 +179 0.1757158381737094 0.5048584639203502 0 +180 0.8455326276037756 0.5077895824669784 0 +181 0.5016320935747277 0.1723529348835695 0 +182 0.3941624535436916 0.6286149053683713 0 +183 0.6995263700321923 0.8458326449789488 0 +184 0.1541805340847941 0.7006128814170913 0 +185 0.8328199677633382 0.2827270195310848 0 +186 0.3003412486411835 0.1554438238048457 0 +187 0.8472180146970052 0.7638305121217586 0 +188 0.2345227138643745 0.8478618096919406 0 +189 0.7688320179222503 0.1682879807130338 0 +190 0.1520915606187055 0.2345623765151157 0 +191 0.7492089224948845 0.6565501997433377 0 +192 0.332969349006074 0.7771567143507606 0 +193 0.6741137665034627 0.2443180995095947 0 +194 0.2221399879481325 0.3332898025514702 0 +195 0.287389207294878 0.9488052493154878 0 +196 0.9499806326269433 0.7124105694502565 0 +197 0.05118750753110478 0.2873845728585401 0 +198 0.7158008502222661 0.05604557258186824 0 +199 0.6685408468525696 0.7191881232493563 0 +200 0.2838368672120534 0.6761018282896368 0 +201 0.693988419718041 0.3396882592377447 0 +202 0.3228738181533835 0.292424519140039 0 +203 0.6088531676909438 0.6103380497316198 0 +204 0.617685135298091 0.3706319362333497 0 +205 0.6626110958702127 0.4888435058684792 0 +206 0.7463219027939789 0.9451298297392798 0 +207 0.05485382221708698 0.7464145981456884 0 +208 0.9434650881261988 0.2246817244826928 0 +209 0.2536474313416926 0.05490429783929517 0 +210 0.9489079948765757 0.5991894268789917 0 +211 0.6018145689036324 0.04568315103385347 0 +212 0.4227968002538395 0.9339413764750965 0 +213 0.06617491039566295 0.4229033271582914 0 +214 0.7436901088305681 0.816069308149565 0 +215 0.1836578504039832 0.7452545276933433 0 +216 0.8297601190255557 0.2159720575290693 0 +217 0.2552848505410785 0.1846869325242053 0 +218 0.9557809699705379 0.06955168373064162 0 +219 0.06709492469410952 0.04295291640022754 0 +220 0.9329035437948723 0.9570469957949091 0 +221 0.04295340214518539 0.9329051251653198 0 +222 0.5547827237947671 0.9383198358910413 0 +223 0.06168025167448529 0.554782961389348 0 +224 0.940699675313254 0.4392142509005589 0 +225 0.4452205274500657 0.06168361932653121 0 +226 0.8225691260519677 0.7067535048383057 0 +227 0.7130352304604584 0.176651086655281 0 +228 0.2849593174013426 0.8253496095696484 0 +229 0.1744844417520164 0.2850685256129305 0 +230 0.5265738100769601 0.6321038617572746 0 +231 0.3532209906134675 0.5099597716800528 0 +232 0.7045564191993209 0.4413110204634833 0 +233 0.4505526191183983 0.3173800594539134 0 +234 0.5372387271987156 0.7579261486135734 0 +235 0.2436619912669381 0.5437338700977028 0 +236 0.7637815293498418 0.4654454468911643 0 +237 0.4721429580548485 0.2468121248154649 0 +238 0.2487327119083815 0.9633149259779741 0 +239 0.03668097405125011 0.2487270973399774 0 +240 0.9635393866078816 0.7512349770414155 0 +241 0.7577318113367966 0.05487505009561153 0 +242 0.8729259286663212 0.9395107698310698 0 +243 0.06048927612446356 0.8729259836332346 0 +244 0.9331275876358376 0.1455203193484229 0 +245 0.1270740049864161 0.06048913542502454 0 +246 0.9467793340440024 0.864857459336051 0 +247 0.8661076443481279 0.049901173206807 0 +248 0.135139803415965 0.9468044520352807 0 +249 0.05319512614916141 0.1351355654831893 0 +250 0.4192946046708544 0.6826153596993463 0 +251 0.6792704992943626 0.6029755651603347 0 +252 0.3044772155360683 0.4035605855292869 0 +253 0.5884389196704657 0.3207675795829694 0 +254 0.5795027471593428 0.8568711686617494 0 +255 0.1435880020246355 0.5808888642373644 0 +256 0.862841564010236 0.4202639135019892 0 +257 0.421576210804755 0.1442232764353663 0 +258 0.7540448386859677 0.7230436297454538 0 +259 0.274180642991877 0.762121173708491 0 +260 0.7278256592648833 0.2335571504138423 0 +261 0.2373932425723264 0.2754644360776723 0 +262 0.5959578910240132 0.7991890165785682 0 +263 0.2015783734611118 0.5994366859703603 0 +264 0.7960561952966752 0.4063787949958102 0 +265 0.4072263044915849 0.2071018301531899 0 +266 0.8472037225641093 0.8964250664986525 0 +267 0.1035298051947488 0.8473026317049612 0 +268 0.8738282437037445 0.1522772245729397 0 +269 0.1527167325021855 0.1035439010131341 0 +270 0.911822899548166 0.614460788242989 0 +271 0.6203594915376311 0.09838428518154718 0 +272 0.3855018463258925 0.888476635349477 0 +273 0.1116711676146723 0.3856497481085811 0 +274 0.7929770522514349 0.5867889325713265 0 +275 0.3793314572583175 0.8041095020791065 0 +276 0.5922836353761558 0.2048608411432586 0 +277 0.196041652871915 0.3795938660554506 0 +278 0.5234253045137031 0.5302379011961688 0 +279 0.6936387954515112 0.659005091666018 0 +280 0.3586935527921205 0.7179551330814 0 +281 0.637063770464424 0.3036957809055685 0 +282 0.277941608885176 0.3595749772091196 0 +283 0.7928781312931479 0.7875852448566443 0 +284 0.2110621168850117 0.7949583839740424 0 +285 0.7782335030231603 0.22395130983083 0 +286 0.2051188282286114 0.2116080301920248 0 +287 0.5458944871916361 0.5841273916890112 0 +288 0.7081537362160089 0.9527572644107192 0 +289 0.04723271840764285 0.7082492276984054 0 +290 0.9626159293624132 0.2575487357896897 0 +291 0.2918357498191685 0.04729765186275232 0 +292 0.5041401873143824 0.4365700351496793 0 +293 0.8055384321923434 0.6469935079129273 0 +294 0.3210668940354554 0.8146638388495575 0 +295 0.6533405968290078 0.1889964619991089 0 +296 0.1850989492545918 0.3212881558144584 0 +297 0.4703971343040166 0.5118086428911527 0 +298 0.5836092363126451 0.6861510953329047 0 +299 0.3165675927654779 0.5908238740632354 0 +300 0.6807975042980515 0.3866653515564813 0 +301 0.3931658492783986 0.3520174492552759 0 +302 0.4711692786503149 0.9010255857814062 0 +303 0.0993231056740761 0.4715646322132956 0 +304 0.8920894901999535 0.5310087582783882 0 +305 0.5159116261895935 0.1084676119861722 0 +306 0.5596554980799474 0.4882704600290193 0 +307 0.8745073084277101 0.8196912508095715 0 +308 0.1798978652496362 0.8747799734861263 0 +309 0.8159489961324866 0.1067704244575521 0 +310 0.1252242891453295 0.1799382489568731 0 +311 0.4423549463470163 0.7899760032000025 0 +312 0.2129204966769059 0.4437978136681089 0 +313 0.9459711939918118 0.5628626694718425 0 +314 0.5641606532475308 0.03388107521387606 0 +315 0.450127921367758 0.9627420357514174 0 +316 0.03732835806021573 0.450202973527117 0 +317 0.6556933232503135 0.8747287797205334 0 +318 0.1253490184464084 0.6565802683168455 0 +319 0.8754037095749975 0.3400850992182474 0 +320 0.3445257102109618 0.1263547625555967 0 +321 0.4613882256883972 0.6065754241231212 0 +322 0.6450434931298472 0.9452722363215375 0 +323 0.05473784630182593 0.6452226561618638 0 +324 0.9580705267626578 0.3598278410496245 0 +325 0.3549932151425002 0.0548861270332118 0 +326 0.6113465378506378 0.5443041423807691 0 +327 0.3800466947712425 0.4497017875799751 0 +328 0.3073758923841072 0.8740658328342745 0 +329 0.1258841893115377 0.3074174892175006 0 +330 0.8784672400618755 0.6856356012911495 0 +331 0.6955706819705567 0.1071686806332097 0 +332 0.6121198857409612 0.4337645340622212 0 +333 0.5546918899604835 0.3777563935563621 0 +334 0.6122551585139124 0.9634850566630628 0 +335 0.03652252628797505 0.6123343043151649 0 +336 0.9674082134753976 0.4152696683913247 0 +337 0.387766107863973 0.03657939852781975 0 +338 0.7738878336095971 0.8691887457196957 0 +339 0.1306338998912042 0.7744587603660237 0 +340 0.8816584892483251 0.2040896880887428 0 +341 0.2257426247574253 0.1309428306545589 0 +342 0.7056295637962432 0.7660639899766919 0 +343 0.2341551826399803 0.710149157686909 0 +344 0.7478131873813917 0.2950745389384272 0 +345 0.2910923094180647 0.2383257682921709 0 +346 0.8921602133925975 0.9676736615845269 0 +347 0.03232650661459414 0.8921613508607124 0 +348 0.09554721077920442 0.9508747225037114 0 +349 0.04912539276209482 0.09554504380260895 0 +350 0.9508636808808513 0.9044532488814606 0 +351 0.9034022448015128 0.04892993631896679 0 +352 0.9656986396600111 0.1126265058641317 0 +353 0.1078386950373714 0.03232615592436446 0 +354 0.3421962772130109 0.402711429981389 0 +355 0.8963037935310851 0.8729130537122246 0 +356 0.1270157405180629 0.8963896928429211 0 +357 0.8673329306366292 0.1000012098993455 0 +358 0.1036162650384201 0.1270224941639811 0 +$EndNodes +$Elements +393 +1 15 2 0 1 1 +2 15 2 0 2 2 +3 15 2 0 3 3 +4 15 2 0 4 4 +5 1 2 0 5 1 5 +6 1 2 0 5 5 6 +7 1 2 0 5 6 7 +8 1 2 0 5 7 8 +9 1 2 0 5 8 9 +10 1 2 0 5 9 10 +11 1 2 0 5 10 11 +12 1 2 0 5 11 12 +13 1 2 0 5 12 13 +14 1 2 0 5 13 14 +15 1 2 0 5 14 15 +16 1 2 0 5 15 16 +17 1 2 0 5 16 17 +18 1 2 0 5 17 18 +19 1 2 0 5 18 19 +20 1 2 0 5 19 2 +21 1 2 0 6 2 20 +22 1 2 0 6 20 21 +23 1 2 0 6 21 22 +24 1 2 0 6 22 23 +25 1 2 0 6 23 24 +26 1 2 0 6 24 25 +27 1 2 0 6 25 26 +28 1 2 0 6 26 27 +29 1 2 0 6 27 28 +30 1 2 0 6 28 29 +31 1 2 0 6 29 30 +32 1 2 0 6 30 31 +33 1 2 0 6 31 32 +34 1 2 0 6 32 33 +35 1 2 0 6 33 34 +36 1 2 0 6 34 3 +37 1 2 0 7 3 35 +38 1 2 0 7 35 36 +39 1 2 0 7 36 37 +40 1 2 0 7 37 38 +41 1 2 0 7 38 39 +42 1 2 0 7 39 40 +43 1 2 0 7 40 41 +44 1 2 0 7 41 42 +45 1 2 0 7 42 43 +46 1 2 0 7 43 44 +47 1 2 0 7 44 45 +48 1 2 0 7 45 46 +49 1 2 0 7 46 47 +50 1 2 0 7 47 48 +51 1 2 0 7 48 49 +52 1 2 0 7 49 4 +53 1 2 0 8 4 50 +54 1 2 0 8 50 51 +55 1 2 0 8 51 52 +56 1 2 0 8 52 53 +57 1 2 0 8 53 54 +58 1 2 0 8 54 55 +59 1 2 0 8 55 56 +60 1 2 0 8 56 57 +61 1 2 0 8 57 58 +62 1 2 0 8 58 59 +63 1 2 0 8 59 60 +64 1 2 0 8 60 61 +65 1 2 0 8 61 62 +66 1 2 0 8 62 63 +67 1 2 0 8 63 64 +68 1 2 0 8 64 1 +69 3 2 0 10 123 166 79 231 +70 3 2 0 10 173 153 123 327 +71 3 2 0 10 86 150 118 270 +72 3 2 0 10 119 271 88 152 +73 3 2 0 10 244 22 208 131 +74 3 2 0 10 234 106 262 154 +75 3 2 0 10 235 107 263 155 +76 3 2 0 10 236 108 264 156 +77 3 2 0 10 237 109 265 157 +78 3 2 0 10 338 129 206 98 +79 3 2 0 10 339 130 207 99 +80 3 2 0 10 340 131 208 100 +81 3 2 0 10 341 132 209 101 +82 3 2 0 10 241 135 309 103 +83 3 2 0 10 272 149 302 212 +84 3 2 0 10 273 151 303 213 +85 3 2 0 10 171 92 231 146 +86 3 2 0 10 173 354 128 301 +87 3 2 0 10 29 30 196 141 +88 3 2 0 10 44 45 195 143 +89 3 2 0 10 59 60 197 144 +90 3 2 0 10 20 218 19 2 +91 3 2 0 10 5 219 64 1 +92 3 2 0 10 34 3 35 220 +93 3 2 0 10 50 221 49 4 +94 3 2 0 10 178 70 234 154 +95 3 2 0 10 179 71 235 155 +96 3 2 0 10 180 72 236 156 +97 3 2 0 10 181 73 237 157 +98 3 2 0 10 153 173 301 81 +99 3 2 0 10 330 86 270 141 +100 3 2 0 10 331 88 271 142 +101 3 2 0 10 328 87 272 143 +102 3 2 0 10 329 89 273 144 +103 3 2 0 10 106 199 342 158 +104 3 2 0 10 107 200 343 159 +105 3 2 0 10 109 202 345 161 +106 3 2 0 10 15 142 211 14 +107 3 2 0 10 317 137 254 82 +108 3 2 0 10 318 138 255 83 +109 3 2 0 10 319 139 256 84 +110 3 2 0 10 320 140 257 85 +111 3 2 0 10 170 91 205 147 +112 3 2 0 10 118 150 180 304 +113 3 2 0 10 205 80 232 147 +114 3 2 0 10 168 81 233 148 +115 3 2 0 10 169 145 234 70 +116 3 2 0 10 171 146 235 71 +117 3 2 0 10 170 147 236 72 +118 3 2 0 10 172 148 237 73 +119 3 2 0 10 78 298 145 230 +120 3 2 0 10 177 225 11 12 +121 3 2 0 10 175 223 56 57 +122 3 2 0 10 174 222 41 42 +123 3 2 0 10 297 153 292 65 +124 3 2 0 10 178 149 311 70 +125 3 2 0 10 179 151 312 71 +126 3 2 0 10 180 150 274 72 +127 3 2 0 10 181 152 276 73 +128 3 2 0 10 125 279 66 199 +129 3 2 0 10 126 280 67 200 +130 3 2 0 10 127 281 68 201 +131 3 2 0 10 128 282 69 202 +132 3 2 0 10 81 168 292 153 +133 3 2 0 10 272 87 275 149 +134 3 2 0 10 273 89 277 151 +135 3 2 0 10 134 47 48 248 +136 3 2 0 10 133 32 33 246 +137 3 2 0 10 136 62 63 249 +138 3 2 0 10 135 17 18 247 +139 3 2 0 10 137 222 94 254 +140 3 2 0 10 138 223 95 255 +141 3 2 0 10 96 256 139 224 +142 3 2 0 10 140 225 97 257 +143 3 2 0 10 160 108 300 201 +144 3 2 0 10 121 297 65 278 +145 3 2 0 10 178 154 254 94 +146 3 2 0 10 179 155 255 95 +147 3 2 0 10 180 156 256 96 +148 3 2 0 10 181 157 257 97 +149 3 2 0 10 254 154 262 82 +150 3 2 0 10 255 155 263 83 +151 3 2 0 10 256 156 264 84 +152 3 2 0 10 257 157 265 85 +153 3 2 0 10 160 201 68 344 +154 3 2 0 10 114 274 293 191 +155 3 2 0 10 116 276 295 193 +156 3 2 0 10 129 37 38 206 +157 3 2 0 10 130 52 53 207 +158 3 2 0 10 132 7 8 209 +159 3 2 0 10 145 169 250 90 +160 3 2 0 10 91 170 114 251 +161 3 2 0 10 148 172 253 93 +162 3 2 0 10 82 262 106 158 +163 3 2 0 10 83 263 107 159 +164 3 2 0 10 84 264 108 160 +165 3 2 0 10 85 265 109 161 +166 3 2 0 10 183 158 342 214 +167 3 2 0 10 184 159 343 215 +168 3 2 0 10 185 160 344 120 +169 3 2 0 10 186 161 345 217 +170 3 2 0 10 74 307 355 266 +171 3 2 0 10 75 308 356 267 +172 3 2 0 10 76 309 357 268 +173 3 2 0 10 77 310 358 269 +174 3 2 0 10 258 226 187 283 +175 3 2 0 10 259 228 188 284 +176 3 2 0 10 260 227 189 285 +177 3 2 0 10 261 229 190 286 +178 3 2 0 10 79 182 126 299 +179 3 2 0 10 174 42 43 315 +180 3 2 0 10 175 57 58 316 +181 3 2 0 10 176 27 28 313 +182 3 2 0 10 177 12 13 314 +183 3 2 0 10 145 90 321 230 +184 3 2 0 10 297 121 321 166 +185 3 2 0 10 162 98 206 288 +186 3 2 0 10 163 99 207 289 +187 3 2 0 10 164 100 208 290 +188 3 2 0 10 165 101 209 291 +189 3 2 0 10 183 214 338 98 +190 3 2 0 10 184 215 339 99 +191 3 2 0 10 185 216 340 100 +192 3 2 0 10 186 217 341 101 +193 3 2 0 10 317 162 322 137 +194 3 2 0 10 318 163 323 138 +195 3 2 0 10 319 164 324 139 +196 3 2 0 10 320 165 325 140 +197 3 2 0 10 133 102 196 240 +198 3 2 0 10 134 104 195 238 +199 3 2 0 10 136 105 197 239 +200 3 2 0 10 27 176 96 224 +201 3 2 0 10 322 162 288 39 +202 3 2 0 10 323 163 289 54 +203 3 2 0 10 325 165 291 9 +204 3 2 0 10 37 129 266 242 +205 3 2 0 10 52 130 267 243 +206 3 2 0 10 7 132 269 245 +207 3 2 0 10 306 124 332 167 +208 3 2 0 10 205 167 332 80 +209 3 2 0 10 292 168 333 124 +210 3 2 0 10 148 93 333 168 +211 3 2 0 10 133 307 187 102 +212 3 2 0 10 134 308 188 104 +213 3 2 0 10 136 310 190 105 +214 3 2 0 10 162 317 183 98 +215 3 2 0 10 163 318 184 99 +216 3 2 0 10 164 319 185 100 +217 3 2 0 10 165 320 186 101 +218 3 2 0 10 134 238 46 47 +219 3 2 0 10 133 240 31 32 +220 3 2 0 10 136 239 61 62 +221 3 2 0 10 135 241 16 17 +222 3 2 0 10 326 122 306 167 +223 3 2 0 10 153 297 166 123 +224 3 2 0 10 78 203 125 298 +225 3 2 0 10 79 166 321 182 +226 3 2 0 10 124 306 65 292 +227 3 2 0 10 251 203 326 91 +228 3 2 0 10 164 24 25 324 +229 3 2 0 10 70 311 115 169 +230 3 2 0 10 72 274 114 170 +231 3 2 0 10 71 312 117 171 +232 3 2 0 10 73 276 116 172 +233 3 2 0 10 253 204 333 93 +234 3 2 0 10 15 198 331 142 +235 3 2 0 10 220 346 242 110 +236 3 2 0 10 221 347 243 111 +237 3 2 0 10 218 352 244 112 +238 3 2 0 10 219 353 245 113 +239 3 2 0 10 44 212 315 43 +240 3 2 0 10 59 213 316 58 +241 3 2 0 10 29 210 313 28 +242 3 2 0 10 14 211 314 13 +243 3 2 0 10 45 46 238 195 +244 3 2 0 10 30 31 240 196 +245 3 2 0 10 60 61 239 197 +246 3 2 0 10 15 16 241 198 +247 3 2 0 10 145 298 106 234 +248 3 2 0 10 299 107 235 146 +249 3 2 0 10 147 232 108 236 +250 3 2 0 10 148 233 109 237 +251 3 2 0 10 275 192 280 115 +252 3 2 0 10 277 194 282 117 +253 3 2 0 10 203 251 279 125 +254 3 2 0 10 182 250 280 126 +255 3 2 0 10 204 253 281 127 +256 3 2 0 10 321 121 287 230 +257 3 2 0 10 203 78 230 287 +258 3 2 0 10 164 290 23 24 +259 3 2 0 10 29 141 270 210 +260 3 2 0 10 119 211 142 271 +261 3 2 0 10 44 143 272 212 +262 3 2 0 10 59 144 273 213 +263 3 2 0 10 222 174 302 94 +264 3 2 0 10 223 175 303 95 +265 3 2 0 10 225 177 305 97 +266 3 2 0 10 258 66 279 191 +267 3 2 0 10 259 67 280 192 +268 3 2 0 10 116 193 68 281 +269 3 2 0 10 261 69 282 194 +270 3 2 0 10 315 212 302 174 +271 3 2 0 10 316 213 303 175 +272 3 2 0 10 313 118 304 176 +273 3 2 0 10 152 305 177 119 +274 3 2 0 10 150 86 293 274 +275 3 2 0 10 152 88 295 276 +276 3 2 0 10 192 275 87 294 +277 3 2 0 10 194 277 89 296 +278 3 2 0 10 141 196 102 330 +279 3 2 0 10 241 103 331 198 +280 3 2 0 10 143 195 104 328 +281 3 2 0 10 144 197 105 329 +282 3 2 0 10 185 120 285 216 +283 3 2 0 10 189 76 216 285 +284 3 2 0 10 287 122 326 203 +285 3 2 0 10 106 298 125 199 +286 3 2 0 10 107 299 126 200 +287 3 2 0 10 204 127 201 300 +288 3 2 0 10 109 301 128 202 +289 3 2 0 10 149 178 94 302 +290 3 2 0 10 151 179 95 303 +291 3 2 0 10 176 304 180 96 +292 3 2 0 10 152 181 97 305 +293 3 2 0 10 258 191 293 226 +294 3 2 0 10 259 192 294 228 +295 3 2 0 10 260 193 295 227 +296 3 2 0 10 261 194 296 229 +297 3 2 0 10 169 115 280 250 +298 3 2 0 10 191 279 251 114 +299 3 2 0 10 171 117 282 252 +300 3 2 0 10 172 116 281 253 +301 3 2 0 10 283 187 307 74 +302 3 2 0 10 284 188 308 75 +303 3 2 0 10 103 309 76 189 +304 3 2 0 10 286 190 310 77 +305 3 2 0 10 158 183 317 82 +306 3 2 0 10 159 184 318 83 +307 3 2 0 10 160 185 319 84 +308 3 2 0 10 161 186 320 85 +309 3 2 0 10 250 182 321 90 +310 3 2 0 10 39 288 206 38 +311 3 2 0 10 54 289 207 53 +312 3 2 0 10 22 23 290 208 +313 3 2 0 10 9 291 209 8 +314 3 2 0 10 92 327 123 231 +315 3 2 0 10 173 327 92 354 +316 3 2 0 10 270 118 313 210 +317 3 2 0 10 177 314 211 119 +318 3 2 0 10 330 226 293 86 +319 3 2 0 10 328 228 294 87 +320 3 2 0 10 331 227 295 88 +321 3 2 0 10 329 229 296 89 +322 3 2 0 10 333 204 332 124 +323 3 2 0 10 300 80 332 204 +324 3 2 0 10 283 214 342 258 +325 3 2 0 10 284 215 343 259 +326 3 2 0 10 285 120 344 260 +327 3 2 0 10 286 217 345 261 +328 3 2 0 10 231 79 299 146 +329 3 2 0 10 108 232 80 300 +330 3 2 0 10 109 233 81 301 +331 3 2 0 10 167 205 91 326 +332 3 2 0 10 122 287 121 278 +333 3 2 0 10 283 74 338 214 +334 3 2 0 10 284 75 339 215 +335 3 2 0 10 286 77 341 217 +336 3 2 0 10 55 56 223 335 +337 3 2 0 10 40 41 222 334 +338 3 2 0 10 27 224 336 26 +339 3 2 0 10 10 11 225 337 +340 3 2 0 10 350 110 355 246 +341 3 2 0 10 307 133 246 355 +342 3 2 0 10 351 112 357 247 +343 3 2 0 10 348 111 356 248 +344 3 2 0 10 309 135 247 357 +345 3 2 0 10 308 134 248 356 +346 3 2 0 10 349 113 358 249 +347 3 2 0 10 310 136 249 358 +348 3 2 0 10 188 228 328 104 +349 3 2 0 10 187 226 330 102 +350 3 2 0 10 190 229 329 105 +351 3 2 0 10 189 227 331 103 +352 3 2 0 10 21 352 218 20 +353 3 2 0 10 6 353 219 5 +354 3 2 0 10 112 351 19 218 +355 3 2 0 10 36 346 220 35 +356 3 2 0 10 51 347 221 50 +357 3 2 0 10 110 350 34 220 +358 3 2 0 10 113 349 64 219 +359 3 2 0 10 111 348 49 221 +360 3 2 0 10 122 278 65 306 +361 3 2 0 10 171 252 354 92 +362 3 2 0 10 282 128 354 252 +363 3 2 0 10 115 311 149 275 +364 3 2 0 10 117 312 151 277 +365 3 2 0 10 37 242 346 36 +366 3 2 0 10 52 243 347 51 +367 3 2 0 10 22 244 352 21 +368 3 2 0 10 7 245 353 6 +369 3 2 0 10 34 350 246 33 +370 3 2 0 10 19 351 247 18 +371 3 2 0 10 49 348 248 48 +372 3 2 0 10 64 349 249 63 +373 3 2 0 10 216 76 268 340 +374 3 2 0 10 199 66 258 342 +375 3 2 0 10 200 67 259 343 +376 3 2 0 10 193 260 344 68 +377 3 2 0 10 202 69 261 345 +378 3 2 0 10 74 266 129 338 +379 3 2 0 10 75 267 130 339 +380 3 2 0 10 244 131 340 268 +381 3 2 0 10 77 269 132 341 +382 3 2 0 10 242 266 355 110 +383 3 2 0 10 243 267 356 111 +384 3 2 0 10 244 268 357 112 +385 3 2 0 10 245 269 358 113 +386 3 2 0 10 222 137 322 334 +387 3 2 0 10 223 138 323 335 +388 3 2 0 10 224 139 324 336 +389 3 2 0 10 225 140 325 337 +390 3 2 0 10 39 40 334 322 +391 3 2 0 10 54 55 335 323 +392 3 2 0 10 26 336 324 25 +393 3 2 0 10 9 10 337 325 +$EndElements diff --git a/test/sumfact/poisson/square_quad_consistent.msh b/test/sumfact/poisson/square_quad_consistent.msh new file mode 100644 index 0000000000000000000000000000000000000000..49986d0a012865d78c9dcbe86a7a1b8f42829771 --- /dev/null +++ b/test/sumfact/poisson/square_quad_consistent.msh @@ -0,0 +1,692 @@ +$MeshFormat +2.0 0 8 +$EndMeshFormat +$Nodes +358 +1 0 0 0 +2 0.0625 0 0 +3 0.125 0 0 +4 0.1875 0 0 +5 0.25 0 0 +6 0.3125 0 0 +7 0.375 0 0 +8 0.4375 0 0 +9 0.5 0 0 +10 0.5625 0 0 +11 0.625 0 0 +12 0.6875 0 0 +13 0.75 0 0 +14 0.8125 0 0 +15 0.875 0 0 +16 0.9375 0 0 +17 1 0 0 +18 1 0.0625 0 +19 1 0.125 0 +20 1 0.1875 0 +21 1 0.25 0 +22 1 0.3125 0 +23 1 0.375 0 +24 1 0.4375 0 +25 1 0.5 0 +26 1 0.5625 0 +27 1 0.625 0 +28 1 0.6875 0 +29 1 0.75 0 +30 1 0.8125 0 +31 1 0.875 0 +32 1 0.9375 0 +33 1 1 0 +34 0.9375 1 0 +35 0.875 1 0 +36 0.8125 1 0 +37 0.75 1 0 +38 0.6875 1 0 +39 0.625 1 0 +40 0.5625 1 0 +41 0.5 1 0 +42 0.4375 1 0 +43 0.375 1 0 +44 0.3125 1 0 +45 0.25 1 0 +46 0.1875 1 0 +47 0.125 1 0 +48 0.0625 1 0 +49 0 1 0 +50 0 0.9375 0 +51 0 0.875 0 +52 0 0.8125 0 +53 0 0.75 0 +54 0 0.6875 0 +55 0 0.625 0 +56 0 0.5625 0 +57 0 0.5 0 +58 0 0.4375 0 +59 0 0.375 0 +60 0 0.3125 0 +61 0 0.25 0 +62 0 0.1875 0 +63 0 0.125 0 +64 0 0.0625 0 +65 0.399202 0.487152 0 +66 0.424295 0.542237 0 +67 0.37289 0.569861 0 +68 0.353221 0.50996 0 +69 0.3969 0.404475 0 +70 0.443052 0.442259 0 +71 0.380047 0.449702 0 +72 0.859834 0.63296 0 +73 0.846984 0.575746 0 +74 0.89676 0.56734 0 +75 0.911823 0.614461 0 +76 0.580477 0.0889589 0 +77 0.620359 0.0983843 0 +78 0.634059 0.136321 0 +79 0.563218 0.142236 0 +80 0.933128 0.14552 0 +81 0.943465 0.224682 0 +82 0.921357 0.193691 0 +83 0.537239 0.757926 0 +84 0.609646 0.751065 0 +85 0.595958 0.799189 0 +86 0.55671 0.809449 0 +87 0.243662 0.543734 0 +88 0.249949 0.615521 0 +89 0.201578 0.599437 0 +90 0.191785 0.559736 0 +91 0.763782 0.465445 0 +92 0.743379 0.397186 0 +93 0.796056 0.406379 0 +94 0.814516 0.445298 0 +95 0.472143 0.246812 0 +96 0.396912 0.269342 0 +97 0.407226 0.207102 0 +98 0.446499 0.193178 0 +99 0.773888 0.869189 0 +100 0.797571 0.924664 0 +101 0.746322 0.94513 0 +102 0.730478 0.894719 0 +103 0.130634 0.774459 0 +104 0.0753069 0.797663 0 +105 0.0548538 0.746415 0 +106 0.105245 0.73075 0 +107 0.881658 0.20409 0 +108 0.899061 0.254568 0 +109 0.225743 0.130943 0 +110 0.202374 0.0753367 0 +111 0.253647 0.0549043 0 +112 0.269451 0.105432 0 +113 0.757732 0.0548751 0 +114 0.813002 0.0534436 0 +115 0.815949 0.10677 0 +116 0.761722 0.111049 0 +117 0.385502 0.888477 0 +118 0.436638 0.83986 0 +119 0.471169 0.901026 0 +120 0.422797 0.933941 0 +121 0.111671 0.38565 0 +122 0.160997 0.437322 0 +123 0.0993231 0.471565 0 +124 0.0661749 0.422903 0 +125 0.284733 0.453522 0 +126 0.343849 0.454368 0 +127 0.299852 0.527081 0 +128 0.342196 0.402711 0 +129 0.338786 0.348311 0 +130 0.393166 0.352017 0 +131 0.949981 0.712411 0 +132 0.931761 0.662022 0 +133 0.287389 0.948805 0 +134 0.337878 0.925072 0 +135 0.0511875 0.287385 0 +136 0.0749266 0.337891 0 +137 0.955781 0.0695517 0 +138 0.0670949 0.0429529 0 +139 0.932904 0.957047 0 +140 0.0429534 0.932905 0 +141 0.502805 0.825707 0 +142 0.480396 0.77525 0 +143 0.175716 0.504858 0 +144 0.227986 0.484354 0 +145 0.845533 0.50779 0 +146 0.779027 0.524674 0 +147 0.501632 0.172353 0 +148 0.53063 0.224761 0 +149 0.447105 0.36522 0 +150 0.878467 0.685636 0 +151 0.695571 0.107169 0 +152 0.647029 0.0664687 0 +153 0.307376 0.874066 0 +154 0.347911 0.843851 0 +155 0.125884 0.307417 0 +156 0.156102 0.347967 0 +157 0.668541 0.719188 0 +158 0.70563 0.766064 0 +159 0.663064 0.798521 0 +160 0.283837 0.676102 0 +161 0.234155 0.710149 0 +162 0.201805 0.665721 0 +163 0.322874 0.292425 0 +164 0.291092 0.238326 0 +165 0.337328 0.206512 0 +166 0.601815 0.0456832 0 +167 0.655693 0.874729 0 +168 0.610971 0.902858 0 +169 0.579503 0.856871 0 +170 0.623893 0.830258 0 +171 0.125349 0.65658 0 +172 0.0972211 0.611431 0 +173 0.143588 0.580889 0 +174 0.169966 0.625744 0 +175 0.875404 0.340085 0 +176 0.909004 0.389919 0 +177 0.862842 0.420264 0 +178 0.826357 0.376066 0 +179 0.344526 0.126355 0 +180 0.38918 0.0975207 0 +181 0.421576 0.144223 0 +182 0.376978 0.17235 0 +183 0.724165 0.5374 0 +184 0.668304 0.54495 0 +185 0.662611 0.488844 0 +186 0.712439 0.481187 0 +187 0.892089 0.531009 0 +188 0.664629 0.437153 0 +189 0.704556 0.441311 0 +190 0.500865 0.375508 0 +191 0.450553 0.31738 0 +192 0.504377 0.309758 0 +193 0.451453 0.729306 0 +194 0.509376 0.69345 0 +195 0.560874 0.275834 0 +196 0.570571 0.644827 0 +197 0.583609 0.686151 0 +198 0.526574 0.632104 0 +199 0.522793 0.0605664 0 +200 0.445221 0.0616836 0 +201 0.0499253 0.49227 0 +202 0.0616803 0.554783 0 +203 0.49218 0.95015 0 +204 0.554783 0.93832 0 +205 0.470397 0.511809 0 +206 0.50414 0.43657 0 +207 0.512746 0.493808 0 +208 0.442355 0.789976 0 +209 0.21292 0.443798 0 +210 0.792977 0.586789 0 +211 0.592284 0.204861 0 +212 0.640863 0.669518 0 +213 0.693639 0.659005 0 +214 0.704565 0.699257 0 +215 0.337512 0.651009 0 +216 0.358694 0.717955 0 +217 0.303703 0.714895 0 +218 0.651051 0.336286 0 +219 0.637064 0.303696 0 +220 0.69073 0.294033 0 +221 0.693988 0.339688 0 +222 0.277942 0.359575 0 +223 0.283214 0.306358 0 +224 0.379331 0.80411 0 +225 0.196042 0.379594 0 +226 0.203125 0.937024 0 +227 0.13514 0.946804 0 +228 0.93701 0.796866 0 +229 0.946779 0.864857 0 +230 0.0629717 0.203115 0 +231 0.0531951 0.135136 0 +232 0.866108 0.0499012 0 +233 0.527026 0.878545 0 +234 0.121904 0.527698 0 +235 0.897043 0.467117 0 +236 0.9407 0.439214 0 +237 0.472951 0.122156 0 +238 0.768229 0.338251 0 +239 0.680798 0.386665 0 +240 0.500542 0.55803 0 +241 0.523425 0.530238 0 +242 0.747813 0.295075 0 +243 0.737414 0.597736 0 +244 0.805538 0.646994 0 +245 0.749209 0.65655 0 +246 0.617052 0.256903 0 +247 0.653341 0.188996 0 +248 0.674114 0.244318 0 +249 0.419295 0.682615 0 +250 0.459097 0.663104 0 +251 0.67927 0.602976 0 +252 0.588439 0.320768 0 +253 0.551283 0.336537 0 +254 0.699526 0.845833 0 +255 0.74369 0.816069 0 +256 0.154181 0.700613 0 +257 0.183658 0.745255 0 +258 0.83282 0.282727 0 +259 0.783728 0.26642 0 +260 0.300341 0.155444 0 +261 0.255285 0.184687 0 +262 0.823118 0.842661 0 +263 0.874507 0.819691 0 +264 0.896304 0.872913 0 +265 0.847204 0.896425 0 +266 0.157138 0.823465 0 +267 0.179898 0.87478 0 +268 0.127016 0.89639 0 +269 0.10353 0.847303 0 +270 0.821848 0.161436 0 +271 0.867333 0.100001 0 +272 0.873828 0.152277 0 +273 0.176581 0.157193 0 +274 0.125224 0.179938 0 +275 0.103616 0.127022 0 +276 0.152717 0.103544 0 +277 0.754045 0.723044 0 +278 0.822569 0.706754 0 +279 0.847218 0.763831 0 +280 0.792878 0.787585 0 +281 0.274181 0.762121 0 +282 0.284959 0.82535 0 +283 0.234523 0.847862 0 +284 0.211062 0.794958 0 +285 0.727826 0.233557 0 +286 0.713035 0.176651 0 +287 0.768832 0.168288 0 +288 0.778234 0.223951 0 +289 0.237393 0.275464 0 +290 0.174484 0.285069 0 +291 0.152092 0.234562 0 +292 0.205119 0.211608 0 +293 0.394162 0.628615 0 +294 0.316568 0.590824 0 +295 0.450128 0.962742 0 +296 0.0373284 0.450203 0 +297 0.928869 0.514998 0 +298 0.945971 0.562863 0 +299 0.564161 0.0338811 0 +300 0.461388 0.606575 0 +301 0.687135 0.92006 0 +302 0.708154 0.952757 0 +303 0.0799277 0.687368 0 +304 0.0472327 0.708249 0 +305 0.938613 0.305476 0 +306 0.962616 0.257549 0 +307 0.31287 0.0801107 0 +308 0.291836 0.0472977 0 +309 0.82976 0.215972 0 +310 0.645043 0.945272 0 +311 0.0547378 0.645223 0 +312 0.958071 0.359828 0 +313 0.354993 0.0548861 0 +314 0.900312 0.739664 0 +315 0.963539 0.751235 0 +316 0.2594 0.899685 0 +317 0.248733 0.963315 0 +318 0.100295 0.259378 0 +319 0.036681 0.248727 0 +320 0.872926 0.939511 0 +321 0.0604893 0.872926 0 +322 0.127074 0.0604891 0 +323 0.559655 0.48827 0 +324 0.55645 0.433945 0 +325 0.61212 0.433765 0 +326 0.609874 0.489333 0 +327 0.554692 0.377756 0 +328 0.611347 0.544304 0 +329 0.558195 0.538058 0 +330 0.608853 0.610338 0 +331 0.408859 0.761733 0 +332 0.239751 0.408729 0 +333 0.617685 0.370632 0 +334 0.715801 0.0560456 0 +335 0.89216 0.967674 0 +336 0.916639 0.916874 0 +337 0.0323265 0.892161 0 +338 0.0831266 0.916649 0 +339 0.965699 0.112627 0 +340 0.913305 0.086121 0 +341 0.107839 0.0323262 0 +342 0.0833512 0.0831243 0 +343 0.948908 0.599189 0 +344 0.332969 0.777157 0 +345 0.22214 0.33329 0 +346 0.545894 0.584127 0 +347 0.515912 0.108468 0 +348 0.321067 0.814664 0 +349 0.185099 0.321288 0 +350 0.304477 0.403561 0 +351 0.0365225 0.612334 0 +352 0.612255 0.963485 0 +353 0.967408 0.41527 0 +354 0.387766 0.0365794 0 +355 0.950864 0.904453 0 +356 0.903402 0.0489299 0 +357 0.0955472 0.950875 0 +358 0.0491254 0.095545 0 +$EndNodes +$Elements +325 +1 3 0 66 67 68 65 +2 3 0 70 65 71 69 +3 3 0 73 74 75 72 +4 3 0 77 78 79 76 +5 3 0 81 82 80 20 +6 3 0 84 85 86 83 +7 3 0 88 89 90 87 +8 3 0 91 92 93 94 +9 3 0 96 97 98 95 +10 3 0 100 101 102 99 +11 3 0 104 105 106 103 +12 3 0 81 108 107 82 +13 3 0 111 112 109 110 +14 3 0 113 114 115 116 +15 3 0 118 119 120 117 +16 3 0 122 123 124 121 +17 3 0 68 127 125 126 +18 3 0 69 128 129 130 +19 3 0 28 131 132 27 +20 3 0 133 134 43 44 +21 3 0 135 136 59 60 +22 3 0 17 18 137 16 +23 3 0 2 138 64 1 +24 3 0 139 32 33 34 +25 3 0 49 50 140 48 +26 3 0 83 86 141 142 +27 3 0 87 90 143 144 +28 3 0 146 91 94 145 +29 3 0 148 95 98 147 +30 3 0 70 69 130 149 +31 3 0 150 72 75 132 +32 3 0 77 152 151 78 +33 3 0 134 153 154 117 +34 3 0 136 155 156 121 +35 3 0 157 158 159 84 +36 3 0 160 161 162 88 +37 3 0 96 163 164 165 +38 3 0 12 152 166 11 +39 3 0 167 168 169 170 +40 3 0 171 172 173 174 +41 3 0 176 177 178 175 +42 3 0 179 180 181 182 +43 3 0 184 185 186 183 +44 3 0 73 145 187 74 +45 3 0 185 188 189 186 +46 3 0 191 192 190 149 +47 3 0 83 142 193 194 +48 3 0 87 144 125 127 +49 3 0 183 186 91 146 +50 3 0 195 192 95 148 +51 3 0 196 197 194 198 +52 3 0 9 199 200 8 +53 3 0 56 57 201 202 +54 3 0 40 41 203 204 +55 3 0 205 70 206 207 +56 3 0 142 141 118 208 +57 3 0 144 143 122 209 +58 3 0 210 146 145 73 +59 3 0 211 148 147 79 +60 3 0 214 157 212 213 +61 3 0 160 215 216 217 +62 3 0 220 221 218 219 +63 3 0 163 129 222 223 +64 3 0 70 149 190 206 +65 3 0 118 117 154 224 +66 3 0 122 121 156 225 +67 3 0 227 226 46 47 +68 3 0 31 229 228 30 +69 3 0 231 230 62 63 +70 3 0 14 15 232 114 +71 3 0 168 204 233 169 +72 3 0 172 202 234 173 +73 3 0 236 235 177 176 +74 3 0 200 237 181 180 +75 3 0 221 238 92 239 +76 3 0 240 205 207 241 +77 3 0 86 169 233 141 +78 3 0 90 173 234 143 +79 3 0 235 145 94 177 +80 3 0 147 98 181 237 +81 3 0 85 170 169 86 +82 3 0 89 174 173 90 +83 3 0 177 94 93 178 +84 3 0 97 182 181 98 +85 3 0 220 242 238 221 +86 3 0 243 210 244 245 +87 3 0 248 246 211 247 +88 3 0 100 36 37 101 +89 3 0 104 52 53 105 +90 3 0 111 110 4 5 +91 3 0 194 193 249 250 +92 3 0 251 184 183 243 +93 3 0 252 253 192 195 +94 3 0 84 159 170 85 +95 3 0 88 162 174 89 +96 3 0 238 178 93 92 +97 3 0 96 165 182 97 +98 3 0 255 254 159 158 +99 3 0 257 256 162 161 +100 3 0 259 258 238 242 +101 3 0 260 165 164 261 +102 3 0 265 262 263 264 +103 3 0 269 266 267 268 +104 3 0 270 115 271 272 +105 3 0 276 273 274 275 +106 3 0 280 277 278 279 +107 3 0 284 281 282 283 +108 3 0 288 285 286 287 +109 3 0 292 289 290 291 +110 3 0 293 215 294 67 +111 3 0 41 42 295 203 +112 3 0 57 58 296 201 +113 3 0 26 298 297 25 +114 3 0 9 10 299 199 +115 3 0 198 194 250 300 +116 3 0 240 300 66 205 +117 3 0 101 302 301 102 +118 3 0 105 304 303 106 +119 3 0 81 306 305 108 +120 3 0 111 308 307 112 +121 3 0 99 102 254 255 +122 3 0 103 106 256 257 +123 3 0 258 309 107 108 +124 3 0 112 260 261 109 +125 3 0 301 310 168 167 +126 3 0 303 311 172 171 +127 3 0 176 175 305 312 +128 3 0 307 313 180 179 +129 3 0 228 314 131 315 +130 3 0 317 226 316 133 +131 3 0 319 230 318 135 +132 3 0 236 25 297 235 +133 3 0 302 38 310 301 +134 3 0 304 54 311 303 +135 3 0 308 6 313 307 +136 3 0 265 320 36 100 +137 3 0 104 269 321 52 +138 3 0 110 276 322 4 +139 3 0 326 323 324 325 +140 3 0 185 326 325 188 +141 3 0 324 206 190 327 +142 3 0 253 327 190 192 +143 3 0 263 279 314 228 +144 3 0 226 267 283 316 +145 3 0 274 291 318 230 +146 3 0 102 301 167 254 +147 3 0 106 303 171 256 +148 3 0 258 108 305 175 +149 3 0 112 307 179 260 +150 3 0 317 45 46 226 +151 3 0 30 228 315 29 +152 3 0 319 61 62 230 +153 3 0 13 14 114 113 +154 3 0 328 329 323 326 +155 3 0 205 66 65 70 +156 3 0 330 212 197 196 +157 3 0 300 293 67 66 +158 3 0 323 207 206 324 +159 3 0 251 330 328 184 +160 3 0 312 305 22 23 +161 3 0 142 208 331 193 +162 3 0 243 183 146 210 +163 3 0 144 209 332 125 +164 3 0 246 195 148 211 +165 3 0 252 333 327 253 +166 3 0 12 334 151 152 +167 3 0 335 320 336 139 +168 3 0 321 338 140 337 +169 3 0 339 80 340 137 +170 3 0 322 342 138 341 +171 3 0 42 43 120 295 +172 3 0 58 59 124 296 +173 3 0 26 27 343 298 +174 3 0 11 166 299 10 +175 3 0 317 133 44 45 +176 3 0 29 315 131 28 +177 3 0 319 135 60 61 +178 3 0 13 113 334 12 +179 3 0 84 83 194 197 +180 3 0 88 87 127 294 +181 3 0 186 189 92 91 +182 3 0 191 96 95 192 +183 3 0 331 224 344 216 +184 3 0 222 332 225 345 +185 3 0 251 213 212 330 +186 3 0 293 249 216 215 +187 3 0 219 218 333 252 +188 3 0 346 198 300 240 +189 3 0 330 196 198 346 +190 3 0 306 21 22 305 +191 3 0 27 132 75 343 +192 3 0 77 76 166 152 +193 3 0 134 117 120 43 +194 3 0 136 121 124 59 +195 3 0 204 203 119 233 +196 3 0 202 201 123 234 +197 3 0 199 347 237 200 +198 3 0 214 213 245 277 +199 3 0 217 216 344 281 +200 3 0 220 219 246 248 +201 3 0 223 222 345 289 +202 3 0 203 295 120 119 +203 3 0 201 296 124 123 +204 3 0 298 74 187 297 +205 3 0 76 79 347 199 +206 3 0 210 73 72 244 +207 3 0 247 211 79 78 +208 3 0 224 154 348 344 +209 3 0 345 225 156 349 +210 3 0 314 150 132 131 +211 3 0 113 116 151 334 +212 3 0 133 316 153 134 +213 3 0 135 318 155 136 +214 3 0 259 288 309 258 +215 3 0 288 287 270 309 +216 3 0 330 346 329 328 +217 3 0 157 84 197 212 +218 3 0 160 88 294 215 +219 3 0 221 239 333 218 +220 3 0 96 130 129 163 +221 3 0 141 233 119 118 +222 3 0 143 234 123 122 +223 3 0 235 297 187 145 +224 3 0 79 147 237 347 +225 3 0 277 245 244 278 +226 3 0 281 344 348 282 +227 3 0 248 247 286 285 +228 3 0 289 345 349 290 +229 3 0 193 331 216 249 +230 3 0 251 243 245 213 +231 3 0 350 125 332 222 +232 3 0 219 252 195 246 +233 3 0 262 280 279 263 +234 3 0 266 284 283 267 +235 3 0 287 116 115 270 +236 3 0 273 292 291 274 +237 3 0 254 167 170 159 +238 3 0 256 171 174 162 +239 3 0 258 175 178 238 +240 3 0 260 179 182 165 +241 3 0 300 250 249 293 +242 3 0 101 37 38 302 +243 3 0 105 53 54 304 +244 3 0 81 20 21 306 +245 3 0 111 5 6 308 +246 3 0 65 68 126 71 +247 3 0 69 71 126 128 +248 3 0 298 343 75 74 +249 3 0 76 199 299 166 +250 3 0 278 244 72 150 +251 3 0 153 282 348 154 +252 3 0 247 78 151 286 +253 3 0 290 349 156 155 +254 3 0 325 324 327 333 +255 3 0 188 325 333 239 +256 3 0 280 255 158 277 +257 3 0 257 161 281 284 +258 3 0 259 242 285 288 +259 3 0 261 164 289 292 +260 3 0 67 294 127 68 +261 3 0 188 239 92 189 +262 3 0 191 149 130 96 +263 3 0 184 328 326 185 +264 3 0 346 240 241 329 +265 3 0 262 99 255 280 +266 3 0 103 257 284 266 +267 3 0 109 261 292 273 +268 3 0 55 56 202 351 +269 3 0 39 40 204 352 +270 3 0 236 353 24 25 +271 3 0 7 8 200 354 +272 3 0 264 229 355 336 +273 3 0 264 263 228 229 +274 3 0 356 340 271 232 +275 3 0 227 357 338 268 +276 3 0 114 232 271 115 +277 3 0 227 268 267 226 +278 3 0 275 231 358 342 +279 3 0 275 274 230 231 +280 3 0 316 283 282 153 +281 3 0 279 278 150 314 +282 3 0 291 290 155 318 +283 3 0 287 286 151 116 +284 3 0 19 339 137 18 +285 3 0 3 341 138 2 +286 3 0 16 137 340 356 +287 3 0 335 139 34 35 +288 3 0 51 337 140 50 +289 3 0 139 336 355 32 +290 3 0 342 358 64 138 +291 3 0 357 48 140 338 +292 3 0 329 241 207 323 +293 3 0 128 126 125 350 +294 3 0 128 350 222 129 +295 3 0 208 118 224 331 +296 3 0 209 122 225 332 +297 3 0 335 35 36 320 +298 3 0 52 321 337 51 +299 3 0 19 20 80 339 +300 3 0 4 322 341 3 +301 3 0 31 32 355 229 +302 3 0 16 356 232 15 +303 3 0 227 47 48 357 +304 3 0 231 63 64 358 +305 3 0 309 270 272 107 +306 3 0 214 277 158 157 +307 3 0 160 217 281 161 +308 3 0 220 248 285 242 +309 3 0 163 223 289 164 +310 3 0 265 100 99 262 +311 3 0 104 103 266 269 +312 3 0 82 107 272 80 +313 3 0 110 109 273 276 +314 3 0 265 264 336 320 +315 3 0 269 268 338 321 +316 3 0 80 272 271 340 +317 3 0 276 275 342 322 +318 3 0 310 352 204 168 +319 3 0 311 351 202 172 +320 3 0 236 176 312 353 +321 3 0 354 200 180 313 +322 3 0 38 39 352 310 +323 3 0 54 55 351 311 +324 3 0 353 312 23 24 +325 3 0 7 354 313 6 +$EndElements