From b4b96ed051e37691726f5a6c8a3955e43ff5d805 Mon Sep 17 00:00:00 2001 From: Kilian Weishaupt Date: Tue, 18 Jun 2019 18:31:05 +0200 Subject: [PATCH 1/6] [staggered][scvf] Remove unused variable --- dumux/discretization/staggered/freeflow/subcontrolvolumeface.hh | 1 - 1 file changed, 1 deletion(-) diff --git a/dumux/discretization/staggered/freeflow/subcontrolvolumeface.hh b/dumux/discretization/staggered/freeflow/subcontrolvolumeface.hh index 2e203e0e81..552af9f2e3 100644 --- a/dumux/discretization/staggered/freeflow/subcontrolvolumeface.hh +++ b/dumux/discretization/staggered/freeflow/subcontrolvolumeface.hh @@ -368,7 +368,6 @@ private: std::vector scvIndices_; bool boundary_; - int dofIdx_; Scalar selfToOppositeDistance_; AxisData axisData_; std::array pairData_; -- GitLab From d30b1b1bdf1499a76ffab819abbbcce179ac4fcd Mon Sep 17 00:00:00 2001 From: Kilian Date: Tue, 2 Jul 2019 13:37:54 +0200 Subject: [PATCH 2/6] [staggered] Add helper class for velocity gradients --- .../staggered/velocitygradients.hh | 289 ++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 dumux/freeflow/navierstokes/staggered/velocitygradients.hh diff --git a/dumux/freeflow/navierstokes/staggered/velocitygradients.hh b/dumux/freeflow/navierstokes/staggered/velocitygradients.hh new file mode 100644 index 0000000000..83bdb73552 --- /dev/null +++ b/dumux/freeflow/navierstokes/staggered/velocitygradients.hh @@ -0,0 +1,289 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + *****************************************************************************/ +/*! + * \file + * \ingroup NavierStokesModel + * \copydoc Dumux::StaggeredVelocityGradients + */ +#ifndef DUMUX_NAVIERSTOKES_STAGGERED_VELOCITYGRADIENTS_HH +#define DUMUX_NAVIERSTOKES_STAGGERED_VELOCITYGRADIENTS_HH + +#include +#include +#include + +namespace Dumux { + +/*! + * \ingroup NavierStokesModel + * \brief Helper class for calculating the velocity gradients for the Navier-Stokes model using the staggered grid discretization. + */ +template +class StaggeredVelocityGradients +{ + using FVElementGeometry = typename FVGridGeometry::LocalView; + using GridView = typename FVGridGeometry::GridView; + using Element = typename GridView::template Codim<0>::Entity; + using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace; + using GlobalPosition = typename Element::Geometry::GlobalCoordinate; + +public: + + /*! + * \brief Returns the in-axis velocity gradient. + * + * \verbatim + * ---------======= == and # staggered half-control-volume + * | # | current scvf + * | # | # staggered face over which fluxes are calculated + * vel.Opp <~~| O~~> x~~~~> vel.Self + * | # | x dof position + * scvf | # | + * --------======== -- element + * + * O position at which gradient is evaluated + * \endverbatim + */ + template + static Scalar velocityGradII(const SubControlVolumeFace& scvf, + const FaceVariables& faceVars) + { + // The velocities of the dof at interest and the one of the opposite scvf. + const Scalar velocitySelf = faceVars.velocitySelf(); + const Scalar velocityOpposite = faceVars.velocityOpposite(); + + return ((velocityOpposite - velocitySelf) / scvf.selfToOppositeDistance()) * scvf.directionSign(); + } + + /*! + * \brief Returns the velocity gradient perpendicular to the orientation of our current scvf. + * + * \verbatim + * ---------------- + * | |vel. + * | |Parallel + * | |~~~~> -------> + * | | ------> * gradient + * | | -----> + * scvf ---------######O::::::::: ----> || and # staggered half-control-volume (own element) + * | || | curr. :: ---> + * | || | scvf :: --> :: staggered half-control-volume (neighbor element) + * | || x~~~~> :: -> + * | || | vel. :: # lateral staggered faces over which fluxes are calculated + * scvf | || | Self :: + * ---------#######::::::::: x dof position + * scvf + * -- elements + * + * O position at which gradient is evaluated + * \endverbatim + */ + template + static Scalar velocityGradIJ(const Problem& problem, + const Element& element, + const FVElementGeometry& fvGeometry, + const SubControlVolumeFace& scvf, + const FaceVariables& faceVars, + const Dune::Std::optional& currentScvfBoundaryTypes, + const Dune::Std::optional& lateralFaceBoundaryTypes, + const std::size_t localSubFaceIdx) + { + const auto eIdx = scvf.insideScvIdx(); + const auto& lateralScvf = fvGeometry.scvf(eIdx, scvf.pairData(localSubFaceIdx).localLateralFaceIdx); + + // For the velocityGrad_ij derivative, get the velocities at the current (own) scvf + // and at the parallel one at the neighboring scvf. + const Scalar innerParallelVelocity = faceVars.velocitySelf(); + + const auto outerParallelVelocity = [&]() + { + if (!lateralScvf.boundary()) + return faceVars.velocityParallel(localSubFaceIdx, 0); + else if (lateralFaceBoundaryTypes->isDirichlet(Indices::velocity(scvf.directionIndex()))) + { + // Sample the value of the Dirichlet BC at the center of the staggered lateral face. + const auto& lateralBoundaryFacePos = lateralStaggeredFaceCenter_(scvf, localSubFaceIdx); + return problem.dirichlet(element, lateralScvf.makeBoundaryFace(lateralBoundaryFacePos))[Indices::velocity(scvf.directionIndex())]; + } + else if (lateralFaceBoundaryTypes->isBJS(Indices::velocity(scvf.directionIndex()))) + { + const auto tangentialVelocityGradient = [&]() + { + // If the current scvf is on a boundary and if a Dirichlet BC for the pressure or a BJ condition for + // the slip velocity is set there, assume a tangential velocity gradient of zero along the lateral face + // (towards the current scvf). + static const bool unsymmetrizedGradientForBJ = getParamFromGroup(problem.paramGroup(), + "FreeFlow.EnableUnsymmetrizedVelocityGradientForBeaversJoseph", false); + + if (unsymmetrizedGradientForBJ) + return 0.0; + + if (scvf.boundary()) + { + if (currentScvfBoundaryTypes->isDirichlet(Indices::pressureIdx) || + currentScvfBoundaryTypes->isBJS(Indices::velocity(lateralScvf.directionIndex()))) + return 0.0; + } + + return velocityGradJI(problem, element, fvGeometry, scvf, faceVars, currentScvfBoundaryTypes, lateralFaceBoundaryTypes, localSubFaceIdx); + }(); + + + return problem.beaversJosephVelocity(element, fvGeometry.scv(scvf.insideScvIdx()), + lateralScvf, innerParallelVelocity, + tangentialVelocityGradient); + } + else + DUNE_THROW(Dune::InvalidStateException, "Invalid lateral boundary type at " << lateralScvf.center()); + }(); + + // The velocity gradient already accounts for the orientation + // of the staggered face's outer normal vector. This also correctly accounts for the reduced + // distance used in the gradient if the lateral scvf lies on a boundary. + return (outerParallelVelocity - innerParallelVelocity) + / scvf.parallelDofsDistance(localSubFaceIdx, 0) * lateralScvf.directionSign(); + } + + /*! + * \brief Returns the velocity gradient in line with our current scvf. + * + * \verbatim + * ^ gradient + * | ^ + * | | ^ + * | | | ^ + * | | | | ^ + * | | | | | ^ + * | | | | | | + * + * ---------------- + * | | + * | in.norm. | + * | vel. | + * | ^ | ^ out.norm.vel. + * | | | | + * scvf ---------######O::::::::: || and # staggered half-control-volume (own element) + * | || | curr. :: + * | || | scvf :: :: staggered half-control-volume (neighbor element) + * | || x~~~~> :: + * | || | vel. :: # lateral staggered faces over which fluxes are calculated + * scvf | || | Self :: + * ---------#######::::::::: x dof position + * scvf + * -- elements + * + * O position at which gradient is evaluated + * \endverbatim + */ + template + static Scalar velocityGradJI(const Problem& problem, + const Element& element, + const FVElementGeometry& fvGeometry, + const SubControlVolumeFace& scvf, + const FaceVariables& faceVars, + const Dune::Std::optional& currentScvfBoundaryTypes, + const Dune::Std::optional& lateralFaceBoundaryTypes, + const std::size_t localSubFaceIdx) + { + const auto eIdx = scvf.insideScvIdx(); + const auto& lateralScvf = fvGeometry.scvf(eIdx, scvf.pairData(localSubFaceIdx).localLateralFaceIdx); + + // Assume a zero velocity gradient for pressure boundary conditions. + if (currentScvfBoundaryTypes && currentScvfBoundaryTypes->isDirichlet(Indices::pressureIdx)) + return 0.0; + + // For the velocityGrad_ji gradient, get the velocities perpendicular to the velocity at the current scvf. + // The inner one is located at staggered face within the own element, + // the outer one at the respective staggered face of the element on the other side of the + // current scvf. + const Scalar innerLateralVelocity = faceVars.velocityLateralInside(localSubFaceIdx); + const Scalar outerLateralVelocity = [&]() + { + if (!scvf.boundary()) + return faceVars.velocityLateralOutside(localSubFaceIdx); + else if (currentScvfBoundaryTypes->isDirichlet(Indices::velocity(lateralScvf.directionIndex()))) + { + // Sample the value of the Dirichlet BC at the center of the lateral face intersecting with the boundary. + const auto& lateralBoundaryFacePos = lateralStaggeredFaceCenter_(scvf, localSubFaceIdx); + return problem.dirichlet(element, scvf.makeBoundaryFace(lateralBoundaryFacePos))[Indices::velocity(lateralScvf.directionIndex())]; + } + else if (currentScvfBoundaryTypes->isBJS(Indices::velocity(lateralScvf.directionIndex()))) + { + const auto tangentialVelocityGradient = [&]() + { + // If the current scvf is on a boundary and if a Dirichlet BC for the pressure or a BJ condition for + // the slip velocity is set there, assume a tangential velocity gradient of zero along the lateral face + // (towards the current scvf). + static const bool unsymmetrizedGradientForBJ = getParamFromGroup(problem.paramGroup(), + "FreeFlow.EnableUnsymmetrizedVelocityGradientForBeaversJoseph", false); + + if (unsymmetrizedGradientForBJ) + return 0.0; + + if (lateralScvf.boundary()) + { + if (lateralFaceBoundaryTypes->isDirichlet(Indices::pressureIdx) || + lateralFaceBoundaryTypes->isBJS(Indices::velocity(scvf.directionIndex()))) + return 0.0; + } + + return velocityGradIJ(problem, element, fvGeometry, scvf, faceVars, currentScvfBoundaryTypes, lateralFaceBoundaryTypes, localSubFaceIdx); + }(); + + return problem.beaversJosephVelocity(element, fvGeometry.scv(scvf.insideScvIdx()), + scvf, innerLateralVelocity, + tangentialVelocityGradient); + } + else + DUNE_THROW(Dune::InvalidStateException, "Invalid lateral boundary types at " << lateralScvf.center()); + }(); + + // Calculate the velocity gradient in positive coordinate direction. + const Scalar lateralDeltaV = scvf.normalInPosCoordDir() + ? (outerLateralVelocity - innerLateralVelocity) + : (innerLateralVelocity - outerLateralVelocity); + + return lateralDeltaV / scvf.pairData(localSubFaceIdx).lateralDistance; + } + +private: + + /*! + * \brief Get the location of the lateral staggered face's center. + * Only needed for boundary conditions if the current scvf or the lateral one is on a bounary. + * + * \verbatim + * --------#######o || frontal face of staggered half-control-volume + * | || | current scvf # lateral staggered face of interest (may lie on a boundary) + * | || | x dof position + * | || x~~~~> vel.Self -- element boundaries, current scvf may lie on a boundary + * | || | o position at which the boundary conditions will be evaluated + * | || | (lateralStaggeredFaceCenter) + * ---------------- + * \endverbatim + */ + static const GlobalPosition& lateralStaggeredFaceCenter_(const SubControlVolumeFace& scvf, const int localSubFaceIdx) + { + return scvf.pairData(localSubFaceIdx).lateralStaggeredFaceCenter; + }; +}; + +} // end namespace Dumux + +#endif // DUMUX_NAVIERSTOKES_STAGGERED_VELOCITYGRADIENTS_HH -- GitLab From ce3d27e70a5a76590a8495cb21b5f8ca65cb9771 Mon Sep 17 00:00:00 2001 From: Kilian Weishaupt Date: Tue, 18 Jun 2019 08:28:15 +0200 Subject: [PATCH 3/6] [Navier-Stokes][problem] Revise Beavers-Joseph * introduce a new function for the slip velocity that also takes into account a later gradient * introduce beta = alpha/sqrt(K) * introduce a velocity in the porous medium (0 by default) --- dumux/freeflow/navierstokes/problem.hh | 43 +++++++++++++++++++++----- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/dumux/freeflow/navierstokes/problem.hh b/dumux/freeflow/navierstokes/problem.hh index b3a9c1ce77..2f3d6e51df 100644 --- a/dumux/freeflow/navierstokes/problem.hh +++ b/dumux/freeflow/navierstokes/problem.hh @@ -24,6 +24,8 @@ #ifndef DUMUX_NAVIERSTOKES_PROBLEM_HH #define DUMUX_NAVIERSTOKES_PROBLEM_HH +#include + #include #include #include @@ -69,6 +71,7 @@ class NavierStokesProblem : public NavierStokesParentProblem using GridVariables = GetPropType; using GridFaceVariables = typename GridVariables::GridFaceVariables; using ElementFaceVariables = typename GridFaceVariables::LocalView; + using FaceVariables = typename GridFaceVariables::FaceVariables; using GridVolumeVariables = typename GridVariables::GridVolumeVariables; using ElementVolumeVariables = typename GridVolumeVariables::LocalView; using Scalar = GetPropType; @@ -204,20 +207,46 @@ public: DUNE_THROW(Dune::NotImplemented, "When using the Beavers-Joseph-Saffman boundary condition, the alpha value must be returned in the acutal problem"); } + /*! + * \brief Returns the alpha value required as input parameter for the Beavers-Joseph-Saffman boundary condition + * + * This member function must be overloaded in the problem implementation, if the BJS boundary condition is used. + */ + Scalar betaBJ(const Element& element, const SubControlVolumeFace& scvf) const + { + using std::sqrt; + return asImp_().alphaBJ(scvf) / sqrt(asImp_().permeability(element, scvf)); + } + + /*! + * \brief Returns the velocity in the porous medium (which is 0 by default according to Saffmann). + */ + Scalar velocityPorousMedium(const Element& element, const SubControlVolumeFace& scvf) const + { return 0.0; } + //! helper function to evaluate the slip velocity on the boundary when the Beavers-Joseph-Saffman condition is used + DUNE_DEPRECATED_MSG("Use beaversJosephVelocity(element, scv, faceOnPorousBoundary, velocitySelf, tangentialVelocityGradient) instead") const Scalar bjsVelocity(const Element& element, const SubControlVolume& scv, const SubControlVolumeFace& faceOnPorousBoundary, const Scalar velocitySelf) const { - // du/dy = alpha/sqrt(K) * u_boundary - // du/dy = (u_center - u_boundary) / deltaY - // u_boundary = u_center / (alpha/sqrt(K)*deltaY + 1) - using std::sqrt; - const Scalar K = asImp_().permeability(element, faceOnPorousBoundary); - const Scalar alpha = asImp_().alphaBJ(faceOnPorousBoundary); + // assume tangential velocity gradient of zero and + return beaversJosephVelocity(element, scv, faceOnPorousBoundary, velocitySelf, 0.0); + } + + //! helper function to evaluate the slip velocity on the boundary when the Beavers-Joseph condition is used + const Scalar beaversJosephVelocity(const Element& element, + const SubControlVolume& scv, + const SubControlVolumeFace& faceOnPorousBoundary, + const Scalar velocitySelf, + const Scalar tangentialVelocityGradient) const + { + // du/dy + dv/dx = alpha/sqrt(K) * (u_boundary-uPM) + // beta = alpha/sqrt(K) + const Scalar betaBJ = asImp_().betaBJ(element, faceOnPorousBoundary); const Scalar distance = (faceOnPorousBoundary.center() - scv.center()).two_norm(); - return velocitySelf / (alpha / sqrt(K) * distance + 1.0); + return (tangentialVelocityGradient*distance + asImp_().velocityPorousMedium(element,faceOnPorousBoundary)*betaBJ*distance + velocitySelf) / (betaBJ*distance + 1.0); } private: -- GitLab From 79a65866c866a231553893c767096df034047339 Mon Sep 17 00:00:00 2001 From: Kilian Weishaupt Date: Tue, 18 Jun 2019 18:32:12 +0200 Subject: [PATCH 4/6] [Navier-Stokes][fluxvars] Revise Beavers-Joseph * account for the tangential velocity gradient along the interface * refactor some functions, add more docu --- .../navierstokes/staggered/fluxvariables.hh | 180 +++++++----------- 1 file changed, 65 insertions(+), 115 deletions(-) diff --git a/dumux/freeflow/navierstokes/staggered/fluxvariables.hh b/dumux/freeflow/navierstokes/staggered/fluxvariables.hh index a76ae38587..ba330448da 100644 --- a/dumux/freeflow/navierstokes/staggered/fluxvariables.hh +++ b/dumux/freeflow/navierstokes/staggered/fluxvariables.hh @@ -37,6 +37,7 @@ #include "staggeredupwindfluxvariables.hh" +#include "velocitygradients.hh" namespace Dumux { @@ -80,6 +81,7 @@ class NavierStokesFluxVariablesImpl using CellCenterPrimaryVariables = GetPropType; using FacePrimaryVariables = GetPropType; using BoundaryTypes = GetPropType; + using VelocityGradients = StaggeredVelocityGradients; static constexpr bool normalizePressure = getPropValue(); @@ -221,9 +223,7 @@ public: const auto& insideVolVars = elemVolVars[scvf.insideScvIdx()]; // Diffusive flux. - // The velocity gradient already accounts for the orientation - // of the staggered face's outer normal vector. - const Scalar velocityGrad_ii = (velocityOpposite - velocitySelf) / scvf.selfToOppositeDistance(); + const Scalar velocityGrad_ii = VelocityGradients::velocityGradII(scvf, elemFaceVars[scvf]) * scvf.directionSign(); static const bool enableUnsymmetrizedVelocityGradient = getParamFromGroup(problem.paramGroup(), "FreeFlow.EnableUnsymmetrizedVelocityGradient", false); @@ -274,7 +274,7 @@ public: { FacePrimaryVariables lateralFlux(0.0); const auto& faceVars = elemFaceVars[scvf]; - const int numSubFaces = scvf.pairData().size(); + const std::size_t numSubFaces = scvf.pairData().size(); // If the current scvf is on a boundary, check if there is a Neumann BC for the stress in tangential direction. // Create a boundaryTypes object (will be empty if not at a boundary). @@ -289,20 +289,6 @@ public: // Get the face normal to the face the dof lives on. The staggered sub face conincides with half of this lateral face. const auto& lateralScvf = fvGeometry.scvf(eIdx, scvf.pairData(localSubFaceIdx).localLateralFaceIdx); - // If the current scvf is on a bounary and if there is a Neumann BC for the stress in tangential direction, - // assign this value for the lateral momentum flux. No further calculations are required. We assume that all lateral faces - // have the same type of BC (Neumann), but we sample the value at their actual positions. - if (currentScvfBoundaryTypes && currentScvfBoundaryTypes->isNeumann(Indices::velocity(lateralScvf.directionIndex()))) - { - // Get the location of the lateral staggered face's center. - const auto& lateralStaggeredFaceCenter = lateralStaggeredFaceCenter_(scvf, localSubFaceIdx); - lateralFlux += problem.neumann(element, fvGeometry, elemVolVars, elemFaceVars, - scvf.makeBoundaryFace(lateralStaggeredFaceCenter))[Indices::velocity(lateralScvf.directionIndex())] - * elemVolVars[scvf.insideScvIdx()].extrusionFactor() * lateralScvf.area() * 0.5 - * lateralScvf.directionSign(); - continue; - } - // Create a boundaryTypes object (will be empty if not at a boundary). Dune::Std::optional lateralFaceBoundaryTypes; @@ -322,7 +308,45 @@ public: // ---------------- V position at which the value of the boundary conditions will be evaluated // (center of the staggered lateral face) lateralFaceBoundaryTypes.emplace(problem.boundaryTypes(element, lateralScvf)); + } + // If the current scvf is on a bounary and if there is a Neumann or Beavers-Joseph-(Saffmann) BC for the stress in tangential direction, + // assign this value for the lateral momentum flux. No further calculations are required. We assume that all lateral faces + // have the same type of BC (Neumann or Beavers-Joseph-(Saffmann)), but we sample the value at their actual positions. + if (currentScvfBoundaryTypes) + { + // Handle Neumann BCs. + if (currentScvfBoundaryTypes->isNeumann(Indices::velocity(lateralScvf.directionIndex()))) + { + // Get the location of the lateral staggered face's center. + const auto& lateralStaggeredFaceCenter = lateralStaggeredFaceCenter_(scvf, localSubFaceIdx); + lateralFlux += problem.neumann(element, fvGeometry, elemVolVars, elemFaceVars, + scvf.makeBoundaryFace(lateralStaggeredFaceCenter))[Indices::velocity(lateralScvf.directionIndex())] + * extrusionFactor_(elemVolVars, lateralScvf) * lateralScvf.area() * 0.5 + * lateralScvf.directionSign(); + continue; + } + + // Treat the edge case when our current scvf has a BJ condition while the lateral face has a Neumann BC. + // It is not clear how to evaluate the BJ condition here. + // For symmetry reasons, our own scvf should then have the same Neumann flux as the lateral face. + // TODO: We should clarify if this is the correct approach. + if (currentScvfBoundaryTypes->isBJS(Indices::velocity(lateralScvf.directionIndex())) && lateralFaceBoundaryTypes && + lateralFaceBoundaryTypes->isNeumann(Indices::velocity(scvf.directionIndex()))) + { + const auto& lateralStaggeredFaceCenter = lateralStaggeredFaceCenter_(scvf, localSubFaceIdx); + lateralFlux += problem.neumann(element, fvGeometry, elemVolVars, elemFaceVars, + lateralScvf.makeBoundaryFace(lateralStaggeredFaceCenter))[Indices::velocity(scvf.directionIndex())] + * extrusionFactor_(elemVolVars, lateralScvf) * lateralScvf.area() * 0.5 + * lateralScvf.directionSign(); + continue; + } + } + + // Check if the lateral face (perpendicular to our current scvf) lies on a boundary. If yes, boundary conditions might need to be treated + // and further calculations can be skipped. + if (lateralScvf.boundary()) + { // Check if we have a symmetry boundary condition. If yes, the tangential part of the momentum flux can be neglected // and we may skip any further calculations for the given sub face. if (lateralFaceBoundaryTypes->isSymmetry()) @@ -343,28 +367,33 @@ public: // Handle wall-function fluxes (only required for RANS models) if (incorporateWallFunction_(lateralFlux, problem, element, fvGeometry, scvf, elemVolVars, elemFaceVars, localSubFaceIdx)) continue; + } - // Check the consistency of the boundary conditions, only one of the following must be set + // Check the consistency of the boundary conditions, exactly one of the following must be set + if (lateralFaceBoundaryTypes) + { std::bitset<3> admittableBcTypes; admittableBcTypes.set(0, lateralFaceBoundaryTypes->isDirichlet(Indices::pressureIdx)); - admittableBcTypes.set(1, lateralFaceBoundaryTypes->isBJS(Indices::velocity(scvf.directionIndex()))); - admittableBcTypes.set(2, lateralFaceBoundaryTypes->isDirichlet(Indices::velocity(scvf.directionIndex()))); + admittableBcTypes.set(1, lateralFaceBoundaryTypes->isDirichlet(Indices::velocity(scvf.directionIndex()))); + admittableBcTypes.set(2, lateralFaceBoundaryTypes->isBJS(Indices::velocity(scvf.directionIndex()))); if (admittableBcTypes.count() != 1) { - DUNE_THROW(Dune::InvalidStateException, "Something went wrong with the boundary conditions " - "for the momentum equations at global position " << lateralStaggeredFaceCenter_(scvf, localSubFaceIdx)); + DUNE_THROW(Dune::InvalidStateException, "Invalid boundary conditions for lateral scvf " + "for the momentum equations at global position " << lateralStaggeredFaceCenter_(scvf, localSubFaceIdx) + << ", current scvf global position " << scvf.center()); } } - // If there is no symmetry or Neumann boundary condition for the given sub face, proceed to calculate the tangential momentum flux. + // If none of the above boundary conditions apply for the given sub face, proceed to calculate the tangential momentum flux. if (problem.enableInertiaTerms()) lateralFlux += computeAdvectivePartOfLateralMomentumFlux_(problem, fvGeometry, element, scvf, elemVolVars, faceVars, gridFluxVarsCache, lateralFaceBoundaryTypes, localSubFaceIdx); lateralFlux += computeDiffusivePartOfLateralMomentumFlux_(problem, fvGeometry, element, - scvf, elemVolVars, faceVars, - lateralFaceBoundaryTypes, localSubFaceIdx); + scvf, elemVolVars, faceVars, + currentScvfBoundaryTypes, lateralFaceBoundaryTypes, + localSubFaceIdx); } return lateralFlux; } @@ -446,6 +475,7 @@ private: const ElementVolumeVariables& elemVolVars, const FaceVariables& faceVars, const GridFluxVariablesCache& gridFluxVarsCache, + const Dune::Std::optional& currentScvfBoundaryTypes, const Dune::Std::optional& lateralFaceBoundaryTypes, const int localSubFaceIdx) { @@ -489,6 +519,7 @@ private: const SubControlVolumeFace& scvf, const ElementVolumeVariables& elemVolVars, const FaceVariables& faceVars, + const Dune::Std::optional& currentScvfBoundaryTypes, const Dune::Std::optional& lateralFaceBoundaryTypes, const int localSubFaceIdx) { @@ -514,64 +545,11 @@ private: // Consider the shear stress caused by the gradient of the velocities normal to our face of interest. if (!enableUnsymmetrizedVelocityGradient) { - // Create a boundaryTypes object (will be empty if not at a boundary). - Dune::Std::optional bcTypes; - - // Get the boundary conditions if we are at a boundary. We sample the type of BC at the center of the current scvf. - if (scvf.boundary()) - bcTypes.emplace(problem.boundaryTypes(element, scvf)); - - // Check if we have to do the computation - const bool enable = [&]() - { - // Always consider this term in the interior domain. - if (!scvf.boundary()) - return true; - - // If we are at a boundary and a Dirichlet BC for pressure is set, a gradient of zero is implictly assumed for all velocities, - // thus no further calculations are required. - if (bcTypes && bcTypes->isDirichlet(Indices::pressureIdx)) - return false; - - // If we are at a boundary and neither a Dirichlet BC or a Beavers-Joseph slip condition for the tangential velocity is set, - // we cannot calculate a velocity gradient and thus skip this part. TODO: is this the right approach? - return (bcTypes && (bcTypes->isDirichlet(Indices::velocity(lateralFace.directionIndex())) || - bcTypes->isBJS(Indices::velocity(lateralFace.directionIndex())))); - }(); - - if (enable) + if (!scvf.boundary() || + currentScvfBoundaryTypes->isDirichlet(Indices::velocity(lateralFace.directionIndex())) || + currentScvfBoundaryTypes->isBJS(Indices::velocity(lateralFace.directionIndex()))) { - // For the velocityGrad_ji gradient, get the velocities perpendicular to the velocity at the current scvf. - // The inner one is located at staggered face within the own element, - // the outer one at the respective staggered face of the element on the other side of the - // current scvf. - const Scalar innerLateralVelocity = faceVars.velocityLateralInside(localSubFaceIdx); - const Scalar outerLateralVelocity = [&]() - { - if (!scvf.boundary()) - return faceVars.velocityLateralOutside(localSubFaceIdx); - else if (bcTypes->isDirichlet(Indices::velocity(lateralFace.directionIndex()))) - { - // Sample the value of the Dirichlet BC at the center of the lateral face intersecting with the boundary. - const auto& lateralBoundaryFacePos = lateralStaggeredFaceCenter_(scvf, localSubFaceIdx); - return problem.dirichlet(element, scvf.makeBoundaryFace(lateralBoundaryFacePos))[Indices::velocity(lateralFace.directionIndex())]; - } - else - { - // Compute the BJS slip velocity at the boundary. Note that the relevant velocity gradient is now - // perpendicular to the own scvf. - const auto& scv = fvGeometry.scv(scvf.insideScvIdx()); - return problem.bjsVelocity(element, scv, scvf, innerLateralVelocity); - } - }(); - - // Calculate the velocity gradient in positive coordinate direction. - const Scalar lateralDeltaV = scvf.normalInPosCoordDir() - ? (outerLateralVelocity - innerLateralVelocity) - : (innerLateralVelocity - outerLateralVelocity); - - const Scalar velocityGrad_ji = lateralDeltaV / scvf.pairData(localSubFaceIdx).lateralDistance; - + const Scalar velocityGrad_ji = VelocityGradients::velocityGradJI(problem, element, fvGeometry, scvf, faceVars, currentScvfBoundaryTypes, lateralFaceBoundaryTypes, localSubFaceIdx); // Account for the orientation of the staggered normal face's outer normal vector. lateralDiffusiveFlux -= muAvg * velocityGrad_ji * lateralFace.directionSign(); } @@ -580,45 +558,16 @@ private: // Consider the shear stress caused by the gradient of the velocities parallel to our face of interest. // If we have a Dirichlet condition for the pressure at the lateral face we assume to have a zero velocityGrad_ij velocity gradient // so we can skip the computation. - if (!lateralFaceBoundaryTypes || !lateralFaceBoundaryTypes->isDirichlet(Indices::pressureIdx)) + if (!lateralFace.boundary() || !lateralFaceBoundaryTypes->isDirichlet(Indices::pressureIdx)) { - // For the velocityGrad_ij derivative, get the velocities at the current (own) scvf - // and at the parallel one at the neighboring scvf. - const Scalar innerParallelVelocity = faceVars.velocitySelf(); - - const auto getParallelVelocity = [&]() - { - if (!lateralFace.boundary()) - return faceVars.velocityParallel(localSubFaceIdx, 0); - else if (lateralFaceBoundaryTypes->isDirichlet(Indices::velocity(scvf.directionIndex()))) - { - // Sample the value of the Dirichlet BC at the center of the staggered lateral face. - const auto& lateralBoundaryFacePos = lateralStaggeredFaceCenter_(scvf, localSubFaceIdx); - return problem.dirichlet(element, lateralFace.makeBoundaryFace(lateralBoundaryFacePos))[Indices::velocity(scvf.directionIndex())]; - } - else - { - const auto& scv = fvGeometry.scv(scvf.insideScvIdx()); - return problem.bjsVelocity(element, scv, lateralFace, innerParallelVelocity); - } - }; - - const Scalar outerParallelVelocity = getParallelVelocity(); - - // The velocity gradient already accounts for the orientation - // of the staggered face's outer normal vector. This also correctly accounts for the reduced - // distance used in the gradient if the lateral scvf lies on a boundary. - const Scalar velocityGrad_ij = (outerParallelVelocity - innerParallelVelocity) - / scvf.parallelDofsDistance(localSubFaceIdx, 0); - - lateralDiffusiveFlux -= muAvg * velocityGrad_ij; + const Scalar velocityGrad_ij = VelocityGradients::velocityGradIJ(problem, element, fvGeometry, scvf, faceVars, currentScvfBoundaryTypes, lateralFaceBoundaryTypes, localSubFaceIdx); + lateralDiffusiveFlux -= muAvg * velocityGrad_ij * lateralFace.directionSign(); } // Account for the area of the staggered lateral face (0.5 of the coinciding scfv). return lateralDiffusiveFlux * lateralFace.area() * 0.5 * extrusionFactor_(elemVolVars, lateralFace); } - /*! * \brief Get the location of the lateral staggered face's center. * Only needed for boundary conditions if the current scvf or the lateral one is on a bounary. @@ -645,6 +594,7 @@ private: const auto& outsideVolVars = elemVolVars[scvf.outsideScvIdx()]; return harmonicMean(insideVolVars.extrusionFactor(), outsideVolVars.extrusionFactor()); } + //! do nothing if no turbulence model is used template = 0> bool incorporateWallFunction_(Args&&... args) const -- GitLab From 3fe96c43f3216012c8228d058ad8b72015067e55 Mon Sep 17 00:00:00 2001 From: Kilian Date: Tue, 2 Jul 2019 13:39:30 +0200 Subject: [PATCH 5/6] [staggered][upwindfluxvars] Use new helper class and new BJ function * not done for getParallelVelocityFromOtherBoundary -> will raise deprecation warning --- .../navierstokes/staggered/fluxvariables.hh | 8 ++-- .../staggered/staggeredupwindfluxvariables.hh | 43 +++++++++++-------- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/dumux/freeflow/navierstokes/staggered/fluxvariables.hh b/dumux/freeflow/navierstokes/staggered/fluxvariables.hh index ba330448da..09a4a30611 100644 --- a/dumux/freeflow/navierstokes/staggered/fluxvariables.hh +++ b/dumux/freeflow/navierstokes/staggered/fluxvariables.hh @@ -387,8 +387,10 @@ public: // If none of the above boundary conditions apply for the given sub face, proceed to calculate the tangential momentum flux. if (problem.enableInertiaTerms()) lateralFlux += computeAdvectivePartOfLateralMomentumFlux_(problem, fvGeometry, element, - scvf, elemVolVars, faceVars, - gridFluxVarsCache, lateralFaceBoundaryTypes, localSubFaceIdx); + scvf, elemVolVars, faceVars, + gridFluxVarsCache, + currentScvfBoundaryTypes, lateralFaceBoundaryTypes, + localSubFaceIdx); lateralFlux += computeDiffusivePartOfLateralMomentumFlux_(problem, fvGeometry, element, scvf, elemVolVars, faceVars, @@ -487,7 +489,7 @@ private: const Scalar transportingVelocity = faceVars.velocityLateralInside(localSubFaceIdx); return StaggeredUpwindFluxVariables::computeUpwindedLateralMomentum(problem, fvGeometry, element, scvf, elemVolVars, faceVars, - gridFluxVarsCache, localSubFaceIdx, lateralFaceBoundaryTypes) + gridFluxVarsCache, localSubFaceIdx, currentScvfBoundaryTypes, lateralFaceBoundaryTypes) * transportingVelocity * lateralFace.directionSign() * lateralFace.area() * 0.5 * extrusionFactor_(elemVolVars, lateralFace); } diff --git a/dumux/freeflow/navierstokes/staggered/staggeredupwindfluxvariables.hh b/dumux/freeflow/navierstokes/staggered/staggeredupwindfluxvariables.hh index 29baf9ae1b..d8485ec10c 100644 --- a/dumux/freeflow/navierstokes/staggered/staggeredupwindfluxvariables.hh +++ b/dumux/freeflow/navierstokes/staggered/staggeredupwindfluxvariables.hh @@ -33,6 +33,7 @@ #include #include +#include "velocitygradients.hh" namespace Dumux { @@ -69,6 +70,7 @@ class StaggeredUpwindFluxVariables using CellCenterPrimaryVariables = GetPropType; using FacePrimaryVariables = GetPropType; using BoundaryTypes = GetPropType; + using VelocityGradients = StaggeredVelocityGradients; using GlobalPosition = typename Element::Geometry::GlobalCoordinate; static constexpr bool useHigherOrder = upwindSchemeOrder > 1; @@ -121,6 +123,7 @@ public: const FaceVariables& faceVars, const GridFluxVariablesCache& gridFluxVarsCache, const int localSubFaceIdx, + const Dune::Std::optional& currentScvfBoundaryTypes, const Dune::Std::optional& lateralFaceBoundaryTypes) { const auto eIdx = scvf.insideScvIdx(); @@ -138,15 +141,15 @@ public: if (canHigherOrder) { const auto parallelUpwindingMomenta = getLateralUpwindingMomenta_(problem, fvGeometry, element, scvf, elemVolVars, faceVars, - transportingVelocity, localSubFaceIdx, lateralFaceBoundaryTypes, - std::integral_constant{}); + transportingVelocity, localSubFaceIdx, currentScvfBoundaryTypes, + lateralFaceBoundaryTypes, std::integral_constant{}); return doLateralMomentumUpwinding_(fvGeometry, scvf, parallelUpwindingMomenta, transportingVelocity, localSubFaceIdx, gridFluxVarsCache); } else { const auto parallelUpwindingMomenta = getLateralUpwindingMomenta_(problem, fvGeometry, element, scvf, elemVolVars, faceVars, - transportingVelocity, localSubFaceIdx, lateralFaceBoundaryTypes, - std::integral_constant{}); + transportingVelocity, localSubFaceIdx, currentScvfBoundaryTypes, + lateralFaceBoundaryTypes, std::integral_constant{}); return doLateralMomentumUpwinding_(fvGeometry, scvf, parallelUpwindingMomenta, transportingVelocity, localSubFaceIdx, gridFluxVarsCache); } } @@ -186,11 +189,7 @@ private: { // Depending on selfIsUpstream I have to check if I have a forward or a backward neighbor to retrieve const bool selfIsUpstream = ownScvf.directionSign() != sign(transportingVelocity); - - if (selfIsUpstream) - return ownScvf.hasForwardNeighbor(0); - else - return ownScvf.hasBackwardNeighbor(0); + return selfIsUpstream ? ownScvf.hasForwardNeighbor(0) : ownScvf.hasBackwardNeighbor(0); } /*! @@ -369,6 +368,7 @@ private: const FaceVariables& faceVars, const Scalar transportingVelocity, const int localSubFaceIdx, + const Dune::Std::optional& currentScvfBoundaryTypes, const Dune::Std::optional& lateralFaceBoundaryTypes, std::true_type) { @@ -383,8 +383,8 @@ private: if (!ownScvf.hasParallelNeighbor(localSubFaceIdx, 0)) { const Scalar boundaryMomentum = getParallelVelocityFromBoundary_(problem, element, fvGeometry, ownScvf, - faceVars.velocitySelf(), localSubFaceIdx, - lateralFaceBoundaryTypes) * insideVolVars.density(); + faceVars, currentScvfBoundaryTypes, lateralFaceBoundaryTypes, + localSubFaceIdx) * insideVolVars.density(); return std::array{boundaryMomentum, boundaryMomentum, boundaryMomentum}; } @@ -402,8 +402,8 @@ private: momenta[0] = faceVars.velocityParallel(localSubFaceIdx, 0) * insideVolVars.density(); else momenta[0] = getParallelVelocityFromBoundary_(problem, element, fvGeometry, ownScvf, - faceVars.velocitySelf(), localSubFaceIdx, - lateralFaceBoundaryTypes) * insideVolVars.density(); + faceVars, currentScvfBoundaryTypes, lateralFaceBoundaryTypes, + localSubFaceIdx) * insideVolVars.density(); // The local index of the faces that is opposite to localSubFaceIdx const int oppositeSubFaceIdx = localSubFaceIdx % 2 ? localSubFaceIdx - 1 : localSubFaceIdx + 1; @@ -450,6 +450,7 @@ private: const FaceVariables& faceVars, const Scalar transportingVelocity, const int localSubFaceIdx, + const Dune::Std::optional& currentScvfBoundaryTypes, const Dune::Std::optional& lateralFaceBoundaryTypes, std::false_type) { @@ -463,8 +464,8 @@ private: const Scalar momentumParallel = ownScvf.hasParallelNeighbor(localSubFaceIdx, 0) ? faceVars.velocityParallel(localSubFaceIdx, 0) * outsideVolVars.density() : (getParallelVelocityFromBoundary_(problem, element, fvGeometry, ownScvf, - faceVars.velocitySelf(), localSubFaceIdx, - lateralFaceBoundaryTypes) + faceVars, currentScvfBoundaryTypes, lateralFaceBoundaryTypes, + localSubFaceIdx) * insideVolVars.density()); // If the lateral face lies on a boundary, we assume that the parallel velocity on the boundary is actually known, @@ -572,13 +573,15 @@ private: const Element& element, const FVElementGeometry& fvGeometry, const SubControlVolumeFace& scvf, - const Scalar velocitySelf, - const int localSubFaceIdx, - const Dune::Std::optional& lateralFaceBoundaryTypes) + const FaceVariables& faceVars, + const Dune::Std::optional& currentScvfBoundaryTypes, + const Dune::Std::optional& lateralFaceBoundaryTypes, + const int localSubFaceIdx) { // Find out what boundary type is set on the lateral face const bool lateralFaceHasDirichletPressure = lateralFaceBoundaryTypes && lateralFaceBoundaryTypes->isDirichlet(Indices::pressureIdx); const bool lateralFaceHasBJS = lateralFaceBoundaryTypes && lateralFaceBoundaryTypes->isBJS(Indices::velocity(scvf.directionIndex())); + const Scalar velocitySelf = faceVars.velocitySelf(); // If there is a Dirichlet condition for the pressure we assume zero gradient for the velocity, // so the velocity at the boundary equal to that on the scvf. @@ -589,9 +592,11 @@ private: { const auto eIdx = scvf.insideScvIdx(); const auto& lateralFace = fvGeometry.scvf(eIdx, scvf.pairData(localSubFaceIdx).localLateralFaceIdx); + const Scalar velocityGrad_ji = VelocityGradients::velocityGradJI(problem, element, fvGeometry, scvf, faceVars, + currentScvfBoundaryTypes, lateralFaceBoundaryTypes, localSubFaceIdx); const SubControlVolume& scv = fvGeometry.scv(scvf.insideScvIdx()); - return problem.bjsVelocity(element, scv, lateralFace, velocitySelf); + return problem.beaversJosephVelocity(element, scv, lateralFace, velocitySelf, velocityGrad_ji); } else { -- GitLab From 98c6e38fab10439d1555423e977fafaa3794c9aa Mon Sep 17 00:00:00 2001 From: Kilian Date: Fri, 21 Jun 2019 16:04:46 +0200 Subject: [PATCH 6/6] [test][md][stokesdarcy1p2p] Adapt ref sol * tiny changes in the PM velocity --- ...cy2p_stokes1p_vertical_darcy-reference.vtu | 386 +++++++++--------- 1 file changed, 193 insertions(+), 193 deletions(-) diff --git a/test/references/test_md_boundary_darcy2p_stokes1p_vertical_darcy-reference.vtu b/test/references/test_md_boundary_darcy2p_stokes1p_vertical_darcy-reference.vtu index d0b84b4815..a4c69d9beb 100644 --- a/test/references/test_md_boundary_darcy2p_stokes1p_vertical_darcy-reference.vtu +++ b/test/references/test_md_boundary_darcy2p_stokes1p_vertical_darcy-reference.vtu @@ -364,208 +364,208 @@ 0.41 0.41 0.41 0.41 - -4.63992e-17 -7.93252e-07 0 -1.85597e-16 -7.93252e-07 0 -3.71194e-16 -7.93252e-07 0 -5.10391e-16 -7.93252e-07 0 - -5.10391e-16 -7.93252e-07 0 -5.10391e-16 -7.93252e-07 0 -5.10391e-16 -7.93252e-07 0 -3.24794e-16 -7.93252e-07 0 - -1.85597e-16 -7.93252e-07 0 -9.27984e-17 -7.93252e-07 0 4.63992e-17 -7.93252e-07 0 1.85597e-16 -7.93252e-07 0 - 4.17593e-16 -7.93252e-07 0 5.10391e-16 -7.93252e-07 0 4.63992e-16 -7.93252e-07 0 5.10391e-16 -7.93252e-07 0 - 5.10391e-16 -7.93252e-07 0 3.71194e-16 -7.93252e-07 0 1.85597e-16 -7.93252e-07 0 4.63992e-17 -7.93252e-07 0 - -2.30833e-16 -7.93252e-07 0 -7.38666e-16 -7.93252e-07 0 -1.20033e-15 -7.93252e-07 0 -1.47733e-15 -7.93252e-07 0 - -1.56966e-15 -7.93252e-07 0 -1.5235e-15 -7.93252e-07 0 -1.43116e-15 -7.93252e-07 0 -1.20033e-15 -7.93252e-07 0 - -6.92499e-16 -7.93252e-07 0 -2.30833e-16 -7.93252e-07 0 2.30833e-16 -7.93252e-07 0 6.92499e-16 -7.93252e-07 0 - 1.15417e-15 -7.93252e-07 0 1.47733e-15 -7.93252e-07 0 1.5235e-15 -7.93252e-07 0 1.56966e-15 -7.93252e-07 0 - 1.47733e-15 -7.93252e-07 0 1.20033e-15 -7.93252e-07 0 7.38666e-16 -7.93252e-07 0 2.30833e-16 -7.93252e-07 0 - -4.59361e-16 -7.93251e-07 0 -1.37808e-15 -7.93251e-07 0 -2.06712e-15 -7.93251e-07 0 -2.52648e-15 -7.93251e-07 0 - -2.84804e-15 -7.93251e-07 0 -2.84804e-15 -7.93251e-07 0 -2.52648e-15 -7.93251e-07 0 -2.02119e-15 -7.93251e-07 0 - -1.33215e-15 -7.93251e-07 0 -4.59361e-16 -7.93251e-07 0 4.59361e-16 -7.93251e-07 0 1.33215e-15 -7.93251e-07 0 - 2.06712e-15 -7.93251e-07 0 2.52648e-15 -7.93251e-07 0 2.8021e-15 -7.93251e-07 0 2.84804e-15 -7.93251e-07 0 - 2.52648e-15 -7.93251e-07 0 2.06712e-15 -7.93251e-07 0 1.37808e-15 -7.93251e-07 0 4.59361e-16 -7.93251e-07 0 - -7.31321e-16 -7.93251e-07 0 -2.01113e-15 -7.93251e-07 0 -3.15382e-15 -7.93251e-07 0 -4.02226e-15 -7.93251e-07 0 - -4.38793e-15 -7.93251e-07 0 -4.38793e-15 -7.93251e-07 0 -3.93085e-15 -7.93251e-07 0 -3.0167e-15 -7.93251e-07 0 - -1.96542e-15 -7.93251e-07 0 -7.31321e-16 -7.93251e-07 0 6.85613e-16 -7.93251e-07 0 2.01113e-15 -7.93251e-07 0 - 3.10811e-15 -7.93251e-07 0 3.88514e-15 -7.93251e-07 0 4.29651e-15 -7.93251e-07 0 4.38793e-15 -7.93251e-07 0 - 4.02226e-15 -7.93251e-07 0 3.15382e-15 -7.93251e-07 0 2.05684e-15 -7.93251e-07 0 7.31321e-16 -7.93251e-07 0 - -1.04606e-15 -7.9325e-07 0 -3.00175e-15 -7.9325e-07 0 -4.59358e-15 -7.9325e-07 0 -5.77609e-15 -7.9325e-07 0 - -6.36734e-15 -7.9325e-07 0 -6.27638e-15 -7.9325e-07 0 -5.63965e-15 -7.9325e-07 0 -4.45714e-15 -7.9325e-07 0 - -2.81982e-15 -7.9325e-07 0 -9.55102e-16 -7.9325e-07 0 9.55102e-16 -7.9325e-07 0 2.86531e-15 -7.9325e-07 0 - 4.45714e-15 -7.9325e-07 0 5.63965e-15 -7.9325e-07 0 6.27638e-15 -7.9325e-07 0 6.27638e-15 -7.9325e-07 0 - 5.77609e-15 -7.9325e-07 0 4.63907e-15 -7.9325e-07 0 3.04723e-15 -7.9325e-07 0 1.09154e-15 -7.9325e-07 0 - -1.49346e-15 -7.93249e-07 0 -4.25411e-15 -7.93249e-07 0 -6.51694e-15 -7.93249e-07 0 -8.14617e-15 -7.93249e-07 0 - -8.96079e-15 -7.93249e-07 0 -8.82502e-15 -7.93249e-07 0 -7.91989e-15 -7.93249e-07 0 -6.20014e-15 -7.93249e-07 0 - -3.89206e-15 -7.93249e-07 0 -1.35769e-15 -7.93249e-07 0 1.35769e-15 -7.93249e-07 0 3.89206e-15 -7.93249e-07 0 - 6.20014e-15 -7.93249e-07 0 7.91989e-15 -7.93249e-07 0 8.82502e-15 -7.93249e-07 0 8.96079e-15 -7.93249e-07 0 - 8.14617e-15 -7.93249e-07 0 6.56219e-15 -7.93249e-07 0 4.25411e-15 -7.93249e-07 0 1.44821e-15 -7.93249e-07 0 - -2.16163e-15 -7.93248e-07 0 -5.98951e-15 -7.93248e-07 0 -9.14188e-15 -7.93248e-07 0 -1.13936e-14 -7.93248e-07 0 - -1.23843e-14 -7.93248e-07 0 -1.22492e-14 -7.93248e-07 0 -1.08982e-14 -7.93248e-07 0 -8.51141e-15 -7.93248e-07 0 - -5.40407e-15 -7.93248e-07 0 -1.84639e-15 -7.93248e-07 0 1.84639e-15 -7.93248e-07 0 5.40407e-15 -7.93248e-07 0 - 8.46637e-15 -7.93248e-07 0 1.08532e-14 -7.93248e-07 0 1.22943e-14 -7.93248e-07 0 1.24744e-14 -7.93248e-07 0 - 1.13936e-14 -7.93248e-07 0 9.09685e-15 -7.93248e-07 0 5.94448e-15 -7.93248e-07 0 2.11659e-15 -7.93248e-07 0 - -2.86805e-15 -7.93247e-07 0 -8.33526e-15 -7.93247e-07 0 -1.28166e-14 -7.93247e-07 0 -1.58191e-14 -7.93247e-07 0 - -1.71635e-14 -7.93247e-07 0 -1.6805e-14 -7.93247e-07 0 -1.4878e-14 -7.93247e-07 0 -1.15618e-14 -7.93247e-07 0 - -7.30456e-15 -7.93247e-07 0 -2.50954e-15 -7.93247e-07 0 2.50954e-15 -7.93247e-07 0 7.30456e-15 -7.93247e-07 0 - 1.15618e-14 -7.93247e-07 0 1.4878e-14 -7.93247e-07 0 1.6805e-14 -7.93247e-07 0 1.71635e-14 -7.93247e-07 0 - 1.58639e-14 -7.93247e-07 0 1.27718e-14 -7.93247e-07 0 8.29045e-15 -7.93247e-07 0 2.91286e-15 -7.93247e-07 0 - -4.0581e-15 -7.93246e-07 0 -1.16838e-14 -7.93246e-07 0 -1.7927e-14 -7.93246e-07 0 -2.19851e-14 -7.93246e-07 0 - -2.36351e-14 -7.93246e-07 0 -2.29662e-14 -7.93246e-07 0 -2.01567e-14 -7.93246e-07 0 -1.56527e-14 -7.93246e-07 0 - -9.85538e-15 -7.93246e-07 0 -3.34459e-15 -7.93246e-07 0 3.34459e-15 -7.93246e-07 0 9.85538e-15 -7.93246e-07 0 - 1.56527e-14 -7.93246e-07 0 2.02013e-14 -7.93246e-07 0 2.29662e-14 -7.93246e-07 0 2.35905e-14 -7.93246e-07 0 - 2.19851e-14 -7.93246e-07 0 1.78824e-14 -7.93246e-07 0 1.17284e-14 -7.93246e-07 0 4.14729e-15 -7.93246e-07 0 - -5.81347e-15 -7.93245e-07 0 -1.65529e-14 -7.93245e-07 0 -2.50734e-14 -7.93245e-07 0 -3.05318e-14 -7.93245e-07 0 - -3.24844e-14 -7.93245e-07 0 -3.12418e-14 -7.93245e-07 0 -2.72035e-14 -7.93245e-07 0 -2.09019e-14 -7.93245e-07 0 - -1.31358e-14 -7.93245e-07 0 -4.48214e-15 -7.93245e-07 0 4.43776e-15 -7.93245e-07 0 1.31358e-14 -7.93245e-07 0 - 2.09462e-14 -7.93245e-07 0 2.72035e-14 -7.93245e-07 0 3.12862e-14 -7.93245e-07 0 3.24844e-14 -7.93245e-07 0 - 3.04874e-14 -7.93245e-07 0 2.51177e-14 -7.93245e-07 0 1.65529e-14 -7.93245e-07 0 5.76909e-15 -7.93245e-07 0 - -8.30257e-15 -7.93243e-07 0 -2.35828e-14 -7.93243e-07 0 -3.53743e-14 -7.93243e-07 0 -4.24844e-14 -7.93243e-07 0 - -4.46484e-14 -7.93243e-07 0 -4.23078e-14 -7.93243e-07 0 -3.639e-14 -7.93243e-07 0 -2.77783e-14 -7.93243e-07 0 - -1.73117e-14 -7.93243e-07 0 -5.87363e-15 -7.93243e-07 0 5.87363e-15 -7.93243e-07 0 1.73117e-14 -7.93243e-07 0 - 2.77341e-14 -7.93243e-07 0 3.639e-14 -7.93243e-07 0 4.23519e-14 -7.93243e-07 0 4.46484e-14 -7.93243e-07 0 - 4.24844e-14 -7.93243e-07 0 3.54184e-14 -7.93243e-07 0 2.35828e-14 -7.93243e-07 0 8.25841e-15 -7.93243e-07 0 - -1.213e-14 -7.93241e-07 0 -3.41048e-14 -7.93241e-07 0 -5.03661e-14 -7.93241e-07 0 -5.94197e-14 -7.93241e-07 0 - -6.13095e-14 -7.93241e-07 0 -5.70464e-14 -7.93241e-07 0 -4.83004e-14 -7.93241e-07 0 -3.63901e-14 -7.93241e-07 0 - -2.25461e-14 -7.93241e-07 0 -7.69115e-15 -7.93241e-07 0 7.6472e-15 -7.93241e-07 0 2.259e-14 -7.93241e-07 0 - 3.64341e-14 -7.93241e-07 0 4.83004e-14 -7.93241e-07 0 5.70464e-14 -7.93241e-07 0 6.12655e-14 -7.93241e-07 0 - 5.94197e-14 -7.93241e-07 0 5.03661e-14 -7.93241e-07 0 3.41487e-14 -7.93241e-07 0 1.2174e-14 -7.93241e-07 0 - -1.81513e-14 -7.9324e-07 0 -5.03426e-14 -7.9324e-07 0 -7.28239e-14 -7.9324e-07 0 -8.3671e-14 -7.9324e-07 0 - -8.39334e-14 -7.9324e-07 0 -7.63667e-14 -7.9324e-07 0 -6.33765e-14 -7.9324e-07 0 -4.70185e-14 -7.9324e-07 0 - -2.87797e-14 -7.9324e-07 0 -9.66612e-15 -7.9324e-07 0 9.66612e-15 -7.9324e-07 0 2.87797e-14 -7.9324e-07 0 - 4.70185e-14 -7.9324e-07 0 6.33765e-14 -7.9324e-07 0 7.63667e-14 -7.9324e-07 0 8.39772e-14 -7.9324e-07 0 - 8.36273e-14 -7.9324e-07 0 7.27802e-14 -7.9324e-07 0 5.03863e-14 -7.9324e-07 0 1.81513e-14 -7.9324e-07 0 - -2.79889e-14 -7.93238e-07 0 -7.64361e-14 -7.93238e-07 0 -1.0695e-13 -7.93238e-07 0 -1.18267e-13 -7.93238e-07 0 - -1.14654e-13 -7.93238e-07 0 -1.01073e-13 -7.93238e-07 0 -8.17031e-14 -7.93238e-07 0 -5.95471e-14 -7.93238e-07 0 - -3.60852e-14 -7.93238e-07 0 -1.20574e-14 -7.93238e-07 0 1.20574e-14 -7.93238e-07 0 3.60416e-14 -7.93238e-07 0 - 5.95471e-14 -7.93238e-07 0 8.17031e-14 -7.93238e-07 0 1.01073e-13 -7.93238e-07 0 1.14698e-13 -7.93238e-07 0 - 1.18311e-13 -7.93238e-07 0 1.0695e-13 -7.93238e-07 0 7.63926e-14 -7.93238e-07 0 2.79889e-14 -7.93238e-07 0 - -4.57034e-14 -7.93236e-07 0 -1.20475e-13 -7.93236e-07 0 -1.602e-13 -7.93236e-07 0 -1.68171e-13 -7.93236e-07 0 - -1.55305e-13 -7.93236e-07 0 -1.31565e-13 -7.93236e-07 0 -1.03103e-13 -7.93236e-07 0 -7.33421e-14 -7.93236e-07 0 - -4.37107e-14 -7.93236e-07 0 -1.44691e-14 -7.93236e-07 0 1.44691e-14 -7.93236e-07 0 4.3754e-14 -7.93236e-07 0 - 7.33854e-14 -7.93236e-07 0 1.0306e-13 -7.93236e-07 0 1.31479e-13 -7.93236e-07 0 1.55305e-13 -7.93236e-07 0 - 1.68215e-13 -7.93236e-07 0 1.60244e-13 -7.93236e-07 0 1.20475e-13 -7.93236e-07 0 4.56601e-14 -7.93236e-07 0 - -7.99779e-14 -7.93233e-07 0 -1.99708e-13 -7.93234e-07 0 -2.45452e-13 -7.93234e-07 0 -2.38985e-13 -7.93234e-07 0 - -2.07037e-13 -7.93234e-07 0 -1.66595e-13 -7.93234e-07 0 -1.25636e-13 -7.93234e-07 0 -8.70056e-14 -7.93234e-07 0 - -5.10048e-14 -7.93234e-07 0 -1.68148e-14 -7.93234e-07 0 1.68148e-14 -7.93234e-07 0 5.10048e-14 -7.93234e-07 0 - 8.70056e-14 -7.93234e-07 0 1.25636e-13 -7.93234e-07 0 1.66595e-13 -7.93234e-07 0 2.0708e-13 -7.93234e-07 0 - 2.38985e-13 -7.93234e-07 0 2.45409e-13 -7.93234e-07 0 1.99708e-13 -7.93234e-07 0 7.99779e-14 -7.93233e-07 0 - -1.54692e-13 -7.93231e-07 0 -3.53411e-13 -7.93231e-07 0 -3.82976e-13 -7.93232e-07 0 -3.35217e-13 -7.93232e-07 0 - -2.67375e-13 -7.93232e-07 0 -2.0228e-13 -7.93232e-07 0 -1.45896e-13 -7.93232e-07 0 -9.80505e-14 -7.93232e-07 0 - -5.64702e-14 -7.93232e-07 0 -1.84515e-14 -7.93232e-07 0 1.84086e-14 -7.93232e-07 0 5.64702e-14 -7.93232e-07 0 - 9.81363e-14 -7.93232e-07 0 1.45896e-13 -7.93232e-07 0 2.02237e-13 -7.93232e-07 0 2.67375e-13 -7.93232e-07 0 - 3.35174e-13 -7.93232e-07 0 3.82976e-13 -7.93232e-07 0 3.53454e-13 -7.93231e-07 0 1.54692e-13 -7.93231e-07 0 - -3.40425e-13 -7.93229e-07 0 -6.77049e-13 -7.93229e-07 0 -5.98381e-13 -7.9323e-07 0 -4.51807e-13 -7.9323e-07 0 - -3.24837e-13 -7.9323e-07 0 -2.28915e-13 -7.9323e-07 0 -1.5772e-13 -7.9323e-07 0 -1.02926e-13 -7.9323e-07 0 - -5.82109e-14 -7.9323e-07 0 -1.88769e-14 -7.9323e-07 0 1.88769e-14 -7.9323e-07 0 5.81682e-14 -7.9323e-07 0 - 1.02926e-13 -7.9323e-07 0 1.5772e-13 -7.9323e-07 0 2.28915e-13 -7.9323e-07 0 3.24879e-13 -7.9323e-07 0 - 4.51764e-13 -7.9323e-07 0 5.98381e-13 -7.9323e-07 0 6.77092e-13 -7.93229e-07 0 3.40425e-13 -7.93229e-07 0 - -8.71905e-13 -7.93225e-07 0 -1.41795e-12 -7.93228e-07 0 -8.82107e-13 -7.93228e-07 0 -5.48469e-13 -7.93228e-07 0 - -3.51108e-13 -7.93228e-07 0 -2.31026e-13 -7.93228e-07 0 -1.52898e-13 -7.93228e-07 0 -9.75962e-14 -7.93228e-07 0 - -5.46216e-14 -7.93228e-07 0 -1.75979e-14 -7.93228e-07 0 1.75979e-14 -7.93228e-07 0 5.45791e-14 -7.93228e-07 0 - 9.76387e-14 -7.93228e-07 0 1.5294e-13 -7.93228e-07 0 2.30983e-13 -7.93228e-07 0 3.51108e-13 -7.93228e-07 0 - 5.48469e-13 -7.93228e-07 0 8.82107e-13 -7.93228e-07 0 1.41795e-12 -7.93228e-07 0 8.71905e-13 -7.93225e-07 0 - -2.6071e-12 -7.93223e-07 0 -3.24573e-12 -7.93227e-07 0 -9.62378e-13 -7.93227e-07 0 -5.08414e-13 -7.93227e-07 0 - -2.99836e-13 -7.93227e-07 0 -1.90766e-13 -7.93227e-07 0 -1.25231e-13 -7.93227e-07 0 -8.00465e-14 -7.93227e-07 0 - -4.4931e-14 -7.93227e-07 0 -1.45116e-14 -7.93227e-07 0 1.45539e-14 -7.93227e-07 0 4.4931e-14 -7.93227e-07 0 - 8.00042e-14 -7.93227e-07 0 1.25231e-13 -7.93227e-07 0 1.90809e-13 -7.93227e-07 0 2.99794e-13 -7.93227e-07 0 - 5.08372e-13 -7.93227e-07 0 9.62462e-13 -7.93227e-07 0 3.24573e-12 -7.93227e-07 0 2.60705e-12 -7.93223e-07 0 + -9.27984e-17 -7.93252e-07 0 -2.31996e-16 -7.93252e-07 0 -3.24794e-16 -7.93252e-07 0 -4.63992e-16 -7.93252e-07 0 + -5.5679e-16 -7.93252e-07 0 -4.63992e-16 -7.93252e-07 0 -4.63992e-16 -7.93252e-07 0 -4.17593e-16 -7.93252e-07 0 + -2.31996e-16 -7.93252e-07 0 -9.27984e-17 -7.93252e-07 0 9.27984e-17 -7.93252e-07 0 2.78395e-16 -7.93252e-07 0 + 4.17593e-16 -7.93252e-07 0 4.17593e-16 -7.93252e-07 0 4.63992e-16 -7.93252e-07 0 5.5679e-16 -7.93252e-07 0 + 4.63992e-16 -7.93252e-07 0 3.24794e-16 -7.93252e-07 0 2.31996e-16 -7.93252e-07 0 9.27984e-17 -7.93252e-07 0 + -2.77e-16 -7.93252e-07 0 -7.38666e-16 -7.93252e-07 0 -1.108e-15 -7.93252e-07 0 -1.43116e-15 -7.93252e-07 0 + -1.61583e-15 -7.93252e-07 0 -1.61583e-15 -7.93252e-07 0 -1.43116e-15 -7.93252e-07 0 -1.15417e-15 -7.93252e-07 0 + -6.92499e-16 -7.93252e-07 0 -2.30833e-16 -7.93252e-07 0 1.84666e-16 -7.93252e-07 0 7.38666e-16 -7.93252e-07 0 + 1.15417e-15 -7.93252e-07 0 1.43116e-15 -7.93252e-07 0 1.61583e-15 -7.93252e-07 0 1.56966e-15 -7.93252e-07 0 + 1.43116e-15 -7.93252e-07 0 1.20033e-15 -7.93252e-07 0 7.38666e-16 -7.93252e-07 0 2.30833e-16 -7.93252e-07 0 + -4.59361e-16 -7.93251e-07 0 -1.33215e-15 -7.93251e-07 0 -2.06712e-15 -7.93251e-07 0 -2.57242e-15 -7.93251e-07 0 + -2.8021e-15 -7.93251e-07 0 -2.84804e-15 -7.93251e-07 0 -2.52648e-15 -7.93251e-07 0 -1.97525e-15 -7.93251e-07 0 + -1.37808e-15 -7.93251e-07 0 -5.05297e-16 -7.93251e-07 0 4.59361e-16 -7.93251e-07 0 1.33215e-15 -7.93251e-07 0 + 2.02119e-15 -7.93251e-07 0 2.57242e-15 -7.93251e-07 0 2.84804e-15 -7.93251e-07 0 2.8021e-15 -7.93251e-07 0 + 2.57242e-15 -7.93251e-07 0 2.11306e-15 -7.93251e-07 0 1.33215e-15 -7.93251e-07 0 4.13425e-16 -7.93251e-07 0 + -7.31321e-16 -7.93251e-07 0 -2.05684e-15 -7.93251e-07 0 -3.15382e-15 -7.93251e-07 0 -3.97656e-15 -7.93251e-07 0 + -4.38793e-15 -7.93251e-07 0 -4.34222e-15 -7.93251e-07 0 -3.88514e-15 -7.93251e-07 0 -3.10811e-15 -7.93251e-07 0 + -1.96542e-15 -7.93251e-07 0 -6.39906e-16 -7.93251e-07 0 6.85613e-16 -7.93251e-07 0 1.96542e-15 -7.93251e-07 0 + 3.06241e-15 -7.93251e-07 0 3.88514e-15 -7.93251e-07 0 4.34222e-15 -7.93251e-07 0 4.34222e-15 -7.93251e-07 0 + 3.97656e-15 -7.93251e-07 0 3.19953e-15 -7.93251e-07 0 2.01113e-15 -7.93251e-07 0 6.85613e-16 -7.93251e-07 0 + -1.00058e-15 -7.9325e-07 0 -3.00175e-15 -7.9325e-07 0 -4.68455e-15 -7.9325e-07 0 -5.77609e-15 -7.9325e-07 0 + -6.32186e-15 -7.9325e-07 0 -6.27638e-15 -7.9325e-07 0 -5.63965e-15 -7.9325e-07 0 -4.45714e-15 -7.9325e-07 0 + -2.81982e-15 -7.9325e-07 0 -9.55102e-16 -7.9325e-07 0 1.00058e-15 -7.9325e-07 0 2.86531e-15 -7.9325e-07 0 + 4.41166e-15 -7.9325e-07 0 5.59417e-15 -7.9325e-07 0 6.27638e-15 -7.9325e-07 0 6.32186e-15 -7.9325e-07 0 + 5.77609e-15 -7.9325e-07 0 4.68455e-15 -7.9325e-07 0 3.00175e-15 -7.9325e-07 0 1.00058e-15 -7.9325e-07 0 + -1.44821e-15 -7.93249e-07 0 -4.20885e-15 -7.93249e-07 0 -6.56219e-15 -7.93249e-07 0 -8.14617e-15 -7.93249e-07 0 + -8.96079e-15 -7.93249e-07 0 -8.82502e-15 -7.93249e-07 0 -7.87463e-15 -7.93249e-07 0 -6.20014e-15 -7.93249e-07 0 + -3.89206e-15 -7.93249e-07 0 -1.35769e-15 -7.93249e-07 0 1.35769e-15 -7.93249e-07 0 3.93731e-15 -7.93249e-07 0 + 6.15488e-15 -7.93249e-07 0 7.87463e-15 -7.93249e-07 0 8.87027e-15 -7.93249e-07 0 8.96079e-15 -7.93249e-07 0 + 8.10091e-15 -7.93249e-07 0 6.51694e-15 -7.93249e-07 0 4.25411e-15 -7.93249e-07 0 1.44821e-15 -7.93249e-07 0 + -2.07156e-15 -7.93248e-07 0 -5.94448e-15 -7.93248e-07 0 -9.18692e-15 -7.93248e-07 0 -1.13936e-14 -7.93248e-07 0 + -1.24294e-14 -7.93248e-07 0 -1.22492e-14 -7.93248e-07 0 -1.08532e-14 -7.93248e-07 0 -8.46637e-15 -7.93248e-07 0 + -5.40407e-15 -7.93248e-07 0 -1.93646e-15 -7.93248e-07 0 1.89142e-15 -7.93248e-07 0 5.4491e-15 -7.93248e-07 0 + 8.46637e-15 -7.93248e-07 0 1.08532e-14 -7.93248e-07 0 1.22042e-14 -7.93248e-07 0 1.24294e-14 -7.93248e-07 0 + 1.14386e-14 -7.93248e-07 0 9.18692e-15 -7.93248e-07 0 5.89944e-15 -7.93248e-07 0 2.02653e-15 -7.93248e-07 0 + -2.91286e-15 -7.93247e-07 0 -8.33526e-15 -7.93247e-07 0 -1.27718e-14 -7.93247e-07 0 -1.58639e-14 -7.93247e-07 0 + -1.71635e-14 -7.93247e-07 0 -1.67602e-14 -7.93247e-07 0 -1.4878e-14 -7.93247e-07 0 -1.1517e-14 -7.93247e-07 0 + -7.30456e-15 -7.93247e-07 0 -2.55436e-15 -7.93247e-07 0 2.55436e-15 -7.93247e-07 0 7.34937e-15 -7.93247e-07 0 + 1.15618e-14 -7.93247e-07 0 1.48332e-14 -7.93247e-07 0 1.67602e-14 -7.93247e-07 0 1.71635e-14 -7.93247e-07 0 + 1.58191e-14 -7.93247e-07 0 1.27718e-14 -7.93247e-07 0 8.33526e-15 -7.93247e-07 0 2.91286e-15 -7.93247e-07 0 + -4.0135e-15 -7.93246e-07 0 -1.16392e-14 -7.93246e-07 0 -1.7927e-14 -7.93246e-07 0 -2.19405e-14 -7.93246e-07 0 + -2.35459e-14 -7.93246e-07 0 -2.29662e-14 -7.93246e-07 0 -2.02013e-14 -7.93246e-07 0 -1.55635e-14 -7.93246e-07 0 + -9.81079e-15 -7.93246e-07 0 -3.38918e-15 -7.93246e-07 0 3.38918e-15 -7.93246e-07 0 9.85538e-15 -7.93246e-07 0 + 1.55635e-14 -7.93246e-07 0 2.01121e-14 -7.93246e-07 0 2.29216e-14 -7.93246e-07 0 2.35905e-14 -7.93246e-07 0 + 2.19851e-14 -7.93246e-07 0 1.7927e-14 -7.93246e-07 0 1.16838e-14 -7.93246e-07 0 4.0581e-15 -7.93246e-07 0 + -5.76909e-15 -7.93245e-07 0 -1.65085e-14 -7.93245e-07 0 -2.50734e-14 -7.93245e-07 0 -3.04874e-14 -7.93245e-07 0 + -3.244e-14 -7.93245e-07 0 -3.11531e-14 -7.93245e-07 0 -2.71591e-14 -7.93245e-07 0 -2.09906e-14 -7.93245e-07 0 + -1.31358e-14 -7.93245e-07 0 -4.43776e-15 -7.93245e-07 0 4.43776e-15 -7.93245e-07 0 1.31358e-14 -7.93245e-07 0 + 2.09906e-14 -7.93245e-07 0 2.72035e-14 -7.93245e-07 0 3.11531e-14 -7.93245e-07 0 3.23957e-14 -7.93245e-07 0 + 3.04874e-14 -7.93245e-07 0 2.50734e-14 -7.93245e-07 0 1.65085e-14 -7.93245e-07 0 5.76909e-15 -7.93245e-07 0 + -8.25841e-15 -7.93243e-07 0 -2.34945e-14 -7.93243e-07 0 -3.53301e-14 -7.93243e-07 0 -4.24403e-14 -7.93243e-07 0 + -4.46042e-14 -7.93243e-07 0 -4.22636e-14 -7.93243e-07 0 -3.63458e-14 -7.93243e-07 0 -2.77341e-14 -7.93243e-07 0 + -1.73117e-14 -7.93243e-07 0 -5.91779e-15 -7.93243e-07 0 5.91779e-15 -7.93243e-07 0 1.73117e-14 -7.93243e-07 0 + 2.769e-14 -7.93243e-07 0 3.639e-14 -7.93243e-07 0 4.23078e-14 -7.93243e-07 0 4.45601e-14 -7.93243e-07 0 + 4.23961e-14 -7.93243e-07 0 3.53301e-14 -7.93243e-07 0 2.35387e-14 -7.93243e-07 0 8.25841e-15 -7.93243e-07 0 + -1.20861e-14 -7.93241e-07 0 -3.40169e-14 -7.93241e-07 0 -5.03661e-14 -7.93241e-07 0 -5.93757e-14 -7.93241e-07 0 + -6.11776e-14 -7.93241e-07 0 -5.70024e-14 -7.93241e-07 0 -4.82125e-14 -7.93241e-07 0 -3.63462e-14 -7.93241e-07 0 + -2.25461e-14 -7.93241e-07 0 -7.6472e-15 -7.93241e-07 0 7.6472e-15 -7.93241e-07 0 2.25461e-14 -7.93241e-07 0 + 3.63462e-14 -7.93241e-07 0 4.82125e-14 -7.93241e-07 0 5.70024e-14 -7.93241e-07 0 6.11776e-14 -7.93241e-07 0 + 5.93757e-14 -7.93241e-07 0 5.03661e-14 -7.93241e-07 0 3.40169e-14 -7.93241e-07 0 1.20861e-14 -7.93241e-07 0 + -1.81076e-14 -7.9324e-07 0 -5.02551e-14 -7.9324e-07 0 -7.26927e-14 -7.9324e-07 0 -8.35398e-14 -7.9324e-07 0 + -8.38459e-14 -7.9324e-07 0 -7.62355e-14 -7.9324e-07 0 -6.32453e-14 -7.9324e-07 0 -4.70185e-14 -7.9324e-07 0 + -2.88234e-14 -7.9324e-07 0 -9.66612e-15 -7.9324e-07 0 9.66612e-15 -7.9324e-07 0 2.88234e-14 -7.9324e-07 0 + 4.70185e-14 -7.9324e-07 0 6.32453e-14 -7.9324e-07 0 7.62355e-14 -7.9324e-07 0 8.38459e-14 -7.9324e-07 0 + 8.35398e-14 -7.9324e-07 0 7.26927e-14 -7.9324e-07 0 5.02113e-14 -7.9324e-07 0 1.80638e-14 -7.9324e-07 0 + -2.80324e-14 -7.93238e-07 0 -7.63491e-14 -7.93238e-07 0 -1.06732e-13 -7.93238e-07 0 -1.1818e-13 -7.93238e-07 0 + -1.14524e-13 -7.93238e-07 0 -1.00899e-13 -7.93238e-07 0 -8.17031e-14 -7.93238e-07 0 -5.946e-14 -7.93238e-07 0 + -3.59981e-14 -7.93238e-07 0 -1.20574e-14 -7.93238e-07 0 1.21009e-14 -7.93238e-07 0 3.59981e-14 -7.93238e-07 0 + 5.94165e-14 -7.93238e-07 0 8.1616e-14 -7.93238e-07 0 1.00986e-13 -7.93238e-07 0 1.14567e-13 -7.93238e-07 0 + 1.1818e-13 -7.93238e-07 0 1.06688e-13 -7.93238e-07 0 7.63056e-14 -7.93238e-07 0 2.80759e-14 -7.93238e-07 0 + -4.56168e-14 -7.93236e-07 0 -1.20302e-13 -7.93236e-07 0 -1.59984e-13 -7.93236e-07 0 -1.67998e-13 -7.93236e-07 0 + -1.55132e-13 -7.93236e-07 0 -1.31305e-13 -7.93236e-07 0 -1.02973e-13 -7.93236e-07 0 -7.32988e-14 -7.93236e-07 0 + -4.36673e-14 -7.93236e-07 0 -1.44258e-14 -7.93236e-07 0 1.44691e-14 -7.93236e-07 0 4.3624e-14 -7.93236e-07 0 + 7.32988e-14 -7.93236e-07 0 1.02973e-13 -7.93236e-07 0 1.31305e-13 -7.93236e-07 0 1.55132e-13 -7.93236e-07 0 + 1.67998e-13 -7.93236e-07 0 1.59984e-13 -7.93236e-07 0 1.20302e-13 -7.93236e-07 0 4.56168e-14 -7.93236e-07 0 + -7.98485e-14 -7.93233e-07 0 -1.99449e-13 -7.93234e-07 0 -2.45064e-13 -7.93234e-07 0 -2.3864e-13 -7.93234e-07 0 + -2.06778e-13 -7.93234e-07 0 -1.66423e-13 -7.93234e-07 0 -1.25507e-13 -7.93234e-07 0 -8.68763e-14 -7.93234e-07 0 + -5.09617e-14 -7.93234e-07 0 -1.68148e-14 -7.93234e-07 0 1.67285e-14 -7.93234e-07 0 5.10048e-14 -7.93234e-07 0 + 8.69194e-14 -7.93234e-07 0 1.25507e-13 -7.93234e-07 0 1.66466e-13 -7.93234e-07 0 2.06735e-13 -7.93234e-07 0 + 2.38597e-13 -7.93234e-07 0 2.45107e-13 -7.93234e-07 0 1.99406e-13 -7.93234e-07 0 7.98054e-14 -7.93233e-07 0 + -1.54392e-13 -7.93231e-07 0 -3.5281e-13 -7.93231e-07 0 -3.82418e-13 -7.93232e-07 0 -3.34788e-13 -7.93232e-07 0 + -2.67032e-13 -7.93232e-07 0 -2.02023e-13 -7.93232e-07 0 -1.4581e-13 -7.93232e-07 0 -9.80076e-14 -7.93232e-07 0 + -5.63415e-14 -7.93232e-07 0 -1.84086e-14 -7.93232e-07 0 1.83228e-14 -7.93232e-07 0 5.63844e-14 -7.93232e-07 0 + 9.80505e-14 -7.93232e-07 0 1.4581e-13 -7.93232e-07 0 2.02023e-13 -7.93232e-07 0 2.67032e-13 -7.93232e-07 0 + 3.34788e-13 -7.93232e-07 0 3.82461e-13 -7.93232e-07 0 3.52767e-13 -7.93231e-07 0 1.54306e-13 -7.93231e-07 0 + -3.39656e-13 -7.93229e-07 0 -6.75682e-13 -7.93229e-07 0 -5.97484e-13 -7.9323e-07 0 -4.51252e-13 -7.9323e-07 0 + -3.24495e-13 -7.9323e-07 0 -2.28786e-13 -7.9323e-07 0 -1.57635e-13 -7.9323e-07 0 -1.02883e-13 -7.9323e-07 0 + -5.81255e-14 -7.9323e-07 0 -1.87915e-14 -7.9323e-07 0 1.87915e-14 -7.9323e-07 0 5.81682e-14 -7.9323e-07 0 + 1.02883e-13 -7.9323e-07 0 1.57592e-13 -7.9323e-07 0 2.28786e-13 -7.9323e-07 0 3.24495e-13 -7.9323e-07 0 + 4.51252e-13 -7.9323e-07 0 5.97484e-13 -7.9323e-07 0 6.75682e-13 -7.93229e-07 0 3.39656e-13 -7.93229e-07 0 + -8.69652e-13 -7.93225e-07 0 -1.41476e-12 -7.93228e-07 0 -8.80874e-13 -7.93228e-07 0 -5.48001e-13 -7.93228e-07 0 + -3.50896e-13 -7.93228e-07 0 -2.30941e-13 -7.93228e-07 0 -1.52855e-13 -7.93228e-07 0 -9.75537e-14 -7.93228e-07 0 + -5.45791e-14 -7.93228e-07 0 -1.76404e-14 -7.93228e-07 0 1.75979e-14 -7.93228e-07 0 5.46216e-14 -7.93228e-07 0 + 9.75537e-14 -7.93228e-07 0 1.52855e-13 -7.93228e-07 0 2.30898e-13 -7.93228e-07 0 3.50896e-13 -7.93228e-07 0 + 5.48044e-13 -7.93228e-07 0 8.80916e-13 -7.93228e-07 0 1.41476e-12 -7.93228e-07 0 8.6961e-13 -7.93225e-07 0 + -2.5994e-12 -7.93223e-07 0 -3.23803e-12 -7.93227e-07 0 -9.62378e-13 -7.93227e-07 0 -5.08372e-13 -7.93227e-07 0 + -2.99836e-13 -7.93227e-07 0 -1.90809e-13 -7.93227e-07 0 -1.25231e-13 -7.93227e-07 0 -8.00465e-14 -7.93227e-07 0 + -4.4931e-14 -7.93227e-07 0 -1.45116e-14 -7.93227e-07 0 1.44693e-14 -7.93227e-07 0 4.4931e-14 -7.93227e-07 0 + 8.01311e-14 -7.93227e-07 0 1.25231e-13 -7.93227e-07 0 1.90766e-13 -7.93227e-07 0 2.99794e-13 -7.93227e-07 0 + 5.08372e-13 -7.93227e-07 0 9.62462e-13 -7.93227e-07 0 3.23803e-12 -7.93227e-07 0 2.59935e-12 -7.93223e-07 0 - -6.88318e-14 -0.00067899 0 -2.06495e-13 -0.00067899 0 -3.26951e-13 -0.00067899 0 -4.12991e-13 -0.00067899 0 + -7.45678e-14 -0.00067899 0 -2.12231e-13 -0.00067899 0 -3.21215e-13 -0.00067899 0 -4.07255e-13 -0.00067899 0 -4.53143e-13 -0.00067899 0 -4.47407e-13 -0.00067899 0 -4.07255e-13 -0.00067899 0 -3.21215e-13 -0.00067899 0 -2.00759e-13 -0.00067899 0 -6.88318e-14 -0.00067899 0 6.88318e-14 -0.00067899 0 2.00759e-13 -0.00067899 0 3.21215e-13 -0.00067899 0 4.07255e-13 -0.00067899 0 4.47407e-13 -0.00067899 0 4.53143e-13 -0.00067899 0 - 4.12991e-13 -0.00067899 0 3.26951e-13 -0.00067899 0 2.06495e-13 -0.00067899 0 6.88318e-14 -0.00067899 0 - -2.24486e-13 -0.000678984 0 -6.50433e-13 -0.000678984 0 -1.01306e-12 -0.000678984 0 -1.27209e-12 -0.000678984 0 + 4.07255e-13 -0.00067899 0 3.21215e-13 -0.00067899 0 2.12231e-13 -0.00067899 0 7.45678e-14 -0.00067899 0 + -2.24486e-13 -0.000678984 0 -6.50433e-13 -0.000678984 0 -1.00731e-12 -0.000678984 0 -1.26633e-12 -0.000678984 0 -1.39872e-12 -0.000678984 0 -1.38721e-12 -0.000678984 0 -1.24906e-12 -0.000678984 0 -9.90039e-13 -0.000678984 0 - -6.33165e-13 -0.000678984 0 -2.1873e-13 -0.000678984 0 2.1873e-13 -0.000678984 0 6.33165e-13 -0.000678984 0 + -6.27409e-13 -0.000678984 0 -2.12974e-13 -0.000678984 0 2.12974e-13 -0.000678984 0 6.27409e-13 -0.000678984 0 9.90039e-13 -0.000678984 0 1.24906e-12 -0.000678984 0 1.38721e-12 -0.000678984 0 1.39872e-12 -0.000678984 0 - 1.27209e-12 -0.000678984 0 1.01306e-12 -0.000678984 0 6.50433e-13 -0.000678984 0 2.24486e-13 -0.000678984 0 - -3.98546e-13 -0.000678978 0 -1.16098e-12 -0.000678978 0 -1.80212e-12 -0.000678978 0 -2.25265e-12 -0.000678978 0 - -2.48369e-12 -0.000678978 0 -2.46636e-12 -0.000678978 0 -2.21222e-12 -0.000678978 0 -1.75014e-12 -0.000678978 0 + 1.26633e-12 -0.000678984 0 1.00731e-12 -0.000678984 0 6.50433e-13 -0.000678984 0 2.24486e-13 -0.000678984 0 + -3.98546e-13 -0.000678978 0 -1.15521e-12 -0.000678978 0 -1.79634e-12 -0.000678978 0 -2.25265e-12 -0.000678978 0 + -2.47791e-12 -0.000678978 0 -2.46636e-12 -0.000678978 0 -2.21222e-12 -0.000678978 0 -1.74436e-12 -0.000678978 0 -1.12055e-12 -0.000678978 0 -3.86994e-13 -0.000678978 0 3.86994e-13 -0.000678978 0 1.12055e-12 -0.000678978 0 - 1.75014e-12 -0.000678978 0 2.21222e-12 -0.000678978 0 2.46636e-12 -0.000678978 0 2.48369e-12 -0.000678978 0 - 2.25265e-12 -0.000678978 0 1.80212e-12 -0.000678978 0 1.16098e-12 -0.000678978 0 3.98546e-13 -0.000678978 0 - -6.20165e-13 -0.000678972 0 -1.78515e-12 -0.000678972 0 -2.76466e-12 -0.000678972 0 -3.46597e-12 -0.000678972 0 - -3.81372e-12 -0.000678972 0 -3.78474e-12 -0.000678972 0 -3.39062e-12 -0.000678972 0 -2.67192e-12 -0.000678972 0 - -1.7098e-12 -0.000678972 0 -5.91185e-13 -0.000678972 0 5.91185e-13 -0.000678972 0 1.7098e-12 -0.000678972 0 - 2.67192e-12 -0.000678972 0 3.39062e-12 -0.000678972 0 3.78474e-12 -0.000678972 0 3.81372e-12 -0.000678972 0 - 3.46597e-12 -0.000678972 0 2.76466e-12 -0.000678972 0 1.78515e-12 -0.000678972 0 6.20165e-13 -0.000678972 0 - -9.01443e-13 -0.000678966 0 -2.59964e-12 -0.000678966 0 -4.01869e-12 -0.000678966 0 -5.02482e-12 -0.000678966 0 - -5.51334e-12 -0.000678966 0 -5.461e-12 -0.000678966 0 -4.88524e-12 -0.000678966 0 -3.85003e-12 -0.000678966 0 - -2.46007e-12 -0.000678966 0 -8.43285e-13 -0.000678966 0 8.43285e-13 -0.000678966 0 2.46007e-12 -0.000678966 0 - 3.85003e-12 -0.000678966 0 4.88524e-12 -0.000678966 0 5.461e-12 -0.000678966 0 5.51334e-12 -0.000678966 0 - 5.02482e-12 -0.000678966 0 4.01869e-12 -0.000678966 0 2.59964e-12 -0.000678966 0 9.01443e-13 -0.000678966 0 - -1.27214e-12 -0.000678961 0 -3.68221e-12 -0.000678961 0 -5.68962e-12 -0.000678961 0 -7.09015e-12 -0.000678961 0 - -7.76707e-12 -0.000678961 0 -7.66786e-12 -0.000678961 0 -6.83922e-12 -0.000678961 0 -5.37451e-12 -0.000678961 0 - -3.41961e-12 -0.000678961 0 -1.17294e-12 -0.000678961 0 1.17294e-12 -0.000678961 0 3.41961e-12 -0.000678961 0 - 5.37451e-12 -0.000678961 0 6.83922e-12 -0.000678961 0 7.66786e-12 -0.000678961 0 7.76707e-12 -0.000678961 0 - 7.09015e-12 -0.000678961 0 5.68962e-12 -0.000678961 0 3.68221e-12 -0.000678961 0 1.27214e-12 -0.000678961 0 - -1.79169e-12 -0.000678955 0 -5.16428e-12 -0.000678955 0 -7.9572e-12 -0.000678955 0 -9.88941e-12 -0.000678955 0 - -1.07853e-11 -0.000678955 0 -1.06096e-11 -0.000678955 0 -9.421e-12 -0.000678955 0 -7.37168e-12 -0.000678955 0 + 1.74436e-12 -0.000678978 0 2.21222e-12 -0.000678978 0 2.46636e-12 -0.000678978 0 2.47791e-12 -0.000678978 0 + 2.25265e-12 -0.000678978 0 1.79634e-12 -0.000678978 0 1.15521e-12 -0.000678978 0 3.98546e-13 -0.000678978 0 + -6.14369e-13 -0.000678972 0 -1.77935e-12 -0.000678972 0 -2.76466e-12 -0.000678972 0 -3.46017e-12 -0.000678972 0 + -3.80793e-12 -0.000678972 0 -3.77895e-12 -0.000678972 0 -3.38482e-12 -0.000678972 0 -2.67192e-12 -0.000678972 0 + -1.704e-12 -0.000678972 0 -5.85389e-13 -0.000678972 0 5.85389e-13 -0.000678972 0 1.704e-12 -0.000678972 0 + 2.67192e-12 -0.000678972 0 3.38482e-12 -0.000678972 0 3.77895e-12 -0.000678972 0 3.80793e-12 -0.000678972 0 + 3.46017e-12 -0.000678972 0 2.76466e-12 -0.000678972 0 1.77935e-12 -0.000678972 0 6.14369e-13 -0.000678972 0 + -8.95627e-13 -0.000678966 0 -2.59383e-12 -0.000678966 0 -4.01869e-12 -0.000678966 0 -5.019e-12 -0.000678966 0 + -5.50752e-12 -0.000678966 0 -5.45518e-12 -0.000678966 0 -4.87942e-12 -0.000678966 0 -3.84422e-12 -0.000678966 0 + -2.45425e-12 -0.000678966 0 -8.43285e-13 -0.000678966 0 8.43285e-13 -0.000678966 0 2.45425e-12 -0.000678966 0 + 3.84422e-12 -0.000678966 0 4.87942e-12 -0.000678966 0 5.45518e-12 -0.000678966 0 5.50752e-12 -0.000678966 0 + 5.019e-12 -0.000678966 0 4.01869e-12 -0.000678966 0 2.59383e-12 -0.000678966 0 8.95627e-13 -0.000678966 0 + -1.27214e-12 -0.000678961 0 -3.67637e-12 -0.000678961 0 -5.67795e-12 -0.000678961 0 -7.08431e-12 -0.000678961 0 + -7.76123e-12 -0.000678961 0 -7.65619e-12 -0.000678961 0 -6.82755e-12 -0.000678961 0 -5.36284e-12 -0.000678961 0 + -3.41961e-12 -0.000678961 0 -1.17877e-12 -0.000678961 0 1.17877e-12 -0.000678961 0 3.41961e-12 -0.000678961 0 + 5.36284e-12 -0.000678961 0 6.82755e-12 -0.000678961 0 7.65619e-12 -0.000678961 0 7.76123e-12 -0.000678961 0 + 7.08431e-12 -0.000678961 0 5.67795e-12 -0.000678961 0 3.67637e-12 -0.000678961 0 1.27214e-12 -0.000678961 0 + -1.78583e-12 -0.000678955 0 -5.15842e-12 -0.000678955 0 -7.95135e-12 -0.000678955 0 -9.8777e-12 -0.000678955 0 + -1.07735e-11 -0.000678955 0 -1.0592e-11 -0.000678955 0 -9.40343e-12 -0.000678955 0 -7.36583e-12 -0.000678955 0 -4.69001e-12 -0.000678955 0 -1.61018e-12 -0.000678955 0 1.61018e-12 -0.000678955 0 4.69001e-12 -0.000678955 0 - 7.37168e-12 -0.000678955 0 9.421e-12 -0.000678955 0 1.06096e-11 -0.000678955 0 1.07853e-11 -0.000678955 0 - 9.88941e-12 -0.000678955 0 7.9572e-12 -0.000678955 0 5.16428e-12 -0.000678955 0 1.79169e-12 -0.000678955 0 - -2.50854e-12 -0.000678949 0 -7.22599e-12 -0.000678949 0 -1.10975e-11 -0.000678949 0 -1.37176e-11 -0.000678949 0 - -1.4875e-11 -0.000678949 0 -1.4546e-11 -0.000678949 0 -1.2854e-11 -0.000678949 0 -1.00224e-11 -0.000678949 0 - -6.35065e-12 -0.000678949 0 -2.17367e-12 -0.000678949 0 2.17367e-12 -0.000678949 0 6.35065e-12 -0.000678949 0 - 1.00224e-11 -0.000678949 0 1.2854e-11 -0.000678949 0 1.4546e-11 -0.000678949 0 1.4875e-11 -0.000678949 0 - 1.37176e-11 -0.000678949 0 1.10975e-11 -0.000678949 0 7.22599e-12 -0.000678949 0 2.50854e-12 -0.000678949 0 - -3.53069e-12 -0.000678944 0 -1.01323e-11 -0.000678944 0 -1.54785e-11 -0.000678944 0 -1.90033e-11 -0.000678944 0 - -2.04474e-11 -0.000678944 0 -1.98462e-11 -0.000678944 0 -1.74177e-11 -0.000678944 0 -1.35098e-11 -0.000678944 0 - -8.52907e-12 -0.000678944 0 -2.91179e-12 -0.000678944 0 2.91179e-12 -0.000678944 0 8.52907e-12 -0.000678944 0 - 1.35098e-11 -0.000678944 0 1.74177e-11 -0.000678944 0 1.98462e-11 -0.000678944 0 2.04474e-11 -0.000678944 0 - 1.90033e-11 -0.000678944 0 1.54785e-11 -0.000678944 0 1.01323e-11 -0.000678944 0 3.53069e-12 -0.000678944 0 - -4.99713e-12 -0.000678938 0 -1.42936e-11 -0.000678938 0 -2.1674e-11 -0.000678938 0 -2.63577e-11 -0.000678938 0 - -2.80726e-11 -0.000678938 0 -2.69668e-11 -0.000678938 0 -2.34481e-11 -0.000678938 0 -1.80547e-11 -0.000678938 0 - -1.13485e-11 -0.000678938 0 -3.8676e-12 -0.000678938 0 3.8676e-12 -0.000678938 0 1.13485e-11 -0.000678938 0 - 1.80547e-11 -0.000678938 0 2.34481e-11 -0.000678938 0 2.69668e-11 -0.000678938 0 2.80726e-11 -0.000678938 0 - 2.63577e-11 -0.000678938 0 2.1674e-11 -0.000678938 0 1.42936e-11 -0.000678938 0 4.99713e-12 -0.000678938 0 - -7.1613e-12 -0.000678932 0 -2.03685e-11 -0.000678932 0 -3.05557e-11 -0.000678932 0 -3.66668e-11 -0.000678932 0 - -3.8512e-11 -0.000678932 0 -3.64888e-11 -0.000678932 0 -3.13507e-11 -0.000678932 0 -2.39165e-11 -0.000678932 0 - -1.49278e-11 -0.000678932 0 -5.0669e-12 -0.000678932 0 5.0669e-12 -0.000678932 0 1.49278e-11 -0.000678932 0 - 2.39165e-11 -0.000678932 0 3.13507e-11 -0.000678932 0 3.64888e-11 -0.000678932 0 3.8512e-11 -0.000678932 0 - 3.66668e-11 -0.000678932 0 3.05557e-11 -0.000678932 0 2.03685e-11 -0.000678932 0 7.1613e-12 -0.000678932 0 - -1.04465e-11 -0.000678927 0 -2.94408e-11 -0.000678927 0 -4.35005e-11 -0.000678927 0 -5.12446e-11 -0.000678927 0 - -5.27863e-11 -0.000678927 0 -4.91196e-11 -0.000678927 0 -4.1554e-11 -0.000678927 0 -3.13099e-11 -0.000678927 0 - -1.93871e-11 -0.000678927 0 -6.55959e-12 -0.000678927 0 6.55959e-12 -0.000678927 0 1.93871e-11 -0.000678927 0 - 3.13099e-11 -0.000678927 0 4.1554e-11 -0.000678927 0 4.91196e-11 -0.000678927 0 5.27863e-11 -0.000678927 0 - 5.12446e-11 -0.000678927 0 4.35005e-11 -0.000678927 0 2.94408e-11 -0.000678927 0 1.04465e-11 -0.000678927 0 - -1.56099e-11 -0.000678921 0 -4.342e-11 -0.000678921 0 -6.27563e-11 -0.000678921 0 -7.20124e-11 -0.000678921 0 - -7.22393e-11 -0.000678921 0 -6.56406e-11 -0.000678921 0 -5.44318e-11 -0.000678921 0 -4.03804e-11 -0.000678921 0 - -2.47406e-11 -0.000678921 0 -8.32451e-12 -0.000678921 0 8.32451e-12 -0.000678921 0 2.47406e-11 -0.000678921 0 - 4.03804e-11 -0.000678921 0 5.44318e-11 -0.000678921 0 6.56406e-11 -0.000678921 0 7.22393e-11 -0.000678921 0 - 7.20124e-11 -0.000678921 0 6.27563e-11 -0.000678921 0 4.342e-11 -0.000678921 0 1.56099e-11 -0.000678921 0 - -2.4167e-11 -0.000678915 0 -6.58571e-11 -0.000678915 0 -9.2055e-11 -0.000678915 0 -1.01766e-10 -0.000678915 0 - -9.85191e-11 -0.000678915 0 -8.67531e-11 -0.000678915 0 -7.01226e-11 -0.000678916 0 -5.10418e-11 -0.000678916 0 - -3.08827e-11 -0.000678916 0 -1.03282e-11 -0.000678916 0 1.03282e-11 -0.000678916 0 3.08827e-11 -0.000678916 0 - 5.10418e-11 -0.000678916 0 7.01226e-11 -0.000678916 0 8.67531e-11 -0.000678915 0 9.85191e-11 -0.000678915 0 - 1.01766e-10 -0.000678915 0 9.2055e-11 -0.000678915 0 6.58571e-11 -0.000678915 0 2.4167e-11 -0.000678915 0 - -3.93589e-11 -0.00067891 0 -1.03725e-10 -0.00067891 0 -1.37783e-10 -0.00067891 0 -1.44454e-10 -0.00067891 0 - -1.3327e-10 -0.00067891 0 -1.12728e-10 -0.00067891 0 -8.82735e-11 -0.00067891 0 -6.27735e-11 -0.00067891 0 - -3.74056e-11 -0.00067891 0 -1.24105e-11 -0.00067891 0 1.24105e-11 -0.00067891 0 3.74056e-11 -0.00067891 0 - 6.27735e-11 -0.00067891 0 8.82735e-11 -0.00067891 0 1.12728e-10 -0.00067891 0 1.3327e-10 -0.00067891 0 - 1.44454e-10 -0.00067891 0 1.37783e-10 -0.00067891 0 1.03725e-10 -0.00067891 0 3.93589e-11 -0.00067891 0 - -6.88683e-11 -0.000678904 0 -1.71818e-10 -0.000678904 0 -2.10801e-10 -0.000678904 0 -2.04941e-10 -0.000678904 0 - -1.77365e-10 -0.000678904 0 -1.42584e-10 -0.000678904 0 -1.07459e-10 -0.000678904 0 -7.43787e-11 -0.000678904 0 - -4.35649e-11 -0.000678904 0 -1.43368e-11 -0.000678904 0 1.43368e-11 -0.000678904 0 4.35649e-11 -0.000678904 0 - 7.43787e-11 -0.000678904 0 1.07459e-10 -0.000678904 0 1.42584e-10 -0.000678904 0 1.77365e-10 -0.000678904 0 - 2.04941e-10 -0.000678904 0 2.10801e-10 -0.000678904 0 1.71818e-10 -0.000678904 0 6.88683e-11 -0.000678904 0 - -1.33059e-10 -0.000678898 0 -3.03681e-10 -0.000678899 0 -3.28513e-10 -0.000678899 0 -2.87073e-10 -0.000678899 0 - -2.28645e-10 -0.000678899 0 -1.72793e-10 -0.000678899 0 -1.24604e-10 -0.000678899 0 -8.37143e-11 -0.000678899 0 - -4.8153e-11 -0.000678899 0 -1.57123e-11 -0.000678899 0 1.57123e-11 -0.000678899 0 4.8153e-11 -0.000678899 0 - 8.37143e-11 -0.000678899 0 1.24604e-10 -0.000678899 0 1.72793e-10 -0.000678899 0 2.28645e-10 -0.000678899 0 - 2.87073e-10 -0.000678899 0 3.28513e-10 -0.000678899 0 3.03681e-10 -0.000678899 0 1.33059e-10 -0.000678898 0 - -2.92434e-10 -0.000678892 0 -5.80875e-10 -0.000678893 0 -5.12297e-10 -0.000678893 0 -3.86152e-10 -0.000678893 0 - -2.77358e-10 -0.000678893 0 -1.95354e-10 -0.000678893 0 -1.34487e-10 -0.000678893 0 -8.77428e-11 -0.000678893 0 - -4.96075e-11 -0.000678893 0 -1.60586e-11 -0.000678893 0 1.60586e-11 -0.000678893 0 4.96075e-11 -0.000678893 0 - 8.77428e-11 -0.000678893 0 1.34487e-10 -0.000678893 0 1.95354e-10 -0.000678893 0 2.77358e-10 -0.000678893 0 - 3.86152e-10 -0.000678893 0 5.12297e-10 -0.000678893 0 5.80875e-10 -0.000678893 0 2.92434e-10 -0.000678892 0 - -7.47324e-10 -0.000678886 0 -1.21398e-09 -0.000678888 0 -7.53482e-10 -0.000678888 0 -4.67938e-10 -0.000678888 0 - -2.9934e-10 -0.000678888 0 -1.9686e-10 -0.000678888 0 -1.30291e-10 -0.000678888 0 -8.31766e-11 -0.000678888 0 - -4.65115e-11 -0.000678888 0 -1.49886e-11 -0.000678888 0 1.49886e-11 -0.000678888 0 4.65115e-11 -0.000678888 0 - 8.31766e-11 -0.000678888 0 1.30291e-10 -0.000678888 0 1.9686e-10 -0.000678888 0 2.9934e-10 -0.000678888 0 - 4.67938e-10 -0.000678888 0 7.53482e-10 -0.000678888 0 1.21398e-09 -0.000678888 0 7.47324e-10 -0.000678886 0 - -2.22707e-09 -0.000678882 0 -2.77142e-09 -0.000678885 0 -8.20236e-10 -0.000678885 0 -4.33143e-10 -0.000678885 0 - -2.55419e-10 -0.000678885 0 -1.62555e-10 -0.000678885 0 -1.06696e-10 -0.000678885 0 -6.82085e-11 -0.000678885 0 - -3.82795e-11 -0.000678885 0 -1.23671e-11 -0.000678885 0 1.23671e-11 -0.000678885 0 3.82795e-11 -0.000678885 0 - 6.82085e-11 -0.000678885 0 1.06696e-10 -0.000678885 0 1.62555e-10 -0.000678885 0 2.55419e-10 -0.000678885 0 - 4.33143e-10 -0.000678885 0 8.20236e-10 -0.000678885 0 2.77142e-09 -0.000678885 0 2.22707e-09 -0.000678882 0 + 7.36583e-12 -0.000678955 0 9.40343e-12 -0.000678955 0 1.0592e-11 -0.000678955 0 1.07735e-11 -0.000678955 0 + 9.8777e-12 -0.000678955 0 7.95135e-12 -0.000678955 0 5.15842e-12 -0.000678955 0 1.78583e-12 -0.000678955 0 + -2.50854e-12 -0.000678949 0 -7.22012e-12 -0.000678949 0 -1.10799e-11 -0.000678949 0 -1.37e-11 -0.000678949 0 + -1.48573e-11 -0.000678949 0 -1.45225e-11 -0.000678949 0 -1.28364e-11 -0.000678949 0 -1.00106e-11 -0.000678949 0 + -6.34477e-12 -0.000678949 0 -2.17367e-12 -0.000678949 0 2.17367e-12 -0.000678949 0 6.34477e-12 -0.000678949 0 + 1.00106e-11 -0.000678949 0 1.28364e-11 -0.000678949 0 1.45225e-11 -0.000678949 0 1.48573e-11 -0.000678949 0 + 1.37e-11 -0.000678949 0 1.10799e-11 -0.000678949 0 7.22012e-12 -0.000678949 0 2.50854e-12 -0.000678949 0 + -3.51891e-12 -0.000678944 0 -1.01146e-11 -0.000678944 0 -1.54608e-11 -0.000678944 0 -1.89797e-11 -0.000678944 0 + -2.04238e-11 -0.000678944 0 -1.98226e-11 -0.000678944 0 -1.73941e-11 -0.000678944 0 -1.34862e-11 -0.000678944 0 + -8.51729e-12 -0.000678944 0 -2.91179e-12 -0.000678944 0 2.91179e-12 -0.000678944 0 8.51729e-12 -0.000678944 0 + 1.34862e-11 -0.000678944 0 1.73941e-11 -0.000678944 0 1.98226e-11 -0.000678944 0 2.04238e-11 -0.000678944 0 + 1.89797e-11 -0.000678944 0 1.54608e-11 -0.000678944 0 1.01146e-11 -0.000678944 0 3.51891e-12 -0.000678944 0 + -4.99122e-12 -0.000678938 0 -1.42758e-11 -0.000678938 0 -2.16444e-11 -0.000678938 0 -2.63222e-11 -0.000678938 0 + -2.80372e-11 -0.000678938 0 -2.69313e-11 -0.000678938 0 -2.34185e-11 -0.000678938 0 -1.8037e-11 -0.000678938 0 + -1.13367e-11 -0.000678938 0 -3.86169e-12 -0.000678938 0 3.86169e-12 -0.000678938 0 1.13367e-11 -0.000678938 0 + 1.8037e-11 -0.000678938 0 2.34185e-11 -0.000678938 0 2.69313e-11 -0.000678938 0 2.80372e-11 -0.000678938 0 + 2.63222e-11 -0.000678938 0 2.16444e-11 -0.000678938 0 1.42758e-11 -0.000678938 0 4.99122e-12 -0.000678938 0 + -7.15537e-12 -0.000678932 0 -2.03388e-11 -0.000678932 0 -3.05141e-11 -0.000678932 0 -3.66193e-11 -0.000678932 0 + -3.84586e-11 -0.000678932 0 -3.64473e-11 -0.000678932 0 -3.13151e-11 -0.000678932 0 -2.38809e-11 -0.000678932 0 + -1.491e-11 -0.000678932 0 -5.0669e-12 -0.000678932 0 5.0669e-12 -0.000678932 0 1.491e-11 -0.000678932 0 + 2.38809e-11 -0.000678932 0 3.13151e-11 -0.000678932 0 3.64473e-11 -0.000678932 0 3.84586e-11 -0.000678932 0 + 3.66193e-11 -0.000678932 0 3.05141e-11 -0.000678932 0 2.03388e-11 -0.000678932 0 7.15537e-12 -0.000678932 0 + -1.04287e-11 -0.000678927 0 -2.93932e-11 -0.000678927 0 -4.34409e-11 -0.000678927 0 -5.11791e-11 -0.000678927 0 + -5.27208e-11 -0.000678927 0 -4.906e-11 -0.000678927 0 -4.15004e-11 -0.000678927 0 -3.12741e-11 -0.000678927 0 + -1.93633e-11 -0.000678927 0 -6.54769e-12 -0.000678927 0 6.54769e-12 -0.000678927 0 1.93633e-11 -0.000678927 0 + 3.12741e-11 -0.000678927 0 4.15004e-11 -0.000678927 0 4.906e-11 -0.000678927 0 5.27208e-11 -0.000678927 0 + 5.11791e-11 -0.000678927 0 4.34409e-11 -0.000678927 0 2.93932e-11 -0.000678927 0 1.04287e-11 -0.000678927 0 + -1.55861e-11 -0.000678921 0 -4.33543e-11 -0.000678921 0 -6.26667e-11 -0.000678921 0 -7.19168e-11 -0.000678921 0 + -7.21497e-11 -0.000678921 0 -6.5557e-11 -0.000678921 0 -5.43601e-11 -0.000678921 0 -4.03386e-11 -0.000678921 0 + -2.47167e-11 -0.000678921 0 -8.31257e-12 -0.000678921 0 8.31257e-12 -0.000678921 0 2.47167e-11 -0.000678921 0 + 4.03386e-11 -0.000678921 0 5.43601e-11 -0.000678921 0 6.5557e-11 -0.000678921 0 7.21497e-11 -0.000678921 0 + 7.19168e-11 -0.000678921 0 6.26667e-11 -0.000678921 0 4.33543e-11 -0.000678921 0 1.55861e-11 -0.000678921 0 + -2.4137e-11 -0.000678915 0 -6.57553e-11 -0.000678915 0 -9.19172e-11 -0.000678915 0 -1.01634e-10 -0.000678915 0 + -9.83933e-11 -0.000678915 0 -8.66513e-11 -0.000678915 0 -7.00447e-11 -0.000678916 0 -5.09819e-11 -0.000678916 0 + -3.08468e-11 -0.000678916 0 -1.03162e-11 -0.000678916 0 1.03162e-11 -0.000678916 0 3.08468e-11 -0.000678916 0 + 5.09819e-11 -0.000678916 0 7.00447e-11 -0.000678916 0 8.66513e-11 -0.000678915 0 9.83933e-11 -0.000678915 0 + 1.01634e-10 -0.000678915 0 9.19172e-11 -0.000678915 0 6.57553e-11 -0.000678915 0 2.4137e-11 -0.000678915 0 + -3.92988e-11 -0.00067891 0 -1.03563e-10 -0.00067891 0 -1.37573e-10 -0.00067891 0 -1.44262e-10 -0.00067891 0 + -1.33107e-10 -0.00067891 0 -1.1259e-10 -0.00067891 0 -8.81773e-11 -0.00067891 0 -6.27134e-11 -0.00067891 0 + -3.73696e-11 -0.00067891 0 -1.23984e-11 -0.00067891 0 1.23984e-11 -0.00067891 0 3.73696e-11 -0.00067891 0 + 6.27134e-11 -0.00067891 0 8.81773e-11 -0.00067891 0 1.1259e-10 -0.00067891 0 1.33107e-10 -0.00067891 0 + 1.44262e-10 -0.00067891 0 1.37573e-10 -0.00067891 0 1.03563e-10 -0.00067891 0 3.92988e-11 -0.00067891 0 + -6.87417e-11 -0.000678904 0 -1.71529e-10 -0.000678904 0 -2.10481e-10 -0.000678904 0 -2.04663e-10 -0.000678904 0 + -1.77148e-10 -0.000678904 0 -1.42427e-10 -0.000678904 0 -1.07351e-10 -0.000678904 0 -7.43063e-11 -0.000678904 0 + -4.35287e-11 -0.000678904 0 -1.43247e-11 -0.000678904 0 1.43247e-11 -0.000678904 0 4.35287e-11 -0.000678904 0 + 7.43063e-11 -0.000678904 0 1.07351e-10 -0.000678904 0 1.42427e-10 -0.000678904 0 1.77148e-10 -0.000678904 0 + 2.04663e-10 -0.000678904 0 2.10481e-10 -0.000678904 0 1.71529e-10 -0.000678904 0 6.87417e-11 -0.000678904 0 + -1.3278e-10 -0.000678898 0 -3.03118e-10 -0.000678899 0 -3.28005e-10 -0.000678899 0 -2.86698e-10 -0.000678899 0 + -2.28391e-10 -0.000678899 0 -1.72624e-10 -0.000678899 0 -1.24495e-10 -0.000678899 0 -8.36478e-11 -0.000678899 0 + -4.81106e-11 -0.000678899 0 -1.56942e-11 -0.000678899 0 1.56942e-11 -0.000678899 0 4.81106e-11 -0.000678899 0 + 8.36478e-11 -0.000678899 0 1.24495e-10 -0.000678899 0 1.72624e-10 -0.000678899 0 2.28391e-10 -0.000678899 0 + 2.86698e-10 -0.000678899 0 3.28005e-10 -0.000678899 0 3.03118e-10 -0.000678899 0 1.3278e-10 -0.000678898 0 + -2.91748e-10 -0.000678892 0 -5.79698e-10 -0.000678893 0 -5.11521e-10 -0.000678893 0 -3.85697e-10 -0.000678893 0 + -2.77085e-10 -0.000678893 0 -1.95196e-10 -0.000678893 0 -1.34396e-10 -0.000678893 0 -8.76882e-11 -0.000678893 0 + -4.95771e-11 -0.000678893 0 -1.60464e-11 -0.000678893 0 1.60464e-11 -0.000678893 0 4.95771e-11 -0.000678893 0 + 8.76882e-11 -0.000678893 0 1.34396e-10 -0.000678893 0 1.95196e-10 -0.000678893 0 2.77085e-10 -0.000678893 0 + 3.85697e-10 -0.000678893 0 5.11521e-10 -0.000678893 0 5.79698e-10 -0.000678893 0 2.91748e-10 -0.000678892 0 + -7.45334e-10 -0.000678886 0 -1.2113e-09 -0.000678888 0 -7.52515e-10 -0.000678888 0 -4.67537e-10 -0.000678888 0 + -2.99145e-10 -0.000678888 0 -1.96756e-10 -0.000678888 0 -1.30236e-10 -0.000678888 0 -8.31462e-11 -0.000678888 0 + -4.64932e-11 -0.000678888 0 -1.49825e-11 -0.000678888 0 1.49825e-11 -0.000678888 0 4.64932e-11 -0.000678888 0 + 8.31462e-11 -0.000678888 0 1.30236e-10 -0.000678888 0 1.96756e-10 -0.000678888 0 2.99145e-10 -0.000678888 0 + 4.67537e-10 -0.000678888 0 7.52515e-10 -0.000678888 0 1.2113e-09 -0.000678888 0 7.45334e-10 -0.000678886 0 + -2.22048e-09 -0.000678882 0 -2.76484e-09 -0.000678885 0 -8.20236e-10 -0.000678885 0 -4.33143e-10 -0.000678885 0 + -2.55419e-10 -0.000678885 0 -1.62555e-10 -0.000678885 0 -1.06696e-10 -0.000678885 0 -6.82146e-11 -0.000678885 0 + -3.82795e-11 -0.000678885 0 -1.2361e-11 -0.000678885 0 1.2361e-11 -0.000678885 0 3.82795e-11 -0.000678885 0 + 6.82146e-11 -0.000678885 0 1.06696e-10 -0.000678885 0 1.62555e-10 -0.000678885 0 2.55419e-10 -0.000678885 0 + 4.33143e-10 -0.000678885 0 8.20236e-10 -0.000678885 0 2.76484e-09 -0.000678885 0 2.22048e-09 -0.000678882 0 0 0 0 0 0 0 0 0 0 0 0 0 -- GitLab