From 3599227864d2cea16ab5059b8c46b3614f680863 Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Mon, 5 Aug 2024 20:28:34 -0400 Subject: [PATCH 01/15] first order BurgersOutflow (all Neumann) --- .../pressiodemoapps/advection_diffusion2d.hpp | 97 +- .../advection_diffusion_2d_flux_mixin.hpp | 47 +- ...tion_diffusion_2d_ghost_filler_neumann.hpp | 266 ++++++ .../advection_diffusion_2d_prob_class.hpp | 849 +++++++++++++++--- .../impl/swe_2d_prob_class.hpp | 3 +- 5 files changed, 1122 insertions(+), 140 deletions(-) create mode 100644 include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_neumann.hpp diff --git a/include/pressiodemoapps/advection_diffusion2d.hpp b/include/pressiodemoapps/advection_diffusion2d.hpp index c7481f3e..38640db3 100644 --- a/include/pressiodemoapps/advection_diffusion2d.hpp +++ b/include/pressiodemoapps/advection_diffusion2d.hpp @@ -53,6 +53,7 @@ #include "./container_fncs/all.hpp" #include "./mesh.hpp" #include "./schemes_info.hpp" +#include "./impl/custom_bc_holder.hpp" #include "./adapter_cpp.hpp" #include "./adapter_py.hpp" @@ -62,7 +63,8 @@ namespace pressiodemoapps{ // enums identifying the problems // ---------------------------------------------------------- enum class AdvectionDiffusion2d{ - BurgersPeriodic + BurgersPeriodic, + BurgersOutflow }; }//end namespace pressiodemoapps @@ -93,7 +95,8 @@ create_problem_eigen { using scalar_t = typename mesh_t::scalar_t; - if (problemEnum == ::pressiodemoapps::AdvectionDiffusion2d::BurgersPeriodic) + if (problemEnum == ::pressiodemoapps::AdvectionDiffusion2d::BurgersPeriodic || + problemEnum == ::pressiodemoapps::AdvectionDiffusion2d::BurgersOutflow) { // default parameters const auto icPulseMagnitude = static_cast(0.5); @@ -102,8 +105,8 @@ create_problem_eigen const auto icCenterX = static_cast(0.0); const auto icCenterY = static_cast(-0.2); - return RetType(impladvdiff2d::TagBurgersPeriodic{}, - meshObj, + return RetType(meshObj, + problemEnum, inviscidFluxRecEnum, InviscidFluxScheme::Rusanov, viscFluxRecEnum, @@ -131,6 +134,7 @@ create_periodic_burgers_2d_problem_ov1_for_py create_periodic_burgers_2d_problem_eigen #endif (const mesh_t & meshObj, + AdvectionDiffusion2d problemEnum, InviscidFluxReconstruction inviscidFluxRecEnum, ViscousFluxReconstruction viscFluxRecEnum, typename mesh_t::scalar_t icPulseMagnitude, @@ -140,8 +144,8 @@ create_periodic_burgers_2d_problem_eigen typename mesh_t::scalar_t icCenterY) { - return RetType(impladvdiff2d::TagBurgersPeriodic{}, - meshObj, + return RetType(meshObj, + problemEnum, inviscidFluxRecEnum, InviscidFluxScheme::Rusanov, viscFluxRecEnum, @@ -149,5 +153,86 @@ create_periodic_burgers_2d_problem_eigen icCenterX, icCenterY); } +// +// custom BCs +// + +// #if !defined PRESSIODEMOAPPS_ENABLE_BINDINGS +// template +// auto create_problem_eigen +// (const mesh_t & meshObj, +// AdvectionDiffusion2d problemEnum, +// InviscidFluxReconstruction inviscidFluxRecEnum, +// ViscousFluxReconstruction viscFluxRecEnum, +// BCsFuncL && BCsLeft, +// BCsFuncF && BCsFront, +// BCsFuncR && BCsRight, +// BCsFuncB && BCsBack) +// { + +// using scalar_t = typename mesh_t::scalar_t; +// using BCFunctorsHolderType = impl::CustomBCsHolder; +// BCFunctorsHolderType bcFuncs(std::forward(BCsLeft), +// std::forward(BCsFront), +// std::forward(BCsRight), +// std::forward(BCsBack)); + +// // default parameters +// const auto icPulseMagnitude = static_cast(0.5); +// const auto icSpread = static_cast(0.15); +// const auto diffusion = static_cast(0.00001); +// const auto icCenterX = static_cast(0.0); +// const auto icCenterY = static_cast(-0.2); + +// using return_type = PublicProblemEigenMixinCpp>; +// return return_type(meshObj, +// problemEnum, +// inviscidFluxRecEnum, +// InviscidFluxScheme::Rusanov, +// viscFluxRecEnum, +// icPulseMagnitude, icSpread, diffusion, +// icCenterX, icCenterY, +// std::move(bcFuncs)); + +// } +// #endif + +// #if !defined PRESSIODEMOAPPS_ENABLE_BINDINGS +// template +// auto create_periodic_burgers_2d_problem_eigen +// (const mesh_t & meshObj, +// AdvectionDiffusion2d problemEnum, +// InviscidFluxReconstruction inviscidFluxRecEnum, +// ViscousFluxReconstruction viscFluxRecEnum, +// typename mesh_t::scalar_t icPulseMagnitude, +// typename mesh_t::scalar_t icSpread, +// typename mesh_t::scalar_t diffusion, +// typename mesh_t::scalar_t icCenterX, +// typename mesh_t::scalar_t icCenterY, +// BCsFuncL && BCsLeft, +// BCsFuncF && BCsFront, +// BCsFuncR && BCsRight, +// BCsFuncB && BCsBack +// ) +// { + +// using BCFunctorsHolderType = impl::CustomBCsHolder; +// BCFunctorsHolderType bcFuncs(std::forward(BCsLeft), +// std::forward(BCsFront), +// std::forward(BCsRight), +// std::forward(BCsBack)); + +// using return_type = PublicProblemEigenMixinCpp>; +// return return_type(meshObj, +// problemEnum, +// inviscidFluxRecEnum, +// InviscidFluxScheme::Rusanov, +// viscFluxRecEnum, +// icPulseMagnitude, icSpread, diffusion, +// icCenterX, icCenterY, +// std::move(bcFuncs)); +// } +// #endif + } //end namespace pressiodemoapps #endif diff --git a/include/pressiodemoapps/impl/advection_diffusion_2d_flux_mixin.hpp b/include/pressiodemoapps/impl/advection_diffusion_2d_flux_mixin.hpp index 1ad90b4c..7ce34e05 100644 --- a/include/pressiodemoapps/impl/advection_diffusion_2d_flux_mixin.hpp +++ b/include/pressiodemoapps/impl/advection_diffusion_2d_flux_mixin.hpp @@ -93,13 +93,10 @@ struct ComputeDirectionalFluxValues : Parent switch(m_fluxEnum) { case ::pressiodemoapps::InviscidFluxScheme::Rusanov: - if (m_probEn == ::pressiodemoapps::AdvectionDiffusion2d::BurgersPeriodic) - { - burgers_rusanov_flux_2d(m_fluxL, uMinusHalfNeg, - uMinusHalfPos, m_normal); - burgers_rusanov_flux_2d(m_fluxR, uPlusHalfNeg, - uPlusHalfPos, m_normal); - } + burgers_rusanov_flux_2d(m_fluxL, uMinusHalfNeg, + uMinusHalfPos, m_normal); + burgers_rusanov_flux_2d(m_fluxR, uPlusHalfNeg, + uPlusHalfPos, m_normal); break; } } @@ -154,15 +151,12 @@ struct ComputeDirectionalFluxJacobians : Parent { case ::pressiodemoapps::InviscidFluxScheme::Rusanov: - if (m_probEn == ::pressiodemoapps::AdvectionDiffusion2d::BurgersPeriodic) - { - burgers_rusanov_flux_jacobian_2d(m_fluxJacLNeg, m_fluxJacLPos, - uMinusHalfNeg, uMinusHalfPos, - m_normal); - burgers_rusanov_flux_jacobian_2d(m_fluxJacRNeg, m_fluxJacRPos, - uPlusHalfNeg, uPlusHalfPos, - m_normal); - } + burgers_rusanov_flux_jacobian_2d(m_fluxJacLNeg, m_fluxJacLPos, + uMinusHalfNeg, uMinusHalfPos, + m_normal); + burgers_rusanov_flux_jacobian_2d(m_fluxJacRNeg, m_fluxJacRPos, + uPlusHalfNeg, uPlusHalfPos, + m_normal); break; } } @@ -223,18 +217,15 @@ struct ComputeDirectionalFluxValuesAndJacobians : Parent switch(m_fluxEnum) { case ::pressiodemoapps::InviscidFluxScheme::Rusanov: - if (m_probEn == ::pressiodemoapps::AdvectionDiffusion2d::BurgersPeriodic) - { - burgers_rusanov_flux_2d(m_fluxL, uMinusHalfNeg, uMinusHalfPos, m_normal); - burgers_rusanov_flux_2d(m_fluxR, uPlusHalfNeg, uPlusHalfPos, m_normal); - - burgers_rusanov_flux_jacobian_2d(m_fluxJacLNeg, m_fluxJacLPos, - uMinusHalfNeg, uMinusHalfPos, - m_normal); - burgers_rusanov_flux_jacobian_2d(m_fluxJacRNeg, m_fluxJacRPos, - uPlusHalfNeg, uPlusHalfPos, - m_normal); - } + burgers_rusanov_flux_2d(m_fluxL, uMinusHalfNeg, uMinusHalfPos, m_normal); + burgers_rusanov_flux_2d(m_fluxR, uPlusHalfNeg, uPlusHalfPos, m_normal); + + burgers_rusanov_flux_jacobian_2d(m_fluxJacLNeg, m_fluxJacLPos, + uMinusHalfNeg, uMinusHalfPos, + m_normal); + burgers_rusanov_flux_jacobian_2d(m_fluxJacRNeg, m_fluxJacRPos, + uPlusHalfNeg, uPlusHalfPos, + m_normal); break; } } diff --git a/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_neumann.hpp b/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_neumann.hpp new file mode 100644 index 00000000..7a019768 --- /dev/null +++ b/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_neumann.hpp @@ -0,0 +1,266 @@ +/* +//@HEADER +// ************************************************************************ +// +// advection_diffusion_2d_ghost_filler_neumann.hpp +// Pressio +// Copyright 2019 +// National Technology & Engineering Solutions of Sandia, LLC (NTESS) +// +// Under the terms of Contract DE-NA0003525 with NTESS, the +// U.S. Government retains certain rights in this software. +// +// Pressio is licensed under BSD-3-Clause terms of use: +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +// IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Francesco Rizzi (fnrizzi@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef PRESSIODEMOAPPS_GHOST_FILLER_AD2D_NEUMANN_HPP_ +#define PRESSIODEMOAPPS_GHOST_FILLER_AD2D_NEUMANN_HPP_ + +namespace pressiodemoapps{ +namespace impladvdiff2d{ + +template +class Ghost2dNeumannFiller +{ + +public: + Ghost2dNeumannFiller() = delete; + Ghost2dNeumannFiller(const int stencilSize, + int numDofPerCell, + const state_t & stateIn, + const mesh_t & meshIn, + ghost_t & ghostLeft, + ghost_t & ghostFront, + ghost_t & ghostRight, + ghost_t & ghostBack) + : m_stencilSize(stencilSize), + m_numDofPerCell(numDofPerCell), + m_state(stateIn), + m_meshObj(meshIn), + m_ghostLeft(ghostLeft), + m_ghostFront(ghostFront), + m_ghostRight(ghostRight), + m_ghostBack(ghostBack) + {} + + template + void operator()(index_t smPt, int gRow) + { + if (m_stencilSize == 3){ + stencilThreeImpl(smPt, gRow); + } + + else if (m_stencilSize == 5){ + stencilFiveImpl(smPt, gRow); + } + + else if (m_stencilSize == 7){ + stencilSevenImpl(smPt, gRow); + } + + else{ + throw std::runtime_error("advection diffusion neumann ghost filler: invalid stencil size"); + } + } + +private: + + template + void stencilThreeImpl(index_t smPt, int gRow) + { + const auto & graph = m_meshObj.graph(); + const auto cellGID = graph(smPt, 0); + const auto uIndex = cellGID*m_numDofPerCell; + + const auto left0 = graph(smPt, 1); + const auto front0 = graph(smPt, 2); + const auto right0 = graph(smPt, 3); + const auto back0 = graph(smPt, 4); + + if (left0 == -1) + { + m_ghostLeft(gRow, 0) = m_state(uIndex); + m_ghostLeft(gRow, 1) = m_state(uIndex+1); + } + + if (front0 == -1) + { + m_ghostFront(gRow, 0) = m_state(uIndex); + m_ghostFront(gRow, 1) = m_state(uIndex+1); + } + + if (right0 == -1) + { + m_ghostRight(gRow, 0) = m_state(uIndex); + m_ghostRight(gRow, 1) = m_state(uIndex+1); + } + + if (back0 == -1) + { + m_ghostBack(gRow, 0) = m_state(uIndex); + m_ghostBack(gRow, 1) = m_state(uIndex+1); + } + } + + template + void stencilFiveImpl(index_t smPt, int gRow) + { + const auto & graph = m_meshObj.graph(); + const auto cellGID = graph(smPt, 0); + const auto uIndex = cellGID*m_numDofPerCell; + + stencilThreeImpl(smPt, gRow); + const auto left0 = graph(smPt, 1); + const auto front0 = graph(smPt, 2); + const auto right0 = graph(smPt, 3); + const auto back0 = graph(smPt, 4); + const auto left1 = graph(smPt, 5); + const auto front1 = graph(smPt, 6); + const auto right1 = graph(smPt, 7); + const auto back1 = graph(smPt, 8); + + if (left1 == -1){ + auto ind = uIndex; + if (left0==-1){ ind = right0*m_numDofPerCell; } + else { ind = left0*m_numDofPerCell; } + + m_ghostLeft(gRow, 4) = m_state(ind); + m_ghostLeft(gRow, 5) = m_state(ind+1); + } + + if (front1 == -1){ + auto ind = uIndex; + if (front0==-1){ ind = back0*m_numDofPerCell; } + else { ind = front0*m_numDofPerCell; } + + m_ghostFront(gRow, 4) = m_state(ind); + m_ghostFront(gRow, 5) = m_state(ind+1); + } + + if (right1 == -1){ + auto ind = uIndex; + if (right0==-1){ ind = left0*m_numDofPerCell; } + else { ind = right0*m_numDofPerCell; } + + m_ghostRight(gRow, 4) = m_state(ind); + m_ghostRight(gRow, 5) = m_state(ind+1); + } + + if (back1 == -1){ + auto ind = uIndex; + if (back0==-1){ ind = front0*m_numDofPerCell; } + else { ind = back0*m_numDofPerCell; } + + m_ghostBack(gRow, 4) = m_state(ind); + m_ghostBack(gRow, 5) = m_state(ind+1); + } + } + + template + void stencilSevenImpl(index_t smPt, int gRow) + { + const auto & graph = m_meshObj.graph(); + const auto cellGID = graph(smPt, 0); + const auto uIndex = cellGID*m_numDofPerCell; + + stencilFiveImpl(smPt, gRow); + const auto left0 = graph(smPt, 1); + const auto front0 = graph(smPt, 2); + const auto right0 = graph(smPt, 3); + const auto back0 = graph(smPt, 4); + const auto left1 = graph(smPt, 5); + const auto front1 = graph(smPt, 6); + const auto right1 = graph(smPt, 7); + const auto back1 = graph(smPt, 8); + const auto left2 = graph(smPt, 9); + const auto front2 = graph(smPt, 10); + const auto right2 = graph(smPt, 11); + const auto back2 = graph(smPt, 12); + + if (left2 == -1){ + auto ind = uIndex; ; + if (left1!=-1 && left0!=-1){ ind = left1*m_numDofPerCell; } + if (left1==-1 && left0!=-1){ ind = uIndex; } + if (left1==-1 && left0==-1){ ind = right1*m_numDofPerCell; } + + m_ghostLeft(gRow, 8) = m_state(ind); + m_ghostLeft(gRow, 9) = m_state(ind+1); + } + + if (front2 == -1){ + auto ind = uIndex; ; + if (front1!=-1 && front0!=-1){ ind = front1*m_numDofPerCell; } + if (front1==-1 && front0!=-1){ ind = uIndex; } + if (front1==-1 && front0==-1){ ind = back1*m_numDofPerCell; } + + m_ghostFront(gRow, 8) = m_state(ind); + m_ghostFront(gRow, 9) = m_state(ind+1); + } + + if (right2 == -1){ + auto ind = uIndex; ; + if (right1!=-1 && right0!=-1){ ind = right1*m_numDofPerCell; } + if (right1==-1 && right0!=-1){ ind = uIndex; } + if (right1==-1 && right0==-1){ ind = left1*m_numDofPerCell; } + + m_ghostRight(gRow, 8) = m_state(ind); + m_ghostRight(gRow, 9) = m_state(ind+1); + } + + if (back2 == -1){ + auto ind = uIndex; ; + if (back1!=-1 && back0!=-1){ ind = back1*m_numDofPerCell; } + if (back1==-1 && back0!=-1){ ind = uIndex; } + if (back1==-1 && back0==-1){ ind = front1*m_numDofPerCell; } + + m_ghostBack(gRow, 8) = m_state(ind); + m_ghostBack(gRow, 9) = m_state(ind+1); + } + } + +private: + int m_stencilSize; + int m_numDofPerCell; + const state_t & m_state; + const mesh_t & m_meshObj; + ghost_t & m_ghostLeft; + ghost_t & m_ghostFront; + ghost_t & m_ghostRight; + ghost_t & m_ghostBack; +}; + +}} +#endif \ No newline at end of file diff --git a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp index ea7c5dc1..c76d30f9 100644 --- a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp +++ b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp @@ -51,6 +51,7 @@ #include "advection_diffusion_2d_flux_functions.hpp" #include "advection_diffusion_2d_initial_condition.hpp" +#include "advection_diffusion_2d_ghost_filler_neumann.hpp" #include "functor_fill_stencil.hpp" #include "functor_reconstruct_from_stencil.hpp" #include "functor_reconstruct_from_state.hpp" @@ -58,6 +59,9 @@ #include "mixin_directional_flux_balance.hpp" #include "mixin_directional_flux_balance_jacobian.hpp" #include "Eigen/Sparse" +#include "noop.hpp" +#include "custom_bcs_functions.hpp" +#include "ghost_relative_locations.hpp" #ifdef PRESSIODEMOAPPS_ENABLE_OPENMP #include @@ -75,7 +79,10 @@ struct TagBurgersPeriodic{}; ///////////////////////// // eigen class ///////////////////////// -template +template< + class MeshType, + class BCFunctorsHolderType = impl::NoOperation + > class EigenApp { @@ -88,27 +95,29 @@ class EigenApp using jacobian_type = Eigen::SparseMatrix; using mesh_connectivity_graph_type = typename MeshType::graph_t; -private: static constexpr int dimensionality{2}; + static constexpr int numDofPerCell{2}; + +private: using ghost_container_type = Eigen::Matrix; using stencil_container_type = Eigen::Matrix; - using flux_type = Eigen::Matrix; - using edge_rec_type = Eigen::Matrix; - using flux_jac_type = Eigen::Matrix; + using flux_type = Eigen::Matrix; + using edge_rec_type = Eigen::Matrix; + using flux_jac_type = Eigen::Matrix; using reconstruction_gradient_t = Eigen::Matrix; public: EigenApp() = delete; // - // constructor for Burgers2d periodic + // constructor for Burgers2d // - EigenApp(TagBurgersPeriodic /*tag*/, - const MeshType & meshObj, + EigenApp(const MeshType & meshObj, + ::pressiodemoapps::AdvectionDiffusion2d probEnum, ::pressiodemoapps::InviscidFluxReconstruction inviscidFluxRecEn, ::pressiodemoapps::InviscidFluxScheme invFluxSchemeEn, ::pressiodemoapps::ViscousFluxReconstruction visFluxRecEn, @@ -117,8 +126,7 @@ class EigenApp scalar_type diffusionCoeff, scalar_type x0, scalar_type y0) - : m_numDofPerCell(2), - m_probEn(::pressiodemoapps::AdvectionDiffusion2d::BurgersPeriodic), + : m_probEn(probEnum), m_inviscidFluxRecEn(inviscidFluxRecEn), m_inviscidFluxSchemeEn(invFluxSchemeEn), m_viscousFluxRecEn(visFluxRecEn), @@ -129,16 +137,55 @@ class EigenApp m_burgers2d_x0(x0), m_burgers2d_y0(y0) { - m_numDofStencilMesh = m_meshObj.get().stencilMeshSize() * m_numDofPerCell; - m_numDofSampleMesh = m_meshObj.get().sampleMeshSize() * m_numDofPerCell; - // don't need to allocate ghosts because it is periodic + m_numDofStencilMesh = m_meshObj.get().stencilMeshSize() * numDofPerCell; + m_numDofSampleMesh = m_meshObj.get().sampleMeshSize() * numDofPerCell; + + if (m_probEn == pressiodemoapps::AdvectionDiffusion2d::BurgersOutflow) { + allocateGhosts(); + } + } +// #if !defined PRESSIODEMOAPPS_ENABLE_BINDINGS +// EigenApp(const MeshType & meshObj, +// ::pressiodemoapps::AdvectionDiffusion2d probEnum, +// ::pressiodemoapps::InviscidFluxReconstruction inviscidFluxRecEn, +// ::pressiodemoapps::InviscidFluxScheme invFluxSchemeEn, +// ::pressiodemoapps::ViscousFluxReconstruction visFluxRecEn, +// scalar_type icPulseMagnitude, +// scalar_type icSpread, +// scalar_type diffusionCoeff, +// scalar_type x0, +// scalar_type y0, +// BCFunctorsHolderType && bcHolder) +// : m_probEn(probEnum), +// m_inviscidFluxRecEn(inviscidFluxRecEn), +// m_inviscidFluxSchemeEn(invFluxSchemeEn), +// m_viscousFluxRecEn(visFluxRecEn), +// m_meshObj(meshObj), +// m_burgers2d_icPulse(icPulseMagnitude), +// m_burgers2d_icSpread(icSpread), +// m_burgers2d_diffusion(diffusionCoeff), +// m_burgers2d_x0(x0), +// m_burgers2d_y0(y0), +// m_bcFuncsHolder(std::move(bcHolder)) +// { +// m_numDofStencilMesh = m_meshObj.get().stencilMeshSize() * numDofPerCell; +// m_numDofSampleMesh = m_meshObj.get().sampleMeshSize() * numDofPerCell; + +// if (m_probEn == pressiodemoapps::AdvectionDiffusion2d::BurgersOutflow) { +// allocateGhosts(); +// } + +// } +// #endif + state_type initialCondition() const { state_type initialState(m_numDofStencilMesh); - if (m_probEn == ::pressiodemoapps::AdvectionDiffusion2d::BurgersPeriodic) + if (m_probEn == ::pressiodemoapps::AdvectionDiffusion2d::BurgersPeriodic || + m_probEn == ::pressiodemoapps::AdvectionDiffusion2d::BurgersOutflow) { burgers2d_gaussian(initialState, m_meshObj.get(), m_burgers2d_icPulse, @@ -150,9 +197,15 @@ class EigenApp return initialState; } +// public: +// template +// void setBCPointer(::pressiodemoapps::impl::GhostRelativeLocation rloc, T* ptr) { +// m_bcFuncsHolder.setInternalPointer(rloc, ptr); +// } + protected: int numDofPerCellImpl() const { - return m_numDofPerCell; + return numDofPerCell; } void initializeJacobian(jacobian_type & J) @@ -161,8 +214,7 @@ class EigenApp using Tr = Eigen::Triplet; std::vector trList; - - // only need this since this is for now periodic + initializeJacobianForNearBoundaryCells(trList); initializeJacobianForInnerCells(trList); J.setFromTriplets(trList.begin(), trList.end()); @@ -188,15 +240,11 @@ class EigenApp // for omp, these are private variables for each thread // edge reconstructions - edge_rec_type uMinusHalfNeg(m_numDofPerCell); - edge_rec_type uMinusHalfPos(m_numDofPerCell); - edge_rec_type uPlusHalfNeg(m_numDofPerCell); - edge_rec_type uPlusHalfPos(m_numDofPerCell); + edge_rec_type uMinusHalfNeg, uMinusHalfPos; + edge_rec_type uPlusHalfNeg, uPlusHalfPos; // fluxes - flux_type fluxL(m_numDofPerCell); - flux_type fluxF(m_numDofPerCell);; - flux_type fluxR(m_numDofPerCell); - flux_type fluxB(m_numDofPerCell); + flux_type fluxL, fluxF; + flux_type fluxR, fluxB; #ifdef PRESSIODEMOAPPS_ENABLE_OPENMP ::pressiodemoapps::set_zero_omp(V); @@ -212,13 +260,29 @@ class EigenApp #endif } + if constexpr(std::is_same_v>){ + fillGhosts(U, currentTime); + } + else { + throw std::runtime_error("Custom BCs not implemented yet") + // fillGhostsUseCustomFunctors(U, currentTime, m_meshObj, m_bcFuncsHolder, + // m_ghostLeft, m_ghostFront, + // m_ghostRight, m_ghostBack, numDofPerCell); + } + if (J){ - velocityAndJacobianPeriodicImpl(U, currentTime, V, *J, - fluxL, fluxF, fluxR, fluxB, - uMinusHalfNeg, uMinusHalfPos, - uPlusHalfNeg, uPlusHalfPos); + velocityAndJacobianImpl(U, currentTime, V, *J, + fluxL, fluxF, fluxR, fluxB, + uMinusHalfNeg, uMinusHalfPos, + uPlusHalfNeg, uPlusHalfPos); } else{ + if (!m_meshObj.get().isFullyPeriodic()) { + velocityOnlyNearBdCellsImpl(U, currentTime, V, + fluxL, fluxF, fluxR, fluxB, + uMinusHalfNeg, uMinusHalfPos, + uPlusHalfNeg, uPlusHalfPos); + } velocityOnlyInnerCellsImpl(U, currentTime, V, fluxL, fluxF, fluxR, fluxB, @@ -233,6 +297,31 @@ class EigenApp } private: + template + void fillGhosts(const U_t & U, const scalar_type currentTime) const + { + const auto stencilSize = reconstructionTypeToStencilSize(m_inviscidFluxRecEn); + if (m_probEn == pressiodemoapps::AdvectionDiffusion2d::BurgersOutflow) + { + using ghost_filler_t = Ghost2dNeumannFiller< + U_t, MeshType, ghost_container_type>; + ghost_filler_t ghF(stencilSize, numDofPerCell, + U, m_meshObj.get(), + m_ghostLeft, m_ghostFront, + m_ghostRight, m_ghostBack); + const auto & rowsBd = m_meshObj.get().graphRowsOfCellsNearBd(); +#ifdef PRESSIODEMOAPPS_ENABLE_OPENMP +#pragma omp for schedule(static) +#endif + for (decltype(rowsBd.size()) it=0; it void initializeJacobianForInnerCells(std::vector & trList) { @@ -248,12 +337,12 @@ class EigenApp const auto smPt = targetGraphRows[it]; // find out which row in the jacobian we are dealing with - const auto jacRowOfCurrCellFirstDof = smPt*m_numDofPerCell; + const auto jacRowOfCurrCellFirstDof = smPt*numDofPerCell; // initialize jacobian block entries wrt current cell's dofs - const auto jacColOfCurrCellRho = graph(smPt, 0)*m_numDofPerCell; - for (int k=0; k 0); for (int i=1; i<=numNeighbors; ++i){ - const auto colInd = graph(smPt, i)*m_numDofPerCell; - for (int k=0; k + void initializeJacobianForNearBoundaryCells(std::vector & trList) + { + const scalar_type zero = 0; + const auto & graph = m_meshObj.get().graph(); + const auto & targetGraphRows = m_meshObj.get().graphRowsOfCellsNearBd(); + for (std::size_t it=0; it - void velocityAndJacobianPeriodicImpl(const U_t & U, + void velocityAndJacobianImpl(const U_t & U, const scalar_type currentTime, V_t & V, jacobian_type & J, @@ -302,19 +427,40 @@ class EigenApp { // flux jacobians - flux_jac_type fluxJacLNeg(m_numDofPerCell, m_numDofPerCell); - flux_jac_type fluxJacLPos(m_numDofPerCell, m_numDofPerCell); - flux_jac_type fluxJacFNeg(m_numDofPerCell, m_numDofPerCell); - flux_jac_type fluxJacFPos(m_numDofPerCell, m_numDofPerCell); - flux_jac_type fluxJacRNeg(m_numDofPerCell, m_numDofPerCell); - flux_jac_type fluxJacRPos(m_numDofPerCell, m_numDofPerCell); - flux_jac_type fluxJacBNeg(m_numDofPerCell, m_numDofPerCell); - flux_jac_type fluxJacBPos(m_numDofPerCell, m_numDofPerCell); + flux_jac_type fluxJacLNeg; + flux_jac_type fluxJacLPos; + flux_jac_type fluxJacFNeg; + flux_jac_type fluxJacFPos; + flux_jac_type fluxJacRNeg; + flux_jac_type fluxJacRPos; + flux_jac_type fluxJacBNeg; + flux_jac_type fluxJacBPos; int nonZerosCountBeforeComputing = J.nonZeros(); - // this is for periodic so we don't have boundary cells, - // all cells count as "inner cells" + if (!m_meshObj.get().isFullyPeriodic()){ + if (m_inviscidFluxRecEn == InviscidFluxReconstruction::FirstOrder){ + velocityAndJacNearBDCellsImplFirstOrder(U, currentTime, V, J, + fluxL, fluxF, fluxR, fluxB, + fluxJacLNeg, fluxJacLPos, + fluxJacFNeg, fluxJacFPos, + fluxJacRNeg, fluxJacRPos, + fluxJacBNeg, fluxJacBPos, + uMinusHalfNeg, uMinusHalfPos, + uPlusHalfNeg, uPlusHalfPos); + } + else{ + velocityAndJacNearBDCellsImplDifferentSchemeNotFirstOrderInviscid(U, currentTime, V, J, + fluxL, fluxF, fluxR, fluxB, + fluxJacLNeg, fluxJacLPos, + fluxJacFNeg, fluxJacFPos, + fluxJacRNeg, fluxJacRPos, + fluxJacBNeg, fluxJacBPos, + uMinusHalfNeg, uMinusHalfPos, + uPlusHalfNeg, uPlusHalfPos); + } + } + velocityAndJacInnerCellsImpl(U, currentTime, V, J, fluxL, fluxF, fluxR, fluxB, fluxJacLNeg, fluxJacLPos, @@ -363,14 +509,14 @@ class EigenApp const auto stencilSize = reconstructionTypeToStencilSize(m_inviscidFluxRecEn); assert(stencilSize >= reconstructionTypeToStencilSize(m_viscousFluxRecEn)); - reconstruction_gradient_t gradLNeg(m_numDofPerCell, stencilSize-1); - reconstruction_gradient_t gradLPos(m_numDofPerCell, stencilSize-1); - reconstruction_gradient_t gradFNeg(m_numDofPerCell, stencilSize-1); - reconstruction_gradient_t gradFPos(m_numDofPerCell, stencilSize-1); - reconstruction_gradient_t gradRNeg(m_numDofPerCell, stencilSize-1); - reconstruction_gradient_t gradRPos(m_numDofPerCell, stencilSize-1); - reconstruction_gradient_t gradBNeg(m_numDofPerCell, stencilSize-1); - reconstruction_gradient_t gradBPos(m_numDofPerCell, stencilSize-1); + reconstruction_gradient_t gradLNeg(numDofPerCell, stencilSize-1); + reconstruction_gradient_t gradLPos(numDofPerCell, stencilSize-1); + reconstruction_gradient_t gradFNeg(numDofPerCell, stencilSize-1); + reconstruction_gradient_t gradFPos(numDofPerCell, stencilSize-1); + reconstruction_gradient_t gradRNeg(numDofPerCell, stencilSize-1); + reconstruction_gradient_t gradRPos(numDofPerCell, stencilSize-1); + reconstruction_gradient_t gradBNeg(numDofPerCell, stencilSize-1); + reconstruction_gradient_t gradBPos(numDofPerCell, stencilSize-1); using functor_type = pda::impl::ComputeDirectionalFluxBalance< @@ -416,15 +562,500 @@ class EigenApp for (decltype(graphRows.size()) it=0; it + void velocityAndJacNearBDCellsImplDifferentSchemeNotFirstOrderInviscid( + const state_t & state, + const scalar_type currentTime, + V_t & V, + jacobian_type & J, + flux_type & fluxL, + flux_type & fluxF, + flux_type & fluxR, + flux_type & fluxB, + flux_jac_type & fluxJacLNeg, + flux_jac_type & fluxJacLPos, + flux_jac_type & fluxJacFNeg, + flux_jac_type & fluxJacFPos, + flux_jac_type & fluxJacRNeg, + flux_jac_type & fluxJacRPos, + flux_jac_type & fluxJacBNeg, + flux_jac_type & fluxJacBPos, + edge_rec_type & uMinusHalfNeg, + edge_rec_type & uMinusHalfPos, + edge_rec_type & uPlusHalfNeg, + edge_rec_type & uPlusHalfPos) const + { + namespace pda = ::pressiodemoapps; + constexpr int xAxis = 1; + constexpr int yAxis = 2; + + throw std::runtime_error("Higher order not fixed"); + + // if here, then the velocity must be computed with Weno, + /// while the jacobian must be computed with first order + + using stencil_filler_t = pda::impl::StencilFiller; + + // ***************************** + // *** functors for velocity *** + // ***************************** + const auto stencilSizeForV = reconstructionTypeToStencilSize(m_inviscidFluxRecEn); + // this method should only be called for stencilsize 5 or 7, because + // the case =3 is handled specifically in another method + assert(stencilSizeForV == 5 or stencilSizeForV == 7); + + stencil_container_type stencilValsForV(numDofPerCell*stencilSizeForV); + + stencil_filler_t FillStencilVeloX(reconstructionTypeToStencilSize(m_inviscidFluxRecEn), + state, m_meshObj.get(), m_ghostLeft, m_ghostRight, + stencilValsForV, xAxis); + stencil_filler_t FillStencilVeloY(reconstructionTypeToStencilSize(m_inviscidFluxRecEn), + state, m_meshObj.get(), m_ghostBack, m_ghostFront, + stencilValsForV, yAxis); + + using velo_functor_type = + pda::impl::ComputeDirectionalFluxBalance< + pda::impladvdiff2d::ComputeDirectionalFluxValues< + pda::impl::ReconstructorFromStencil< + edge_rec_type, stencil_container_type>, + scalar_type, flux_type>, + V_t, scalar_type + >; + + velo_functor_type funcVeloX(V, m_meshObj.get().dxInv(), + /* end args for velo */ + m_probEn, m_inviscidFluxSchemeEn, normalX_, fluxL, fluxR, + /* end args for flux */ + toReconstructionScheme(m_inviscidFluxRecEn), stencilValsForV, + uMinusHalfNeg, uMinusHalfPos, uPlusHalfNeg, uPlusHalfPos + /* end args for reconstructor */ + ); + + velo_functor_type funcVeloY(V, m_meshObj.get().dyInv(), + /* end args for velo */ + m_probEn, m_inviscidFluxSchemeEn, normalY_, fluxB, fluxF, + /* end args for flux */ + toReconstructionScheme(m_inviscidFluxRecEn), stencilValsForV, + uMinusHalfNeg, uMinusHalfPos, uPlusHalfNeg, uPlusHalfPos + /* end args for reconstructor */ + ); + + // ***************************** + // *** functors for jacobian *** + // ***************************** + const auto firstOrderRec = pda::InviscidFluxReconstruction::FirstOrder; + const auto stencilSizeForJ = reconstructionTypeToStencilSize(firstOrderRec); + stencil_container_type stencilValsForJ(numDofPerCell*stencilSizeForJ); + stencil_filler_t FillStencilJacX(stencilSizeForJ, + state, m_meshObj.get(), m_ghostLeft, m_ghostRight, + stencilValsForJ, xAxis); + stencil_filler_t FillStencilJacY(stencilSizeForJ, + state, m_meshObj.get(), m_ghostBack, m_ghostFront, + stencilValsForJ, yAxis); + + using jac_functor_type = + pda::impl::ComputeDirectionalFluxBalanceFirstOrderJacobianOnBoundaryCell< + pda::impladvdiff2d::ComputeDirectionalFluxJacobians< + pda::impl::ReconstructorFromStencil< + edge_rec_type, stencil_container_type>, + scalar_type, flux_jac_type>, + dimensionality, MeshType, jacobian_type + >; + + jac_functor_type funcJacX(J, xAxis, m_meshObj.get(), + /* end args for jac */ + m_probEn, m_inviscidFluxSchemeEn, normalX_, + fluxJacLNeg, fluxJacLPos, fluxJacRNeg, fluxJacRPos, + /* end args for flux */ + toReconstructionScheme(firstOrderRec), stencilValsForJ, + uMinusHalfNeg, uMinusHalfPos, uPlusHalfNeg, uPlusHalfPos + /* end args for reconstructor */ + ); + + jac_functor_type funcJacY(J, yAxis, m_meshObj.get(), + /* end args for jac */ + m_probEn, m_inviscidFluxSchemeEn, normalY_, + fluxJacBNeg, fluxJacBPos, fluxJacFNeg, fluxJacFPos, + /* end args for flux */ + toReconstructionScheme(firstOrderRec), stencilValsForJ, + uMinusHalfNeg, uMinusHalfPos, uPlusHalfNeg, uPlusHalfPos + /* end args for reconstructor */ + ); + + // ************ + // loop + // ************ + const auto & graph = m_meshObj.get().graph(); + const auto & graphRows = m_meshObj.get().graphRowsOfCellsNearBd(); + const auto dxInvSq = m_meshObj.get().dxInv()*m_meshObj.get().dxInv(); + const auto dyInvSq = m_meshObj.get().dyInv()*m_meshObj.get().dyInv(); + const auto diffDxInvSq = m_burgers2d_diffusion*dxInvSq; + const auto diffDyInvSq = m_burgers2d_diffusion*dyInvSq; + constexpr auto two = static_cast(2); + +#ifdef PRESSIODEMOAPPS_ENABLE_OPENMP +#pragma omp for schedule(static) +#endif + for (decltype(graphRows.size()) it=0; it>){ + fillJacFactorsForCellBd(smPt, xAxis); + } + else{ + throw std::runtime_error("Need to fix higher order custom BCs"); + } + funcJacX(smPt, numDofPerCell, m_bcCellJacFactors); + // diffusion contribution to velocity + if (stencilSizeForV == 5){ + V(smPt) += diffDxInvSq*( stencilValsForV(3) - two*stencilValsForV(2) + stencilValsForV(1) ); + } + else if (stencilSizeForV == 7){ + V(smPt) += diffDxInvSq*( stencilValsForV(4) - two*stencilValsForV(3) + stencilValsForV(2) ); + } + + // y-direction + FillStencilVeloY(smPt, it, numDofPerCell); + funcVeloY(smPt, numDofPerCell); + FillStencilJacY(smPt, it, numDofPerCell); + if constexpr(std::is_same_v>){ + fillJacFactorsForCellBd(smPt, yAxis); + } + else{ + throw std::runtime_error("Need to fix higher order custom BCs"); + } + funcJacY(smPt, numDofPerCell, m_bcCellJacFactors); + // diffusion contribution to velocity + if (stencilSizeForV == 5){ + V(smPt) += diffDyInvSq*( stencilValsForV(3) -two*stencilValsForV(2) +stencilValsForV(1) ); + } + else if (stencilSizeForV == 7){ + V(smPt) += diffDyInvSq*( stencilValsForV(4) -two*stencilValsForV(3) +stencilValsForV(2) ); + } + + // diffusion contribution to Jacobian + auto selfValue = -two*diffDxInvSq -two*diffDyInvSq; + if (uIndexLeft != -1){ + J.coeffRef(smPt, uIndexLeft) += diffDxInvSq; + } + else{ + selfValue += -diffDxInvSq; + } + + if (uIndexFront != -1){ + J.coeffRef(smPt, uIndexFront) += diffDyInvSq; + }else{ + selfValue += -diffDyInvSq; + } + + if (uIndexRight != -1){ + J.coeffRef(smPt, uIndexRight) += diffDxInvSq; + } + else{ + selfValue += -diffDxInvSq; + } - if (m_probEn == ::pressiodemoapps::AdvectionDiffusion2d::BurgersPeriodic){ - addBurgersDiffusionAndSourceToVelocityAndJacobianInnerCells(U, V, J, smPt); + if (uIndexBack != -1){ + J.coeffRef(smPt, uIndexBack) += diffDyInvSq; + } + else{ + selfValue += -diffDyInvSq; } + J.coeffRef(smPt, uIndex) += selfValue; } } + template + void velocityAndJacNearBDCellsImplFirstOrder(const state_t & state, + const scalar_type currentTime, + V_t & V, + jacobian_type & J, + flux_type & fluxL, + flux_type & fluxF, + flux_type & fluxR, + flux_type & fluxB, + flux_jac_type & fluxJacLNeg, + flux_jac_type & fluxJacLPos, + flux_jac_type & fluxJacFNeg, + flux_jac_type & fluxJacFPos, + flux_jac_type & fluxJacRNeg, + flux_jac_type & fluxJacRPos, + flux_jac_type & fluxJacBNeg, + flux_jac_type & fluxJacBPos, + edge_rec_type & uMinusHalfNeg, + edge_rec_type & uMinusHalfPos, + edge_rec_type & uPlusHalfNeg, + edge_rec_type & uPlusHalfPos) const + { + namespace pda = ::pressiodemoapps; + constexpr int xAxis = 1; + constexpr int yAxis = 2; + assert(m_inviscidFluxRecEn == InviscidFluxReconstruction::FirstOrder); + + // if here, then the scheme for velocity matches + // the one for Jacobian so we can use same functors + + const auto stencilSize = reconstructionTypeToStencilSize(m_inviscidFluxRecEn); + stencil_container_type stencilVals(numDofPerCell*stencilSize); + + using stencil_filler_t = pda::impl::StencilFiller< + dimensionality, stencil_container_type, state_t, MeshType, ghost_container_type>; + stencil_filler_t FillStencilX(reconstructionTypeToStencilSize(m_inviscidFluxRecEn), + state, m_meshObj.get(), m_ghostLeft, m_ghostRight, + stencilVals, xAxis); + + stencil_filler_t FillStencilY(reconstructionTypeToStencilSize(m_inviscidFluxRecEn), + state, m_meshObj.get(), m_ghostBack, m_ghostFront, + stencilVals, yAxis); + + using functor_type = + pda::impl::ComputeDirectionalFluxBalance< + pda::impl::ComputeDirectionalFluxBalanceFirstOrderJacobianOnBoundaryCell< + pda::impladvdiff2d::ComputeDirectionalFluxValuesAndJacobians< + pda::impl::ReconstructorFromStencil< + edge_rec_type, stencil_container_type>, + scalar_type, flux_type, flux_jac_type>, + dimensionality, MeshType, jacobian_type>, + V_t, scalar_type + >; + + functor_type funcx(V, m_meshObj.get().dxInv(), + /* end args for velo */ + J, xAxis, m_meshObj.get(), + /* end args for jac */ + m_probEn, m_inviscidFluxSchemeEn, normalX_, fluxL, fluxR, + fluxJacLNeg, fluxJacLPos, fluxJacRNeg, fluxJacRPos, + /* end args for flux */ + toReconstructionScheme(m_inviscidFluxRecEn), stencilVals, + uMinusHalfNeg, uMinusHalfPos, uPlusHalfNeg, uPlusHalfPos + /* end args for reconstructor */ + ); + + functor_type funcy(V, m_meshObj.get().dyInv(), + /* end args for velo */ + J, yAxis, m_meshObj.get(), + /* end args for jac */ + m_probEn, m_inviscidFluxSchemeEn, normalY_, fluxB, fluxF, + fluxJacBNeg, fluxJacBPos, fluxJacFNeg, fluxJacFPos, + /* end args for flux */ + toReconstructionScheme(m_inviscidFluxRecEn), stencilVals, + uMinusHalfNeg, uMinusHalfPos, uPlusHalfNeg, uPlusHalfPos + /* end args for reconstructor */ + ); + + const auto & graph = m_meshObj.get().graph(); + constexpr auto two = static_cast(2); + const auto & graphRows = m_meshObj.get().graphRowsOfCellsNearBd(); + const auto dxInvSq = m_meshObj.get().dxInv()*m_meshObj.get().dxInv(); + const auto dyInvSq = m_meshObj.get().dyInv()*m_meshObj.get().dyInv(); + const auto diffDxInvSq = m_burgers2d_diffusion*dxInvSq; + const auto diffDyInvSq = m_burgers2d_diffusion*dyInvSq; + +#ifdef PRESSIODEMOAPPS_ENABLE_OPENMP +#pragma omp for schedule(static) +#endif + for (decltype(graphRows.size()) it=0; it>){ + fillJacFactorsForCellBd(smPt, xAxis); + } + else { + throw std::runtime_error("Custom BC Jacobian factors not implemented"); + } + funcx(smPt, numDofPerCell, m_bcCellJacFactors); + // u diffusion velocity contributions + V(vIndex) += diffDxInvSq*( stencilVals(4) - two*stencilVals(2) + stencilVals(0) ); + V(vIndex) += diffDyInvSq*( stencilVals(4) - two*stencilVals(2) + stencilVals(0) ); + + // y-direction inviscid contributions + FillStencilY(smPt, it, numDofPerCell); + if constexpr(std::is_same_v>){ + fillJacFactorsForCellBd(smPt, yAxis); + } + else { + throw std::runtime_error("Custom BC Jacobian factors not implemented"); + } + funcy(smPt, numDofPerCell, m_bcCellJacFactors); + // y-direction diffusion velocity contributions + V(vIndex+1) += diffDxInvSq*( stencilVals(5) - two*stencilVals(3) + stencilVals(1) ); + V(vIndex+1) += diffDyInvSq*( stencilVals(5) - two*stencilVals(3) + stencilVals(1) ); + + // diffusion Jacobian contributions + // self + J.coeffRef(vIndex, uIndex) += -two*diffDxInvSq - two*diffDyInvSq; + J.coeffRef(vIndex+1, uIndex+1) += -two*diffDxInvSq - two*diffDyInvSq; + + if (uIndexLeft > -1){ + J.coeffRef(vIndex, uIndexLeft) += diffDxInvSq; + J.coeffRef(vIndex+1, uIndexLeft+1) += diffDxInvSq; + } + else{ + J.coeffRef(vIndex, uIndex) += -diffDxInvSq; + J.coeffRef(vIndex+1, uIndex+1) += -diffDxInvSq; + } + + if (uIndexFront > -1){ + J.coeffRef(vIndex, uIndexFront) += diffDyInvSq; + J.coeffRef(vIndex+1, uIndexFront+1) += diffDyInvSq; + } + else{ + J.coeffRef(vIndex, uIndex) += -diffDyInvSq; + J.coeffRef(vIndex+1, uIndex+1) += -diffDyInvSq; + } + + if (uIndexRight > -1){ + J.coeffRef(vIndex, uIndexRight) += diffDxInvSq; + J.coeffRef(vIndex+1, uIndexRight+1) += diffDxInvSq; + } + else{ + J.coeffRef(vIndex, uIndex) += -diffDxInvSq; + J.coeffRef(vIndex+1, uIndex+1) += -diffDxInvSq; + } + + if (uIndexBack > -1){ + J.coeffRef(vIndex, uIndexBack) += diffDyInvSq; + J.coeffRef(vIndex+1, uIndexBack+1) += diffDyInvSq; + } + else{ + J.coeffRef(vIndex, uIndex) += -diffDyInvSq; + J.coeffRef(vIndex+1, uIndex+1) += -diffDyInvSq; + } + } + } + + template + void velocityOnlyNearBdCellsImpl(const state_t & state, + const scalar_type currentTime, + V_t & V, + flux_type & fluxL, + flux_type & fluxF, + flux_type & fluxR, + flux_type & fluxB, + edge_rec_type & uMinusHalfNeg, + edge_rec_type & uMinusHalfPos, + edge_rec_type & uPlusHalfNeg, + edge_rec_type & uPlusHalfPos) const + { + namespace pda = ::pressiodemoapps; + constexpr int xAxis = 1; + constexpr int yAxis = 2; + + const auto stencilSize = reconstructionTypeToStencilSize(m_inviscidFluxRecEn); + stencil_container_type stencilVals(numDofPerCell*stencilSize); + + // stencil filler needed because we are doing cells near boundaries + using sfiller_t = ::pressiodemoapps::impl::StencilFiller< + dimensionality, stencil_container_type, state_t, MeshType, ghost_container_type>; + + sfiller_t StencilFillerX(stencilSize, state, m_meshObj.get(), m_ghostLeft, m_ghostRight, stencilVals, xAxis); + sfiller_t StencilFillerY(stencilSize, state, m_meshObj.get(), m_ghostBack, m_ghostFront, stencilVals, yAxis); + + using functor_type = + pda::impl::ComputeDirectionalFluxBalance< + pda::impladvdiff2d::ComputeDirectionalFluxValues< + pda::impl::ReconstructorFromStencil< + edge_rec_type, stencil_container_type>, + scalar_type, flux_type>, + V_t, scalar_type + >; + + functor_type Fx(V, m_meshObj.get().dxInv(), + /* end args for velo */ + m_probEn, m_inviscidFluxSchemeEn, normalX_, fluxL, fluxR, + /* end args for flux */ + toReconstructionScheme(m_inviscidFluxRecEn), stencilVals, + uMinusHalfNeg, uMinusHalfPos, uPlusHalfNeg, uPlusHalfPos + /* end args for reconstructor */ + ); + + functor_type Fy(V, m_meshObj.get().dyInv(), + /* end args for velo */ + m_probEn, m_inviscidFluxSchemeEn, normalY_, fluxB, fluxF, + /* end args for flux */ + toReconstructionScheme(m_inviscidFluxRecEn), stencilVals, + uMinusHalfNeg, uMinusHalfPos, uPlusHalfNeg, uPlusHalfPos + /* end args for reconstructor */ + ); + + constexpr auto two = static_cast(2); + const auto dxInvSq = m_meshObj.get().dxInv()*m_meshObj.get().dxInv(); + const auto dyInvSq = m_meshObj.get().dyInv()*m_meshObj.get().dyInv(); + const auto diffDxInvSq = m_burgers2d_diffusion*dxInvSq; + const auto diffDyInvSq = m_burgers2d_diffusion*dyInvSq; + + const auto & rows = m_meshObj.get().graphRowsOfCellsNearBd(); +#if defined PRESSIODEMOAPPS_ENABLE_OPENMP && !defined PRESSIODEMOAPPS_ENABLE_BINDINGS +#pragma omp for schedule(static) +#endif + for (std::size_t it=0; it void velocityOnlyInnerCellsImpl(const U_t & U, const scalar_type /*currentTime*/, @@ -475,44 +1106,34 @@ class EigenApp #endif for (decltype(graphRows.size()) it=0; it - void addBurgersDiffusionToVelocityInnerCells(const U_t & U, - V_t & V, - index_t smPt) const + void fillJacFactorsForCellBd(index_t graphRow, int axis) const { - constexpr auto two = static_cast(2); - const auto dxInvSq = m_meshObj.get().dxInv()*m_meshObj.get().dxInv(); - const auto dyInvSq = m_meshObj.get().dyInv()*m_meshObj.get().dyInv(); - const auto diffDxInvSq = m_burgers2d_diffusion*dxInvSq; - const auto diffDyInvSq = m_burgers2d_diffusion*dyInvSq; + assert(axis <= 2); - const auto & graph = m_meshObj.get().graph(); - const auto vIndex = smPt*m_numDofPerCell; - const auto uIndex = graph(smPt, 0)*m_numDofPerCell; - const auto uIndexLeft = graph(smPt, 1)*m_numDofPerCell; - const auto uIndexFront = graph(smPt, 2)*m_numDofPerCell; - const auto uIndexRight = graph(smPt, 3)*m_numDofPerCell; - const auto uIndexBack = graph(smPt, 4)*m_numDofPerCell; - V(vIndex) += diffDxInvSq*( U(uIndexRight) - two*U(uIndex) + U(uIndexLeft) ); - V(vIndex) += diffDyInvSq*( U(uIndexFront) - two*U(uIndex) + U(uIndexBack) ); - - V(vIndex+1) += diffDxInvSq*( U(uIndexRight+1) - two*U(uIndex+1) + U(uIndexLeft+1) ); - V(vIndex+1) += diffDyInvSq*( U(uIndexFront+1) - two*U(uIndex+1) + U(uIndexBack+1) ); + if (m_probEn == ::pressiodemoapps::AdvectionDiffusion2d::BurgersOutflow) { + // homogeneous Neumann + m_bcCellJacFactors.fill(static_cast(1)); + } + else if (m_probEn == ::pressiodemoapps::AdvectionDiffusion2d::BurgersPeriodic) { + throw std::runtime_error("Should not be getting Jacobian factors for fully periodic problem."); + } + else { + throw std::runtime_error("Invalid problem enumeration."); + } } template - void addBurgersDiffusionAndSourceToVelocityAndJacobianInnerCells(const U_t & U, + void addBurgersDiffusionToVelocityAndOptionalJacobianInnerCells(const U_t & U, V_t & V, - jacobian_type & J, + jacobian_type * J, index_t smPt) const { constexpr auto two = static_cast(2); @@ -522,37 +1143,52 @@ class EigenApp const auto diffDyInvSq = m_burgers2d_diffusion*dyInvSq; const auto & graph = m_meshObj.get().graph(); - const auto vIndex = smPt*m_numDofPerCell; - const auto uIndex = graph(smPt, 0)*m_numDofPerCell; - const auto uIndexLeft = graph(smPt, 1)*m_numDofPerCell; - const auto uIndexFront = graph(smPt, 2)*m_numDofPerCell; - const auto uIndexRight = graph(smPt, 3)*m_numDofPerCell; - const auto uIndexBack = graph(smPt, 4)*m_numDofPerCell; + const auto vIndex = smPt*numDofPerCell; + const auto uIndex = graph(smPt, 0)*numDofPerCell; + const auto uIndexLeft = graph(smPt, 1)*numDofPerCell; + const auto uIndexFront = graph(smPt, 2)*numDofPerCell; + const auto uIndexRight = graph(smPt, 3)*numDofPerCell; + const auto uIndexBack = graph(smPt, 4)*numDofPerCell; + V(vIndex) += diffDxInvSq*( U(uIndexRight) - two*U(uIndex) + U(uIndexLeft) ); V(vIndex) += diffDyInvSq*( U(uIndexFront) - two*U(uIndex) + U(uIndexBack) ); V(vIndex+1) += diffDxInvSq*( U(uIndexRight+1) - two*U(uIndex+1) + U(uIndexLeft+1) ); V(vIndex+1) += diffDyInvSq*( U(uIndexFront+1) - two*U(uIndex+1) + U(uIndexBack+1) ); - J.coeffRef(vIndex, uIndex) += -two*diffDxInvSq - two*diffDyInvSq; - J.coeffRef(vIndex, uIndexLeft) += diffDxInvSq; - J.coeffRef(vIndex, uIndexFront) += diffDyInvSq; - J.coeffRef(vIndex, uIndexRight) += diffDxInvSq; - J.coeffRef(vIndex, uIndexBack) += diffDyInvSq; - J.coeffRef(vIndex+1, uIndex+1) += -two*diffDxInvSq - two*diffDyInvSq; - J.coeffRef(vIndex+1, uIndexLeft+1) += diffDxInvSq; - J.coeffRef(vIndex+1, uIndexFront+1) += diffDyInvSq; - J.coeffRef(vIndex+1, uIndexRight+1) += diffDxInvSq; - J.coeffRef(vIndex+1, uIndexBack+1) += diffDyInvSq; + if (J){ + J->coeffRef(vIndex, uIndex) += -two*diffDxInvSq - two*diffDyInvSq; + J->coeffRef(vIndex, uIndexLeft) += diffDxInvSq; + J->coeffRef(vIndex, uIndexFront) += diffDyInvSq; + J->coeffRef(vIndex, uIndexRight) += diffDxInvSq; + J->coeffRef(vIndex, uIndexBack) += diffDyInvSq; + J->coeffRef(vIndex+1, uIndex+1) += -two*diffDxInvSq - two*diffDyInvSq; + J->coeffRef(vIndex+1, uIndexLeft+1) += diffDxInvSq; + J->coeffRef(vIndex+1, uIndexFront+1) += diffDyInvSq; + J->coeffRef(vIndex+1, uIndexRight+1) += diffDxInvSq; + J->coeffRef(vIndex+1, uIndexBack+1) += diffDyInvSq; + } + } + + void allocateGhosts() + { + const auto stencilSize = reconstructionTypeToStencilSize(m_inviscidFluxRecEn); + const auto numGhostValues = numDofPerCell*((stencilSize-1)/2); + + const index_t s1 = m_meshObj.get().numCellsNearBd(); + ::pressiodemoapps::resize(m_ghostLeft, s1, numGhostValues); + ::pressiodemoapps::resize(m_ghostFront,s1, numGhostValues); + ::pressiodemoapps::resize(m_ghostRight,s1, numGhostValues); + ::pressiodemoapps::resize(m_ghostBack, s1, numGhostValues); } protected: // common to all problems - int m_numDofPerCell = {}; ::pressiodemoapps::AdvectionDiffusion2d m_probEn; ::pressiodemoapps::InviscidFluxReconstruction m_inviscidFluxRecEn; ::pressiodemoapps::InviscidFluxScheme m_inviscidFluxSchemeEn; ::pressiodemoapps::ViscousFluxReconstruction m_viscousFluxRecEn; +// BCFunctorsHolderType m_bcFuncsHolder = {}; std::reference_wrapper m_meshObj; index_t m_numDofStencilMesh = {}; @@ -573,9 +1209,12 @@ class EigenApp scalar_type m_burgers2d_diffusion = {}; scalar_type m_burgers2d_x0 = {}; scalar_type m_burgers2d_y0 = {}; + + mutable std::array m_bcCellJacFactors; }; -template constexpr int EigenApp::dimensionality; +template constexpr int EigenApp::numDofPerCell; +template constexpr int EigenApp::dimensionality; }}//end namespace #endif diff --git a/include/pressiodemoapps/impl/swe_2d_prob_class.hpp b/include/pressiodemoapps/impl/swe_2d_prob_class.hpp index 92566884..d21b4df5 100644 --- a/include/pressiodemoapps/impl/swe_2d_prob_class.hpp +++ b/include/pressiodemoapps/impl/swe_2d_prob_class.hpp @@ -97,10 +97,11 @@ class EigenApp using jacobian_type = Eigen::SparseMatrix; using mesh_connectivity_graph_type = typename MeshType::graph_t; -private: static constexpr int dimensionality{2}; static constexpr int numDofPerCell{3}; +private: + using ghost_container_type = Eigen::Matrix; using stencil_container_type = Eigen::Matrix; using flux_type = Eigen::Matrix; From 7e9b0d03a0b407eab8486f838befd63064747c81 Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Mon, 5 Aug 2024 20:43:59 -0400 Subject: [PATCH 02/15] add first order BurgersOutflow test --- .../advection_diffusion_2d_prob_class.hpp | 2 +- tests_cpp/CMakeLists.txt | 1 + .../CMakeLists.txt | 4 + .../compare.py | 20 + .../firstorder/CMakeLists.txt | 18 + .../firstorder/gold.txt | 800 ++++++++++++++++++ .../eigen_2d_burgers_outflow_implicit/main.cc | 45 + .../eigen_2d_burgers_outflow_implicit/plot.py | 46 + .../test.cmake | 24 + 9 files changed, 959 insertions(+), 1 deletion(-) create mode 100644 tests_cpp/eigen_2d_burgers_outflow_implicit/CMakeLists.txt create mode 100644 tests_cpp/eigen_2d_burgers_outflow_implicit/compare.py create mode 100644 tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/CMakeLists.txt create mode 100644 tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt create mode 100644 tests_cpp/eigen_2d_burgers_outflow_implicit/main.cc create mode 100644 tests_cpp/eigen_2d_burgers_outflow_implicit/plot.py create mode 100644 tests_cpp/eigen_2d_burgers_outflow_implicit/test.cmake diff --git a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp index c76d30f9..2376e716 100644 --- a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp +++ b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp @@ -264,7 +264,7 @@ class EigenApp fillGhosts(U, currentTime); } else { - throw std::runtime_error("Custom BCs not implemented yet") + throw std::runtime_error("Custom BCs not implemented yet"); // fillGhostsUseCustomFunctors(U, currentTime, m_meshObj, m_bcFuncsHolder, // m_ghostLeft, m_ghostFront, // m_ghostRight, m_ghostBack, numDofPerCell); diff --git a/tests_cpp/CMakeLists.txt b/tests_cpp/CMakeLists.txt index 616fa26e..01e77141 100644 --- a/tests_cpp/CMakeLists.txt +++ b/tests_cpp/CMakeLists.txt @@ -87,6 +87,7 @@ add_subdirectory(eigen_2d_gray_scott_explicit) add_subdirectory(eigen_2d_gray_scott_sample_mesh_test) add_subdirectory(eigen_2d_burgers_periodic_explicit) add_subdirectory(eigen_2d_burgers_periodic_sample_mesh_test) +add_subdirectory(eigen_2d_burgers_outflow_implicit) add_subdirectory(eigen_2d_advdiffreac_probA_explicit) add_subdirectory(eigen_2d_advdiffreac_probA_sample_mesh_test) diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/CMakeLists.txt b/tests_cpp/eigen_2d_burgers_outflow_implicit/CMakeLists.txt new file mode 100644 index 00000000..f568c0d8 --- /dev/null +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_subdirectory(firstorder) +#add_subdirectory(weno3) +#add_subdirectory(weno5) diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/compare.py b/tests_cpp/eigen_2d_burgers_outflow_implicit/compare.py new file mode 100644 index 00000000..0f364f1e --- /dev/null +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/compare.py @@ -0,0 +1,20 @@ + +import numpy as np +import sys, os + +if __name__== "__main__": + nx=20 + ny=20 + fomTotDofs = nx*ny*2 + + D = np.fromfile("burgers2d_solution.bin") + nt = int(np.size(D)/fomTotDofs) + D = np.reshape(D, (nt, fomTotDofs)) + D = D[-1, :] + np.savetxt("field.txt", D) + + goldD = np.loadtxt("gold.txt") + assert(np.allclose(D.shape, goldD.shape)) + assert(np.isnan(D).all() == False) + assert(np.isnan(goldD).all() == False) + assert(np.allclose(D, goldD,rtol=1e-10, atol=1e-12)) diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/CMakeLists.txt b/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/CMakeLists.txt new file mode 100644 index 00000000..2e7e1cbb --- /dev/null +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/CMakeLists.txt @@ -0,0 +1,18 @@ + +set(testname eigen_2d_burgers_outflow_firstorder_implicit) +set(exename ${testname}_exe) + +configure_file(../compare.py compare.py COPYONLY) +configure_file(gold.txt gold.txt COPYONLY) +configure_file(../plot.py plot.py COPYONLY) + +add_executable(${exename} ${CMAKE_CURRENT_SOURCE_DIR}/../main.cc) + +add_test(NAME ${testname} +COMMAND ${CMAKE_COMMAND} +-DMESHDRIVER=${MESHSRC}/create_full_mesh.py +-DOUTDIR=${CMAKE_CURRENT_BINARY_DIR} +-DEXENAME=$ +-DSTENCILVAL=3 +-P ${CMAKE_CURRENT_SOURCE_DIR}/../test.cmake +) diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt b/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt new file mode 100644 index 00000000..c75c190c --- /dev/null +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt @@ -0,0 +1,800 @@ +2.891567712862740325e-05 +2.882637559256150938e-05 +9.540173518743496825e-05 +9.552921409348327070e-05 +2.757595667267406098e-04 +2.764748669585433355e-04 +6.947677429332183062e-04 +6.972703394482007190e-04 +1.522973920152295452e-03 +1.529596512126408375e-03 +2.904687084419542518e-03 +2.918727096861224637e-03 +4.837109987752634052e-03 +4.861772110686439496e-03 +7.080670459848262613e-03 +7.117650883867885671e-03 +9.176990332613363388e-03 +9.225568140998605116e-03 +1.057499705620808250e-02 +1.063185641513409233e-02 +1.081524566109228098e-02 +1.087464603492064620e-02 +9.756220454436987516e-03 +9.811018293127754183e-03 +7.705768481134387532e-03 +7.749695998982620605e-03 +5.286538166723041970e-03 +5.316366251753744041e-03 +3.135685995035771695e-03 +3.152396735491153242e-03 +1.609527268207387642e-03 +1.617096745509076505e-03 +7.186834241574806400e-04 +7.214100168352285437e-04 +2.806976831736475897e-04 +2.814465175871478666e-04 +9.617329158587724477e-05 +9.630330568331762337e-05 +2.900015202580905592e-05 +2.891047449380189469e-05 +7.343658980776709934e-05 +7.294313092868614243e-05 +2.410954075189447588e-04 +2.410947629489612707e-04 +6.914291766506122389e-04 +6.914316540008532026e-04 +1.712249248130421047e-03 +1.712267178539884221e-03 +3.641189319396101985e-03 +3.641283958259367622e-03 +6.651326068000100282e-03 +6.651686370031533596e-03 +1.054028608629264778e-02 +1.054128917061188282e-02 +1.474025049560908837e-02 +1.474236160528120260e-02 +1.851126279087389123e-02 +1.851474617843290246e-02 +2.112158264714227712e-02 +2.112620664355545352e-02 +2.194284237188222700e-02 +2.194780229550222228e-02 +2.060397218025873667e-02 +2.060820935933922043e-02 +1.725022640422380765e-02 +1.725304365815107793e-02 +1.260796424757040270e-02 +1.260936496762793055e-02 +7.871456479429170608e-03 +7.871954767622434818e-03 +4.151745125683286783e-03 +4.151868439862782881e-03 +1.862949751115095497e-03 +1.862971181593138037e-03 +7.233789804527745223e-04 +7.233817130355630395e-04 +2.461073754817110653e-04 +2.461069143863120609e-04 +7.398520009638618743e-05 +7.348649500949684687e-05 +1.631185329347818280e-04 +1.618850094391395870e-04 +5.320568201172858665e-04 +5.320534388163908812e-04 +1.506710662505906986e-03 +1.506710659902990405e-03 +3.640889911668371021e-03 +3.640890093171606206e-03 +7.454103459205425539e-03 +7.454105371562867212e-03 +1.299965397901680156e-02 +1.299966658943673206e-02 +1.969905065979131106e-02 +1.969910386697676027e-02 +2.662395592158454602e-02 +2.662410733564354523e-02 +3.282329381192744533e-02 +3.282360094222872698e-02 +3.744194089632480599e-02 +3.744240274586189965e-02 +3.968018396605398068e-02 +3.968070428920611459e-02 +3.878023243136854981e-02 +3.878066378809853082e-02 +3.440804756412031706e-02 +3.440830359809413097e-02 +2.693995464185802366e-02 +2.694005774349456442e-02 +1.791525946818449747e-02 +1.791528565718496224e-02 +9.790542282584904429e-03 +9.790546171968365560e-03 +4.388413872129753694e-03 +4.388414196680382254e-03 +1.669356601838321245e-03 +1.669356612052974153e-03 +5.574507804178734701e-04 +5.574483162578962748e-04 +1.658758372555108323e-04 +1.646101554232837108e-04 +3.167692842406612296e-04 +3.141692411794757439e-04 +1.023204930803372744e-03 +1.023193596741595740e-03 +2.844572548561867011e-03 +2.844572467466035138e-03 +6.649406109870636961e-03 +6.649406111653675087e-03 +1.299957366434329430e-02 +1.299957372021234674e-02 +2.157754916951077490e-02 +2.157754976916669704e-02 +3.135924831818553971e-02 +3.135925196337178977e-02 +4.119262625907316872e-02 +4.119263981371057426e-02 +5.007632953639157974e-02 +5.007636275194980030e-02 +5.715172934118156051e-02 +5.715178590443807660e-02 +6.158240273000290671e-02 +6.158247095663705456e-02 +6.234209306254674676e-02 +6.234215031516397720e-02 +5.847651358688751855e-02 +5.847654616718374332e-02 +4.943569561887536934e-02 +4.943570758412434846e-02 +3.591748229417009858e-02 +3.591748493657834912e-02 +2.107570496775713204e-02 +2.107570528804827981e-02 +9.586743706241717886e-03 +9.586743724708799916e-03 +3.510201560691216232e-03 +3.510201526880161581e-03 +1.124936838260944590e-03 +1.124928957818450504e-03 +3.275499485509633115e-04 +3.248068560625750147e-04 +5.379767077112381510e-04 +5.333093151842447375e-04 +1.716582353072151727e-03 +1.716551299189888547e-03 +4.669522507615969827e-03 +4.669522154948670817e-03 +1.053194532815622704e-02 +1.053194532125214036e-02 +1.969851699464963968e-02 +1.969851699671831824e-02 +3.135920682890255135e-02 +3.135920686566303489e-02 +4.415435651035635317e-02 +4.415435681599547135e-02 +5.685273489072751457e-02 +5.685273633052593395e-02 +6.847997873441853678e-02 +6.847998293185032781e-02 +7.822210353452190013e-02 +7.822211161516749722e-02 +8.529290207178197303e-02 +8.529291264299357356e-02 +8.864491875144693556e-02 +8.864492804417681282e-02 +8.691437942388825777e-02 +8.691438479672101980e-02 +7.865056178797689979e-02 +7.865056377741479199e-02 +6.282341363838377102e-02 +6.282341409444529290e-02 +4.100389674353709102e-02 +4.100389680609164283e-02 +1.983329087415316300e-02 +1.983329087647072581e-02 +6.953628827942222486e-03 +6.953628660897985536e-03 +2.049113153568987364e-03 +2.049091096221891846e-03 +5.711043552600592304e-04 +5.659524427442072817e-04 +7.997503143837157887e-04 +7.925580856076986204e-04 +2.520763574781300330e-03 +2.520696515040770670e-03 +6.722066036620703497e-03 +6.722064958199027752e-03 +1.471528465697732012e-02 +1.471528462741216077e-02 +2.662175952929158110e-02 +2.662175952816376451e-02 +4.119239099958279388e-02 +4.119239100226657069e-02 +5.685270669580771291e-02 +5.685270672563501326e-02 +7.234215939688871944e-02 +7.234215957030865063e-02 +8.671938717376112549e-02 +8.671938776762176670e-02 +9.921814808737819402e-02 +9.921814937661121991e-02 +1.091248400881716374e-01 +1.091248419316919321e-01 +1.155102662213813303e-01 +1.155102679577763858e-01 +1.169598337917381742e-01 +1.169598348544688554e-01 +1.115021848680465971e-01 +1.115021852899458765e-01 +9.661178330936483205e-02 +9.661178341873191688e-02 +7.071742186127370766e-02 +7.071742187971306881e-02 +3.843771118501147777e-02 +3.843771117149565736e-02 +1.351733951760561089e-02 +1.351733884663934744e-02 +3.457429332911336663e-03 +3.457377182827476442e-03 +8.810882738779417332e-04 +8.725903321950388572e-04 +1.041973519761915006e-03 +1.032393001772090009e-03 +3.255658532679396502e-03 +3.255545808545097074e-03 +8.575653877036966410e-03 +8.575651583952802887e-03 +1.845832537531636591e-02 +1.845832529682470483e-02 +3.281744542000756409e-02 +3.281744541594052572e-02 +5.007554184145285303e-02 +5.007554184140648734e-02 +6.847985742702658585e-02 +6.847985743025977734e-02 +8.671936741565912377e-02 +8.671936743852669272e-02 +1.038597257567184101e-01 +1.038597258477806512e-01 +1.191671338369297145e-01 +1.191671340592835443e-01 +1.319912177542321152e-01 +1.319912181032505405e-01 +1.415455376919675379e-01 +1.415455380485245163e-01 +1.466090502420644703e-01 +1.466090504793362836e-01 +1.451411531696966128e-01 +1.451411532737098553e-01 +1.338509762921208379e-01 +1.338509763232867411e-01 +1.081913730203152013e-01 +1.081913730249711714e-01 +6.742790940561634028e-02 +6.742790933658762698e-02 +2.596140143853171989e-02 +2.596139927809557393e-02 +5.683675360778574562e-03 +5.683571532325680173e-03 +1.206857463913103877e-03 +1.194336872902992779e-03 +1.190954512494032816e-03 +1.179866515636735034e-03 +3.713111967861653078e-03 +3.712964764311336464e-03 +9.773851441236516141e-03 +9.773848044004447566e-03 +2.104034428534496196e-02 +2.104034415324586987e-02 +3.743151135437616794e-02 +3.743151134658924406e-02 +5.715007938757830919e-02 +5.715007938697792139e-02 +7.822180149262702997e-02 +7.822180149295100693e-02 +9.921808743966641086e-02 +9.921808744287340109e-02 +1.191671215569779368e-01 +1.191671215717420851e-01 +1.373432063805863634e-01 +1.373432064210496351e-01 +1.531393723458097100e-01 +1.531393724156862868e-01 +1.658892628173905537e-01 +1.658892628953251291e-01 +1.746140779381966379e-01 +1.746140779952692901e-01 +1.775815291258069639e-01 +1.775815291538574148e-01 +1.714380982874871007e-01 +1.714380982971079603e-01 +1.497746789094132058e-01 +1.497746789059241357e-01 +1.055294435648022333e-01 +1.055294433560954453e-01 +4.700474786132792515e-02 +4.700474246828632158e-02 +9.613900138864777192e-03 +9.613721320099265222e-03 +1.485616237419084325e-03 +1.468763203106053994e-03 +1.194204246215145203e-03 +1.183039499382685040e-03 +3.743240325186353214e-03 +3.743091248267912778e-03 +9.968339015082518240e-03 +9.968335512603657481e-03 +2.185252312408986208e-02 +2.185252298284328862e-02 +3.966761270609921175e-02 +3.966761269727673428e-02 +6.158018828990026450e-02 +6.158018828913947723e-02 +8.529244174397362932e-02 +8.529244174393879607e-02 +1.091247335104376520e-01 +1.091247335108979782e-01 +1.319911914813401699e-01 +1.319911914838207134e-01 +1.531393661833722608e-01 +1.531393661909966619e-01 +1.719852126095982037e-01 +1.719852126241041002e-01 +1.879519551202858130e-01 +1.879519551380071651e-01 +2.002635461611704248e-01 +2.002635461755039870e-01 +2.076131397174729998e-01 +2.076131397254163957e-01 +2.071944709361345782e-01 +2.071944709391507211e-01 +1.920415864493757729e-01 +1.920415864392469030e-01 +1.493450570784922993e-01 +1.493450566583832684e-01 +7.683890865175217744e-02 +7.683889843708829881e-02 +1.650798896837371924e-02 +1.650771625944339599e-02 +1.699600853578585096e-03 +1.678524733644340622e-03 +1.049668034585466130e-03 +1.039905936678077155e-03 +3.328151834912656919e-03 +3.328035145167692558e-03 +9.055097797194350262e-03 +9.055095300250634235e-03 +2.053243093777074035e-02 +2.053243084273043140e-02 +3.877015476848194586e-02 +3.877015476261693600e-02 +6.234020409705470778e-02 +6.234020409653103639e-02 +8.864448491829358956e-02 +8.864448491823868903e-02 +1.155101527094232056e-01 +1.155101527094851144e-01 +1.415455056012482615e-01 +1.415455056016723112e-01 +1.658892534603486069e-01 +1.658892534618129910e-01 +1.879519527186185035e-01 +1.879519527216924057e-01 +2.072232881759657752e-01 +2.072232881800861182e-01 +2.230787611239839763e-01 +2.230787611276660032e-01 +2.345739935886617944e-01 +2.345739935909544605e-01 +2.398226561819177816e-01 +2.398226561828461778e-01 +2.324573292735923058e-01 +2.324573292607148012e-01 +1.950686792665159985e-01 +1.950686786881494217e-01 +1.121649327920169192e-01 +1.121649184587821951e-01 +2.624071967225937926e-02 +2.624036784527709540e-02 +1.867851724130910850e-03 +1.843817840892146478e-03 +8.077273604158370949e-04 +8.003473949922989324e-04 +2.598210956372542461e-03 +2.598140607935420839e-03 +7.259340862801462631e-03 +7.259339642161776081e-03 +1.721074479125377782e-02 +1.721074475152234093e-02 +3.440276796856905211e-02 +3.440276796629961054e-02 +5.847549194610846685e-02 +5.847549194590515725e-02 +8.691412270485232572e-02 +8.691412270482776203e-02 +1.169597578283277650e-01 +1.169597578283343708e-01 +1.466090255410801568e-01 +1.466090255411522381e-01 +1.746140695379838625e-01 +1.746140695382662200e-01 +2.002635433483954674e-01 +2.002635433490512762e-01 +2.230787603629439952e-01 +2.230787603639099170e-01 +2.425774741771483389e-01 +2.425774741781011046e-01 +2.581085650884420990e-01 +2.581085650891052907e-01 +2.685117441151328999e-01 +2.685117441154244999e-01 +2.691171570776442756e-01 +2.691171570673726587e-01 +2.393864498332383683e-01 +2.393864492989650761e-01 +1.468697903260799131e-01 +1.468697767036577229e-01 +3.486762948215477165e-02 +3.486729937597506795e-02 +1.821935651033539799e-03 +1.798805841458147627e-03 +5.434244396373876180e-04 +5.386302876601851801e-04 +1.771394245654914299e-03 +1.771361595695808162e-03 +5.073235708171322522e-03 +5.073235302678729894e-03 +1.259336383294806100e-02 +1.259336382287760091e-02 +2.693821693002868695e-02 +2.693821692953062355e-02 +4.943534986322334346e-02 +4.943534986317873331e-02 +7.865046417349411123e-02 +7.865046417348806052e-02 +1.115021512762199157e-01 +1.115021512762203876e-01 +1.451411403732436323e-01 +1.451411403732557892e-01 +1.775815240182481158e-01 +1.775815240183016008e-01 +2.076131376729494771e-01 +2.076131376730881439e-01 +2.345739928293364696e-01 +2.345739928295618171e-01 +2.581085648765132357e-01 +2.581085648767583729e-01 +2.775039788577144395e-01 +2.775039788579039546e-01 +2.917030981438609727e-01 +2.917030981439305282e-01 +3.013404987996894380e-01 +3.013404987941251667e-01 +2.808980624885660804e-01 +2.808980621801133726e-01 +1.692899017193153777e-01 +1.692898947236993745e-01 +3.374925538059946745e-02 +3.374908586278352329e-02 +1.207378887691181900e-03 +1.191283250718834161e-03 +3.194347309543339578e-04 +3.167743964274299722e-04 +1.050913077333021821e-03 +1.050901250786613400e-03 +3.060774693390957545e-03 +3.060774601002593659e-03 +7.867997669808004038e-03 +7.867997668287312479e-03 +1.791492126459530085e-02 +1.791492126453536615e-02 +3.591741099171907176e-02 +3.591741099171349982e-02 +6.282338933217528065e-02 +6.282338933217430921e-02 +9.661177300705028892e-02 +9.661177300705031668e-02 +1.338509715259842137e-01 +1.338509715259864064e-01 +1.714380960182149416e-01 +1.714380960182249614e-01 +2.071944698614132663e-01 +2.071944698614418268e-01 +2.398226556953636512e-01 +2.398226556954149713e-01 +2.685117439213455803e-01 +2.685117439214073642e-01 +2.917030980887996283e-01 +2.917030980888522529e-01 +3.117617137185705323e-01 +3.117617137185694776e-01 +3.376590429127995785e-01 +3.376590429100229662e-01 +3.102915466369300379e-01 +3.102915465313412224e-01 +1.507316571439187569e-01 +1.507316555989560714e-01 +1.759755075263727542e-02 +1.759751806793086876e-02 +4.437247998956445625e-04 +4.372854183762412967e-04 +1.640819085340999796e-04 +1.628277372828172275e-04 +5.423137626397874726e-04 +5.423102795322940709e-04 +1.590292091492721046e-03 +1.590292076225528805e-03 +4.151235251491639661e-03 +4.151235251351540791e-03 +9.790506451401222859e-03 +9.790506451397422080e-03 +2.107569652885602288e-02 +2.107569652885564471e-02 +4.100389280779375561e-02 +4.100389280779365847e-02 +7.071741961453748004e-02 +7.071741961453746617e-02 +1.081913716924830099e-01 +1.081913716924833291e-01 +1.497746781349924006e-01 +1.497746781349942602e-01 +1.920415860130265662e-01 +1.920415860130323671e-01 +2.324573290408706583e-01 +2.324573290408820103e-01 +2.691171569637670347e-01 +2.691171569637819116e-01 +3.013404987524984091e-01 +3.013404987525122314e-01 +3.376590428990932646e-01 +3.376590428990880466e-01 +3.613740464929280916e-01 +3.613740464916499473e-01 +2.645751509560527182e-01 +2.645751509325705020e-01 +7.065945602944127824e-02 +7.065945584773974941e-02 +2.637730598822237912e-03 +2.637727318262494351e-03 +1.687998556325526244e-04 +1.672534897865486593e-04 +7.369767304275246704e-05 +7.319891685769703638e-05 +2.439145026534879747e-04 +2.439136055560530087e-04 +7.149736802309126539e-04 +7.149736781451452227e-04 +1.862901414529585277e-03 +1.862901414520610685e-03 +4.388411973359058332e-03 +4.388411973358935167e-03 +9.586743208275608566e-03 +9.586743208275594688e-03 +1.983329050383654188e-02 +1.983329050383653147e-02 +3.843771085360933593e-02 +3.843771085360933593e-02 +6.742790911507501317e-02 +6.742790911507504092e-02 +1.055294433128217552e-01 +1.055294433128221437e-01 +1.493450568766604147e-01 +1.493450568766616082e-01 +1.950686791557454391e-01 +1.950686791557479927e-01 +2.393864498191919654e-01 +2.393864498191956292e-01 +2.808980625039074752e-01 +2.808980625039110834e-01 +3.102915466477207396e-01 +3.102915466477121353e-01 +2.645751509640062449e-01 +2.645751509635974608e-01 +1.057330141728736600e-01 +1.057330141692308101e-01 +7.209461017913145267e-03 +7.209461010191015908e-03 +2.625315004237093451e-04 +2.625307756403837036e-04 +7.426113860083726815e-05 +7.375582586273848093e-05 +2.896260885134721610e-05 +2.879756179883484151e-05 +9.585319727453900851e-05 +9.585298048750955926e-05 +2.800828487961493801e-04 +2.800828485122341819e-04 +7.233754436179182842e-04 +7.233754436173832304e-04 +1.669356548098337644e-03 +1.669356548098335476e-03 +3.510201538606929142e-03 +3.510201538606929142e-03 +6.953628765219156162e-03 +6.953628765219164835e-03 +1.351733929608289406e-02 +1.351733929608293396e-02 +2.596140072471944324e-02 +2.596140072471963753e-02 +4.700474602104270927e-02 +4.700474602104338234e-02 +7.683890508801587138e-02 +7.683890508801725916e-02 +1.121649278081079809e-01 +1.121649278081100348e-01 +1.468697856619168296e-01 +1.468697856619188558e-01 +1.692898993515345174e-01 +1.692898993515359884e-01 +1.507316567041669386e-01 +1.507316567041634414e-01 +7.065945600218334621e-02 +7.065945600211061273e-02 +7.209461017631256172e-03 +7.209461017455662257e-03 +3.085949366258624606e-04 +3.085949364177746818e-04 +9.665591089575010619e-05 +9.665571744141378859e-05 +2.904792970303228384e-05 +2.888228838061175112e-05 +9.962482974317693449e-06 +9.918392789448031912e-06 +3.296542538411419116e-05 +3.296537654555108077e-05 +9.604030044229770399e-05 +9.604030039904191333e-05 +2.461066162509147775e-04 +2.461066162509007371e-04 +5.574494660385148626e-04 +5.574494660386214396e-04 +1.124933161034850004e-03 +1.124933161035284552e-03 +2.049103856702132881e-03 +2.049103856703787373e-03 +3.457408707234658780e-03 +3.457408707240024279e-03 +5.683634998529337248e-03 +5.683634998543188148e-03 +9.613828068253442438e-03 +9.613828068281099135e-03 +1.650787081784299212e-02 +1.650787081788428548e-02 +2.624055620564781297e-02 +2.624055620569071268e-02 +3.486746856742432149e-02 +3.486746856745259054e-02 +3.374916999946175888e-02 +3.374916999947223661e-02 +1.759753391754043453e-02 +1.759753391754188476e-02 +2.637728870734110023e-03 +2.637728870731897383e-03 +2.625310582365817736e-04 +2.625310582362379189e-04 +9.665577488858831520e-05 +9.665577485243740980e-05 +3.305802138898751948e-05 +3.305797472744860180e-05 +9.972508446555249746e-06 +9.928387193172535650e-06 +2.999728784017904229e-06 +2.990946689002064946e-06 +9.927691774457302775e-06 +9.927682708154149195e-06 +2.886967493953757598e-05 +2.886967494505265832e-05 +7.363351097200878227e-05 +7.363351100979917754e-05 +1.650288558057150647e-04 +1.650288559146652128e-04 +3.258067068654602527e-04 +3.258067071613410855e-04 +5.680091860720520424e-04 +5.680091868104079249e-04 +8.762743675182081606e-04 +8.762743691185050955e-04 +1.200125110543119166e-03 +1.200125113371710260e-03 +1.476848069174112191e-03 +1.476848073054876391e-03 +1.688731899155663293e-03 +1.688731903185764849e-03 +1.855375863990456039e-03 +1.855375867150210181e-03 +1.809797492976764587e-03 +1.809797494837052118e-03 +1.198801557133505769e-03 +1.198801557950463599e-03 +4.401349736784411623e-04 +4.401349739807631318e-04 +1.678131055066781562e-04 +1.678131056161386112e-04 +7.390620290523382729e-05 +7.390620294310938664e-05 +2.892370277384048236e-05 +2.892370277976403787e-05 +9.936031652269990347e-06 +9.936022719573077259e-06 +3.000635389341720259e-06 +2.991855026213038753e-06 +7.906069150170883498e-07 +7.896779950283144525e-07 +2.618042494737440811e-06 +2.618046693712790126e-06 +7.606393528682351908e-06 +7.606410862957441514e-06 +1.935741734636943975e-05 +1.935746733673573435e-05 +4.317726034183715566e-05 +4.317738600535513138e-05 +8.447225136927691562e-05 +8.447253023075077221e-05 +1.450135390790621671e-04 +1.450140859501287732e-04 +2.183480451627651197e-04 +2.183489805518622716e-04 +2.878677780413409085e-04 +2.878691425590421040e-04 +3.314108318873009340e-04 +3.314124922490713156e-04 +3.323703682814169906e-04 +3.323720304632313250e-04 +2.901654917417278469e-04 +2.901668600145300360e-04 +2.205133799961988758e-04 +2.205143184495291940e-04 +1.459420351364858768e-04 +1.459425836218147820e-04 +8.470440937749183351e-05 +8.470468887477718904e-05 +4.324671820066477139e-05 +4.324684405361257878e-05 +1.937577178411685008e-05 +1.937582181828665056e-05 +7.610119383112707791e-06 +7.610136725273094766e-06 +2.618621795896517226e-06 +2.618626000050029246e-06 +7.906698670344471021e-07 +7.897414805354715165e-07 +1.823747918448168706e-07 +1.831135745999995181e-07 +6.028664173742221444e-07 +6.079866030860346642e-07 +1.749794194964432422e-06 +1.766905599490730292e-06 +4.446712872681966794e-06 +4.495007338408849562e-06 +9.895816146221506841e-06 +1.001219636369932488e-05 +1.928882957665929192e-05 +1.952988157043547218e-05 +3.293306202818927094e-05 +3.336398214641530835e-05 +4.924197929155844038e-05 +4.990835888413392194e-05 +6.444064778380405485e-05 +6.533264166379451718e-05 +7.374844619782117638e-05 +7.478138045222389803e-05 +7.376229110175719068e-05 +7.479609634741213819e-05 +6.447267234319041507e-05 +6.536660487450691103e-05 +4.927391969127034550e-05 +4.994206189432670400e-05 +3.295403420153928195e-05 +3.338595196408798216e-05 +1.929880619798280653e-05 +1.954028312004270877e-05 +9.899361626477657086e-06 +1.001588453621093399e-05 +4.447665845927772423e-06 +4.495996436335256502e-06 +1.749989180551918945e-06 +1.767107415747062194e-06 +6.028968819447122512e-07 +6.080180253856458391e-07 +1.823781337314699656e-07 +1.831169957574088870e-07 diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/main.cc b/tests_cpp/eigen_2d_burgers_outflow_implicit/main.cc new file mode 100644 index 00000000..c6239496 --- /dev/null +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/main.cc @@ -0,0 +1,45 @@ + +#include "pressio/ode_steppers_implicit.hpp" +#include "pressio/ode_advancers.hpp" +#include "pressiodemoapps/advection_diffusion2d.hpp" +#include "../observer.hpp" + +int main() +{ + + namespace pda = pressiodemoapps; + const auto meshObj = pda::load_cellcentered_uniform_mesh_eigen("."); +#ifdef USE_WENO5 + const auto scheme = pda::InviscidFluxReconstruction::Weno5; +#elif defined USE_WENO3 + const auto scheme = pda::InviscidFluxReconstruction::Weno3; +#else + const auto scheme = pda::InviscidFluxReconstruction::FirstOrder; +#endif + + const auto schemeVisc = pda::ViscousFluxReconstruction::FirstOrder; + + const auto probId = pda::AdvectionDiffusion2d::BurgersOutflow; + auto appObj = pda::create_problem_eigen(meshObj, probId, scheme, schemeVisc); + + using app_t = decltype(appObj); + using state_t = typename app_t::state_type; + using jacob_t = typename app_t::jacobian_type; + state_t state = appObj.initialCondition(); + + auto stepperObj = pressio::ode::create_implicit_stepper( + pressio::ode::StepScheme::CrankNicolson, appObj); + + using lin_solver_t = pressio::linearsolvers::Solver< + pressio::linearsolvers::iterative::Bicgstab, jacob_t>; + lin_solver_t linSolverObj; + auto NonLinSolver=pressio::create_newton_solver(stepperObj, linSolverObj); + NonLinSolver.setStopTolerance(1e-5); + + const auto dt = 0.01; + const auto Nsteps = pressio::ode::StepCount(2./dt); + FomObserver Obs("burgers2d_solution.bin", 50); + pressio::ode::advance_n_steps(stepperObj, state, 0., dt, Nsteps, Obs, NonLinSolver); + + return 0; +} diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/plot.py b/tests_cpp/eigen_2d_burgers_outflow_implicit/plot.py new file mode 100644 index 00000000..231de8f2 --- /dev/null +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/plot.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 + +import matplotlib.pyplot as plt +from matplotlib import cm +import numpy as np +from numpy import linalg as LA +import re + +def extractN(ns): + reg = re.compile(r''+ns+'.+') + file1 = open('info.dat', 'r') + strings = re.search(reg, file1.read()) + file1.close() + assert(strings) + return int(strings.group().split()[1]) + +########################## +if __name__== "__main__": +########################## + nx = extractN('nx') + ny = extractN('ny') + print(nx, ny) + fomTotDofs = nx*ny*2 + + fomCoords = np.loadtxt('coordinates.dat', dtype=float) + x_fom, y_fom = fomCoords[:,1], fomCoords[:,2] + x_fom = np.reshape(x_fom, (ny,nx)) + y_fom = np.reshape(y_fom, (ny,nx)) + + fomTestD = np.fromfile("burgers2d_solution.bin") + nt = int(np.size(fomTestD)/fomTotDofs) + print("fomTest: nt = ", nt) + fomTestD = np.reshape(fomTestD, (nt, fomTotDofs)) + + fig = plt.figure(1) + for i in range(0, nt): + fomS = fomTestD[i,:] + fomS = np.reshape(fomS, (ny*nx, 2)) + fomS = np.reshape(fomS[:,0], (nx,ny)) + plt.clf() + ax = plt.gca() + h = plt.contourf(x_fom, y_fom, fomS) + ax.set_aspect(aspect=1.) + plt.colorbar() + plt.pause(0.001) + # plt.show() diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/test.cmake b/tests_cpp/eigen_2d_burgers_outflow_implicit/test.cmake new file mode 100644 index 00000000..1275f0bb --- /dev/null +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/test.cmake @@ -0,0 +1,24 @@ +include(FindUnixCommands) + +set(CMD "python3 ${MESHDRIVER} -n 20 20 --outDir ${OUTDIR} -s ${STENCILVAL} --bounds -1.0 1.0 -1.0 1.0") +execute_process(COMMAND ${BASH} -c ${CMD} RESULT_VARIABLE RES) +if(RES) + message(FATAL_ERROR "Mesh generation failed") +else() + message("Mesh generation succeeded!") +endif() + +execute_process(COMMAND ${EXENAME} RESULT_VARIABLE CMD_RESULT) +if(RES) + message(FATAL_ERROR "run failed") +else() + message("run succeeded!") +endif() + +set(CMD "python3 compare.py") +execute_process(COMMAND ${BASH} -c ${CMD} RESULT_VARIABLE RES) +if(RES) + message(FATAL_ERROR "comparison failed") +else() + message("comparison succeeded!") +endif() From 06911c1e56a238b4ef1781d27d7ee9cf050b5eaa Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Mon, 5 Aug 2024 23:12:35 -0400 Subject: [PATCH 03/15] change left and bottom to homogeneous dirichlet --- ...ion_diffusion_2d_ghost_filler_outflow.hpp} | 56 +- .../advection_diffusion_2d_prob_class.hpp | 43 +- .../firstorder/gold.txt | 1448 ++++++++--------- 3 files changed, 777 insertions(+), 770 deletions(-) rename include/pressiodemoapps/impl/{advection_diffusion_2d_ghost_filler_neumann.hpp => advection_diffusion_2d_ghost_filler_outflow.hpp} (80%) diff --git a/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_neumann.hpp b/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_outflow.hpp similarity index 80% rename from include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_neumann.hpp rename to include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_outflow.hpp index 7a019768..b7697bb2 100644 --- a/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_neumann.hpp +++ b/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_outflow.hpp @@ -2,7 +2,7 @@ //@HEADER // ************************************************************************ // -// advection_diffusion_2d_ghost_filler_neumann.hpp +// advection_diffusion_2d_ghost_filler_outflow.hpp // Pressio // Copyright 2019 // National Technology & Engineering Solutions of Sandia, LLC (NTESS) @@ -46,19 +46,19 @@ //@HEADER */ -#ifndef PRESSIODEMOAPPS_GHOST_FILLER_AD2D_NEUMANN_HPP_ -#define PRESSIODEMOAPPS_GHOST_FILLER_AD2D_NEUMANN_HPP_ +#ifndef PRESSIODEMOAPPS_GHOST_FILLER_AD2D_OUTFLOW_HPP_ +#define PRESSIODEMOAPPS_GHOST_FILLER_AD2D_OUTFLOW_HPP_ namespace pressiodemoapps{ namespace impladvdiff2d{ template -class Ghost2dNeumannFiller +class Ghost2dOutflowFiller { public: - Ghost2dNeumannFiller() = delete; - Ghost2dNeumannFiller(const int stencilSize, + Ghost2dOutflowFiller() = delete; + Ghost2dOutflowFiller(const int stencilSize, int numDofPerCell, const state_t & stateIn, const mesh_t & meshIn, @@ -112,8 +112,8 @@ class Ghost2dNeumannFiller if (left0 == -1) { - m_ghostLeft(gRow, 0) = m_state(uIndex); - m_ghostLeft(gRow, 1) = m_state(uIndex+1); + m_ghostLeft(gRow, 0) = 0.0; + m_ghostLeft(gRow, 1) = 0.0; } if (front0 == -1) @@ -130,8 +130,8 @@ class Ghost2dNeumannFiller if (back0 == -1) { - m_ghostBack(gRow, 0) = m_state(uIndex); - m_ghostBack(gRow, 1) = m_state(uIndex+1); + m_ghostBack(gRow, 0) = 0.0; + m_ghostBack(gRow, 1) = 0.0; } } @@ -153,12 +153,8 @@ class Ghost2dNeumannFiller const auto back1 = graph(smPt, 8); if (left1 == -1){ - auto ind = uIndex; - if (left0==-1){ ind = right0*m_numDofPerCell; } - else { ind = left0*m_numDofPerCell; } - - m_ghostLeft(gRow, 4) = m_state(ind); - m_ghostLeft(gRow, 5) = m_state(ind+1); + m_ghostLeft(gRow, 4) = 0.0; + m_ghostLeft(gRow, 5) = 0.0; } if (front1 == -1){ @@ -180,12 +176,8 @@ class Ghost2dNeumannFiller } if (back1 == -1){ - auto ind = uIndex; - if (back0==-1){ ind = front0*m_numDofPerCell; } - else { ind = back0*m_numDofPerCell; } - - m_ghostBack(gRow, 4) = m_state(ind); - m_ghostBack(gRow, 5) = m_state(ind+1); + m_ghostBack(gRow, 4) = 0.0; + m_ghostBack(gRow, 5) = 0.0; } } @@ -197,10 +189,8 @@ class Ghost2dNeumannFiller const auto uIndex = cellGID*m_numDofPerCell; stencilFiveImpl(smPt, gRow); - const auto left0 = graph(smPt, 1); const auto front0 = graph(smPt, 2); const auto right0 = graph(smPt, 3); - const auto back0 = graph(smPt, 4); const auto left1 = graph(smPt, 5); const auto front1 = graph(smPt, 6); const auto right1 = graph(smPt, 7); @@ -211,13 +201,8 @@ class Ghost2dNeumannFiller const auto back2 = graph(smPt, 12); if (left2 == -1){ - auto ind = uIndex; ; - if (left1!=-1 && left0!=-1){ ind = left1*m_numDofPerCell; } - if (left1==-1 && left0!=-1){ ind = uIndex; } - if (left1==-1 && left0==-1){ ind = right1*m_numDofPerCell; } - - m_ghostLeft(gRow, 8) = m_state(ind); - m_ghostLeft(gRow, 9) = m_state(ind+1); + m_ghostLeft(gRow, 8) = 0.0; + m_ghostLeft(gRow, 9) = 0.0; } if (front2 == -1){ @@ -241,13 +226,8 @@ class Ghost2dNeumannFiller } if (back2 == -1){ - auto ind = uIndex; ; - if (back1!=-1 && back0!=-1){ ind = back1*m_numDofPerCell; } - if (back1==-1 && back0!=-1){ ind = uIndex; } - if (back1==-1 && back0==-1){ ind = front1*m_numDofPerCell; } - - m_ghostBack(gRow, 8) = m_state(ind); - m_ghostBack(gRow, 9) = m_state(ind+1); + m_ghostBack(gRow, 8) = 0.0; + m_ghostBack(gRow, 9) = 0.0; } } diff --git a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp index 2376e716..bc0e3a84 100644 --- a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp +++ b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp @@ -51,7 +51,7 @@ #include "advection_diffusion_2d_flux_functions.hpp" #include "advection_diffusion_2d_initial_condition.hpp" -#include "advection_diffusion_2d_ghost_filler_neumann.hpp" +#include "advection_diffusion_2d_ghost_filler_outflow.hpp" #include "functor_fill_stencil.hpp" #include "functor_reconstruct_from_stencil.hpp" #include "functor_reconstruct_from_state.hpp" @@ -303,7 +303,7 @@ class EigenApp const auto stencilSize = reconstructionTypeToStencilSize(m_inviscidFluxRecEn); if (m_probEn == pressiodemoapps::AdvectionDiffusion2d::BurgersOutflow) { - using ghost_filler_t = Ghost2dNeumannFiller< + using ghost_filler_t = Ghost2dOutflowFiller< U_t, MeshType, ghost_container_type>; ghost_filler_t ghF(stencilSize, numDofPerCell, U, m_meshObj.get(), @@ -919,8 +919,10 @@ class EigenApp J.coeffRef(vIndex+1, uIndexLeft+1) += diffDxInvSq; } else{ - J.coeffRef(vIndex, uIndex) += -diffDxInvSq; - J.coeffRef(vIndex+1, uIndex+1) += -diffDxInvSq; + // TODO: generalize this + // no op for Dirichlet BC + // J.coeffRef(vIndex, uIndex) += -diffDxInvSq; + // J.coeffRef(vIndex+1, uIndex+1) += -diffDxInvSq; } if (uIndexFront > -1){ @@ -946,8 +948,10 @@ class EigenApp J.coeffRef(vIndex+1, uIndexBack+1) += diffDyInvSq; } else{ - J.coeffRef(vIndex, uIndex) += -diffDyInvSq; - J.coeffRef(vIndex+1, uIndex+1) += -diffDyInvSq; + // TODO: generalize this + // no op for Dirichlet BC + // J.coeffRef(vIndex, uIndex) += -diffDyInvSq; + // J.coeffRef(vIndex+1, uIndex+1) += -diffDyInvSq; } } } @@ -1119,8 +1123,31 @@ class EigenApp assert(axis <= 2); if (m_probEn == ::pressiodemoapps::AdvectionDiffusion2d::BurgersOutflow) { - // homogeneous Neumann - m_bcCellJacFactors.fill(static_cast(1)); + if (axis == 1 && m_meshObj.get().hasBdLeft2d(graphRow)){ + // homogeneous dirichlet + m_bcCellJacFactors = {0., 0.}; + return; + } + + if (axis == 1 && m_meshObj.get().hasBdRight2d(graphRow)){ + // homogeneous neumann + m_bcCellJacFactors = {1., 1.}; + return; + } + + if (axis == 2 && m_meshObj.get().hasBdBack2d(graphRow)) + { + // homogeneous dirichlet + m_bcCellJacFactors = {0., 0.}; + return; + } + + if (axis == 2 && m_meshObj.get().hasBdFront2d(graphRow)) + { + // homogeneous neumann + m_bcCellJacFactors = {1., 1.}; + return; + } } else if (m_probEn == ::pressiodemoapps::AdvectionDiffusion2d::BurgersPeriodic) { throw std::runtime_error("Should not be getting Jacobian factors for fully periodic problem."); diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt b/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt index c75c190c..a3542989 100644 --- a/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt @@ -1,652 +1,652 @@ -2.891567712862740325e-05 -2.882637559256150938e-05 -9.540173518743496825e-05 -9.552921409348327070e-05 -2.757595667267406098e-04 -2.764748669585433355e-04 -6.947677429332183062e-04 -6.972703394482007190e-04 -1.522973920152295452e-03 -1.529596512126408375e-03 -2.904687084419542518e-03 -2.918727096861224637e-03 -4.837109987752634052e-03 -4.861772110686439496e-03 -7.080670459848262613e-03 -7.117650883867885671e-03 -9.176990332613363388e-03 -9.225568140998605116e-03 -1.057499705620808250e-02 -1.063185641513409233e-02 -1.081524566109228098e-02 -1.087464603492064620e-02 -9.756220454436987516e-03 -9.811018293127754183e-03 -7.705768481134387532e-03 -7.749695998982620605e-03 -5.286538166723041970e-03 -5.316366251753744041e-03 -3.135685995035771695e-03 -3.152396735491153242e-03 -1.609527268207387642e-03 -1.617096745509076505e-03 -7.186834241574806400e-04 -7.214100168352285437e-04 -2.806976831736475897e-04 -2.814465175871478666e-04 -9.617329158587724477e-05 -9.630330568331762337e-05 -2.900015202580905592e-05 -2.891047449380189469e-05 -7.343658980776709934e-05 -7.294313092868614243e-05 -2.410954075189447588e-04 -2.410947629489612707e-04 -6.914291766506122389e-04 -6.914316540008532026e-04 -1.712249248130421047e-03 -1.712267178539884221e-03 -3.641189319396101985e-03 -3.641283958259367622e-03 -6.651326068000100282e-03 -6.651686370031533596e-03 -1.054028608629264778e-02 -1.054128917061188282e-02 -1.474025049560908837e-02 -1.474236160528120260e-02 -1.851126279087389123e-02 -1.851474617843290246e-02 -2.112158264714227712e-02 -2.112620664355545352e-02 -2.194284237188222700e-02 -2.194780229550222228e-02 -2.060397218025873667e-02 -2.060820935933922043e-02 -1.725022640422380765e-02 -1.725304365815107793e-02 -1.260796424757040270e-02 -1.260936496762793055e-02 -7.871456479429170608e-03 -7.871954767622434818e-03 -4.151745125683286783e-03 -4.151868439862782881e-03 -1.862949751115095497e-03 -1.862971181593138037e-03 -7.233789804527745223e-04 -7.233817130355630395e-04 -2.461073754817110653e-04 -2.461069143863120609e-04 -7.398520009638618743e-05 -7.348649500949684687e-05 -1.631185329347818280e-04 -1.618850094391395870e-04 -5.320568201172858665e-04 -5.320534388163908812e-04 -1.506710662505906986e-03 -1.506710659902990405e-03 -3.640889911668371021e-03 -3.640890093171606206e-03 -7.454103459205425539e-03 -7.454105371562867212e-03 -1.299965397901680156e-02 -1.299966658943673206e-02 -1.969905065979131106e-02 -1.969910386697676027e-02 -2.662395592158454602e-02 -2.662410733564354523e-02 -3.282329381192744533e-02 -3.282360094222872698e-02 -3.744194089632480599e-02 -3.744240274586189965e-02 -3.968018396605398068e-02 -3.968070428920611459e-02 -3.878023243136854981e-02 -3.878066378809853082e-02 -3.440804756412031706e-02 -3.440830359809413097e-02 -2.693995464185802366e-02 -2.694005774349456442e-02 -1.791525946818449747e-02 -1.791528565718496224e-02 -9.790542282584904429e-03 -9.790546171968365560e-03 -4.388413872129753694e-03 -4.388414196680382254e-03 -1.669356601838321245e-03 -1.669356612052974153e-03 -5.574507804178734701e-04 -5.574483162578962748e-04 -1.658758372555108323e-04 -1.646101554232837108e-04 -3.167692842406612296e-04 -3.141692411794757439e-04 -1.023204930803372744e-03 -1.023193596741595740e-03 -2.844572548561867011e-03 -2.844572467466035138e-03 -6.649406109870636961e-03 -6.649406111653675087e-03 -1.299957366434329430e-02 -1.299957372021234674e-02 -2.157754916951077490e-02 -2.157754976916669704e-02 -3.135924831818553971e-02 -3.135925196337178977e-02 -4.119262625907316872e-02 -4.119263981371057426e-02 -5.007632953639157974e-02 -5.007636275194980030e-02 -5.715172934118156051e-02 -5.715178590443807660e-02 -6.158240273000290671e-02 -6.158247095663705456e-02 -6.234209306254674676e-02 -6.234215031516397720e-02 -5.847651358688751855e-02 -5.847654616718374332e-02 -4.943569561887536934e-02 -4.943570758412434846e-02 -3.591748229417009858e-02 -3.591748493657834912e-02 -2.107570496775713204e-02 -2.107570528804827981e-02 -9.586743706241717886e-03 -9.586743724708799916e-03 -3.510201560691216232e-03 -3.510201526880161581e-03 -1.124936838260944590e-03 -1.124928957818450504e-03 -3.275499485509633115e-04 -3.248068560625750147e-04 -5.379767077112381510e-04 -5.333093151842447375e-04 -1.716582353072151727e-03 -1.716551299189888547e-03 -4.669522507615969827e-03 -4.669522154948670817e-03 -1.053194532815622704e-02 -1.053194532125214036e-02 -1.969851699464963968e-02 -1.969851699671831824e-02 -3.135920682890255135e-02 -3.135920686566303489e-02 -4.415435651035635317e-02 -4.415435681599547135e-02 -5.685273489072751457e-02 -5.685273633052593395e-02 -6.847997873441853678e-02 -6.847998293185032781e-02 -7.822210353452190013e-02 -7.822211161516749722e-02 -8.529290207178197303e-02 -8.529291264299357356e-02 -8.864491875144693556e-02 -8.864492804417681282e-02 -8.691437942388825777e-02 -8.691438479672101980e-02 -7.865056178797689979e-02 -7.865056377741479199e-02 -6.282341363838377102e-02 -6.282341409444529290e-02 -4.100389674353709102e-02 -4.100389680609164283e-02 -1.983329087415316300e-02 -1.983329087647072581e-02 -6.953628827942222486e-03 -6.953628660897985536e-03 -2.049113153568987364e-03 -2.049091096221891846e-03 -5.711043552600592304e-04 -5.659524427442072817e-04 -7.997503143837157887e-04 -7.925580856076986204e-04 -2.520763574781300330e-03 -2.520696515040770670e-03 -6.722066036620703497e-03 -6.722064958199027752e-03 -1.471528465697732012e-02 -1.471528462741216077e-02 -2.662175952929158110e-02 -2.662175952816376451e-02 -4.119239099958279388e-02 -4.119239100226657069e-02 -5.685270669580771291e-02 -5.685270672563501326e-02 -7.234215939688871944e-02 -7.234215957030865063e-02 -8.671938717376112549e-02 -8.671938776762176670e-02 -9.921814808737819402e-02 -9.921814937661121991e-02 -1.091248400881716374e-01 -1.091248419316919321e-01 -1.155102662213813303e-01 -1.155102679577763858e-01 -1.169598337917381742e-01 -1.169598348544688554e-01 -1.115021848680465971e-01 -1.115021852899458765e-01 -9.661178330936483205e-02 -9.661178341873191688e-02 -7.071742186127370766e-02 -7.071742187971306881e-02 -3.843771118501147777e-02 -3.843771117149565736e-02 -1.351733951760561089e-02 -1.351733884663934744e-02 -3.457429332911336663e-03 -3.457377182827476442e-03 -8.810882738779417332e-04 -8.725903321950388572e-04 -1.041973519761915006e-03 -1.032393001772090009e-03 -3.255658532679396502e-03 -3.255545808545097074e-03 -8.575653877036966410e-03 -8.575651583952802887e-03 -1.845832537531636591e-02 -1.845832529682470483e-02 -3.281744542000756409e-02 -3.281744541594052572e-02 -5.007554184145285303e-02 -5.007554184140648734e-02 -6.847985742702658585e-02 -6.847985743025977734e-02 -8.671936741565912377e-02 -8.671936743852669272e-02 -1.038597257567184101e-01 -1.038597258477806512e-01 -1.191671338369297145e-01 -1.191671340592835443e-01 -1.319912177542321152e-01 -1.319912181032505405e-01 -1.415455376919675379e-01 -1.415455380485245163e-01 -1.466090502420644703e-01 -1.466090504793362836e-01 -1.451411531696966128e-01 -1.451411532737098553e-01 -1.338509762921208379e-01 -1.338509763232867411e-01 -1.081913730203152013e-01 -1.081913730249711714e-01 -6.742790940561634028e-02 -6.742790933658762698e-02 -2.596140143853171989e-02 -2.596139927809557393e-02 -5.683675360778574562e-03 -5.683571532325680173e-03 -1.206857463913103877e-03 -1.194336872902992779e-03 -1.190954512494032816e-03 -1.179866515636735034e-03 -3.713111967861653078e-03 -3.712964764311336464e-03 -9.773851441236516141e-03 -9.773848044004447566e-03 -2.104034428534496196e-02 -2.104034415324586987e-02 -3.743151135437616794e-02 -3.743151134658924406e-02 -5.715007938757830919e-02 -5.715007938697792139e-02 -7.822180149262702997e-02 -7.822180149295100693e-02 -9.921808743966641086e-02 -9.921808744287340109e-02 -1.191671215569779368e-01 -1.191671215717420851e-01 -1.373432063805863634e-01 -1.373432064210496351e-01 -1.531393723458097100e-01 -1.531393724156862868e-01 -1.658892628173905537e-01 -1.658892628953251291e-01 -1.746140779381966379e-01 -1.746140779952692901e-01 -1.775815291258069639e-01 -1.775815291538574148e-01 -1.714380982874871007e-01 -1.714380982971079603e-01 -1.497746789094132058e-01 -1.497746789059241357e-01 -1.055294435648022333e-01 -1.055294433560954453e-01 -4.700474786132792515e-02 -4.700474246828632158e-02 -9.613900138864777192e-03 -9.613721320099265222e-03 -1.485616237419084325e-03 -1.468763203106053994e-03 -1.194204246215145203e-03 -1.183039499382685040e-03 -3.743240325186353214e-03 -3.743091248267912778e-03 -9.968339015082518240e-03 -9.968335512603657481e-03 -2.185252312408986208e-02 -2.185252298284328862e-02 -3.966761270609921175e-02 -3.966761269727673428e-02 -6.158018828990026450e-02 -6.158018828913947723e-02 -8.529244174397362932e-02 -8.529244174393879607e-02 -1.091247335104376520e-01 -1.091247335108979782e-01 -1.319911914813401699e-01 -1.319911914838207134e-01 -1.531393661833722608e-01 -1.531393661909966619e-01 -1.719852126095982037e-01 -1.719852126241041002e-01 -1.879519551202858130e-01 -1.879519551380071651e-01 -2.002635461611704248e-01 -2.002635461755039870e-01 -2.076131397174729998e-01 -2.076131397254163957e-01 -2.071944709361345782e-01 -2.071944709391507211e-01 -1.920415864493757729e-01 -1.920415864392469030e-01 -1.493450570784922993e-01 -1.493450566583832684e-01 -7.683890865175217744e-02 -7.683889843708829881e-02 -1.650798896837371924e-02 -1.650771625944339599e-02 -1.699600853578585096e-03 -1.678524733644340622e-03 -1.049668034585466130e-03 -1.039905936678077155e-03 -3.328151834912656919e-03 -3.328035145167692558e-03 -9.055097797194350262e-03 -9.055095300250634235e-03 -2.053243093777074035e-02 -2.053243084273043140e-02 -3.877015476848194586e-02 -3.877015476261693600e-02 -6.234020409705470778e-02 -6.234020409653103639e-02 -8.864448491829358956e-02 -8.864448491823868903e-02 -1.155101527094232056e-01 -1.155101527094851144e-01 -1.415455056012482615e-01 -1.415455056016723112e-01 -1.658892534603486069e-01 -1.658892534618129910e-01 -1.879519527186185035e-01 -1.879519527216924057e-01 -2.072232881759657752e-01 -2.072232881800861182e-01 -2.230787611239839763e-01 -2.230787611276660032e-01 -2.345739935886617944e-01 -2.345739935909544605e-01 -2.398226561819177816e-01 -2.398226561828461778e-01 -2.324573292735923058e-01 -2.324573292607148012e-01 -1.950686792665159985e-01 -1.950686786881494217e-01 -1.121649327920169192e-01 -1.121649184587821951e-01 -2.624071967225937926e-02 -2.624036784527709540e-02 -1.867851724130910850e-03 -1.843817840892146478e-03 -8.077273604158370949e-04 -8.003473949922989324e-04 -2.598210956372542461e-03 -2.598140607935420839e-03 -7.259340862801462631e-03 -7.259339642161776081e-03 -1.721074479125377782e-02 -1.721074475152234093e-02 -3.440276796856905211e-02 -3.440276796629961054e-02 -5.847549194610846685e-02 -5.847549194590515725e-02 -8.691412270485232572e-02 -8.691412270482776203e-02 -1.169597578283277650e-01 -1.169597578283343708e-01 -1.466090255410801568e-01 -1.466090255411522381e-01 -1.746140695379838625e-01 -1.746140695382662200e-01 -2.002635433483954674e-01 -2.002635433490512762e-01 -2.230787603629439952e-01 -2.230787603639099170e-01 -2.425774741771483389e-01 -2.425774741781011046e-01 -2.581085650884420990e-01 -2.581085650891052907e-01 -2.685117441151328999e-01 -2.685117441154244999e-01 -2.691171570776442756e-01 -2.691171570673726587e-01 -2.393864498332383683e-01 -2.393864492989650761e-01 -1.468697903260799131e-01 -1.468697767036577229e-01 -3.486762948215477165e-02 -3.486729937597506795e-02 -1.821935651033539799e-03 -1.798805841458147627e-03 -5.434244396373876180e-04 -5.386302876601851801e-04 -1.771394245654914299e-03 -1.771361595695808162e-03 -5.073235708171322522e-03 -5.073235302678729894e-03 -1.259336383294806100e-02 -1.259336382287760091e-02 -2.693821693002868695e-02 -2.693821692953062355e-02 -4.943534986322334346e-02 -4.943534986317873331e-02 -7.865046417349411123e-02 -7.865046417348806052e-02 -1.115021512762199157e-01 -1.115021512762203876e-01 -1.451411403732436323e-01 -1.451411403732557892e-01 -1.775815240182481158e-01 -1.775815240183016008e-01 -2.076131376729494771e-01 -2.076131376730881439e-01 -2.345739928293364696e-01 -2.345739928295618171e-01 -2.581085648765132357e-01 -2.581085648767583729e-01 -2.775039788577144395e-01 -2.775039788579039546e-01 -2.917030981438609727e-01 -2.917030981439305282e-01 -3.013404987996894380e-01 -3.013404987941251667e-01 -2.808980624885660804e-01 -2.808980621801133726e-01 -1.692899017193153777e-01 -1.692898947236993745e-01 -3.374925538059946745e-02 -3.374908586278352329e-02 -1.207378887691181900e-03 -1.191283250718834161e-03 -3.194347309543339578e-04 -3.167743964274299722e-04 -1.050913077333021821e-03 -1.050901250786613400e-03 -3.060774693390957545e-03 -3.060774601002593659e-03 -7.867997669808004038e-03 -7.867997668287312479e-03 -1.791492126459530085e-02 -1.791492126453536615e-02 -3.591741099171907176e-02 -3.591741099171349982e-02 -6.282338933217528065e-02 -6.282338933217430921e-02 -9.661177300705028892e-02 -9.661177300705031668e-02 -1.338509715259842137e-01 -1.338509715259864064e-01 -1.714380960182149416e-01 -1.714380960182249614e-01 -2.071944698614132663e-01 -2.071944698614418268e-01 -2.398226556953636512e-01 -2.398226556954149713e-01 -2.685117439213455803e-01 -2.685117439214073642e-01 -2.917030980887996283e-01 -2.917030980888522529e-01 -3.117617137185705323e-01 -3.117617137185694776e-01 -3.376590429127995785e-01 -3.376590429100229662e-01 -3.102915466369300379e-01 -3.102915465313412224e-01 -1.507316571439187569e-01 -1.507316555989560714e-01 -1.759755075263727542e-02 -1.759751806793086876e-02 -4.437247998956445625e-04 -4.372854183762412967e-04 -1.640819085340999796e-04 -1.628277372828172275e-04 -5.423137626397874726e-04 -5.423102795322940709e-04 -1.590292091492721046e-03 -1.590292076225528805e-03 -4.151235251491639661e-03 -4.151235251351540791e-03 -9.790506451401222859e-03 -9.790506451397422080e-03 -2.107569652885602288e-02 -2.107569652885564471e-02 -4.100389280779375561e-02 -4.100389280779365847e-02 -7.071741961453748004e-02 -7.071741961453746617e-02 -1.081913716924830099e-01 -1.081913716924833291e-01 -1.497746781349924006e-01 -1.497746781349942602e-01 -1.920415860130265662e-01 -1.920415860130323671e-01 -2.324573290408706583e-01 -2.324573290408820103e-01 -2.691171569637670347e-01 -2.691171569637819116e-01 -3.013404987524984091e-01 -3.013404987525122314e-01 -3.376590428990932646e-01 -3.376590428990880466e-01 -3.613740464929280916e-01 -3.613740464916499473e-01 -2.645751509560527182e-01 -2.645751509325705020e-01 -7.065945602944127824e-02 -7.065945584773974941e-02 -2.637730598822237912e-03 -2.637727318262494351e-03 -1.687998556325526244e-04 -1.672534897865486593e-04 -7.369767304275246704e-05 -7.319891685769703638e-05 -2.439145026534879747e-04 -2.439136055560530087e-04 -7.149736802309126539e-04 -7.149736781451452227e-04 -1.862901414529585277e-03 -1.862901414520610685e-03 -4.388411973359058332e-03 -4.388411973358935167e-03 -9.586743208275608566e-03 -9.586743208275594688e-03 -1.983329050383654188e-02 -1.983329050383653147e-02 -3.843771085360933593e-02 -3.843771085360933593e-02 -6.742790911507501317e-02 -6.742790911507504092e-02 -1.055294433128217552e-01 -1.055294433128221437e-01 -1.493450568766604147e-01 -1.493450568766616082e-01 -1.950686791557454391e-01 -1.950686791557479927e-01 -2.393864498191919654e-01 -2.393864498191956292e-01 -2.808980625039074752e-01 -2.808980625039110834e-01 -3.102915466477207396e-01 -3.102915466477121353e-01 -2.645751509640062449e-01 -2.645751509635974608e-01 -1.057330141728736600e-01 -1.057330141692308101e-01 -7.209461017913145267e-03 -7.209461010191015908e-03 -2.625315004237093451e-04 -2.625307756403837036e-04 -7.426113860083726815e-05 -7.375582586273848093e-05 -2.896260885134721610e-05 -2.879756179883484151e-05 -9.585319727453900851e-05 -9.585298048750955926e-05 -2.800828487961493801e-04 -2.800828485122341819e-04 -7.233754436179182842e-04 -7.233754436173832304e-04 -1.669356548098337644e-03 -1.669356548098335476e-03 -3.510201538606929142e-03 -3.510201538606929142e-03 -6.953628765219156162e-03 -6.953628765219164835e-03 -1.351733929608289406e-02 -1.351733929608293396e-02 -2.596140072471944324e-02 -2.596140072471963753e-02 -4.700474602104270927e-02 -4.700474602104338234e-02 -7.683890508801587138e-02 -7.683890508801725916e-02 -1.121649278081079809e-01 -1.121649278081100348e-01 -1.468697856619168296e-01 -1.468697856619188558e-01 -1.692898993515345174e-01 -1.692898993515359884e-01 -1.507316567041669386e-01 -1.507316567041634414e-01 -7.065945600218334621e-02 -7.065945600211061273e-02 -7.209461017631256172e-03 -7.209461017455662257e-03 -3.085949366258624606e-04 -3.085949364177746818e-04 -9.665591089575010619e-05 -9.665571744141378859e-05 +2.878435971815569805e-05 +2.869531697831198839e-05 +9.530982103930158767e-05 +9.505942299739377063e-05 +2.749974834797380935e-04 +2.746227646765904136e-04 +6.899573993819907436e-04 +6.897292771935251143e-04 +1.500033482997075720e-03 +1.500719886112906109e-03 +2.822063916971399942e-03 +2.824891121188752557e-03 +4.610705773880834080e-03 +4.616866977350815582e-03 +6.601409551295079822e-03 +6.611505620532608964e-03 +8.379213788599043644e-03 +8.393099215158305454e-03 +9.517782695847305796e-03 +9.534691941080636682e-03 +9.701103015434095825e-03 +9.719562252170299566e-03 +8.833657406945293403e-03 +8.851414049647383583e-03 +7.115440199406720088e-03 +7.130002996389540187e-03 +5.001164564498771295e-03 +5.010752530543715992e-03 +3.033321864652048592e-03 +3.037944697588631279e-03 +1.582386423251396250e-03 +1.583694686720774070e-03 +7.133006667681273012e-04 +7.132062231047754056e-04 +2.798847974831582242e-04 +2.795247184005020800e-04 +9.607867571065330790e-05 +9.582754636173635983e-05 +2.899160137053723071e-05 +2.878728027355236668e-05 +7.309220355080042579e-05 +7.288939102763827426e-05 +2.410944510673300727e-04 +2.410936266236576972e-04 +6.914253460109691862e-04 +6.914240650861632918e-04 +1.712203669362405162e-03 +1.712202164951117560e-03 +3.640778412818949927e-03 +3.640789122423295637e-03 +6.648741833962042332e-03 +6.648819255132441472e-03 +1.052919243718555310e-02 +1.052946123444533678e-02 +1.470730265939465889e-02 +1.470792526319186257e-02 +1.844178898153661997e-02 +1.844286644195464522e-02 +2.101539740283503085e-02 +2.101687494870899120e-02 +2.182504322781039785e-02 +2.182667466538136883e-02 +2.051062725115469429e-02 +2.051205225791760678e-02 +1.719853302704009435e-02 +1.719948216181518830e-02 +1.258870965658902968e-02 +1.258915905961164629e-02 +7.866839677742296782e-03 +7.866975889938079836e-03 +4.151051775761540295e-03 +4.151072961253232836e-03 +1.862882573178371902e-03 +1.862881946913381949e-03 +7.233741985508800997e-04 +7.233729245110370742e-04 +2.461070681906510089e-04 +2.461058907098569886e-04 +7.398518818308725392e-05 +7.348620898654101155e-05 +1.622097669034186095e-04 +1.616221413970865225e-04 +5.320539744581964225e-04 +5.320523587382955605e-04 +1.506710624135159868e-03 +1.506710611935928009e-03 +3.640889332065961551e-03 +3.640889319058553033e-03 +7.454093573841212572e-03 +7.454093808112269987e-03 +1.299954743676370005e-02 +1.299955026857051860e-02 +1.969834950432551926e-02 +1.969836440622434182e-02 +2.662108257863761082e-02 +2.662112950493662408e-02 +3.281566744219810428e-02 +3.281576767506988457e-02 +3.742837482803695881e-02 +3.742853041330722330e-02 +3.966385562395022962e-02 +3.966403491309497542e-02 +3.876714142336463997e-02 +3.876729180924277929e-02 +3.440117686565609401e-02 +3.440126528790716370e-02 +2.693768530356832266e-02 +2.693771908192692938e-02 +1.791481549752339461e-02 +1.791482297068846749e-02 +9.790494900918175411e-03 +9.790495686074920587e-03 +4.388411333650770255e-03 +4.388411345130369644e-03 +1.669356532029351442e-03 +1.669356520213470703e-03 +5.574507789668396241e-04 +5.574483132710780168e-04 +1.658758372112484141e-04 +1.646101548920102264e-04 +3.145266119196303404e-04 +3.131806343727237645e-04 +1.023193501749503640e-03 +1.023187613438153194e-03 +2.844572449144625644e-03 +2.844572406817422270e-03 +6.649406098996466473e-03 +6.649406098338940356e-03 +1.299957336822707595e-02 +1.299957337581438173e-02 +2.157754376371845764e-02 +2.157754390356558458e-02 +3.135919412208553608e-02 +3.135919517371392462e-02 +4.119232095615792122e-02 +4.119232528855925474e-02 +5.007530845261944086e-02 +5.007531965387589795e-02 +5.714959300064419156e-02 +5.714961268246370601e-02 +6.157953770922283687e-02 +6.157956190642330241e-02 +6.233964900423536598e-02 +6.233966943603713728e-02 +5.847519048384200446e-02 +5.847520195607762428e-02 +4.943524710261611860e-02 +4.943525112926339116e-02 +3.591738961691415960e-02 +3.591739042780309893e-02 +2.107569397785867202e-02 +2.107569406153595240e-02 +9.586743056646475705e-03 +9.586743059975715367e-03 +3.510201545232151214e-03 +3.510201510987534090e-03 +1.124936838134926904e-03 +1.124928957685425836e-03 +3.275499485504851783e-04 +3.248068560613161476e-04 +5.330010357470980594e-04 +5.304642157942083712e-04 +1.716543163313787469e-03 +1.716526198883016295e-03 +4.669521964931272300e-03 +4.669521771564405510e-03 +1.053194531491480866e-02 +1.053194531108241072e-02 +1.969851698477491711e-02 +1.969851698501086032e-02 +3.135920653245011236e-02 +3.135920654136496732e-02 +4.415435185335050278e-02 +4.415435194362549859e-02 +5.685269817282688487e-02 +5.685269864308111626e-02 +6.847982229192899062e-02 +6.847982373899119679e-02 +7.822171403589250893e-02 +7.822171690875916183e-02 +8.529230852043119537e-02 +8.529231234247604265e-02 +8.864435925173065611e-02 +8.864436262281367995e-02 +8.691404813330694257e-02 +8.691405005587821142e-02 +7.865043569806047519e-02 +7.865043638570026752e-02 +6.282338221017182145e-02 +6.282338235970236218e-02 +4.100389165078165837e-02 +4.100389167012929298e-02 +1.983329039561974871e-02 +1.983329039463818666e-02 +6.953628808356379989e-03 +6.953628641205407239e-03 +2.049113153316600711e-03 +2.049091095968415353e-03 +5.711043552591187934e-04 +5.659524427433483768e-04 +7.903028235011501888e-04 +7.862809462991273693e-04 +2.520658554138759458e-03 +2.520620807281888365e-03 +6.722063963181328441e-03 +6.722063353368988060e-03 +1.471528458653493035e-02 +1.471528456976811845e-02 +2.662175952537285464e-02 +2.662175952468349982e-02 +4.119239098454686304e-02 +4.119239098520367098e-02 +5.685270629680042737e-02 +5.685270630579662005e-02 +7.234215474133408319e-02 +7.234215479893013612e-02 +8.671936123467773039e-02 +8.671936144272862634e-02 +9.921807008588996724e-02 +9.921807055132568498e-02 +1.091247030452608541e-01 +1.091247037210127530e-01 +1.155101202007716432e-01 +1.155101208384547995e-01 +1.169597360134832370e-01 +1.169597363989211963e-01 +1.115021415964886770e-01 +1.115021417456391051e-01 +9.661177002855167451e-02 +9.661177006605282946e-02 +7.071741896365187074e-02 +7.071741896956647289e-02 +3.843771076332259257e-02 +3.843771074841902113e-02 +1.351733948653962604e-02 +1.351733881549677802e-02 +3.457429332194551959e-03 +3.457377182109377684e-03 +8.810882738739797332e-04 +8.725903321912977092e-04 +1.027192166353069463e-03 +1.021747393360649759e-03 +3.255450101032494881e-03 +3.255385552526310258e-03 +8.575648630391917437e-03 +8.575647310341981758e-03 +1.845832514887143713e-02 +1.845832510354515274e-02 +3.281744540507561259e-02 +3.281744540271900462e-02 +5.007554183961180488e-02 +5.007554183950899129e-02 +6.847985739772211033e-02 +6.847985739871056965e-02 +8.671936683672094859e-02 +8.671936684442195509e-02 +1.038597213116325968e-01 +1.038597213439357153e-01 +1.191671173435226994e-01 +1.191671174247295600e-01 +1.319911839274630627e-01 +1.319911840567266070e-01 +1.415454964752996814e-01 +1.415454966075024856e-01 +1.466090185056383999e-01 +1.466090185926658129e-01 +1.451411367172456557e-01 +1.451411367546713294e-01 +1.338509701602695057e-01 +1.338509701712465305e-01 +1.081913713116252063e-01 +1.081913713119409121e-01 +6.742790905639649279e-02 +6.742790898670572575e-02 +2.596140139573159880e-02 +2.596139923523554938e-02 +5.683675358966414765e-03 +5.683571530511659885e-03 +1.206857463898149043e-03 +1.194336872888567685e-03 +1.172314828570703189e-03 +1.165958382227224406e-03 +3.712813969056972391e-03 +3.712728936225512689e-03 +9.773842860847986244e-03 +9.773840887573041758e-03 +2.104034385794239723e-02 +2.104034378096540647e-02 +3.743151132150027149e-02 +3.743151131695307554e-02 +5.715007938409803756e-02 +5.715007938373972002e-02 +7.822180149101595759e-02 +7.822180149110083414e-02 +9.921808737580771476e-02 +9.921808737689950808e-02 +1.191671208024573242e-01 +1.191671208077482863e-01 +1.373432028082094691e-01 +1.373432028231226232e-01 +1.531393636791078261e-01 +1.531393637051978174e-01 +1.658892506589500493e-01 +1.658892506880694229e-01 +1.746140671283931411e-01 +1.746140671495211572e-01 +1.775815225621163729e-01 +1.775815225723478830e-01 +1.714380953710665789e-01 +1.714380953744692737e-01 +1.497746779138802997e-01 +1.497746779087859859e-01 +1.055294433014724448e-01 +1.055294430924522409e-01 +4.700474781350905823e-02 +4.700474242042580048e-02 +9.613900135300116473e-03 +9.613721316532354566e-03 +1.485616237373463050e-03 +1.468763203061437123e-03 +1.175460639767809175e-03 +1.169040658395550415e-03 +3.742937567873054136e-03 +3.742851270741231248e-03 +9.968330065701568390e-03 +9.968328027807404207e-03 +2.185252265457587190e-02 +2.185252257214025801e-02 +3.966761266687984788e-02 +3.966761266172026679e-02 +6.158018828527872524e-02 +6.158018828483240170e-02 +8.529244174336064743e-02 +8.529244174332732686e-02 +1.091247335055234302e-01 +1.091247335056795831e-01 +1.319911913606250375e-01 +1.319911913615214316e-01 +1.531393654107307822e-01 +1.531393654135617954e-01 +1.719852103544260713e-01 +1.719852103598777660e-01 +1.879519514580082207e-01 +1.879519514646715850e-01 +2.002635424059925617e-01 +2.002635424113393403e-01 +2.076131370578411517e-01 +2.076131370607693094e-01 +2.071944695480463783e-01 +2.071944695490616495e-01 +1.920415858851737545e-01 +1.920415858744396187e-01 +1.493450568953739455e-01 +1.493450564751213627e-01 +7.683890860714992499e-02 +7.683889839246066389e-02 +1.650798896307483637e-02 +1.650771625414237248e-02 +1.699600853471085150e-03 +1.678524733538301096e-03 +1.034664045534546429e-03 +1.029068776550586374e-03 +3.327934074390922949e-03 +3.327866858927483028e-03 +9.055091880436273721e-03 +9.055090436005098359e-03 +2.053243063913652924e-02 +2.053243058399953705e-02 +3.877015474304741638e-02 +3.877015473963704717e-02 +6.234020409383064787e-02 +6.234020409352539205e-02 +8.864448491775797634e-02 +8.864448491772432270e-02 +1.155101527094781061e-01 +1.155101527094976738e-01 +1.415455055844742349e-01 +1.415455055846282784e-01 +1.658892532974916290e-01 +1.658892532980387469e-01 +1.879519521327144838e-01 +1.879519521338761101e-01 +2.072232870679439065e-01 +2.072232870695014939e-01 +2.230787598163436747e-01 +2.230787598177258191e-01 +2.345739925172326545e-01 +2.345739925180846119e-01 +2.398226555301606333e-01 +2.398226555304329433e-01 +2.324573289643785123e-01 +2.324573289512731622e-01 +1.950686791474317838e-01 +1.950686785690017855e-01 +1.121649327556050874e-01 +1.121649184223563744e-01 +2.624071966613805360e-02 +2.624036783915411480e-02 +1.867851723948757295e-03 +1.843817840711637008e-03 +7.980901069131052109e-04 +7.939123976160438476e-04 +2.598099271044867088e-03 +2.598059330248052214e-03 +7.259338377388573245e-03 +7.259337681999323590e-03 +1.721074468094936985e-02 +1.721074465824056279e-02 +3.440276795941454857e-02 +3.440276795811255534e-02 +5.847549194486535012e-02 +5.847549194474824935e-02 +8.691412270460875666e-02 +8.691412270459443479e-02 +1.169597578284165551e-01 +1.169597578284179290e-01 +1.466090255394811859e-01 +1.466090255395074982e-01 +1.746140695054423653e-01 +1.746140695055484193e-01 +2.002635431985851089e-01 +2.002635431988341874e-01 +2.230787600303928420e-01 +2.230787600307596874e-01 +2.425774737260573410e-01 +2.425774737264167480e-01 +2.581085646639399434e-01 +2.581085646641876896e-01 +2.685117438165174342e-01 +2.685117438165942616e-01 +2.691171569145601739e-01 +2.691171569042039580e-01 +2.393864497603009622e-01 +2.393864492260006638e-01 +1.468697902990058479e-01 +1.468697766765764412e-01 +3.486762947643064908e-02 +3.486729937024989068e-02 +1.821935650831452320e-03 +1.798805841257521652e-03 +5.383510210282549391e-04 +5.357090043585430303e-04 +1.771352434903184989e-03 +1.771334420732309945e-03 +5.073235037534552447e-03 +5.073234813122434218e-03 +1.259336380938046174e-02 +1.259336380377756512e-02 +2.693821692818422486e-02 +2.693821692790474009e-02 +4.943534986294464278e-02 +4.943534986291937133e-02 +7.865046417342773377e-02 +7.865046417342430596e-02 +1.115021512762295053e-01 +1.115021512762294220e-01 +1.451411403732914829e-01 +1.451411403732958683e-01 +1.775815240123481131e-01 +1.775815240123682914e-01 +2.076131376358137381e-01 +2.076131376358666125e-01 +2.345739927313570394e-01 +2.345739927314429429e-01 +2.581085647236856517e-01 +2.581085647237784109e-01 +2.775039786933296559e-01 +2.775039786934005437e-01 +2.917030980118764938e-01 +2.917030980118771599e-01 +3.013404987176530603e-01 +3.013404987120582579e-01 +2.808980624460140074e-01 +2.808980621375502529e-01 +1.692899017002914841e-01 +1.692898947046721225e-01 +3.374925537633298445e-02 +3.374908585851652681e-02 +1.207378887571547996e-03 +1.191283250600157174e-03 +3.171582436799615188e-04 +3.157624400709849459e-04 +1.050901020328814288e-03 +1.050894815094517189e-03 +3.060774572333309265e-03 +3.060774523686214232e-03 +7.867997666892268677e-03 +7.867997666083339364e-03 +1.791492126438883753e-02 +1.791492126435626636e-02 +3.591741099168129642e-02 +3.591741099167822943e-02 +6.282338933216334576e-02 +6.282338933216281840e-02 +9.661177300704816562e-02 +9.661177300704813786e-02 +1.338509715260580990e-01 +1.338509715260588762e-01 +1.714380960172744162e-01 +1.714380960172781077e-01 +2.071944698526171913e-01 +2.071944698526281270e-01 +2.398226556674328824e-01 +2.398226556674523391e-01 +2.685117438709277438e-01 +2.685117438709510029e-01 +2.917030980271902441e-01 +2.917030980272097840e-01 +3.117617136631724017e-01 +3.117617136631501418e-01 +3.376590428734302929e-01 +3.376590428706429670e-01 +3.102915466120479970e-01 +3.102915465064545741e-01 +1.507316571312429798e-01 +1.507316555862788510e-01 +1.759755075056413862e-02 +1.759751806585756195e-02 +4.437247998737185793e-04 +4.372854183546668661e-04 +1.631647028494766834e-04 +1.625601956639469744e-04 +5.423108190668300427e-04 +5.423091409621516069e-04 +1.590292075327354041e-03 +1.590292067938352087e-03 +4.151235251275100201e-03 +4.151235251206037390e-03 +9.790506451388914996e-03 +9.790506451386932207e-03 +2.107569652885297323e-02 +2.107569652885276507e-02 +4.100389280779231926e-02 +4.100389280779224987e-02 +7.071741961453639758e-02 +7.071741961453639758e-02 +1.081913716925065883e-01 +1.081913716925067409e-01 +1.497746781348676115e-01 +1.497746781348683609e-01 +1.920415860109690454e-01 +1.920415860109713213e-01 +2.324573290330718967e-01 +2.324573290330761988e-01 +2.691171569477724401e-01 +2.691171569477779357e-01 +3.013404987306130267e-01 +3.013404987306179117e-01 +3.376590428768990182e-01 +3.376590428768874164e-01 +3.613740464734496172e-01 +3.613740464721679202e-01 +2.645751509405825930e-01 +2.645751509170985449e-01 +7.065945602322751262e-02 +7.065945584152544257e-02 +2.637730598504573615e-03 +2.637727317944810971e-03 +1.687998556321841854e-04 +1.672534897862135324e-04 +7.335165980339504877e-05 +7.314484194044549258e-05 +2.439138145345333625e-04 +2.439134427154259854e-04 +7.149736783165643083e-04 +7.149736774475127328e-04 +1.862901414518337330e-03 +1.862901414514497520e-03 +4.388411973358693173e-03 +4.388411973358630723e-03 +9.586743208275469788e-03 +9.586743208275466319e-03 +1.983329050383643086e-02 +1.983329050383643086e-02 +3.843771085360912776e-02 +3.843771085360912776e-02 +6.742790911508014795e-02 +6.742790911508016183e-02 +1.055294433128086129e-01 +1.055294433128087794e-01 +1.493450568761650332e-01 +1.493450568761656161e-01 +1.950686791534989861e-01 +1.950686791534999298e-01 +2.393864498139974817e-01 +2.393864498139988417e-01 +2.808980624959316330e-01 +2.808980624959328543e-01 +3.102915466375743558e-01 +3.102915466375636422e-01 +2.645751509527407563e-01 +2.645751509523304179e-01 +1.057330141655320327e-01 +1.057330141618885305e-01 +7.209461017072466178e-03 +7.209461009350284777e-03 +2.625315004210071880e-04 +2.625307756376813297e-04 +7.426113860083676671e-05 +7.375582586273816922e-05 +2.883945298846711655e-05 +2.878918993145704840e-05 +9.585302646844148474e-05 +9.585296046941770660e-05 +2.800828485439821151e-04 +2.800828484570651506e-04 +7.233754436173310803e-04 +7.233754436171622700e-04 +1.669356548098332223e-03 +1.669356548098330922e-03 +3.510201538606926540e-03 +3.510201538606927407e-03 +6.953628765219152692e-03 +6.953628765219161366e-03 +1.351733929608287671e-02 +1.351733929608291834e-02 +2.596140072472010937e-02 +2.596140072472031060e-02 +4.700474602104098842e-02 +4.700474602104161292e-02 +7.683890508789652241e-02 +7.683890508789781304e-02 +1.121649278074400846e-01 +1.121649278074419026e-01 +1.468697856600935103e-01 +1.468697856600949536e-01 +1.692898993480994041e-01 +1.692898993481001813e-01 +1.507316566992032703e-01 +1.507316566991990792e-01 +7.065945599807303690e-02 +7.065945599799987320e-02 +7.209461016883148866e-03 +7.209461016707506380e-03 +3.085949366213993966e-04 +3.085949364133116178e-04 +9.665591089574910330e-05 +9.665571744141282636e-05 2.904792970303228384e-05 2.888228838061175112e-05 -9.962482974317693449e-06 -9.918392789448031912e-06 -3.296542538411419116e-05 -3.296537654555108077e-05 -9.604030044229770399e-05 -9.604030039904191333e-05 -2.461066162509147775e-04 -2.461066162509007371e-04 -5.574494660385148626e-04 +9.921992832539190977e-06 +9.917398702701183048e-06 +3.296537952533639033e-05 +3.296537443287696364e-05 +9.604030039914720292e-05 +9.604030039459137183e-05 +2.461066162508684821e-04 +2.461066162508908166e-04 +5.574494660385147541e-04 5.574494660386214396e-04 1.124933161034850004e-03 1.124933161035284552e-03 @@ -654,38 +654,38 @@ 2.049103856703787373e-03 3.457408707234658780e-03 3.457408707240024279e-03 -5.683634998529337248e-03 -5.683634998543188148e-03 -9.613828068253442438e-03 -9.613828068281099135e-03 -1.650787081784299212e-02 -1.650787081788428548e-02 -2.624055620564781297e-02 -2.624055620569071268e-02 -3.486746856742432149e-02 -3.486746856745259054e-02 -3.374916999946175888e-02 -3.374916999947223661e-02 -1.759753391754043453e-02 -1.759753391754188476e-02 -2.637728870734110023e-03 -2.637728870731897383e-03 -2.625310582365817736e-04 -2.625310582362379189e-04 -9.665577488858831520e-05 -9.665577485243740980e-05 +5.683634998529369341e-03 +5.683634998543218506e-03 +9.613828068253208251e-03 +9.613828068280873620e-03 +1.650787081782626245e-02 +1.650787081786754193e-02 +2.624055620551864546e-02 +2.624055620556150353e-02 +3.486746856698517971e-02 +3.486746856701335162e-02 +3.374916999860069766e-02 +3.374916999861107131e-02 +1.759753391668683262e-02 +1.759753391668819264e-02 +2.637728870523182827e-03 +2.637728870520956309e-03 +2.625310582342362106e-04 +2.625310582338923017e-04 +9.665577488858740718e-05 +9.665577485243646112e-05 3.305802138898751948e-05 3.305797472744860180e-05 9.972508446555249746e-06 9.928387193172535650e-06 -2.999728784017904229e-06 -2.990946689002064946e-06 -9.927691774457302775e-06 -9.927682708154149195e-06 -2.886967493953757598e-05 -2.886967494505265832e-05 -7.363351097200878227e-05 -7.363351100979917754e-05 +2.987743754401427023e-06 +2.990856142096270764e-06 +9.927679313198271426e-06 +9.927682524791638230e-06 +2.886967493020706422e-05 +2.886967494470999622e-05 +7.363351097200261587e-05 +7.363351100979855413e-05 1.650288558057150647e-04 1.650288559146652128e-04 3.258067068654602527e-04 @@ -694,38 +694,38 @@ 5.680091868104079249e-04 8.762743675182081606e-04 8.762743691185050955e-04 -1.200125110543119166e-03 -1.200125113371710260e-03 -1.476848069174112191e-03 -1.476848073054876391e-03 -1.688731899155663293e-03 -1.688731903185764849e-03 -1.855375863990456039e-03 -1.855375867150210181e-03 -1.809797492976764587e-03 -1.809797494837052118e-03 -1.198801557133505769e-03 -1.198801557950463599e-03 -4.401349736784411623e-04 -4.401349739807631318e-04 -1.678131055066781562e-04 -1.678131056161386112e-04 -7.390620290523382729e-05 -7.390620294310938664e-05 +1.200125110543119383e-03 +1.200125113371710694e-03 +1.476848069174105903e-03 +1.476848073054872054e-03 +1.688731899155270378e-03 +1.688731903185372802e-03 +1.855375863986138745e-03 +1.855375867145893322e-03 +1.809797492959649154e-03 +1.809797494819932132e-03 +1.198801557107623478e-03 +1.198801557924578489e-03 +4.401349736691313893e-04 +4.401349739714525457e-04 +1.678131055064414207e-04 +1.678131056159019299e-04 +7.390620290523347493e-05 +7.390620294310907494e-05 2.892370277384048236e-05 2.892370277976403787e-05 9.936031652269990347e-06 9.936022719573077259e-06 3.000635389341720259e-06 2.991855026213038753e-06 -7.906069150170883498e-07 -7.896779950283144525e-07 -2.618042494737440811e-06 -2.618046693712790126e-06 -7.606393528682351908e-06 -7.606410862957441514e-06 -1.935741734636943975e-05 -1.935746733673573435e-05 +7.874654485896871868e-07 +7.896716830014448465e-07 +2.618039319965414035e-06 +2.618046681135424050e-06 +7.606393526496493602e-06 +7.606410862934890956e-06 +1.935741734636826068e-05 +1.935746733673568692e-05 4.317726034183715566e-05 4.317738600535513138e-05 8.447225136927691562e-05 @@ -736,20 +736,20 @@ 2.183489805518622716e-04 2.878677780413409085e-04 2.878691425590421040e-04 -3.314108318873009340e-04 +3.314108318873008798e-04 3.314124922490713156e-04 -3.323703682814169906e-04 -3.323720304632313250e-04 -2.901654917417278469e-04 -2.901668600145300360e-04 -2.205133799961988758e-04 -2.205143184495291940e-04 -1.459420351364858768e-04 -1.459425836218147820e-04 -8.470440937749183351e-05 -8.470468887477718904e-05 -4.324671820066477139e-05 -4.324684405361257878e-05 +3.323703682814160691e-04 +3.323720304632305118e-04 +2.901654917417195527e-04 +2.901668600145216876e-04 +2.205133799961729363e-04 +2.205143184495035526e-04 +1.459420351364650601e-04 +1.459425836217939654e-04 +8.470440937748929919e-05 +8.470468887477468182e-05 +4.324671820066475106e-05 +4.324684405361256523e-05 1.937577178411685008e-05 1.937582181828665056e-05 7.610119383112707791e-06 @@ -758,14 +758,14 @@ 2.618626000050029246e-06 7.906698670344471021e-07 7.897414805354715165e-07 -1.823747918448168706e-07 -1.831135745999995181e-07 -6.028664173742221444e-07 -6.079866030860346642e-07 -1.749794194964432422e-06 -1.766905599490730292e-06 -4.446712872681966794e-06 -4.495007338408849562e-06 +1.816512247904964710e-07 +1.831132443280483348e-07 +6.028649762478185315e-07 +6.079866027376977645e-07 +1.749794193048188303e-06 +1.766905599489249043e-06 +4.446712872680047417e-06 +4.495007338408844480e-06 9.895816146221506841e-06 1.001219636369932488e-05 1.928882957665929192e-05 @@ -782,8 +782,8 @@ 7.479609634741213819e-05 6.447267234319041507e-05 6.536660487450691103e-05 -4.927391969127034550e-05 -4.994206189432670400e-05 +4.927391969127032517e-05 +4.994206189432669044e-05 3.295403420153928195e-05 3.338595196408798216e-05 1.929880619798280653e-05 From 9fabfb6564d15f997b158a7dc01dfc091b068ca3 Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Mon, 5 Aug 2024 23:20:10 -0400 Subject: [PATCH 04/15] correct Jacobian treatment --- .../advection_diffusion_2d_prob_class.hpp | 13 +- .../firstorder/gold.txt | 1212 ++++++++--------- 2 files changed, 610 insertions(+), 615 deletions(-) diff --git a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp index bc0e3a84..8f0585e8 100644 --- a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp +++ b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp @@ -910,7 +910,6 @@ class EigenApp V(vIndex+1) += diffDyInvSq*( stencilVals(5) - two*stencilVals(3) + stencilVals(1) ); // diffusion Jacobian contributions - // self J.coeffRef(vIndex, uIndex) += -two*diffDxInvSq - two*diffDyInvSq; J.coeffRef(vIndex+1, uIndex+1) += -two*diffDxInvSq - two*diffDyInvSq; @@ -919,10 +918,8 @@ class EigenApp J.coeffRef(vIndex+1, uIndexLeft+1) += diffDxInvSq; } else{ - // TODO: generalize this - // no op for Dirichlet BC - // J.coeffRef(vIndex, uIndex) += -diffDxInvSq; - // J.coeffRef(vIndex+1, uIndex+1) += -diffDxInvSq; + J.coeffRef(vIndex, uIndex) += -diffDxInvSq; + J.coeffRef(vIndex+1, uIndex+1) += -diffDxInvSq; } if (uIndexFront > -1){ @@ -948,10 +945,8 @@ class EigenApp J.coeffRef(vIndex+1, uIndexBack+1) += diffDyInvSq; } else{ - // TODO: generalize this - // no op for Dirichlet BC - // J.coeffRef(vIndex, uIndex) += -diffDyInvSq; - // J.coeffRef(vIndex+1, uIndex+1) += -diffDyInvSq; + J.coeffRef(vIndex, uIndex) += -diffDyInvSq; + J.coeffRef(vIndex+1, uIndex+1) += -diffDyInvSq; } } } diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt b/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt index a3542989..474eda0f 100644 --- a/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt @@ -1,529 +1,529 @@ -2.878435971815569805e-05 -2.869531697831198839e-05 -9.530982103930158767e-05 -9.505942299739377063e-05 -2.749974834797380935e-04 -2.746227646765904136e-04 -6.899573993819907436e-04 -6.897292771935251143e-04 -1.500033482997075720e-03 -1.500719886112906109e-03 -2.822063916971399942e-03 -2.824891121188752557e-03 -4.610705773880834080e-03 -4.616866977350815582e-03 -6.601409551295079822e-03 -6.611505620532608964e-03 -8.379213788599043644e-03 -8.393099215158305454e-03 -9.517782695847305796e-03 -9.534691941080636682e-03 -9.701103015434095825e-03 -9.719562252170299566e-03 -8.833657406945293403e-03 -8.851414049647383583e-03 -7.115440199406720088e-03 -7.130002996389540187e-03 -5.001164564498771295e-03 -5.010752530543715992e-03 -3.033321864652048592e-03 -3.037944697588631279e-03 -1.582386423251396250e-03 -1.583694686720774070e-03 -7.133006667681273012e-04 -7.132062231047754056e-04 -2.798847974831582242e-04 -2.795247184005020800e-04 -9.607867571065330790e-05 -9.582754636173635983e-05 -2.899160137053723071e-05 -2.878728027355236668e-05 -7.309220355080042579e-05 -7.288939102763827426e-05 -2.410944510673300727e-04 -2.410936266236576972e-04 -6.914253460109691862e-04 -6.914240650861632918e-04 -1.712203669362405162e-03 -1.712202164951117560e-03 -3.640778412818949927e-03 -3.640789122423295637e-03 -6.648741833962042332e-03 -6.648819255132441472e-03 -1.052919243718555310e-02 -1.052946123444533678e-02 -1.470730265939465889e-02 -1.470792526319186257e-02 -1.844178898153661997e-02 -1.844286644195464522e-02 -2.101539740283503085e-02 -2.101687494870899120e-02 -2.182504322781039785e-02 -2.182667466538136883e-02 -2.051062725115469429e-02 -2.051205225791760678e-02 -1.719853302704009435e-02 -1.719948216181518830e-02 -1.258870965658902968e-02 -1.258915905961164629e-02 -7.866839677742296782e-03 -7.866975889938079836e-03 -4.151051775761540295e-03 -4.151072961253232836e-03 -1.862882573178371902e-03 -1.862881946913381949e-03 -7.233741985508800997e-04 -7.233729245110370742e-04 -2.461070681906510089e-04 -2.461058907098569886e-04 -7.398518818308725392e-05 -7.348620898654101155e-05 -1.622097669034186095e-04 -1.616221413970865225e-04 -5.320539744581964225e-04 -5.320523587382955605e-04 -1.506710624135159868e-03 -1.506710611935928009e-03 -3.640889332065961551e-03 -3.640889319058553033e-03 -7.454093573841212572e-03 -7.454093808112269987e-03 -1.299954743676370005e-02 -1.299955026857051860e-02 -1.969834950432551926e-02 -1.969836440622434182e-02 -2.662108257863761082e-02 -2.662112950493662408e-02 -3.281566744219810428e-02 -3.281576767506988457e-02 -3.742837482803695881e-02 -3.742853041330722330e-02 -3.966385562395022962e-02 -3.966403491309497542e-02 -3.876714142336463997e-02 -3.876729180924277929e-02 -3.440117686565609401e-02 -3.440126528790716370e-02 -2.693768530356832266e-02 -2.693771908192692938e-02 -1.791481549752339461e-02 -1.791482297068846749e-02 -9.790494900918175411e-03 -9.790495686074920587e-03 -4.388411333650770255e-03 -4.388411345130369644e-03 -1.669356532029351442e-03 -1.669356520213470703e-03 -5.574507789668396241e-04 -5.574483132710780168e-04 -1.658758372112484141e-04 -1.646101548920102264e-04 -3.145266119196303404e-04 -3.131806343727237645e-04 -1.023193501749503640e-03 -1.023187613438153194e-03 -2.844572449144625644e-03 -2.844572406817422270e-03 -6.649406098996466473e-03 -6.649406098338940356e-03 -1.299957336822707595e-02 -1.299957337581438173e-02 -2.157754376371845764e-02 -2.157754390356558458e-02 -3.135919412208553608e-02 -3.135919517371392462e-02 -4.119232095615792122e-02 -4.119232528855925474e-02 -5.007530845261944086e-02 -5.007531965387589795e-02 -5.714959300064419156e-02 -5.714961268246370601e-02 -6.157953770922283687e-02 -6.157956190642330241e-02 -6.233964900423536598e-02 -6.233966943603713728e-02 -5.847519048384200446e-02 -5.847520195607762428e-02 -4.943524710261611860e-02 -4.943525112926339116e-02 -3.591738961691415960e-02 -3.591739042780309893e-02 -2.107569397785867202e-02 -2.107569406153595240e-02 -9.586743056646475705e-03 -9.586743059975715367e-03 -3.510201545232151214e-03 -3.510201510987534090e-03 +2.878435853441671882e-05 +2.869531668255346032e-05 +9.530982037036910828e-05 +9.505942356082608738e-05 +2.749974912102627557e-04 +2.746227741343039972e-04 +6.899574646928257173e-04 +6.897293429689125297e-04 +1.500033795827715151e-03 +1.500720193279563670e-03 +2.822064973168746972e-03 +2.824892157795791045e-03 +4.610708415846626919e-03 +4.616869578259982440e-03 +6.601414592715534532e-03 +6.611510596013462672e-03 +8.379221313796474113e-03 +8.393106651621986408e-03 +9.517791619126620903e-03 +9.534700759515693513e-03 +9.701111407125416822e-03 +9.719570533389249728e-03 +8.833663517137236090e-03 +8.851420057037501926e-03 +7.115443434111401282e-03 +7.130006148899908393e-03 +5.001165644855171122e-03 +5.010753557795717336e-03 +3.033321980556676067e-03 +3.037944788413154094e-03 +1.582386342210069822e-03 +1.583694598842404992e-03 +7.133006160069324661e-04 +7.132061729457258572e-04 +2.798847805045740498e-04 +2.795247033170625370e-04 +9.607867113080976410e-05 +9.582754307004416432e-05 +2.899159973173924329e-05 +2.878727966471867060e-05 +7.309220257245604003e-05 +7.288939106398787326e-05 +2.410944510642968816e-04 +2.410936266247234137e-04 +6.914253460433727365e-04 +6.914240651246261228e-04 +1.712203669921379253e-03 +1.712202165514351915e-03 +3.640778418160584614e-03 +3.640789127690505049e-03 +6.648741866440578685e-03 +6.648819287136765142e-03 +1.052919256689378684e-02 +1.052946136256923022e-02 +1.470730301096758071e-02 +1.470792561119093830e-02 +1.844178965159027836e-02 +1.844286710597108428e-02 +2.101539832333837801e-02 +2.101687586111416692e-02 +2.182504414037949453e-02 +2.182667556915919918e-02 +2.051062788694026084e-02 +2.051205288609510638e-02 +1.719853331973728375e-02 +1.719948244945651572e-02 +1.258870973459015781e-02 +1.258915913522057166e-02 +7.866839685444909636e-03 +7.866975896920449379e-03 +4.151051774447196696e-03 +4.151072959829258183e-03 +1.862882572692033502e-03 +1.862881946430799008e-03 +7.233741984770407276e-04 +7.233729244437952892e-04 +2.461070681811465674e-04 +2.461058907027326419e-04 +7.398518818259193616e-05 +7.348620898512582956e-05 +1.622097670071987125e-04 +1.616221444478203688e-04 +5.320539744584208523e-04 +5.320523587466157280e-04 +1.506710624135335075e-03 +1.506710611936163281e-03 +3.640889332072427299e-03 +3.640889319065053909e-03 +7.454093573964185385e-03 +7.454093808233752672e-03 +1.299954743808335103e-02 +1.299955026987374002e-02 +1.969834951255066552e-02 +1.969836441436558297e-02 +2.662108260976803198e-02 +2.662112953580858185e-02 +3.281566751751069377e-02 +3.281576774984114320e-02 +3.742837494915363800e-02 +3.742853053359730675e-02 +3.966385575476325670e-02 +3.966403504296556887e-02 +3.876714151607913578e-02 +3.876729190117009227e-02 +3.440117690695580766e-02 +3.440126532874383802e-02 +2.693768531416699044e-02 +2.693771909234863801e-02 +1.791481549883795765e-02 +1.791482297196403395e-02 +9.790494900953376420e-03 +9.790495686106072751e-03 +4.388411333644686579e-03 +4.388411345124230457e-03 +1.669356532028817364e-03 +1.669356520212967199e-03 +5.574507789668151211e-04 +5.574483132710568748e-04 +1.658758372112477907e-04 +1.646101548920075972e-04 +3.145266191002086295e-04 +3.131806483085781880e-04 +1.023193501785587840e-03 +1.023187613503736366e-03 +2.844572449144928353e-03 +2.844572406817938350e-03 +6.649406098996572291e-03 +6.649406098339039235e-03 +1.299957336823059743e-02 +1.299957337581784944e-02 +2.157754376378446734e-02 +2.157754390363079630e-02 +3.135919412272297063e-02 +3.135919517434553744e-02 +4.119232095950498690e-02 +4.119232529188292247e-02 +5.007530846288316129e-02 +5.007531966408032553e-02 +5.714959302014491899e-02 +5.714961270186149495e-02 +6.157953773280567394e-02 +6.157956192988053856e-02 +6.233964902217657006e-02 +6.233966945387245384e-02 +5.847519049231179877e-02 +5.847520196448799390e-02 +4.943524710503998526e-02 +4.943525113166633705e-02 +3.591738961732447027e-02 +3.591739042820918382e-02 +2.107569397789789759e-02 +2.107569406157473388e-02 +9.586743056648312777e-03 +9.586743059977535092e-03 +3.510201545232182873e-03 +3.510201510987562713e-03 1.124936838134926904e-03 -1.124928957685425836e-03 +1.124928957685426053e-03 3.275499485504851783e-04 3.248068560613161476e-04 -5.330010357470980594e-04 -5.304642157942083712e-04 -1.716543163313787469e-03 -1.716526198883016295e-03 -4.669521964931272300e-03 -4.669521771564405510e-03 -1.053194531491480866e-02 -1.053194531108241072e-02 -1.969851698477491711e-02 -1.969851698501086032e-02 -3.135920653245011236e-02 -3.135920654136496732e-02 -4.415435185335050278e-02 -4.415435194362549859e-02 -5.685269817282688487e-02 -5.685269864308111626e-02 -6.847982229192899062e-02 -6.847982373899119679e-02 -7.822171403589250893e-02 -7.822171690875916183e-02 -8.529230852043119537e-02 -8.529231234247604265e-02 -8.864435925173065611e-02 -8.864436262281367995e-02 -8.691404813330694257e-02 -8.691405005587821142e-02 -7.865043569806047519e-02 -7.865043638570026752e-02 -6.282338221017182145e-02 -6.282338235970236218e-02 -4.100389165078165837e-02 -4.100389167012929298e-02 -1.983329039561974871e-02 -1.983329039463818666e-02 -6.953628808356379989e-03 -6.953628641205407239e-03 -2.049113153316600711e-03 -2.049091095968415353e-03 +5.330010633777988466e-04 +5.304642561445566508e-04 +1.716543163530204631e-03 +1.716526199184285938e-03 +4.669521964934218727e-03 +4.669521771568317312e-03 +1.053194531491488672e-02 +1.053194531108249572e-02 +1.969851698477502466e-02 +1.969851698501098522e-02 +3.135920653245365119e-02 +3.135920654136846453e-02 +4.415435185340556290e-02 +4.415435194368004523e-02 +5.685269817323444774e-02 +5.685269864348621582e-02 +6.847982229352703176e-02 +6.847982374058164678e-02 +7.822171403951574953e-02 +7.822171691236749769e-02 +8.529230852543145946e-02 +8.529231234745678070e-02 +8.864435925597445587e-02 +8.864436262704003533e-02 +8.691404813555062003e-02 +8.691405005811189688e-02 +7.865043569882169960e-02 +7.865043638645793922e-02 +6.282338221034369785e-02 +6.282338235987351693e-02 +4.100389165080766535e-02 +4.100389167015520975e-02 +1.983329039562208018e-02 +1.983329039464053548e-02 +6.953628808356468460e-03 +6.953628641205499179e-03 +2.049113153316602012e-03 +2.049091095968416220e-03 5.711043552591187934e-04 5.659524427433483768e-04 -7.903028235011501888e-04 -7.862809462991273693e-04 -2.520658554138759458e-03 -2.520620807281888365e-03 -6.722063963181328441e-03 -6.722063353368988060e-03 -1.471528458653493035e-02 -1.471528456976811845e-02 -2.662175952537285464e-02 -2.662175952468349982e-02 -4.119239098454686304e-02 -4.119239098520367098e-02 -5.685270629680042737e-02 -5.685270630579662005e-02 -7.234215474133408319e-02 -7.234215479893013612e-02 -8.671936123467773039e-02 -8.671936144272862634e-02 -9.921807008588996724e-02 -9.921807055132568498e-02 -1.091247030452608541e-01 -1.091247037210127530e-01 -1.155101202007716432e-01 -1.155101208384547995e-01 -1.169597360134832370e-01 -1.169597363989211963e-01 -1.115021415964886770e-01 -1.115021417456391051e-01 -9.661177002855167451e-02 -9.661177006605282946e-02 -7.071741896365187074e-02 -7.071741896956647289e-02 -3.843771076332259257e-02 -3.843771074841902113e-02 -1.351733948653962604e-02 -1.351733881549677802e-02 -3.457429332194551959e-03 -3.457377182109377684e-03 +7.903028882702028317e-04 +7.862810311888734265e-04 +2.520658554858589036e-03 +2.520620808190049498e-03 +6.722063963195439550e-03 +6.722063353386150547e-03 +1.471528458653541607e-02 +1.471528456976869091e-02 +2.662175952537287199e-02 +2.662175952468353451e-02 +4.119239098454702264e-02 +4.119239098520385833e-02 +5.685270629680522908e-02 +5.685270630580126217e-02 +7.234215474138663837e-02 +7.234215479898233048e-02 +8.671936123494718152e-02 +8.671936144299698113e-02 +9.921807008662858474e-02 +9.921807055206177672e-02 +1.091247030464396472e-01 +1.091247037221880628e-01 +1.155101202019118700e-01 +1.155101208395917234e-01 +1.169597360141769460e-01 +1.169597363996130179e-01 +1.115021415967708679e-01 +1.115021417459204633e-01 +9.661177002863315100e-02 +9.661177006613408391e-02 +7.071741896366900981e-02 +7.071741896958354257e-02 +3.843771076332505587e-02 +3.843771074842145669e-02 +1.351733948653980819e-02 +1.351733881549695149e-02 +3.457429332194558030e-03 +3.457377182109380720e-03 8.810882738739797332e-04 8.725903321912977092e-04 -1.027192166353069463e-03 -1.021747393360649759e-03 -3.255450101032494881e-03 -3.255385552526310258e-03 -8.575648630391917437e-03 -8.575647310341981758e-03 -1.845832514887143713e-02 -1.845832510354515274e-02 -3.281744540507561259e-02 -3.281744540271900462e-02 -5.007554183961180488e-02 -5.007554183950899129e-02 -6.847985739772211033e-02 -6.847985739871056965e-02 -8.671936683672094859e-02 -8.671936684442195509e-02 -1.038597213116325968e-01 -1.038597213439357153e-01 -1.191671173435226994e-01 -1.191671174247295600e-01 -1.319911839274630627e-01 -1.319911840567266070e-01 -1.415454964752996814e-01 -1.415454966075024856e-01 -1.466090185056383999e-01 -1.466090185926658129e-01 -1.451411367172456557e-01 -1.451411367546713294e-01 -1.338509701602695057e-01 -1.338509701712465305e-01 -1.081913713116252063e-01 -1.081913713119409121e-01 -6.742790905639649279e-02 -6.742790898670572575e-02 -2.596140139573159880e-02 -2.596139923523554938e-02 -5.683675358966414765e-03 -5.683571530511659885e-03 -1.206857463898149043e-03 +1.027192273399879247e-03 +1.021747527579035730e-03 +3.255450102547748515e-03 +3.255385554362830343e-03 +8.575648630430048394e-03 +8.575647310386685582e-03 +1.845832514887307818e-02 +1.845832510354701236e-02 +3.281744540507572361e-02 +3.281744540271912952e-02 +5.007554183961181876e-02 +5.007554183950903293e-02 +6.847985739772238789e-02 +6.847985739871088884e-02 +8.671936683672760993e-02 +8.671936684442857479e-02 +1.038597213116796703e-01 +1.038597213439825945e-01 +1.191671173436816694e-01 +1.191671174248880860e-01 +1.319911839277597698e-01 +1.319911840570225092e-01 +1.415454964756297229e-01 +1.415454966078319166e-01 +1.466090185058722128e-01 +1.466090185928991541e-01 +1.451411367173588429e-01 +1.451411367547842113e-01 +1.338509701603097790e-01 +1.338509701712866096e-01 +1.081913713116361003e-01 +1.081913713119518200e-01 +6.742790905639871324e-02 +6.742790898670787680e-02 +2.596140139573187289e-02 +2.596139923523580612e-02 +5.683675358966426908e-03 +5.683571530511672028e-03 +1.206857463898149477e-03 1.194336872888567685e-03 -1.172314828570703189e-03 -1.165958382227224406e-03 -3.712813969056972391e-03 -3.712728936225512689e-03 -9.773842860847986244e-03 -9.773840887573041758e-03 -2.104034385794239723e-02 -2.104034378096540647e-02 -3.743151132150027149e-02 -3.743151131695307554e-02 -5.715007938409803756e-02 -5.715007938373972002e-02 +1.172314957856686584e-03 +1.165958543185705108e-03 +3.712813971138138359e-03 +3.712728938729376992e-03 +9.773842860908207170e-03 +9.773840887643084688e-03 +2.104034385794538789e-02 +2.104034378096882735e-02 +3.743151132150049354e-02 +3.743151131695338085e-02 +5.715007938409805144e-02 +5.715007938373975471e-02 7.822180149101595759e-02 -7.822180149110083414e-02 -9.921808737580771476e-02 -9.921808737689950808e-02 -1.191671208024573242e-01 -1.191671208077482863e-01 -1.373432028082094691e-01 -1.373432028231226232e-01 -1.531393636791078261e-01 -1.531393637051978174e-01 -1.658892506589500493e-01 -1.658892506880694229e-01 -1.746140671283931411e-01 -1.746140671495211572e-01 -1.775815225621163729e-01 -1.775815225723478830e-01 -1.714380953710665789e-01 -1.714380953744692737e-01 -1.497746779138802997e-01 -1.497746779087859859e-01 -1.055294433014724448e-01 -1.055294430924522409e-01 -4.700474781350905823e-02 -4.700474242042580048e-02 -9.613900135300116473e-03 -9.613721316532354566e-03 -1.485616237373463050e-03 -1.468763203061437123e-03 -1.175460639767809175e-03 -1.169040658395550415e-03 -3.742937567873054136e-03 -3.742851270741231248e-03 -9.968330065701568390e-03 -9.968328027807404207e-03 -2.185252265457587190e-02 -2.185252257214025801e-02 -3.966761266687984788e-02 -3.966761266172026679e-02 -6.158018828527872524e-02 -6.158018828483240170e-02 +7.822180149110086189e-02 +9.921808737580845028e-02 +9.921808737690020197e-02 +1.191671208024655121e-01 +1.191671208077563354e-01 +1.373432028082445522e-01 +1.373432028231576507e-01 +1.531393636791850976e-01 +1.531393637052751167e-01 +1.658892506590495253e-01 +1.658892506881687046e-01 +1.746140671284751589e-01 +1.746140671496030361e-01 +1.775815225621634741e-01 +1.775815225723947621e-01 +1.714380953710867017e-01 +1.714380953744892300e-01 +1.497746779138869333e-01 +1.497746779087926472e-01 +1.055294433014741240e-01 +1.055294430924539340e-01 +4.700474781350934272e-02 +4.700474242042610579e-02 +9.613900135300137290e-03 +9.613721316532377117e-03 +1.485616237373463266e-03 +1.468763203061437339e-03 +1.175460754223032686e-03 +1.169040804837912992e-03 +3.742937569739133042e-03 +3.742851273036458624e-03 +9.968330065757324138e-03 +9.968328027873302882e-03 +2.185252265457882093e-02 +2.185252257214364419e-02 +3.966761266688007687e-02 +3.966761266172056516e-02 +6.158018828527875299e-02 +6.158018828483245027e-02 8.529244174336064743e-02 -8.529244174332732686e-02 -1.091247335055234302e-01 -1.091247335056795831e-01 -1.319911913606250375e-01 -1.319911913615214316e-01 -1.531393654107307822e-01 -1.531393654135617954e-01 -1.719852103544260713e-01 -1.719852103598777660e-01 -1.879519514580082207e-01 -1.879519514646715850e-01 -2.002635424059925617e-01 -2.002635424113393403e-01 -2.076131370578411517e-01 -2.076131370607693094e-01 -2.071944695480463783e-01 -2.071944695490616495e-01 -1.920415858851737545e-01 -1.920415858744396187e-01 -1.493450568953739455e-01 -1.493450564751213627e-01 -7.683890860714992499e-02 -7.683889839246066389e-02 -1.650798896307483637e-02 -1.650771625414237248e-02 -1.699600853471085150e-03 -1.678524733538301096e-03 -1.034664045534546429e-03 -1.029068776550586374e-03 -3.327934074390922949e-03 -3.327866858927483028e-03 -9.055091880436273721e-03 -9.055090436005098359e-03 -2.053243063913652924e-02 -2.053243058399953705e-02 -3.877015474304741638e-02 -3.877015473963704717e-02 +8.529244174332734074e-02 +1.091247335055234996e-01 +1.091247335056796108e-01 +1.319911913606263698e-01 +1.319911913615227639e-01 +1.531393654107384428e-01 +1.531393654135695115e-01 +1.719852103544464994e-01 +1.719852103598982218e-01 +1.879519514580388073e-01 +1.879519514647020884e-01 +2.002635424060218161e-01 +2.002635424113684837e-01 +2.076131370578607194e-01 +2.076131370607888493e-01 +2.071944695480562593e-01 +2.071944695490715860e-01 +1.920415858851777235e-01 +1.920415858744436710e-01 +1.493450568953753055e-01 +1.493450564751228615e-01 +7.683890860715027193e-02 +7.683889839246103859e-02 +1.650798896307488842e-02 +1.650771625414242452e-02 +1.699600853471086885e-03 +1.678524733538301747e-03 +1.034664117130583471e-03 +1.029068876057553060e-03 +3.327934075444114338e-03 +3.327866860315510308e-03 +9.055091880465574936e-03 +9.055090436041570920e-03 +2.053243063913805580e-02 +2.053243058400133769e-02 +3.877015474304751352e-02 +3.877015473963717901e-02 6.234020409383064787e-02 -6.234020409352539205e-02 +6.234020409352540593e-02 8.864448491775797634e-02 8.864448491772432270e-02 -1.155101527094781061e-01 +1.155101527094781200e-01 1.155101527094976738e-01 -1.415455055844742349e-01 -1.415455055846282784e-01 -1.658892532974916290e-01 -1.658892532980387469e-01 -1.879519521327144838e-01 -1.879519521338761101e-01 -2.072232870679439065e-01 -2.072232870695014939e-01 -2.230787598163436747e-01 -2.230787598177258191e-01 -2.345739925172326545e-01 -2.345739925180846119e-01 -2.398226555301606333e-01 -2.398226555304329433e-01 -2.324573289643785123e-01 -2.324573289512731622e-01 -1.950686791474317838e-01 -1.950686785690017855e-01 -1.121649327556050874e-01 -1.121649184223563744e-01 -2.624071966613805360e-02 -2.624036783915411480e-02 -1.867851723948757295e-03 -1.843817840711637008e-03 -7.980901069131052109e-04 -7.939123976160438476e-04 -2.598099271044867088e-03 -2.598059330248052214e-03 -7.259338377388573245e-03 -7.259337681999323590e-03 -1.721074468094936985e-02 -1.721074465824056279e-02 -3.440276795941454857e-02 -3.440276795811255534e-02 +1.415455055844744015e-01 +1.415455055846284171e-01 +1.658892532974934331e-01 +1.658892532980404955e-01 +1.879519521327199516e-01 +1.879519521338814114e-01 +2.072232870679533989e-01 +2.072232870695108475e-01 +2.230787598163541108e-01 +2.230787598177361997e-01 +2.345739925172407592e-01 +2.345739925180928276e-01 +2.398226555301655183e-01 +2.398226555304376895e-01 +2.324573289643807883e-01 +2.324573289512753826e-01 +1.950686791474326442e-01 +1.950686785690027014e-01 +1.121649327556052539e-01 +1.121649184223565687e-01 +2.624071966613808135e-02 +2.624036783915414603e-02 +1.867851723948758596e-03 +1.843817840711638309e-03 +7.980901342947319078e-04 +7.939124458707776067e-04 +2.598099271370930049e-03 +2.598059330773514700e-03 +7.259338377396317918e-03 +7.259337682010529036e-03 +1.721074468094975149e-02 +1.721074465824106933e-02 +3.440276795941455551e-02 +3.440276795811260391e-02 5.847549194486535012e-02 -5.847549194474824935e-02 +5.847549194474825629e-02 8.691412270460875666e-02 -8.691412270459443479e-02 +8.691412270459444867e-02 1.169597578284165551e-01 -1.169597578284179290e-01 +1.169597578284179151e-01 1.466090255394811859e-01 1.466090255395074982e-01 -1.746140695054423653e-01 -1.746140695055484193e-01 -2.002635431985851089e-01 -2.002635431988341874e-01 -2.230787600303928420e-01 -2.230787600307596874e-01 -2.425774737260573410e-01 -2.425774737264167480e-01 -2.581085646639399434e-01 -2.581085646641876896e-01 -2.685117438165174342e-01 -2.685117438165942616e-01 -2.691171569145601739e-01 -2.691171569042039580e-01 -2.393864497603009622e-01 -2.393864492260006638e-01 -1.468697902990058479e-01 -1.468697766765764412e-01 -3.486762947643064908e-02 -3.486729937024989068e-02 -1.821935650831452320e-03 -1.798805841257521652e-03 -5.383510210282549391e-04 -5.357090043585430303e-04 -1.771352434903184989e-03 -1.771334420732309945e-03 -5.073235037534552447e-03 -5.073234813122434218e-03 -1.259336380938046174e-02 -1.259336380377756512e-02 -2.693821692818422486e-02 -2.693821692790474009e-02 +1.746140695054427261e-01 +1.746140695055487246e-01 +2.002635431985865799e-01 +2.002635431988354642e-01 +2.230787600303958396e-01 +2.230787600307625462e-01 +2.425774737260610880e-01 +2.425774737264204950e-01 +2.581085646639432740e-01 +2.581085646641909093e-01 +2.685117438165195991e-01 +2.685117438165963710e-01 +2.691171569145612841e-01 +2.691171569042051792e-01 +2.393864497603014063e-01 +2.393864492260011634e-01 +1.468697902990059867e-01 +1.468697766765765522e-01 +3.486762947643066990e-02 +3.486729937024990456e-02 +1.821935650831452537e-03 +1.798805841257522953e-03 +5.383510226241925139e-04 +5.357090191654633685e-04 +1.771352434920303240e-03 +1.771334420839493305e-03 +5.073235037535030363e-03 +5.073234813124035368e-03 +1.259336380938049470e-02 +1.259336380377763624e-02 +2.693821692818422833e-02 +2.693821692790474356e-02 4.943534986294464278e-02 -4.943534986291937133e-02 -7.865046417342773377e-02 -7.865046417342430596e-02 +4.943534986291936439e-02 +7.865046417342774765e-02 +7.865046417342431984e-02 1.115021512762295053e-01 -1.115021512762294220e-01 +1.115021512762294498e-01 1.451411403732914829e-01 1.451411403732958683e-01 -1.775815240123481131e-01 -1.775815240123682914e-01 -2.076131376358137381e-01 -2.076131376358666125e-01 -2.345739927313570394e-01 -2.345739927314429429e-01 -2.581085647236856517e-01 -2.581085647237784109e-01 -2.775039786933296559e-01 -2.775039786934005437e-01 -2.917030980118764938e-01 -2.917030980118771599e-01 -3.013404987176530603e-01 -3.013404987120582579e-01 -2.808980624460140074e-01 -2.808980621375502529e-01 -1.692899017002914841e-01 -1.692898947046721225e-01 -3.374925537633298445e-02 -3.374908585851652681e-02 -1.207378887571547996e-03 -1.191283250600157174e-03 -3.171582436799615188e-04 -3.157624400709849459e-04 -1.050901020328814288e-03 -1.050894815094517189e-03 -3.060774572333309265e-03 -3.060774523686214232e-03 +1.775815240123481686e-01 +1.775815240123683192e-01 +2.076131376358141545e-01 +2.076131376358668901e-01 +2.345739927313580109e-01 +2.345739927314437201e-01 +2.581085647236869285e-01 +2.581085647237797986e-01 +2.775039786933309327e-01 +2.775039786934020980e-01 +2.917030980118773265e-01 +2.917030980118779926e-01 +3.013404987176535599e-01 +3.013404987120588130e-01 +2.808980624460143405e-01 +2.808980621375506415e-01 +1.692899017002916229e-01 +1.692898947046723723e-01 +3.374925537633300526e-02 +3.374908585851657539e-02 +1.207378887571548647e-03 +1.191283250600158909e-03 +3.171582379027903511e-04 +3.157624412681827772e-04 +1.050901020299339168e-03 +1.050894815096064128e-03 +3.060774572333059898e-03 +3.060774523686202089e-03 7.867997666892268677e-03 -7.867997666083339364e-03 +7.867997666083341099e-03 1.791492126438883753e-02 1.791492126435626636e-02 3.591741099168129642e-02 3.591741099167822943e-02 6.282338933216334576e-02 -6.282338933216281840e-02 -9.661177300704816562e-02 -9.661177300704813786e-02 -1.338509715260580990e-01 +6.282338933216283228e-02 +9.661177300704819337e-02 +9.661177300704815174e-02 +1.338509715260581268e-01 1.338509715260588762e-01 1.714380960172744162e-01 1.714380960172781077e-01 -2.071944698526171913e-01 -2.071944698526281270e-01 -2.398226556674328824e-01 -2.398226556674523391e-01 -2.685117438709277438e-01 -2.685117438709510029e-01 -2.917030980271902441e-01 -2.917030980272097840e-01 -3.117617136631724017e-01 -3.117617136631501418e-01 -3.376590428734302929e-01 -3.376590428706429670e-01 -3.102915466120479970e-01 -3.102915465064545741e-01 -1.507316571312429798e-01 -1.507316555862788510e-01 -1.759755075056413862e-02 -1.759751806585756195e-02 -4.437247998737185793e-04 -4.372854183546668661e-04 -1.631647028494766834e-04 -1.625601956639469744e-04 -5.423108190668300427e-04 -5.423091409621516069e-04 -1.590292075327354041e-03 -1.590292067938352087e-03 +2.071944698526173023e-01 +2.071944698526281825e-01 +2.398226556674331322e-01 +2.398226556674525334e-01 +2.685117438709280768e-01 +2.685117438709515580e-01 +2.917030980271906881e-01 +2.917030980272103946e-01 +3.117617136631726793e-01 +3.117617136631505304e-01 +3.376590428734305149e-01 +3.376590428706431890e-01 +3.102915466120482191e-01 +3.102915465064547962e-01 +1.507316571312431464e-01 +1.507316555862789897e-01 +1.759755075056416637e-02 +1.759751806585758971e-02 +4.437247998737189588e-04 +4.372854183546671372e-04 +1.631646982124685123e-04 +1.625601940404110333e-04 +5.423108190521189372e-04 +5.423091409558188905e-04 +1.590292075327279231e-03 +1.590292067938313490e-03 4.151235251275100201e-03 4.151235251206037390e-03 9.790506451388914996e-03 @@ -531,39 +531,39 @@ 2.107569652885297323e-02 2.107569652885276507e-02 4.100389280779231926e-02 -4.100389280779224987e-02 -7.071741961453639758e-02 -7.071741961453639758e-02 +4.100389280779225681e-02 +7.071741961453641145e-02 +7.071741961453641145e-02 1.081913716925065883e-01 -1.081913716925067409e-01 +1.081913716925067548e-01 1.497746781348676115e-01 1.497746781348683609e-01 -1.920415860109690454e-01 -1.920415860109713213e-01 -2.324573290330718967e-01 -2.324573290330761988e-01 -2.691171569477724401e-01 -2.691171569477779357e-01 -3.013404987306130267e-01 -3.013404987306179117e-01 -3.376590428768990182e-01 -3.376590428768874164e-01 -3.613740464734496172e-01 -3.613740464721679202e-01 -2.645751509405825930e-01 -2.645751509170985449e-01 -7.065945602322751262e-02 -7.065945584152544257e-02 -2.637730598504573615e-03 -2.637727317944810971e-03 +1.920415860109691009e-01 +1.920415860109713768e-01 +2.324573290330719799e-01 +2.324573290330761710e-01 +2.691171569477724956e-01 +2.691171569477780467e-01 +3.013404987306130822e-01 +3.013404987306181337e-01 +3.376590428768991292e-01 +3.376590428768876384e-01 +3.613740464734497837e-01 +3.613740464721680312e-01 +2.645751509405827040e-01 +2.645751509170987115e-01 +7.065945602322755426e-02 +7.065945584152551195e-02 +2.637730598504576651e-03 +2.637727317944814007e-03 1.687998556321841854e-04 1.672534897862135324e-04 -7.335165980339504877e-05 -7.314484194044549258e-05 -2.439138145345333625e-04 -2.439134427154259854e-04 -7.149736783165643083e-04 -7.149736774475127328e-04 +7.335165753107376094e-05 +7.314484069507349586e-05 +2.439138145300259817e-04 +2.439134427127699341e-04 +7.149736783165511894e-04 +7.149736774475039507e-04 1.862901414518337330e-03 1.862901414514497520e-03 4.388411973358693173e-03 @@ -571,79 +571,79 @@ 9.586743208275469788e-03 9.586743208275466319e-03 1.983329050383643086e-02 -1.983329050383643086e-02 -3.843771085360912776e-02 -3.843771085360912776e-02 -6.742790911508014795e-02 +1.983329050383643433e-02 +3.843771085360914164e-02 +3.843771085360914164e-02 +6.742790911508013407e-02 6.742790911508016183e-02 -1.055294433128086129e-01 +1.055294433128085990e-01 1.055294433128087794e-01 -1.493450568761650332e-01 -1.493450568761656161e-01 +1.493450568761650887e-01 +1.493450568761656438e-01 1.950686791534989861e-01 1.950686791534999298e-01 2.393864498139974817e-01 -2.393864498139988417e-01 +2.393864498139988695e-01 2.808980624959316330e-01 -2.808980624959328543e-01 -3.102915466375743558e-01 -3.102915466375636422e-01 -2.645751509527407563e-01 -2.645751509523304179e-01 -1.057330141655320327e-01 -1.057330141618885305e-01 -7.209461017072466178e-03 -7.209461009350284777e-03 +2.808980624959329098e-01 +3.102915466375744113e-01 +3.102915466375637532e-01 +2.645751509527408118e-01 +2.645751509523304734e-01 +1.057330141655321021e-01 +1.057330141618885860e-01 +7.209461017072474852e-03 +7.209461009350292583e-03 2.625315004210071880e-04 2.625307756376813297e-04 7.426113860083676671e-05 7.375582586273816922e-05 -2.883945298846711655e-05 -2.878918993145704840e-05 -9.585302646844148474e-05 -9.585296046941770660e-05 -2.800828485439821151e-04 -2.800828484570651506e-04 +2.883945212177754325e-05 +2.878918931242011541e-05 +9.585302646723919940e-05 +9.585296046854240308e-05 +2.800828485439807599e-04 +2.800828484570636327e-04 7.233754436173310803e-04 7.233754436171622700e-04 1.669356548098332223e-03 -1.669356548098330922e-03 +1.669356548098331139e-03 3.510201538606926540e-03 3.510201538606927407e-03 -6.953628765219152692e-03 -6.953628765219161366e-03 -1.351733929608287671e-02 +6.953628765219154427e-03 +6.953628765219159631e-03 +1.351733929608287497e-02 1.351733929608291834e-02 -2.596140072472010937e-02 +2.596140072472010590e-02 2.596140072472031060e-02 4.700474602104098842e-02 4.700474602104161292e-02 -7.683890508789652241e-02 -7.683890508789781304e-02 -1.121649278074400846e-01 -1.121649278074419026e-01 -1.468697856600935103e-01 -1.468697856600949536e-01 +7.683890508789656404e-02 +7.683890508789782692e-02 +1.121649278074400985e-01 +1.121649278074419165e-01 +1.468697856600935381e-01 +1.468697856600949814e-01 1.692898993480994041e-01 -1.692898993481001813e-01 -1.507316566992032703e-01 -1.507316566991990792e-01 +1.692898993481002090e-01 +1.507316566992032425e-01 +1.507316566991991347e-01 7.065945599807303690e-02 -7.065945599799987320e-02 -7.209461016883148866e-03 -7.209461016707506380e-03 +7.065945599799991483e-02 +7.209461016883152336e-03 +7.209461016707511584e-03 3.085949366213993966e-04 3.085949364133116178e-04 9.665591089574910330e-05 9.665571744141282636e-05 2.904792970303228384e-05 2.888228838061175112e-05 -9.921992832539190977e-06 -9.917398702701183048e-06 -3.296537952533639033e-05 -3.296537443287696364e-05 -9.604030039914720292e-05 -9.604030039459137183e-05 +9.921992550378782455e-06 +9.917398442042992188e-06 +3.296537952501657102e-05 +3.296537443258161341e-05 +9.604030039914687766e-05 +9.604030039459118210e-05 2.461066162508684821e-04 2.461066162508908166e-04 5.574494660385147541e-04 @@ -652,24 +652,24 @@ 1.124933161035284552e-03 2.049103856702132881e-03 2.049103856703787373e-03 -3.457408707234658780e-03 +3.457408707234657912e-03 3.457408707240024279e-03 -5.683634998529369341e-03 +5.683634998529368473e-03 5.683634998543218506e-03 9.613828068253208251e-03 -9.613828068280873620e-03 -1.650787081782626245e-02 -1.650787081786754193e-02 +9.613828068280875355e-03 +1.650787081782627633e-02 +1.650787081786754887e-02 2.624055620551864546e-02 -2.624055620556150353e-02 -3.486746856698517971e-02 -3.486746856701335162e-02 +2.624055620556151741e-02 +3.486746856698519359e-02 +3.486746856701335856e-02 3.374916999860069766e-02 -3.374916999861107131e-02 -1.759753391668683262e-02 -1.759753391668819264e-02 -2.637728870523182827e-03 -2.637728870520956309e-03 +3.374916999861107825e-02 +1.759753391668683609e-02 +1.759753391668819958e-02 +2.637728870523183260e-03 +2.637728870520957610e-03 2.625310582342362106e-04 2.625310582338923017e-04 9.665577488858740718e-05 @@ -678,12 +678,12 @@ 3.305797472744860180e-05 9.972508446555249746e-06 9.928387193172535650e-06 -2.987743754401427023e-06 -2.990856142096270764e-06 -9.927679313198271426e-06 -9.927682524791638230e-06 -2.886967493020706422e-05 -2.886967494470999622e-05 +2.987743672941010641e-06 +2.990856044558519369e-06 +9.927679313113510533e-06 +9.927682524690510966e-06 +2.886967493020699645e-05 +2.886967494470990135e-05 7.363351097200261587e-05 7.363351100979855413e-05 1.650288558057150647e-04 @@ -696,18 +696,18 @@ 8.762743691185050955e-04 1.200125110543119383e-03 1.200125113371710694e-03 -1.476848069174105903e-03 +1.476848069174106336e-03 1.476848073054872054e-03 -1.688731899155270378e-03 -1.688731903185372802e-03 +1.688731899155271029e-03 +1.688731903185373452e-03 1.855375863986138745e-03 -1.855375867145893322e-03 -1.809797492959649154e-03 -1.809797494819932132e-03 +1.855375867145893538e-03 +1.809797492959649588e-03 +1.809797494819932566e-03 1.198801557107623478e-03 -1.198801557924578489e-03 +1.198801557924578706e-03 4.401349736691313893e-04 -4.401349739714525457e-04 +4.401349739714526541e-04 1.678131055064414207e-04 1.678131056159019299e-04 7.390620290523347493e-05 @@ -718,12 +718,12 @@ 9.936022719573077259e-06 3.000635389341720259e-06 2.991855026213038753e-06 -7.874654485896871868e-07 -7.896716830014448465e-07 -2.618039319965414035e-06 -2.618046681135424050e-06 -7.606393526496493602e-06 -7.606410862934890956e-06 +7.874654275943492858e-07 +7.896716508014391816e-07 +2.618039319944192471e-06 +2.618046681102984805e-06 +7.606393526496476661e-06 +7.606410862934870627e-06 1.935741734636826068e-05 1.935746733673568692e-05 4.317726034183715566e-05 @@ -758,11 +758,11 @@ 2.618626000050029246e-06 7.906698670344471021e-07 7.897414805354715165e-07 -1.816512247904964710e-07 -1.831132443280483348e-07 -6.028649762478185315e-07 -6.079866027376977645e-07 -1.749794193048188303e-06 +1.816512200055342424e-07 +1.831132321742630540e-07 +6.028649762382792465e-07 +6.079866027375677449e-07 +1.749794193048175598e-06 1.766905599489249043e-06 4.446712872680047417e-06 4.495007338408844480e-06 From d0df26d17dcd9f1f94756151e41698cfc9ac0120 Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Tue, 6 Aug 2024 18:22:49 -0400 Subject: [PATCH 05/15] add custom BC utilities to AdvectionDiffusion2d --- docs/source/burgers_2d_periodic.rst | 16 +- .../pressiodemoapps/advection_diffusion2d.hpp | 208 +++++++++--------- ...tion_diffusion_2d_ghost_filler_outflow.hpp | 4 +- ...n_diffusion_2d_parametrization_helpers.hpp | 141 ++++++++++++ .../advection_diffusion_2d_prob_class.hpp | 148 ++++++------- pressiodemoapps/__init__.py | 2 +- src_py/main_binder.cc | 6 +- 7 files changed, 329 insertions(+), 196 deletions(-) create mode 100644 include/pressiodemoapps/impl/advection_diffusion_2d_parametrization_helpers.hpp diff --git a/docs/source/burgers_2d_periodic.rst b/docs/source/burgers_2d_periodic.rst index 241bc55d..f1764c14 100644 --- a/docs/source/burgers_2d_periodic.rst +++ b/docs/source/burgers_2d_periodic.rst @@ -59,12 +59,12 @@ C++ synopsis const auto meshObj = pda::load_cellcentered_uniform_mesh_eigen("path-to-mesh"); + const auto probId = pda::AdvectionDiffusion2d::BurgersPeriodic; const auto inviscidScheme = pda::InviscidFluxReconstruction::FirstOrder; // or Weno3, Weno5 const auto viscousScheme = pda::ViscousFluxReconstruction::FirstOrder; // must be FirstOrder // A. constructor for problem using default values { - const auto probId = pda::AdvectionDiffusion2d::BurgersPeriodic; auto problem = pda::create_problem_eigen(meshObj, probId, inviscidScheme, viscousScheme); } @@ -76,9 +76,9 @@ C++ synopsis const auto D = /* something */; const auto x0 = /* something */; const auto y0 = /* something */; - auto problem = pda::create_periodic_burgers_2d_problem_eigen(meshObj, inviscidScheme, - viscousScheme, alpha, - delta, D, x0, y0) + auto problem = pda::create_problem_eigen(meshObj, probId, inviscidScheme, + viscousScheme, alpha, + delta, D, x0, y0) } } @@ -91,11 +91,11 @@ Python synopsis meshObj = pda.load_cellcentered_uniform_mesh("path-to-mesh") + probId = pda.AdvectionDiffusion2d.BurgersPeriodic inviscidScheme = pda.InviscidFluxReconstruction.FirstOrder; # or Weno3, Weno5 viscousScheme = pda.ViscousFluxReconstruction.FirstOrder; # must be FirstOrder # A. constructor for problem using default values - probId = pda.AdvectionDiffusion2d.BurgersPeriodic problem = pda.create_problem(meshObj, probId, inviscidScheme, viscousScheme) # B. setting custom coefficients @@ -104,9 +104,9 @@ Python synopsis D = # something x0 = # something y0 = # something - problem = pda.create_periodic_burgers_2d_problem(meshObj, inviscidScheme, - viscousScheme, alpha, - delta, D, x0, y0) + problem = pda.create_burgers_2d_problem(meshObj, probId, inviscidScheme, + viscousScheme, alpha, + delta, D, x0, y0) Sample Plot diff --git a/include/pressiodemoapps/advection_diffusion2d.hpp b/include/pressiodemoapps/advection_diffusion2d.hpp index 38640db3..1e4bd696 100644 --- a/include/pressiodemoapps/advection_diffusion2d.hpp +++ b/include/pressiodemoapps/advection_diffusion2d.hpp @@ -95,27 +95,17 @@ create_problem_eigen { using scalar_t = typename mesh_t::scalar_t; - if (problemEnum == ::pressiodemoapps::AdvectionDiffusion2d::BurgersPeriodic || - problemEnum == ::pressiodemoapps::AdvectionDiffusion2d::BurgersOutflow) - { - // default parameters - const auto icPulseMagnitude = static_cast(0.5); - const auto icSpread = static_cast(0.15); - const auto diffusion = static_cast(0.00001); - const auto icCenterX = static_cast(0.0); - const auto icCenterY = static_cast(-0.2); - - return RetType(meshObj, - problemEnum, - inviscidFluxRecEnum, - InviscidFluxScheme::Rusanov, - viscFluxRecEnum, - icPulseMagnitude, icSpread, diffusion, - icCenterX, icCenterY); - } - else{ - throw std::runtime_error("advection-diffusion2d: invalid problem enum"); - } + auto defaultPhsParams = impladvdiff2d::defaultPhysicalParams; + const auto defaultICParams = (problemEnum == AdvectionDiffusion2d::BurgersPeriodic || problemEnum == AdvectionDiffusion2d::BurgersOutflow) + ? impladvdiff2d::defaultInitCondParams : std::vector(); + + return RetType(meshObj, + problemEnum, + inviscidFluxRecEnum, + InviscidFluxScheme::Rusanov, + viscFluxRecEnum, + defaultICParams, + defaultPhsParams); } // ---------------------------------------------------------- @@ -129,110 +119,116 @@ template< RetType #if defined PRESSIODEMOAPPS_ENABLE_BINDINGS // bindings need unique naming or we get error associated with overloads -create_periodic_burgers_2d_problem_ov1_for_py +create_burgers_2d_problem_ov1_for_py #else -create_periodic_burgers_2d_problem_eigen +create_problem_eigen #endif (const mesh_t & meshObj, AdvectionDiffusion2d problemEnum, InviscidFluxReconstruction inviscidFluxRecEnum, ViscousFluxReconstruction viscFluxRecEnum, - typename mesh_t::scalar_t icPulseMagnitude, - typename mesh_t::scalar_t icSpread, - typename mesh_t::scalar_t diffusion, - typename mesh_t::scalar_t icCenterX, - typename mesh_t::scalar_t icCenterY) + const std::unordered_map & userParams) { + // only one IC for now + int icFlag = 1; + + using scalar_t = typename mesh_t::scalar_t; + auto physParamsVec = impladvdiff2d::defaultPhysicalParams; + auto icParamsVec = impladvdiff2d::defaultInitCondParams; + impladvdiff2d::replace_params_from_map_if_present(physParamsVec, icParamsVec, problemEnum, icFlag, userParams); + return RetType(meshObj, problemEnum, inviscidFluxRecEnum, InviscidFluxScheme::Rusanov, viscFluxRecEnum, - icPulseMagnitude, icSpread, diffusion, - icCenterX, icCenterY); + icParamsVec, + physParamsVec); } // // custom BCs // -// #if !defined PRESSIODEMOAPPS_ENABLE_BINDINGS -// template -// auto create_problem_eigen -// (const mesh_t & meshObj, -// AdvectionDiffusion2d problemEnum, -// InviscidFluxReconstruction inviscidFluxRecEnum, -// ViscousFluxReconstruction viscFluxRecEnum, -// BCsFuncL && BCsLeft, -// BCsFuncF && BCsFront, -// BCsFuncR && BCsRight, -// BCsFuncB && BCsBack) -// { - -// using scalar_t = typename mesh_t::scalar_t; -// using BCFunctorsHolderType = impl::CustomBCsHolder; -// BCFunctorsHolderType bcFuncs(std::forward(BCsLeft), -// std::forward(BCsFront), -// std::forward(BCsRight), -// std::forward(BCsBack)); - -// // default parameters -// const auto icPulseMagnitude = static_cast(0.5); -// const auto icSpread = static_cast(0.15); -// const auto diffusion = static_cast(0.00001); -// const auto icCenterX = static_cast(0.0); -// const auto icCenterY = static_cast(-0.2); - -// using return_type = PublicProblemEigenMixinCpp>; -// return return_type(meshObj, -// problemEnum, -// inviscidFluxRecEnum, -// InviscidFluxScheme::Rusanov, -// viscFluxRecEnum, -// icPulseMagnitude, icSpread, diffusion, -// icCenterX, icCenterY, -// std::move(bcFuncs)); - -// } -// #endif - -// #if !defined PRESSIODEMOAPPS_ENABLE_BINDINGS -// template -// auto create_periodic_burgers_2d_problem_eigen -// (const mesh_t & meshObj, -// AdvectionDiffusion2d problemEnum, -// InviscidFluxReconstruction inviscidFluxRecEnum, -// ViscousFluxReconstruction viscFluxRecEnum, -// typename mesh_t::scalar_t icPulseMagnitude, -// typename mesh_t::scalar_t icSpread, -// typename mesh_t::scalar_t diffusion, -// typename mesh_t::scalar_t icCenterX, -// typename mesh_t::scalar_t icCenterY, -// BCsFuncL && BCsLeft, -// BCsFuncF && BCsFront, -// BCsFuncR && BCsRight, -// BCsFuncB && BCsBack -// ) -// { - -// using BCFunctorsHolderType = impl::CustomBCsHolder; -// BCFunctorsHolderType bcFuncs(std::forward(BCsLeft), -// std::forward(BCsFront), -// std::forward(BCsRight), -// std::forward(BCsBack)); - -// using return_type = PublicProblemEigenMixinCpp>; -// return return_type(meshObj, -// problemEnum, -// inviscidFluxRecEnum, -// InviscidFluxScheme::Rusanov, -// viscFluxRecEnum, -// icPulseMagnitude, icSpread, diffusion, -// icCenterX, icCenterY, -// std::move(bcFuncs)); -// } -// #endif +#if !defined PRESSIODEMOAPPS_ENABLE_BINDINGS +template +auto create_problem_eigen(const mesh_t & meshObj, + AdvectionDiffusion2d problemEnum, + InviscidFluxReconstruction inviscidFluxRecEnum, + BCsFuncL && BCsLeft, + BCsFuncF && BCsFront, + BCsFuncR && BCsRight, + BCsFuncB && BCsBack, + const int icFlag = 1) +{ + + // default viscous flux order + // TODO: generalize + ViscousFluxReconstruction viscFluxRecEnum = ViscousFluxReconstruction::FirstOrder; + + using BCFunctorsHolderType = impl::CustomBCsHolder; + BCFunctorsHolderType bcFuncs(std::forward(BCsLeft), + std::forward(BCsFront), + std::forward(BCsRight), + std::forward(BCsBack)); + + using scalar_t = typename mesh_t::scalar_t; + const auto defaultPhsParams = impladvdiff2d::defaultPhysicalParams; + const auto defaultICParams = impladvdiff2d::defaultInitCondParams; + + using return_type = PublicProblemEigenMixinCpp>; + return return_type(meshObj, + problemEnum, + inviscidFluxRecEnum, + InviscidFluxScheme::Rusanov, + viscFluxRecEnum, + std::move(bcFuncs), + defaultPhsParams, + defaultICParams); + +} +#endif + +#if !defined PRESSIODEMOAPPS_ENABLE_BINDINGS +template +auto create_problem_eigen(const mesh_t & meshObj, + AdvectionDiffusion2d problemEnum, + InviscidFluxReconstruction inviscidFluxRecEnum, + BCsFuncL && BCsLeft, + BCsFuncF && BCsFront, + BCsFuncR && BCsRight, + BCsFuncB && BCsBack, + const int icFlag, + const std::unordered_map & userParams) +{ + + // default viscous flux order + // TODO: generalize + ViscousFluxReconstruction viscFluxRecEnum = ViscousFluxReconstruction::FirstOrder; + + using BCFunctorsHolderType = impl::CustomBCsHolder; + BCFunctorsHolderType bcFuncs(std::forward(BCsLeft), + std::forward(BCsFront), + std::forward(BCsRight), + std::forward(BCsBack)); + + using scalar_t = typename mesh_t::scalar_t; + auto physParamsVec = impladvdiff2d::defaultPhysicalParams; + auto icParamsVec = impladvdiff2d::defaultInitCondParams; + impladvdiff2d::replace_params_from_map_if_present(physParamsVec, icParamsVec, problemEnum, icFlag, userParams); + + using return_type = PublicProblemEigenMixinCpp>; + return return_type(meshObj, + problemEnum, + inviscidFluxRecEnum, + InviscidFluxScheme::Rusanov, + viscFluxRecEnum, + std::move(bcFuncs), + icParamsVec, + physParamsVec); +} +#endif } //end namespace pressiodemoapps #endif diff --git a/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_outflow.hpp b/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_outflow.hpp index b7697bb2..e9ad56bd 100644 --- a/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_outflow.hpp +++ b/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_outflow.hpp @@ -46,8 +46,8 @@ //@HEADER */ -#ifndef PRESSIODEMOAPPS_GHOST_FILLER_AD2D_OUTFLOW_HPP_ -#define PRESSIODEMOAPPS_GHOST_FILLER_AD2D_OUTFLOW_HPP_ +#ifndef PRESSIODEMOAPPS_GHOST_FILLER_ADVECTION_DIFFUSION_OUTFLOW_HPP_ +#define PRESSIODEMOAPPS_GHOST_FILLER_ADVECTION_DIFFUSION_OUTFLOW_HPP_ namespace pressiodemoapps{ namespace impladvdiff2d{ diff --git a/include/pressiodemoapps/impl/advection_diffusion_2d_parametrization_helpers.hpp b/include/pressiodemoapps/impl/advection_diffusion_2d_parametrization_helpers.hpp new file mode 100644 index 00000000..b7132c52 --- /dev/null +++ b/include/pressiodemoapps/impl/advection_diffusion_2d_parametrization_helpers.hpp @@ -0,0 +1,141 @@ +/* +//@HEADER +// ************************************************************************ +// +// advection_diffusion_2d_parametrization_helpers.hpp +// Pressio +// Copyright 2019 +// National Technology & Engineering Solutions of Sandia, LLC (NTESS) +// +// Under the terms of Contract DE-NA0003525 with NTESS, the +// U.S. Government retains certain rights in this software. +// +// Pressio is licensed under BSD-3-Clause terms of use: +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +// COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +// IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// Questions? Contact Francesco Rizzi (fnrizzi@sandia.gov) +// +// ************************************************************************ +//@HEADER +*/ + +#ifndef ADVECTION_DIFFUSION_2D_PARAMETRIZATION_HELPERS_HPP_ +#define ADVECTION_DIFFUSION_2D_PARAMETRIZATION_HELPERS_HPP_ + +namespace pressiodemoapps{ +namespace impladvdiff2d{ + +constexpr int invalidIndex = std::numeric_limits::max(); + +// NOTE: physical and IC params must be associated with +// contiguous but separate indexes because they are stored in separate vectors +constexpr int diffusion_i = 0; + +constexpr int ic1_pulseMag_i = 0; +constexpr int ic1_pulseSpread_i = 1; +constexpr int ic1_pulseX_i = 2; +constexpr int ic1_pulseY_i = 3; + +// IMPORTANT: we need to fill the vectors with default vaues +// with ALL default paramters **consistently** with the indexing defined above +template +const std::vector defaultPhysicalParams +({ + static_cast(0.00001), // diffusion +}); + +template +const std::vector defaultInitCondParams +({ + static_cast(0.5), // pulseMag + static_cast(0.15), // pulseSpread + static_cast(0.0), // pulseX + static_cast(-0.2) // pulseY +}); + +const std::vector paramNames({ + "diffusion", + "pulseMagnitude", "pulseSpread", + "pulseX", "pulseY" + }); + +template +bool is_physical(const std::string & s){ + return (s == "diffusion"); +} + +template +int phys_param_string_to_index(const std::string & s){ + if (s == "diffusion") { return diffusion_i; } + else { return invalidIndex; } +} + +template +int ic_param_string_to_index(const int icFlag, const std::string & s){ + switch(icFlag){ + case 1: + if (s == "pulseMagnitude") { return ic1_pulseMag_i; } + else if (s == "pulseSpread") { return ic1_pulseSpread_i; } + else if (s == "pulseX") { return ic1_pulseX_i; } + else if (s == "pulseY") { return ic1_pulseY_i; } + else { return invalidIndex; } + + default: return invalidIndex; + } +} + +template +bool valid_parameter_name(const std::string & pname){ + auto match = [&](const std::string & testS){ return pname == testS; }; + return std::any_of(paramNames.cbegin(), paramNames.cend(), match); +} + +template +bool contains_valid_parameter_names(const std::unordered_map & map){ + return std::all_of(map.cbegin(), map.cend(), [](const auto & it){ return valid_parameter_name(it.first); }); +} + +template +void replace_params_from_map_if_present(std::vector & physVec, + std::vector & icVec, + const AdvectionDiffusion2d probEn, + const int icFlag, + const std::unordered_map & map) +{ + + auto action = [&](auto it){ + if (is_physical(it.first)){ physVec[phys_param_string_to_index<>(it.first)] = it.second; } + else { icVec[ic_param_string_to_index<>(icFlag, it.first)] = it.second;} + }; + std::for_each(map.cbegin(), map.cend(), action); +} + +}}//end namespace +#endif diff --git a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp index 8f0585e8..1af59977 100644 --- a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp +++ b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp @@ -52,6 +52,7 @@ #include "advection_diffusion_2d_flux_functions.hpp" #include "advection_diffusion_2d_initial_condition.hpp" #include "advection_diffusion_2d_ghost_filler_outflow.hpp" +#include "advection_diffusion_2d_parametrization_helpers.hpp" #include "functor_fill_stencil.hpp" #include "functor_reconstruct_from_stencil.hpp" #include "functor_reconstruct_from_state.hpp" @@ -69,6 +70,16 @@ namespace pressiodemoapps{ namespace impladvdiff2d{ +template +bool valid_ic_flag(const AdvectionDiffusion2d probEn, const int flag) +{ + switch(probEn){ + case AdvectionDiffusion2d::BurgersPeriodic: return flag == 1; + case AdvectionDiffusion2d::BurgersOutflow: return flag == 1; + default: return false; + } +} + // tags are used inside he public create function: create_problem_...() // in the file ../advection_diffusion.hpp // to dispatch to the proper problem @@ -121,21 +132,15 @@ class EigenApp ::pressiodemoapps::InviscidFluxReconstruction inviscidFluxRecEn, ::pressiodemoapps::InviscidFluxScheme invFluxSchemeEn, ::pressiodemoapps::ViscousFluxReconstruction visFluxRecEn, - scalar_type icPulseMagnitude, - scalar_type icSpread, - scalar_type diffusionCoeff, - scalar_type x0, - scalar_type y0) + const std::vector & icParameters, + const std::vector & physParameters) : m_probEn(probEnum), m_inviscidFluxRecEn(inviscidFluxRecEn), m_inviscidFluxSchemeEn(invFluxSchemeEn), m_viscousFluxRecEn(visFluxRecEn), m_meshObj(meshObj), - m_burgers2d_icPulse(icPulseMagnitude), - m_burgers2d_icSpread(icSpread), - m_burgers2d_diffusion(diffusionCoeff), - m_burgers2d_x0(x0), - m_burgers2d_y0(y0) + m_ic_parameters(icParameters), + m_phys_parameters(physParameters) { m_numDofStencilMesh = m_meshObj.get().stencilMeshSize() * numDofPerCell; m_numDofSampleMesh = m_meshObj.get().sampleMeshSize() * numDofPerCell; @@ -146,39 +151,33 @@ class EigenApp } -// #if !defined PRESSIODEMOAPPS_ENABLE_BINDINGS -// EigenApp(const MeshType & meshObj, -// ::pressiodemoapps::AdvectionDiffusion2d probEnum, -// ::pressiodemoapps::InviscidFluxReconstruction inviscidFluxRecEn, -// ::pressiodemoapps::InviscidFluxScheme invFluxSchemeEn, -// ::pressiodemoapps::ViscousFluxReconstruction visFluxRecEn, -// scalar_type icPulseMagnitude, -// scalar_type icSpread, -// scalar_type diffusionCoeff, -// scalar_type x0, -// scalar_type y0, -// BCFunctorsHolderType && bcHolder) -// : m_probEn(probEnum), -// m_inviscidFluxRecEn(inviscidFluxRecEn), -// m_inviscidFluxSchemeEn(invFluxSchemeEn), -// m_viscousFluxRecEn(visFluxRecEn), -// m_meshObj(meshObj), -// m_burgers2d_icPulse(icPulseMagnitude), -// m_burgers2d_icSpread(icSpread), -// m_burgers2d_diffusion(diffusionCoeff), -// m_burgers2d_x0(x0), -// m_burgers2d_y0(y0), -// m_bcFuncsHolder(std::move(bcHolder)) -// { -// m_numDofStencilMesh = m_meshObj.get().stencilMeshSize() * numDofPerCell; -// m_numDofSampleMesh = m_meshObj.get().sampleMeshSize() * numDofPerCell; - -// if (m_probEn == pressiodemoapps::AdvectionDiffusion2d::BurgersOutflow) { -// allocateGhosts(); -// } - -// } -// #endif +#if !defined PRESSIODEMOAPPS_ENABLE_BINDINGS + EigenApp(const MeshType & meshObj, + ::pressiodemoapps::AdvectionDiffusion2d probEnum, + ::pressiodemoapps::InviscidFluxReconstruction inviscidFluxRecEn, + ::pressiodemoapps::InviscidFluxScheme invFluxSchemeEn, + ::pressiodemoapps::ViscousFluxReconstruction visFluxRecEn, + BCFunctorsHolderType && bcHolder, + const std::vector & icParameters, + const std::vector & physParameters) + : m_probEn(probEnum), + m_inviscidFluxRecEn(inviscidFluxRecEn), + m_inviscidFluxSchemeEn(invFluxSchemeEn), + m_viscousFluxRecEn(visFluxRecEn), + m_meshObj(meshObj), + m_ic_parameters(icParameters), + m_phys_parameters(physParameters), + m_bcFuncsHolder(std::move(bcHolder)) + { + m_numDofStencilMesh = m_meshObj.get().stencilMeshSize() * numDofPerCell; + m_numDofSampleMesh = m_meshObj.get().sampleMeshSize() * numDofPerCell; + + if (m_probEn == pressiodemoapps::AdvectionDiffusion2d::BurgersOutflow) { + allocateGhosts(); + } + + } +#endif state_type initialCondition() const { @@ -188,20 +187,20 @@ class EigenApp m_probEn == ::pressiodemoapps::AdvectionDiffusion2d::BurgersOutflow) { burgers2d_gaussian(initialState, m_meshObj.get(), - m_burgers2d_icPulse, - m_burgers2d_icSpread, - m_burgers2d_x0, - m_burgers2d_y0); + m_ic_parameters[ic1_pulseMag_i], + m_ic_parameters[ic1_pulseSpread_i], + m_ic_parameters[ic1_pulseX_i], + m_ic_parameters[ic1_pulseY_i]); } return initialState; } -// public: -// template -// void setBCPointer(::pressiodemoapps::impl::GhostRelativeLocation rloc, T* ptr) { -// m_bcFuncsHolder.setInternalPointer(rloc, ptr); -// } +public: + template + void setBCPointer(::pressiodemoapps::impl::GhostRelativeLocation rloc, T* ptr) { + m_bcFuncsHolder.setInternalPointer(rloc, ptr); + } protected: int numDofPerCellImpl() const { @@ -264,10 +263,9 @@ class EigenApp fillGhosts(U, currentTime); } else { - throw std::runtime_error("Custom BCs not implemented yet"); - // fillGhostsUseCustomFunctors(U, currentTime, m_meshObj, m_bcFuncsHolder, - // m_ghostLeft, m_ghostFront, - // m_ghostRight, m_ghostBack, numDofPerCell); + fillGhostsUseCustomFunctors(U, currentTime, m_meshObj, m_bcFuncsHolder, + m_ghostLeft, m_ghostFront, + m_ghostRight, m_ghostBack, numDofPerCell); } if (J){ @@ -698,8 +696,8 @@ class EigenApp const auto & graphRows = m_meshObj.get().graphRowsOfCellsNearBd(); const auto dxInvSq = m_meshObj.get().dxInv()*m_meshObj.get().dxInv(); const auto dyInvSq = m_meshObj.get().dyInv()*m_meshObj.get().dyInv(); - const auto diffDxInvSq = m_burgers2d_diffusion*dxInvSq; - const auto diffDyInvSq = m_burgers2d_diffusion*dyInvSq; + const auto diffDxInvSq = m_phys_parameters[diffusion_i]*dxInvSq; + const auto diffDyInvSq = m_phys_parameters[diffusion_i]*dyInvSq; constexpr auto two = static_cast(2); #ifdef PRESSIODEMOAPPS_ENABLE_OPENMP @@ -867,8 +865,8 @@ class EigenApp const auto & graphRows = m_meshObj.get().graphRowsOfCellsNearBd(); const auto dxInvSq = m_meshObj.get().dxInv()*m_meshObj.get().dxInv(); const auto dyInvSq = m_meshObj.get().dyInv()*m_meshObj.get().dyInv(); - const auto diffDxInvSq = m_burgers2d_diffusion*dxInvSq; - const auto diffDyInvSq = m_burgers2d_diffusion*dyInvSq; + const auto diffDxInvSq = m_phys_parameters[diffusion_i]*dxInvSq; + const auto diffDyInvSq = m_phys_parameters[diffusion_i]*dyInvSq; #ifdef PRESSIODEMOAPPS_ENABLE_OPENMP #pragma omp for schedule(static) @@ -889,7 +887,8 @@ class EigenApp fillJacFactorsForCellBd(smPt, xAxis); } else { - throw std::runtime_error("Custom BC Jacobian factors not implemented"); + fillJacFactorsCustomBCs(smPt, xAxis, m_meshObj, m_bcFuncsHolder, + m_bcCellJacFactors, numDofPerCell); } funcx(smPt, numDofPerCell, m_bcCellJacFactors); // u diffusion velocity contributions @@ -902,10 +901,11 @@ class EigenApp fillJacFactorsForCellBd(smPt, yAxis); } else { - throw std::runtime_error("Custom BC Jacobian factors not implemented"); + fillJacFactorsCustomBCs(smPt, yAxis, m_meshObj, m_bcFuncsHolder, + m_bcCellJacFactors, numDofPerCell); } funcy(smPt, numDofPerCell, m_bcCellJacFactors); - // y-direction diffusion velocity contributions + // v diffusion velocity contributions V(vIndex+1) += diffDxInvSq*( stencilVals(5) - two*stencilVals(3) + stencilVals(1) ); V(vIndex+1) += diffDyInvSq*( stencilVals(5) - two*stencilVals(3) + stencilVals(1) ); @@ -1008,8 +1008,8 @@ class EigenApp constexpr auto two = static_cast(2); const auto dxInvSq = m_meshObj.get().dxInv()*m_meshObj.get().dxInv(); const auto dyInvSq = m_meshObj.get().dyInv()*m_meshObj.get().dyInv(); - const auto diffDxInvSq = m_burgers2d_diffusion*dxInvSq; - const auto diffDyInvSq = m_burgers2d_diffusion*dyInvSq; + const auto diffDxInvSq = m_phys_parameters[diffusion_i]*dxInvSq; + const auto diffDyInvSq = m_phys_parameters[diffusion_i]*dyInvSq; const auto & rows = m_meshObj.get().graphRowsOfCellsNearBd(); #if defined PRESSIODEMOAPPS_ENABLE_OPENMP && !defined PRESSIODEMOAPPS_ENABLE_BINDINGS @@ -1161,8 +1161,8 @@ class EigenApp constexpr auto two = static_cast(2); const auto dxInvSq = m_meshObj.get().dxInv()*m_meshObj.get().dxInv(); const auto dyInvSq = m_meshObj.get().dyInv()*m_meshObj.get().dyInv(); - const auto diffDxInvSq = m_burgers2d_diffusion*dxInvSq; - const auto diffDyInvSq = m_burgers2d_diffusion*dyInvSq; + const auto diffDxInvSq = m_phys_parameters[diffusion_i]*dxInvSq; + const auto diffDyInvSq = m_phys_parameters[diffusion_i]*dyInvSq; const auto & graph = m_meshObj.get().graph(); const auto vIndex = smPt*numDofPerCell; @@ -1210,9 +1210,11 @@ class EigenApp ::pressiodemoapps::InviscidFluxReconstruction m_inviscidFluxRecEn; ::pressiodemoapps::InviscidFluxScheme m_inviscidFluxSchemeEn; ::pressiodemoapps::ViscousFluxReconstruction m_viscousFluxRecEn; -// BCFunctorsHolderType m_bcFuncsHolder = {}; - std::reference_wrapper m_meshObj; + std::vector m_ic_parameters; + std::vector m_phys_parameters; + BCFunctorsHolderType m_bcFuncsHolder = {}; + index_t m_numDofStencilMesh = {}; index_t m_numDofSampleMesh = {}; @@ -1224,14 +1226,6 @@ class EigenApp std::array normalX_{1, 0}; std::array normalY_{0, 1}; - // parameters specific to problems - // will need to handle this better later - scalar_type m_burgers2d_icPulse = {}; - scalar_type m_burgers2d_icSpread = {}; - scalar_type m_burgers2d_diffusion = {}; - scalar_type m_burgers2d_x0 = {}; - scalar_type m_burgers2d_y0 = {}; - mutable std::array m_bcCellJacFactors; }; diff --git a/pressiodemoapps/__init__.py b/pressiodemoapps/__init__.py index fdf2f489..f4886d8e 100644 --- a/pressiodemoapps/__init__.py +++ b/pressiodemoapps/__init__.py @@ -75,7 +75,7 @@ import create_problem, \ create_linear_advection_1d_problem, \ create_diffusion_reaction_1d_problem_A,\ - create_periodic_burgers_2d_problem,\ + create_burgers_2d_problem,\ create_diffusion_reaction_2d_problem_A,\ create_adv_diff_reac_2d_problem_A, \ create_gray_scott_2d_problem,\ diff --git a/src_py/main_binder.cc b/src_py/main_binder.cc index 95111eb8..dc33fb62 100644 --- a/src_py/main_binder.cc +++ b/src_py/main_binder.cc @@ -165,6 +165,8 @@ void bind2dProblemEnums(pybind11::module & mParent) pybind11::enum_(mParent, "AdvectionDiffusion2d") .value("BurgersPeriodic", pda::AdvectionDiffusion2d::BurgersPeriodic); + .value("BurgersOutflow", + pda::AdvectionDiffusion2d::BurgersOutflow); pybind11::enum_(mParent, "DiffusionReaction2d") .value("ProblemA", @@ -389,8 +391,8 @@ void bindAdvectionDiffusion2d(pybind11::module & mParent) pybind11::arg().noconvert(), pybind11::arg().noconvert(), pybind11::arg().noconvert()); - mParent.def("create_periodic_burgers_2d_problem", - &pda::create_periodic_burgers_2d_problem_ov1_for_py, + mParent.def("create_burgers_2d_problem", + &pda::create_burgers_2d_problem_ov1_for_py, pybind11::return_value_policy::take_ownership, pybind11::arg().noconvert(), pybind11::arg().noconvert(), pybind11::arg().noconvert(), pybind11::arg().noconvert(), From afc7c44fbb69fc791538ba4eb7e7d13d30eb7f3f Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Wed, 7 Aug 2024 14:21:33 -0400 Subject: [PATCH 06/15] add another default Burgers create_problem_eigen to fit standard --- .../pressiodemoapps/advection_diffusion2d.hpp | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/include/pressiodemoapps/advection_diffusion2d.hpp b/include/pressiodemoapps/advection_diffusion2d.hpp index 1e4bd696..3892cacb 100644 --- a/include/pressiodemoapps/advection_diffusion2d.hpp +++ b/include/pressiodemoapps/advection_diffusion2d.hpp @@ -147,6 +147,37 @@ create_problem_eigen physParamsVec); } +// repeat above with default viscous flux scheme and icFlag to fit other problems +template< + class mesh_t, + class RetType = PublicProblemEigenMixinCpp> + > +RetType +create_problem_eigen(const mesh_t & meshObj, + AdvectionDiffusion2d problemEnum, + InviscidFluxReconstruction inviscidFluxRecEnum, + int icFlag, + const std::unordered_map & userParams) +{ + + // defaults + ViscousFluxReconstruction viscFluxRecEnum = ViscousFluxReconstruction::FirstOrder; + icFlag = 1; + + using scalar_t = typename mesh_t::scalar_t; + auto physParamsVec = impladvdiff2d::defaultPhysicalParams; + auto icParamsVec = impladvdiff2d::defaultInitCondParams; + impladvdiff2d::replace_params_from_map_if_present(physParamsVec, icParamsVec, problemEnum, icFlag, userParams); + + return RetType(meshObj, + problemEnum, + inviscidFluxRecEnum, + InviscidFluxScheme::Rusanov, + viscFluxRecEnum, + icParamsVec, + physParamsVec); +} + // // custom BCs // From 6f4095d8064dd96ca313096de90b3f9980794b88 Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Wed, 22 Jan 2025 18:57:11 -0700 Subject: [PATCH 07/15] fix higher order for advection_diffusion_2d --- .../advection_diffusion_2d_prob_class.hpp | 87 +++++++++---------- 1 file changed, 41 insertions(+), 46 deletions(-) diff --git a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp index 1af59977..b40cb251 100644 --- a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp +++ b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp @@ -179,8 +179,7 @@ class EigenApp } #endif - state_type initialCondition() const - { + state_type initialCondition() const{ state_type initialState(m_numDofStencilMesh); if (m_probEn == ::pressiodemoapps::AdvectionDiffusion2d::BurgersPeriodic || @@ -216,7 +215,6 @@ class EigenApp initializeJacobianForNearBoundaryCells(trList); initializeJacobianForInnerCells(trList); J.setFromTriplets(trList.begin(), trList.end()); - // compress to make it Csr if (!J.isCompressed()){ J.makeCompressed(); @@ -315,9 +313,6 @@ class EigenApp ghF(rowsBd[it], it); } } - else { - // no op - } } template @@ -411,17 +406,17 @@ class EigenApp template void velocityAndJacobianImpl(const U_t & U, - const scalar_type currentTime, - V_t & V, - jacobian_type & J, - flux_type & fluxL, - flux_type & fluxF, - flux_type & fluxR, - flux_type & fluxB, - edge_rec_type & uMinusHalfNeg, - edge_rec_type & uMinusHalfPos, - edge_rec_type & uPlusHalfNeg, - edge_rec_type & uPlusHalfPos) const + const scalar_type currentTime, + V_t & V, + jacobian_type & J, + flux_type & fluxL, + flux_type & fluxF, + flux_type & fluxR, + flux_type & fluxB, + edge_rec_type & uMinusHalfNeg, + edge_rec_type & uMinusHalfPos, + edge_rec_type & uPlusHalfNeg, + edge_rec_type & uPlusHalfPos) const { // flux jacobians @@ -439,23 +434,24 @@ class EigenApp if (!m_meshObj.get().isFullyPeriodic()){ if (m_inviscidFluxRecEn == InviscidFluxReconstruction::FirstOrder){ velocityAndJacNearBDCellsImplFirstOrder(U, currentTime, V, J, - fluxL, fluxF, fluxR, fluxB, - fluxJacLNeg, fluxJacLPos, - fluxJacFNeg, fluxJacFPos, - fluxJacRNeg, fluxJacRPos, - fluxJacBNeg, fluxJacBPos, - uMinusHalfNeg, uMinusHalfPos, - uPlusHalfNeg, uPlusHalfPos); + fluxL, fluxF, fluxR, fluxB, + fluxJacLNeg, fluxJacLPos, + fluxJacFNeg, fluxJacFPos, + fluxJacRNeg, fluxJacRPos, + fluxJacBNeg, fluxJacBPos, + uMinusHalfNeg, uMinusHalfPos, + uPlusHalfNeg, uPlusHalfPos); } else{ - velocityAndJacNearBDCellsImplDifferentSchemeNotFirstOrderInviscid(U, currentTime, V, J, - fluxL, fluxF, fluxR, fluxB, - fluxJacLNeg, fluxJacLPos, - fluxJacFNeg, fluxJacFPos, - fluxJacRNeg, fluxJacRPos, - fluxJacBNeg, fluxJacBPos, - uMinusHalfNeg, uMinusHalfPos, - uPlusHalfNeg, uPlusHalfPos); + velocityAndJacNearBDCellsImplDifferentSchemeNotFirstOrderInviscid( + U, currentTime, V, J, + fluxL, fluxF, fluxR, fluxB, + fluxJacLNeg, fluxJacLPos, + fluxJacFNeg, fluxJacFPos, + fluxJacRNeg, fluxJacRPos, + fluxJacBNeg, fluxJacBPos, + uMinusHalfNeg, uMinusHalfPos, + uPlusHalfNeg, uPlusHalfPos); } } @@ -563,7 +559,6 @@ class EigenApp Fx(smPt, numDofPerCell); Fy(smPt, numDofPerCell); - // diffusion contribution addBurgersDiffusionToVelocityAndOptionalJacobianInnerCells(U, V, &J, smPt); } } @@ -595,8 +590,6 @@ class EigenApp constexpr int xAxis = 1; constexpr int yAxis = 2; - throw std::runtime_error("Higher order not fixed"); - // if here, then the velocity must be computed with Weno, /// while the jacobian must be computed with first order @@ -720,7 +713,8 @@ class EigenApp fillJacFactorsForCellBd(smPt, xAxis); } else{ - throw std::runtime_error("Need to fix higher order custom BCs"); + fillJacFactorsCustomBCs(smPt, xAxis, m_meshObj, m_bcFuncsHolder, + m_bcCellJacFactors, numDofPerCell); } funcJacX(smPt, numDofPerCell, m_bcCellJacFactors); // diffusion contribution to velocity @@ -739,7 +733,8 @@ class EigenApp fillJacFactorsForCellBd(smPt, yAxis); } else{ - throw std::runtime_error("Need to fix higher order custom BCs"); + fillJacFactorsCustomBCs(smPt, yAxis, m_meshObj, m_bcFuncsHolder, + m_bcCellJacFactors, numDofPerCell); } funcJacY(smPt, numDofPerCell, m_bcCellJacFactors); // diffusion contribution to velocity @@ -1028,28 +1023,28 @@ class EigenApp V(vIndex) += diffDyInvSq*( stencilVals(4) - two*stencilVals(2) + stencilVals(0) ); } else if (stencilSize == 5){ - throw std::runtime_error("Higher order not fixed yet"); - V(vIndex) += diffDxInvSq*( stencilVals(3) -two*stencilVals(2) +stencilVals(1) ); + V(vIndex) += diffDxInvSq*( stencilVals(6) - two*stencilVals(4) + stencilVals(2) ); + V(vIndex) += diffDyInvSq*( stencilVals(6) - two*stencilVals(4) + stencilVals(2) ); } else if (stencilSize == 7){ - throw std::runtime_error("Higher order not fixed yet"); - V(vIndex) += diffDxInvSq*( stencilVals(4) -two*stencilVals(3) +stencilVals(2) ); + V(vIndex) += diffDxInvSq*( stencilVals(8) - two*stencilVals(6) + stencilVals(4) ); + V(vIndex) += diffDyInvSq*( stencilVals(8) - two*stencilVals(6) + stencilVals(4) ); } + // *** add Y contribution of diffusion *** StencilFillerY(smPt, it, numDofPerCell); Fy(smPt, numDofPerCell); - // *** add Y contribution of diffusion *** if (stencilSize == 3){ V(vIndex+1) += diffDxInvSq*( stencilVals(5) - two*stencilVals(3) + stencilVals(1) ); V(vIndex+1) += diffDyInvSq*( stencilVals(5) - two*stencilVals(3) + stencilVals(1) ); } else if (stencilSize == 5){ - throw std::runtime_error("Higher order not fixed yet"); - V(smPt) += diffDyInvSq*( stencilVals(3) -two*stencilVals(2) +stencilVals(1) ); + V(vIndex+1) += diffDxInvSq*( stencilVals(7) - two*stencilVals(5) + stencilVals(3) ); + V(vIndex+1) += diffDyInvSq*( stencilVals(7) - two*stencilVals(5) + stencilVals(3) ); } else if (stencilSize == 7){ - throw std::runtime_error("Higher order not fixed yet"); - V(smPt) += diffDyInvSq*( stencilVals(4) -two*stencilVals(3) +stencilVals(2) ); + V(vIndex+1) += diffDxInvSq*( stencilVals(9) - two*stencilVals(7) + stencilVals(5) ); + V(vIndex+1) += diffDyInvSq*( stencilVals(9) - two*stencilVals(7) + stencilVals(5) ); } } } From ea0c2b14d91672cbe7068fb1b7d10c5b6b7e1959 Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Wed, 22 Jan 2025 19:21:53 -0700 Subject: [PATCH 08/15] add weno tests for burgers outflow --- .../CMakeLists.txt | 4 +- .../weno3/CMakeLists.txt | 19 + .../weno3/gold.txt | 800 ++++++++++++++++++ .../weno5/CMakeLists.txt | 19 + .../weno5/gold.txt | 800 ++++++++++++++++++ 5 files changed, 1640 insertions(+), 2 deletions(-) create mode 100644 tests_cpp/eigen_2d_burgers_outflow_implicit/weno3/CMakeLists.txt create mode 100644 tests_cpp/eigen_2d_burgers_outflow_implicit/weno3/gold.txt create mode 100644 tests_cpp/eigen_2d_burgers_outflow_implicit/weno5/CMakeLists.txt create mode 100644 tests_cpp/eigen_2d_burgers_outflow_implicit/weno5/gold.txt diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/CMakeLists.txt b/tests_cpp/eigen_2d_burgers_outflow_implicit/CMakeLists.txt index f568c0d8..3de92773 100644 --- a/tests_cpp/eigen_2d_burgers_outflow_implicit/CMakeLists.txt +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/CMakeLists.txt @@ -1,4 +1,4 @@ add_subdirectory(firstorder) -#add_subdirectory(weno3) -#add_subdirectory(weno5) +add_subdirectory(weno3) +add_subdirectory(weno5) diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/weno3/CMakeLists.txt b/tests_cpp/eigen_2d_burgers_outflow_implicit/weno3/CMakeLists.txt new file mode 100644 index 00000000..b9a114b4 --- /dev/null +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/weno3/CMakeLists.txt @@ -0,0 +1,19 @@ + +set(testname eigen_2d_burgers_outflow_weno3_implicit) +set(exename ${testname}_exe) + +configure_file(../compare.py compare.py COPYONLY) +configure_file(gold.txt gold.txt COPYONLY) +configure_file(../plot.py plot.py COPYONLY) + +add_executable(${exename} ${CMAKE_CURRENT_SOURCE_DIR}/../main.cc) +target_compile_definitions(${exename} PUBLIC -DUSE_WENO3) + +add_test(NAME ${testname} +COMMAND ${CMAKE_COMMAND} +-DMESHDRIVER=${MESHSRC}/create_full_mesh.py +-DOUTDIR=${CMAKE_CURRENT_BINARY_DIR} +-DEXENAME=$ +-DSTENCILVAL=5 +-P ${CMAKE_CURRENT_SOURCE_DIR}/../test.cmake +) diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/weno3/gold.txt b/tests_cpp/eigen_2d_burgers_outflow_implicit/weno3/gold.txt new file mode 100644 index 00000000..3315ec98 --- /dev/null +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/weno3/gold.txt @@ -0,0 +1,800 @@ +2.869164037512069828e-05 +2.861840838897752496e-05 +9.486549450156784777e-05 +9.462773158050948367e-05 +2.729646154371015063e-04 +2.723761304373860533e-04 +6.816642769398251417e-04 +6.810466247676095390e-04 +1.471643437661504603e-03 +1.472207228454400262e-03 +2.738318649002725695e-03 +2.740830861059724045e-03 +4.412529714431424714e-03 +4.416469598513743898e-03 +6.232697759355248536e-03 +6.237620323918251740e-03 +7.829778427333174834e-03 +7.836351109046735264e-03 +8.852935586720943675e-03 +8.861758081908624810e-03 +8.968807531436976538e-03 +8.977938888412528851e-03 +8.246894769314614890e-03 +8.255529529845267653e-03 +6.725623924581707221e-03 +6.731195836771592701e-03 +4.765577570155121040e-03 +4.767293856679812730e-03 +2.908082985576875088e-03 +2.909514155604309583e-03 +1.526076669663537855e-03 +1.530456136477342799e-03 +6.951730787376193908e-04 +6.996492470409749120e-04 +2.792614374386939865e-04 +2.800721900797777347e-04 +9.835912193230185907e-05 +9.716514887567583437e-05 +2.978307897514767934e-05 +2.912196108097550950e-05 +7.276291579095801963e-05 +7.239756617756851068e-05 +2.400122544127648134e-04 +2.397350379377795532e-04 +6.862147948577710602e-04 +6.858601753911208396e-04 +1.693421519263502064e-03 +1.693399101208418979e-03 +3.574171895161784660e-03 +3.575417382742301399e-03 +6.464414855521904112e-03 +6.468137663400322195e-03 +1.015737994337416461e-02 +1.016445363854157589e-02 +1.413560191657432102e-02 +1.414641076439049176e-02 +1.767380529559235691e-02 +1.768792809451380163e-02 +2.035925661552390881e-02 +2.037698127905456652e-02 +2.079778628039445978e-02 +2.081614045213212721e-02 +1.973694989047737602e-02 +1.975641964220566441e-02 +1.674219692932830267e-02 +1.675995260802429915e-02 +1.218279190255237322e-02 +1.219510424776822782e-02 +7.531015182499117659e-03 +7.537318519219006648e-03 +3.972837984447738502e-03 +3.975020233029446549e-03 +1.800211874688818032e-03 +1.800377099863842163e-03 +7.077785174667968957e-04 +7.074244799493200958e-04 +2.432104301930739778e-04 +2.429233743905006757e-04 +7.779623085155224177e-05 +7.493672450080987937e-05 +1.611755515567542360e-04 +1.600038999089053483e-04 +5.288015527224721422e-04 +5.279729886403147212e-04 +1.492711536264204998e-03 +1.492699185665964266e-03 +3.569693461215865064e-03 +3.569702645936314103e-03 +7.191210827613083931e-03 +7.191292473390608134e-03 +1.235033477657217216e-02 +1.235072381652536910e-02 +1.854534427074775935e-02 +1.854648650695761569e-02 +2.504095055433121220e-02 +2.504336380151346575e-02 +3.067585200384374822e-02 +3.067996363887498523e-02 +3.573455196663962580e-02 +3.573699498507491856e-02 +3.705955472056689931e-02 +3.706474344917325137e-02 +3.616689312645530313e-02 +3.617282729757455989e-02 +3.258179189116059554e-02 +3.258713597417060848e-02 +2.549879982847467683e-02 +2.550189921213503672e-02 +1.653107420771264546e-02 +1.653206108691820247e-02 +8.916790323500454682e-03 +8.916897401243774335e-03 +4.064050126519997211e-03 +4.064021154615783844e-03 +1.592809315458309149e-03 +1.592805459402272606e-03 +5.443894200223200336e-04 +5.435067564409498328e-04 +1.767981293394456854e-04 +1.679808114233938905e-04 +3.119006524137765322e-04 +3.096254918592010507e-04 +1.016513323210380907e-03 +1.014618363594317315e-03 +2.803521910099476908e-03 +2.803481896930973098e-03 +6.443396576391606859e-03 +6.443419576093868499e-03 +1.234425531317091471e-02 +1.234423082038306821e-02 +2.021029541364106549e-02 +2.021018340394658414e-02 +2.918604109494551610e-02 +2.918581082051478759e-02 +3.868161846647261842e-02 +3.868125142760447249e-02 +4.625607911824340668e-02 +4.625635204144403628e-02 +5.477280264711650165e-02 +5.476368019488225131e-02 +5.797781759741851837e-02 +5.797569762132123716e-02 +5.746301021269684811e-02 +5.746228836800695849e-02 +5.431731624332785530e-02 +5.431703658853617028e-02 +4.621744335848528007e-02 +4.621717172186981526e-02 +3.257445018043010621e-02 +3.257423009516403900e-02 +1.802242754474745606e-02 +1.802235426791807399e-02 +8.197295968529349011e-03 +8.197294727542148857e-03 +3.172486289053711925e-03 +3.172505042274366242e-03 +1.071944413631515996e-03 +1.069823195835817309e-03 +3.532324556105772965e-04 +3.276777823003646927e-04 +5.280140256505080204e-04 +5.252433659911570846e-04 +1.703971547846016687e-03 +1.700464401207878390e-03 +4.575588316873577081e-03 +4.575453267530902972e-03 +1.010519380295692680e-02 +1.010525771165638256e-02 +1.852342594546670107e-02 +1.852343239457862611e-02 +2.918492258105444270e-02 +2.918489367219067807e-02 +4.102209333973635963e-02 +4.102200092644977397e-02 +5.291544318244880557e-02 +5.291505499636305065e-02 +6.356615987214901675e-02 +6.356817296826472452e-02 +7.305735805332005950e-02 +7.302697335935144640e-02 +8.139226191098933305e-02 +8.138696963733799139e-02 +8.211415213622191844e-02 +8.211236735666554987e-02 +8.031125570500508015e-02 +8.031029939586757649e-02 +7.316524869512026907e-02 +7.316476657266930694e-02 +5.752681329979585090e-02 +5.752664709499340223e-02 +3.394966005194063885e-02 +3.394964588413992845e-02 +1.507043742312396198e-02 +1.507045136348009705e-02 +5.647963264649820056e-03 +5.648032630572988669e-03 +1.863116465904808170e-03 +1.858870326336672625e-03 +6.204365903063142808e-04 +5.621459202798348735e-04 +7.824540085538831064e-04 +7.799507224261642037e-04 +2.500132708736320895e-03 +2.494693763076874342e-03 +6.561256746207617084e-03 +6.560935318434886476e-03 +1.404502280544815164e-02 +1.404515395199446536e-02 +2.498559405540618644e-02 +2.498562509639318946e-02 +3.867449124855671522e-02 +3.867449009447080505e-02 +5.291253698090823271e-02 +5.291253305688468911e-02 +7.054744921919228751e-02 +7.054730664058962708e-02 +8.116147435249318476e-02 +8.116197183334088183e-02 +9.596004997362413136e-02 +9.591588818125346139e-02 +1.047027035321945743e-01 +1.046951800626392398e-01 +1.088918321935653105e-01 +1.088903813500946421e-01 +1.083178332324092746e-01 +1.083171239051591156e-01 +1.037141697768812904e-01 +1.037138980796523252e-01 +9.000051607289891176e-02 +9.000049660030047527e-02 +6.117877946650990273e-02 +6.117881212488274906e-02 +2.625457064768701651e-02 +2.625461459256131155e-02 +9.098667469724784629e-03 +9.098787525906216686e-03 +2.864719856412238381e-03 +2.857386531449232665e-03 +9.070543107683315528e-04 +8.533567537544908908e-04 +1.016283656995211693e-03 +1.013827488049255003e-03 +3.229328386621033425e-03 +3.222044231193067158e-03 +8.362123115114831681e-03 +8.361559991001830255e-03 +1.755232704028839366e-02 +1.755253587874569532e-02 +3.057814916399519481e-02 +3.057821200865682570e-02 +4.623851098546246513e-02 +4.623851099018075339e-02 +6.357914245354061300e-02 +6.357915054359540574e-02 +8.118333762949926646e-02 +8.118308504935192738e-02 +9.942743714506417640e-02 +9.943333544494560583e-02 +1.123011042130520887e-01 +1.122655559048562901e-01 +1.336927237111158462e-01 +1.336714984017092767e-01 +1.391548797399476678e-01 +1.391523138569634443e-01 +1.393368397960125793e-01 +1.393362360129878907e-01 +1.371304523088009153e-01 +1.371303900489209970e-01 +1.272764969215830488e-01 +1.272765465555257547e-01 +9.994673017118814451e-02 +9.994677322721405577e-02 +4.634724291077257224e-02 +4.634734726337647742e-02 +1.347471517421571473e-02 +1.347481016252959768e-02 +3.893720204829199429e-03 +3.882648659253967217e-03 +1.147441472906898016e-03 +1.095316109613255796e-03 +1.159407319317966919e-03 +1.156504341877010681e-03 +3.684749572815042111e-03 +3.676180595928100082e-03 +9.560124605977994919e-03 +9.559369422261208490e-03 +2.022129328643821125e-02 +2.022156114642881253e-02 +3.557290503251137742e-02 +3.557300275845642901e-02 +5.471542330842427138e-02 +5.471542473299629422e-02 +7.301378750597244116e-02 +7.301378120717885722e-02 +9.589886712301445848e-02 +9.589869894944834383e-02 +1.122450269742770734e-01 +1.122468272484557911e-01 +1.297607180437038432e-01 +1.297293070012890959e-01 +1.459613187802826784e-01 +1.459534921871100399e-01 +1.681348309834225507e-01 +1.681344862568260046e-01 +1.731653303432451885e-01 +1.731651250884226889e-01 +1.714100903722510783e-01 +1.714100122849535890e-01 +1.654131742988878273e-01 +1.654131690641909291e-01 +1.446097402076451655e-01 +1.446097651742117018e-01 +8.359371687414159091e-02 +8.359394341946026208e-02 +1.950661906107502980e-02 +1.950658460692529170e-02 +4.666467728522913534e-03 +4.651406875719230061e-03 +1.254621142678188526e-03 +1.246509146763401374e-03 +1.162867267581495093e-03 +1.159747957383726368e-03 +3.715478695965772783e-03 +3.706766114735432754e-03 +9.696304388898572407e-03 +9.695534245752196814e-03 +2.066133371740766153e-02 +2.066161625384109121e-02 +3.688932859724722985e-02 +3.688944514866929897e-02 +5.791199141600612832e-02 +5.791200108214462211e-02 +8.137731880500372050e-02 +8.137735369604147395e-02 +1.046954554115234470e-01 +1.046955460394484866e-01 +1.336558813956480185e-01 +1.336557806478679555e-01 +1.459502192701622458e-01 +1.459475943759011574e-01 +1.657277258048985291e-01 +1.657283273107825750e-01 +1.812652525142549875e-01 +1.812652129471740425e-01 +1.991990025509802198e-01 +1.991988466073184583e-01 +2.034583765739561845e-01 +2.034583155995041692e-01 +2.013959401680613381e-01 +2.013958957350577839e-01 +1.891827718464478003e-01 +1.891827698884647468e-01 +1.363305817904844897e-01 +1.363310122162166571e-01 +3.289722677162384284e-02 +3.289697969674180295e-02 +4.962666038406935744e-03 +4.943507411112126743e-03 +1.258581220902253023e-03 +1.251893303167938686e-03 +1.024476181674740432e-03 +1.021688621599790067e-03 +3.308016794059987029e-03 +3.300254916605891743e-03 +8.869736850707523115e-03 +8.869404897000811305e-03 +1.960700539832721523e-02 +1.960772663559063114e-02 +3.601107772705935267e-02 +3.601151687868615892e-02 +5.740340526832107826e-02 +5.740340612080158805e-02 +8.210643135971670836e-02 +8.210659679745520301e-02 +1.088969542289089654e-01 +1.088961169886409480e-01 +1.391557244776112923e-01 +1.391554328612125691e-01 +1.681308534157508194e-01 +1.681323836495648705e-01 +1.812643072358485208e-01 +1.812646427652325476e-01 +2.101868062785584579e-01 +2.101868412855976698e-01 +2.198462717570583425e-01 +2.198462667897682632e-01 +2.312732930275505916e-01 +2.312733226341165127e-01 +2.316873419946773316e-01 +2.316873717236324903e-01 +2.262462134812202874e-01 +2.262462143334107167e-01 +1.915904413919319316e-01 +1.915911144253912013e-01 +6.844955435769432828e-02 +6.844886428207108686e-02 +5.449175538606725738e-03 +5.420092465983839675e-03 +1.101441594452586426e-03 +1.095488677392906238e-03 +7.906321643647412070e-04 +7.885419430522082893e-04 +2.582925573000778140e-03 +2.576891805558266784e-03 +7.139541767178640176e-03 +7.139174251553486242e-03 +1.663370162168973515e-02 +1.663395011003698451e-02 +3.246793855591151301e-02 +3.246810168129439511e-02 +5.427376977160696531e-02 +5.427375220858409594e-02 +8.030681745835889507e-02 +8.030665978393285165e-02 +1.083230754741967145e-01 +1.083228779260214519e-01 +1.393409399253152658e-01 +1.393408114402942544e-01 +1.731667663958048609e-01 +1.731668086431570608e-01 +1.991990742890072663e-01 +1.991990608990188427e-01 +2.198463000192047712e-01 +2.198463282636802796e-01 +2.583318729065257058e-01 +2.583319457924851403e-01 +2.584691444138801364e-01 +2.584692092193191515e-01 +2.607110308109876207e-01 +2.607110874880650964e-01 +2.617067670809142266e-01 +2.617067977703009252e-01 +2.436384053224116553e-01 +2.436391493197107849e-01 +1.256659436429149734e-01 +1.256653085470701148e-01 +7.942983429869885162e-03 +7.896099326301780907e-03 +8.460356874965310314e-04 +8.409169397105736073e-04 +5.335205479540083406e-04 +5.322031437728632708e-04 +1.758737794970856305e-03 +1.754869413522967868e-03 +4.975820869580510619e-03 +4.975643958824165977e-03 +1.211642221852457339e-02 +1.211649070779160196e-02 +2.544563053704858302e-02 +2.544564341428825691e-02 +4.619905283087674674e-02 +4.619904828291395565e-02 +7.316532419730324699e-02 +7.316527340365658327e-02 +1.037190396652569041e-01 +1.037189809801255663e-01 +1.371347885707612235e-01 +1.371347277857660474e-01 +1.714119157819729289e-01 +1.714118932790706928e-01 +2.034589011763965061e-01 +2.034588947046259422e-01 +2.312733822728083588e-01 +2.312734097110439591e-01 +2.584691052316877014e-01 +2.584691708934553356e-01 +3.007114157010741806e-01 +3.007115105867964600e-01 +3.064170829887463698e-01 +3.064171522916973589e-01 +3.004480755657000235e-01 +3.004481215601332300e-01 +2.868260019001321881e-01 +2.868264687400386426e-01 +2.002486409995075378e-01 +2.002457984367696786e-01 +1.779925351470506775e-02 +1.773983491968859558e-02 +5.865885647998635372e-04 +5.819714231361349920e-04 +3.145919452904230021e-04 +3.138987123276927712e-04 +1.041956461870181773e-03 +1.039908412798318726e-03 +2.997478541652455128e-03 +2.997422005005361597e-03 +7.505883407919532006e-03 +7.505909668872208333e-03 +1.651805917918622996e-02 +1.651806022784889708e-02 +3.257289867451286514e-02 +3.257290044849495136e-02 +5.752893289639383900e-02 +5.752894539632101567e-02 +9.000359238595229128e-02 +9.000359115554108780e-02 +1.272793263010607856e-01 +1.272793132722644105e-01 +1.654146482581755617e-01 +1.654146290463969216e-01 +2.013963998546851597e-01 +2.013963939035570139e-01 +2.316873751135216375e-01 +2.316873985394163060e-01 +2.607109197505133591e-01 +2.607109781631791190e-01 +3.064168950733909269e-01 +3.064169781019067118e-01 +3.210996812256074473e-01 +3.210997469811724403e-01 +3.304925601406348279e-01 +3.304925479931504761e-01 +3.500559424894251204e-01 +3.500563888111632438e-01 +2.449309360089017007e-01 +2.449288261636059227e-01 +1.635459347142187089e-02 +1.630251907055047314e-02 +3.408100340587586733e-04 +3.380378981527980276e-04 +1.621371380902170459e-04 +1.618377297116840245e-04 +5.373995844509424314e-04 +5.365233104807252355e-04 +1.560937093369614429e-03 +1.560924848851186599e-03 +3.968190969467367407e-03 +3.968197197883691768e-03 +8.914822736940429884e-03 +8.914823249840048494e-03 +1.802257841378478512e-02 +1.802257852513100209e-02 +3.395019778494873935e-02 +3.395020359593872716e-02 +6.117925932651729209e-02 +6.117927223711443901e-02 +9.994749377283697334e-02 +9.994750476751283752e-02 +1.446103636498728973e-01 +1.446103626377833462e-01 +1.891830910944732325e-01 +1.891830872970280963e-01 +2.262461567971192633e-01 +2.262461714432180138e-01 +2.617066178537493792e-01 +2.617066623979288909e-01 +3.004479130164895428e-01 +3.004479775775121819e-01 +3.304924458278132859e-01 +3.304924929753443319e-01 +3.907844024608485012e-01 +3.907843774060372755e-01 +3.937720735434341868e-01 +3.937725965760564550e-01 +1.944147295855945812e-01 +1.944142217534256256e-01 +4.346744823238856033e-03 +4.322173693006360964e-03 +1.654422631138611219e-04 +1.645613654356620356e-04 +7.300472456313683253e-05 +7.290224827779083765e-05 +2.421390559648863103e-04 +2.418509518636451658e-04 +7.047261035352742412e-04 +7.047245643858402516e-04 +1.800961897510782719e-03 +1.800962596012702652e-03 +4.063968289351555137e-03 +4.063968319487845302e-03 +8.197284493558557733e-03 +8.197284489684777964e-03 +1.507046548312756216e-02 +1.507046563133646391e-02 +2.625452363792774024e-02 +2.625452505397997058e-02 +4.634705156999776449e-02 +4.634705663606682874e-02 +8.359368035339620473e-02 +8.359368351048857004e-02 +1.363308048878789092e-01 +1.363308008285154527e-01 +1.915903918221610880e-01 +1.915903924048664997e-01 +2.436382836462678281e-01 +2.436383036592484341e-01 +2.868258270968644386e-01 +2.868258598123960001e-01 +3.500557784018948349e-01 +3.500558106138647596e-01 +3.937719461226664719e-01 +3.937719624154464859e-01 +3.243689204403437665e-01 +3.243690516147456626e-01 +3.406827399033945936e-02 +3.406827857472304738e-02 +2.910843072902718348e-04 +2.894087664805396328e-04 +7.345944507688691519e-05 +7.320792604195051152e-05 +2.873091346539911059e-05 +2.870598593995405220e-05 +9.535791195216814778e-05 +9.529591960803359091e-05 +2.775803791081925742e-04 +2.775802446908238455e-04 +7.085097591087374195e-04 +7.085097909568627934e-04 +1.592818720309198974e-03 +1.592818720896086934e-03 +3.172434312424172488e-03 +3.172434312206808167e-03 +5.647850864737824148e-03 +5.647850867840127284e-03 +9.098528529663687733e-03 +9.098528558105912004e-03 +1.347467369225072500e-02 +1.347467381642690476e-02 +1.950664926926399395e-02 +1.950664938307263355e-02 +3.289729842432222856e-02 +3.289729644475653664e-02 +6.844914113263542155e-02 +6.844913420334269860e-02 +1.256652812327975766e-01 +1.256652767999908438e-01 +2.002481590484986584e-01 +2.002481656281752675e-01 +2.449307072264425567e-01 +2.449307195245742086e-01 +1.944146501883502465e-01 +1.944146599656113028e-01 +3.406825218248504816e-02 +3.406822769790976424e-02 +3.705676563898797644e-04 +3.705674802772173336e-04 +9.582991674817047958e-05 +9.576642897131505759e-05 +2.883198505819104156e-05 +2.874948267207735403e-05 +9.890403529105292745e-06 +9.888147295674193723e-06 +3.283026705255905791e-05 +3.282997660392739336e-05 +9.559255438651743518e-05 +9.559255411255804539e-05 +2.434973922903714279e-04 +2.434973919508284725e-04 +5.448585016593145191e-04 +5.448585011764196535e-04 +1.072601855867977901e-03 +1.072601830742174120e-03 +1.864021769283921281e-03 +1.864021566754833163e-03 +2.865593127344232428e-03 +2.865592410357634730e-03 +3.893911457567781308e-03 +3.893909988099296480e-03 +4.666074735595365092e-03 +4.666072627663709477e-03 +4.962434492364505012e-03 +4.962432253516679131e-03 +5.449551045513040780e-03 +5.449549002664810793e-03 +7.943448354014830126e-03 +7.943446563291826218e-03 +1.779803311259556611e-02 +1.779803094579762712e-02 +1.635461346658281453e-02 +1.635461335300812322e-02 +4.347766738057508643e-03 +4.347766967740436701e-03 +2.918131382665487428e-04 +2.918130855740383401e-04 +9.600343652635248204e-05 +9.600343631851472029e-05 +3.288285170570939890e-05 +3.288260764826400986e-05 +9.915278317951971621e-06 +9.893270525897883213e-06 +2.979158600084043410e-06 +2.980724215106074322e-06 +9.889066045303381231e-06 +9.896422471294536764e-06 +2.880922254795322544e-05 +2.880924782924424956e-05 +7.326311771013134858e-05 +7.326317009241621896e-05 +1.633685417780135095e-04 +1.633686675753084536e-04 +3.197438809074066896e-04 +3.197441107787440408e-04 +5.490583697347274812e-04 +5.490587101727686286e-04 +8.274256402558338242e-04 +8.274261884300992444e-04 +1.093000997746437558e-03 +1.093001845550112478e-03 +1.261445771144719188e-03 +1.261446914804528838e-03 +1.267031757804784262e-03 +1.267032992145336557e-03 +1.107744061464697614e-03 +1.107745222244031595e-03 +8.494652157071934124e-04 +8.494663419797085502e-04 +5.877246129945196997e-04 +5.877256466489324139e-04 +3.410890248290736793e-04 +3.410895135524982563e-04 +1.655466588145530456e-04 +1.655468064322476978e-04 +7.347037415961363770e-05 +7.347042705476096566e-05 +2.884485887031015873e-05 +2.884488321255960358e-05 +9.893834548723101440e-06 +9.901202349122174455e-06 +2.985568719969361000e-06 +2.981189764527389467e-06 +7.853138286067338278e-07 +7.864190776945184817e-07 +2.606742664835642190e-06 +2.611005284095371434e-06 +7.569638588482000841e-06 +7.586911392835287115e-06 +1.924087491853444025e-05 +1.929509943628447029e-05 +4.281917241444158794e-05 +4.295900702345496470e-05 +8.348341577768147624e-05 +8.378671148836488785e-05 +1.426850353592004107e-04 +1.432448688383292708e-04 +2.136455254686918251e-04 +2.145312029853522237e-04 +2.799537319205856571e-04 +2.811583987557141518e-04 +3.207435208122433367e-04 +3.221520775439473119e-04 +3.210307879321194877e-04 +3.224441182713464566e-04 +2.806213832942231791e-04 +2.818372611929468880e-04 +2.143132923459884203e-04 +2.152104371264991088e-04 +1.431168197910656420e-04 +1.436849697259050870e-04 +8.367300837845962518e-05 +8.397976336695126508e-05 +4.287565919051615618e-05 +4.301629611727774837e-05 +1.925438375851987112e-05 +1.930876910856807097e-05 +7.572090052874835759e-06 +7.589387714713882576e-06 +2.607074255321474296e-06 +2.611337919130711482e-06 +7.869132130866778396e-07 +7.864515853595278298e-07 +1.811674487566388691e-07 +1.818969641410978278e-07 +6.013587143402307149e-07 +6.039176246107517642e-07 +1.746231218289389294e-06 +1.754782704405709574e-06 +4.438239346200183028e-06 +4.462368460633125980e-06 +9.873356745406700641e-06 +9.931451620547711789e-06 +1.922576515597627803e-05 +1.934591831206332595e-05 +3.277304223826106529e-05 +3.298743425854150802e-05 +4.891270311353844262e-05 +4.924344568899770053e-05 +6.390803560715963482e-05 +6.434961984678981149e-05 +7.307089151736453328e-05 +7.358132484685702736e-05 +7.308509414236421511e-05 +7.359585256257404867e-05 +6.394059249509613171e-05 +6.438292110992559192e-05 +4.894445336763885205e-05 +4.927591731860205134e-05 +3.279307802915709934e-05 +3.300791600361173151e-05 +1.923478131586047211e-05 +1.935512495466335309e-05 +9.876327698940206667e-06 +9.934481024133275670e-06 +4.438961281918782382e-06 +4.463103678635285394e-06 +1.746361739389304320e-06 +1.754915410270332173e-06 +6.013766408155805394e-07 +6.039354470187641039e-07 +1.815306683971862422e-07 +1.818987059973975959e-07 diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/weno5/CMakeLists.txt b/tests_cpp/eigen_2d_burgers_outflow_implicit/weno5/CMakeLists.txt new file mode 100644 index 00000000..9a5716c0 --- /dev/null +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/weno5/CMakeLists.txt @@ -0,0 +1,19 @@ + +set(testname eigen_2d_burgers_outflow_weno5_implicit) +set(exename ${testname}_exe) + +configure_file(../compare.py compare.py COPYONLY) +configure_file(gold.txt gold.txt COPYONLY) +configure_file(../plot.py plot.py COPYONLY) + +add_executable(${exename} ${CMAKE_CURRENT_SOURCE_DIR}/../main.cc) +target_compile_definitions(${exename} PUBLIC -DUSE_WENO5) + +add_test(NAME ${testname} +COMMAND ${CMAKE_COMMAND} +-DMESHDRIVER=${MESHSRC}/create_full_mesh.py +-DOUTDIR=${CMAKE_CURRENT_BINARY_DIR} +-DEXENAME=$ +-DSTENCILVAL=7 +-P ${CMAKE_CURRENT_SOURCE_DIR}/../test.cmake +) diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/weno5/gold.txt b/tests_cpp/eigen_2d_burgers_outflow_implicit/weno5/gold.txt new file mode 100644 index 00000000..97d6136b --- /dev/null +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/weno5/gold.txt @@ -0,0 +1,800 @@ +2.869503911715961408e-05 +2.868123055853889002e-05 +9.501360536058162901e-05 +9.500292818525862945e-05 +2.738776386611755471e-04 +2.740975529663690390e-04 +6.843455988338412871e-04 +6.847537734082331492e-04 +1.474005945549181507e-03 +1.474148218989691827e-03 +2.735472676162126800e-03 +2.735849494993414580e-03 +4.404010502937389521e-03 +4.406262582176396700e-03 +6.219059077246840740e-03 +6.224204188374188318e-03 +7.804488107878133560e-03 +7.811759132503218184e-03 +8.799244137309817498e-03 +8.807806921399629826e-03 +8.958913509767555197e-03 +8.968201979207134078e-03 +8.199479582445915252e-03 +8.208944641200727199e-03 +6.669723962601754180e-03 +6.679041701523243287e-03 +4.749057290716144838e-03 +4.756832217539298975e-03 +2.924449579048772445e-03 +2.927346591856028104e-03 +1.550015466764138698e-03 +1.547186743595046522e-03 +7.051704262499080634e-04 +7.006883755041007789e-04 +2.743439982257419468e-04 +2.731172118124378903e-04 +9.244833157800152600e-05 +9.335916518972477173e-05 +2.779431143958612107e-05 +2.825161730852937479e-05 +7.286167266619540163e-05 +7.302370338290160130e-05 +2.409112843956742853e-04 +2.418713675699733757e-04 +6.901469353263185551e-04 +6.935662350862582468e-04 +1.698596631342417064e-03 +1.703213102455489701e-03 +3.568227728729856177e-03 +3.570410207391327626e-03 +6.428011776072434583e-03 +6.427067603125537210e-03 +1.007057379186397650e-02 +1.007068416505276474e-02 +1.397612134921289925e-02 +1.398456091797324781e-02 +1.747555326482509719e-02 +1.749255437940839403e-02 +1.988557012224819939e-02 +1.990448874574171981e-02 +2.067078048550324149e-02 +2.069083200081828222e-02 +1.946761205237981796e-02 +1.948619364659894687e-02 +1.633575422618618184e-02 +1.635308515045466593e-02 +1.194607265816911498e-02 +1.195859025737929827e-02 +7.456814348593127431e-03 +7.463219373679927382e-03 +3.949278756673741536e-03 +3.951177143325363024e-03 +1.792748074872914116e-03 +1.792763827364760422e-03 +7.063460091633966612e-04 +7.059921814077016987e-04 +2.430622174088683586e-04 +2.339506370505262578e-04 +6.870629003013997585e-05 +7.102802091163991740e-05 +1.615287214942513088e-04 +1.621163121536993640e-04 +5.311990325787858003e-04 +5.278437178169890706e-04 +1.485285760891426506e-03 +1.483965235999999991e-03 +3.539908007976693988e-03 +3.538722993351724449e-03 +7.126935835031400837e-03 +7.126990093212284827e-03 +1.225614623864691027e-02 +1.225881655820211351e-02 +1.841723773248125570e-02 +1.842391244755520532e-02 +2.479951606467533515e-02 +2.481260697566060186e-02 +3.054298068968581970e-02 +3.055104390492008326e-02 +3.478312668027056659e-02 +3.480819965913483499e-02 +3.680545178068634488e-02 +3.683560622773759258e-02 +3.593557113051778357e-02 +3.596320909518655601e-02 +3.172624076012078159e-02 +3.175404547924063486e-02 +2.460547143830152383e-02 +2.462633168555006247e-02 +1.617641235746573175e-02 +1.618678730025060672e-02 +8.815768060283219257e-03 +8.817862189955606028e-03 +4.027027532586046309e-03 +4.025692238750750926e-03 +1.583197857186005066e-03 +1.581846675716674271e-03 +5.432125981100058070e-04 +5.148318771890274606e-04 +1.497027442316395699e-04 +1.571657744404752804e-04 +3.124326228585937691e-04 +3.133645421505378459e-04 +1.018179364279752979e-03 +1.011941421774817254e-03 +2.781969237323431328e-03 +2.778590662174190967e-03 +6.385235076240392861e-03 +6.385108948572189996e-03 +1.226772503657486309e-02 +1.226772152491548834e-02 +2.015398858695772663e-02 +2.015431446893003326e-02 +2.919468997268981000e-02 +2.919551384374723807e-02 +3.836019104711919925e-02 +3.836495413834505042e-02 +4.670936362793381286e-02 +4.668464003972847692e-02 +5.329051651457557964e-02 +5.329870532402725125e-02 +5.729932662000736254e-02 +5.731212721824983924e-02 +5.785735354760284527e-02 +5.786362988076252517e-02 +5.392381533364493107e-02 +5.393003075334140695e-02 +4.481569330653208116e-02 +4.482034604039862591e-02 +3.154228673084428364e-02 +3.154390053935533789e-02 +1.784816726772715800e-02 +1.784825833651601523e-02 +8.115883755923531187e-03 +8.115696452421656062e-03 +3.140571985736863216e-03 +3.137159169730860484e-03 +1.067862827429217308e-03 +9.991303801140355000e-04 +2.869310630310633681e-04 +3.079701283494605296e-04 +5.275335104211940863e-04 +5.277734087348878852e-04 +1.699581695670925085e-03 +1.692465983040127584e-03 +4.528419081625914035e-03 +4.522172652622900683e-03 +1.000487407500133888e-02 +1.000464749884699689e-02 +1.843770798266758382e-02 +1.843782556484423532e-02 +2.920425459040525834e-02 +2.920427750147183699e-02 +4.119161462143474534e-02 +4.119046950558638565e-02 +5.324159057160441494e-02 +5.324816440553953312e-02 +6.440965562513784048e-02 +6.435134748291952700e-02 +7.370476228516223416e-02 +7.371096496963994160e-02 +8.033749468145245931e-02 +8.034515742474275524e-02 +8.328211796228010555e-02 +8.328193463114562378e-02 +8.131510585494829135e-02 +8.131270505046371555e-02 +7.252815189808824170e-02 +7.252726789163053966e-02 +5.544507304484934396e-02 +5.544468678074988138e-02 +3.324938727041529957e-02 +3.324927026152071918e-02 +1.493583060326424475e-02 +1.493558150795554554e-02 +5.551774010645998611e-03 +5.544727952868859500e-03 +1.850424422819684249e-03 +1.742406474807694844e-03 +4.772393251501033098e-04 +5.304938565101417194e-04 +7.793154925726389695e-04 +7.778221725084429224e-04 +2.484318204289780955e-03 +2.478471865995627525e-03 +6.472721942209762325e-03 +6.463264871462006539e-03 +1.387634122498219470e-02 +1.387565045921720051e-02 +2.482191124538424623e-02 +2.482213077464994963e-02 +3.838153328783563273e-02 +3.838174704154057731e-02 +5.325159712260377903e-02 +5.324940979713790185e-02 +6.818376661398488359e-02 +6.819635439346745376e-02 +8.224819787665479942e-02 +8.217861938233672614e-02 +9.443954888289962657e-02 +9.445585324523245174e-02 +1.040827398124029163e-01 +1.040949984027749325e-01 +1.101033283435124271e-01 +1.101048253201911409e-01 +1.112036201538877112e-01 +1.112015498864358104e-01 +1.054428397349921331e-01 +1.054415884085443955e-01 +8.851314505010994538e-02 +8.851312137130333546e-02 +5.795766279933217691e-02 +5.795764901811339270e-02 +2.588770945194765472e-02 +2.588767136083130679e-02 +8.811849444499501513e-03 +8.797409583592067858e-03 +2.829522232824217051e-03 +2.733609361676965412e-03 +7.274345959602821019e-04 +7.877458459665554477e-04 +1.010105415881085286e-03 +1.007149026985106142e-03 +3.200335654377570692e-03 +3.194916870161037745e-03 +8.218215273628858356e-03 +8.205693155400432121e-03 +1.733023786474221020e-02 +1.732898817432585933e-02 +3.055131530053923489e-02 +3.055165393221838041e-02 +4.673382479640631609e-02 +4.673412134079156510e-02 +6.440518059833770514e-02 +6.440273141069739748e-02 +8.222260527872186919e-02 +8.223670219403347859e-02 +9.921379500181747024e-02 +9.915599835025745712e-02 +1.144010778119721183e-01 +1.144097222017579490e-01 +1.272031869532123383e-01 +1.272176411535727858e-01 +1.366523409692280977e-01 +1.366552843355806346e-01 +1.414553657523243413e-01 +1.414548315042700732e-01 +1.398472026566581483e-01 +1.398466353378724769e-01 +1.282681395861584028e-01 +1.282680330264841517e-01 +9.493373278735052490e-02 +9.493370712976037518e-02 +4.380913338821038755e-02 +4.381044323035624549e-02 +1.267539520052749120e-02 +1.264672141856340061e-02 +3.810301866931643539e-03 +3.740606628253024309e-03 +1.012056030949759792e-03 +1.053020467733730434e-03 +1.151325487056588989e-03 +1.147904439484704860e-03 +3.648541029441094031e-03 +3.641522573158717871e-03 +9.345124773789273767e-03 +9.330185893881948883e-03 +1.969746429981282868e-02 +1.969577261934905843e-02 +3.477882310461673232e-02 +3.477927850982988345e-02 +5.334181029610238212e-02 +5.334201326706619617e-02 +7.374031787593197940e-02 +7.373895007363953646e-02 +9.448571757408362470e-02 +9.449461886280963174e-02 +1.144593975124153923e-01 +1.143887678206580993e-01 +1.327767393869287715e-01 +1.327931003810044752e-01 +1.488372386915984003e-01 +1.488443301998212120e-01 +1.617765074286647842e-01 +1.617781072676151288e-01 +1.705645572046644298e-01 +1.705652019751928983e-01 +1.735822365753020013e-01 +1.735824701242452417e-01 +1.681149562303390077e-01 +1.681150209826938746e-01 +1.441865947638294454e-01 +1.441870930956125341e-01 +7.440796710332311936e-02 +7.440994346795608283e-02 +1.693471127930966727e-02 +1.688614457305767994e-02 +4.491494724566625837e-03 +4.439918290266590441e-03 +1.239089525907808263e-03 +1.235424408993651387e-03 +1.155017106578293219e-03 +1.151748391665785706e-03 +3.682878396902931201e-03 +3.674408461632533082e-03 +9.542137346926840569e-03 +9.526148835610372470e-03 +2.045612253145898465e-02 +2.045429788541786725e-02 +3.678644536154202643e-02 +3.678702965189162288e-02 +5.735617032444887547e-02 +5.735629145657532291e-02 +8.037422513237611754e-02 +8.037399767286926289e-02 +1.041126993829349090e-01 +1.041137386169554008e-01 +1.272245718045056928e-01 +1.272125923810202563e-01 +1.488450649719816332e-01 +1.488430024756480508e-01 +1.682072259432339512e-01 +1.682071165373163479e-01 +1.846930286860858639e-01 +1.846935009253501125e-01 +1.975133908653033676e-01 +1.975138087721974300e-01 +2.052175722407073299e-01 +2.052173579030189265e-01 +2.057027666057652804e-01 +2.057019798923725440e-01 +1.937177722643307620e-01 +1.937159396698836800e-01 +1.272538032761639237e-01 +1.272458522791674318e-01 +2.409156930942180433e-02 +2.402923390960788261e-02 +4.604706774466932502e-03 +4.590230998666212925e-03 +1.247536561457823203e-03 +1.241154015454416564e-03 +1.018922109793482479e-03 +1.016133470642149829e-03 +3.280837634059373138e-03 +3.273050599369729634e-03 +8.694771708896625872e-03 +8.679598941953740876e-03 +1.925066021935914473e-02 +1.924837126939606471e-02 +3.591615686037793326e-02 +3.591628288429391663e-02 +5.791143593467158734e-02 +5.791159167304047589e-02 +8.331682266716239349e-02 +8.331694575422972371e-02 +1.101169301567190284e-01 +1.101171290495238236e-01 +1.366577736020246070e-01 +1.366601666158464290e-01 +1.617783799311411641e-01 +1.617783593801755126e-01 +1.846932556706509798e-01 +1.846931077011004230e-01 +2.048067758797660343e-01 +2.048070597611012233e-01 +2.214922203136978351e-01 +2.214924900026989940e-01 +2.338411463868369233e-01 +2.338409964699232346e-01 +2.403100433303434758e-01 +2.403094937700934741e-01 +2.373953532828251833e-01 +2.373948494368821049e-01 +1.958607820650558884e-01 +1.958555785859842358e-01 +4.479674062826029257e-02 +4.470587224836993639e-02 +4.188441866791030657e-03 +4.167553423495420212e-03 +1.091007743149327407e-03 +1.085437032869948810e-03 +7.877210600851522557e-04 +7.856513380413560326e-04 +2.564304683565984087e-03 +2.558403132533217800e-03 +6.995036031429514856e-03 +6.983218410701712460e-03 +1.615686683019297229e-02 +1.615559264450008858e-02 +3.173667471446739441e-02 +3.173709822336187591e-02 +5.398197796801172677e-02 +5.398202423073309580e-02 +8.134683827304797776e-02 +8.134694241652269675e-02 +1.112123147415838842e-01 +1.112124748399437729e-01 +1.414566786281879485e-01 +1.414570683964527786e-01 +1.705644877529086390e-01 +1.705647994607520090e-01 +1.975133210241706849e-01 +1.975136749070866837e-01 +2.214922537433586525e-01 +2.214926689749812661e-01 +2.420860586180285101e-01 +2.420863753202488478e-01 +2.591314206156120625e-01 +2.591314867539021294e-01 +2.704299337902284495e-01 +2.704296962078485689e-01 +2.741927791439640605e-01 +2.741926307320816103e-01 +2.568490033254675620e-01 +2.568411135065013506e-01 +9.850784833357623116e-02 +9.840311223243440597e-02 +3.934909766378149633e-03 +3.901263699287397385e-03 +8.313146071882084476e-04 +8.271062883450964760e-04 +5.327784319916046250e-04 +5.314701423700330047e-04 +1.749868382843957400e-03 +1.746053465137206110e-03 +4.906594993438724746e-03 +4.898829205974447945e-03 +1.183404625030808066e-02 +1.183340736434913137e-02 +2.464038989932659449e-02 +2.464073001582200301e-02 +4.486406631771464731e-02 +4.486406846739375565e-02 +7.254879842461660344e-02 +7.254875020851354883e-02 +1.054476273291281019e-01 +1.054477133691044677e-01 +1.398465222730766733e-01 +1.398460070853680959e-01 +1.735809483869423797e-01 +1.735809360108321042e-01 +2.052173559002659908e-01 +2.052176253300910802e-01 +2.338413685231816030e-01 +2.338417231031125199e-01 +2.591316657469296403e-01 +2.591319861317505358e-01 +2.798639996349364667e-01 +2.798642470357779466e-01 +2.965610944965306750e-01 +2.965611724748648537e-01 +3.090221071520011242e-01 +3.090219006044935268e-01 +3.085421121909729947e-01 +3.085343115643622292e-01 +1.735437847927150667e-01 +1.734369622315371506e-01 +7.228592122847171501e-03 +7.169839066423344155e-03 +5.553815967970657328e-04 +5.522687502980874047e-04 +3.146623053121043239e-04 +3.139718334573361530e-04 +1.039064021023636524e-03 +1.037032742527418255e-03 +2.972542416714874305e-03 +2.968495196084555959e-03 +7.409358635128664508e-03 +7.409135973483127295e-03 +1.620939627705444280e-02 +1.620954084244654453e-02 +3.156492431644614821e-02 +3.156491096553747794e-02 +5.545025877455217467e-02 +5.545023438013280126e-02 +8.851229571554330988e-02 +8.851228375873104737e-02 +1.282661831884120418e-01 +1.282661513559225364e-01 +1.681127706453130477e-01 +1.681127244058217007e-01 +2.057027032279434287e-01 +2.057027690648511598e-01 +2.403106161244880357e-01 +2.403107825315042023e-01 +2.704305700739696450e-01 +2.704307868037255647e-01 +2.965614800951405505e-01 +2.965618460794123279e-01 +3.182891928027677397e-01 +3.182892353365480709e-01 +3.340825637275115501e-01 +3.340835554659149498e-01 +3.451926643587402976e-01 +3.451852051084025041e-01 +2.411995280201445491e-01 +2.410878997182297756e-01 +1.302481454918441757e-02 +1.295144883984888397e-02 +3.276143393474854394e-04 +3.251805565776982095e-04 +1.622091078355591856e-04 +1.619100401596882917e-04 +5.371624719365915767e-04 +5.362922875220647043e-04 +1.552898472881265217e-03 +1.551319194133265458e-03 +3.937927540536834831e-03 +3.937882880283937077e-03 +8.831995623293681028e-03 +8.832028229622077009e-03 +1.785299726114903535e-02 +1.785299037495147179e-02 +3.324891136937855457e-02 +3.324890833416663943e-02 +5.795646111314248922e-02 +5.795645790492056498e-02 +9.493356843088159025e-02 +9.493363652385850004e-02 +1.441846318626903989e-01 +1.441846143169479011e-01 +1.937187715805851751e-01 +1.937186879043498733e-01 +2.373964629017882022e-01 +2.373964412444293237e-01 +2.741935394872206944e-01 +2.741936172871989874e-01 +3.090228837482957291e-01 +3.090232155101085842e-01 +3.340830862289297376e-01 +3.340831893512297146e-01 +3.558459831543203111e-01 +3.558471241787156125e-01 +3.832031771106466089e-01 +3.831950838219969069e-01 +2.427938880018590817e-01 +2.426812555763117885e-01 +6.795460066599690735e-03 +6.752131383488055305e-03 +1.651456133953075342e-04 +1.641890460551415488e-04 +7.301849308985114743e-05 +7.291601178554403507e-05 +2.422191609393232082e-04 +2.419329747512420571e-04 +7.028346869041775810e-04 +7.024375170225750182e-04 +1.792338311808397552e-03 +1.792334065255112973e-03 +4.031995191594894487e-03 +4.031998280291790825e-03 +8.116157176647049998e-03 +8.116156289330598780e-03 +1.493512411184539680e-02 +1.493512418989180295e-02 +2.588662585210210060e-02 +2.588662653249619236e-02 +4.380898233853661172e-02 +4.380898965368700687e-02 +7.440555541188943744e-02 +7.440557583870086034e-02 +1.272657977004343355e-01 +1.272658023391334825e-01 +1.958663832764379054e-01 +1.958663754184326866e-01 +2.568500255670003174e-01 +2.568500236224678379e-01 +3.085428847870573255e-01 +3.085430439495864263e-01 +3.451938168346599389e-01 +3.451939659743850641e-01 +3.832031435150738408e-01 +3.832034920083642326e-01 +3.785033246984149113e-01 +3.784976985914789704e-01 +6.344655492143037867e-02 +6.340510115556940995e-02 +3.251832563982238263e-04 +3.216697456894179416e-04 +7.346596579898832563e-05 +7.321355158880535720e-05 +2.873322917778269560e-05 +2.870829988938007637e-05 +9.537365935802072077e-05 +9.531228959489314865e-05 +2.770264437024947085e-04 +2.770216283749957708e-04 +7.069936664255645252e-04 +7.069937207586390231e-04 +1.584611757042131983e-03 +1.584611996508686642e-03 +3.142118331962468532e-03 +3.142119478317869762e-03 +5.553095920486662666e-03 +5.553099700551305910e-03 +8.812167943131887782e-03 +8.812177071565504421e-03 +1.267269513889012975e-02 +1.267270645508710228e-02 +1.692814357685956672e-02 +1.692813176588746360e-02 +2.411871905831433627e-02 +2.411864775238238903e-02 +4.480368637007229454e-02 +4.480355087407685705e-02 +9.850684130853185061e-02 +9.850666806214899984e-02 +1.735345670851511646e-01 +1.735343661334239895e-01 +2.411798922705391257e-01 +2.411797911253086846e-01 +2.428173342079449903e-01 +2.428174173643897205e-01 +6.348741882620631549e-02 +6.348770335616918392e-02 +4.151801097260957420e-04 +4.150902324767879407e-04 +9.582792364730436795e-05 +9.576423930183498021e-05 +2.883730002969250535e-05 +2.875479544381199718e-05 +9.890809737459763855e-06 +9.888552517649678599e-06 +3.283346138479313928e-05 +3.283339637929271284e-05 +9.537157535293215940e-05 +9.543154644978443085e-05 +2.433016123275454599e-04 +2.433018037954324424e-04 +5.433638720368629080e-04 +5.433636440323551644e-04 +1.066867981349705046e-03 +1.066865782543744388e-03 +1.846086060758868243e-03 +1.846077033215566803e-03 +2.819110928677702986e-03 +2.819086826461499658e-03 +3.792011199447027549e-03 +3.791965756459351328e-03 +4.466178851174187024e-03 +4.466119524674988517e-03 +4.582583457662408287e-03 +4.582531460453954410e-03 +4.171488207525980013e-03 +4.171457446234789514e-03 +3.927081651520788509e-03 +3.927085208434856478e-03 +7.224823213776643098e-03 +7.224868083756978525e-03 +1.301547613488958539e-02 +1.301553156870883382e-02 +6.788291829822894544e-03 +6.788314180267183279e-03 +3.244943863006549711e-04 +3.244956111067706043e-04 +9.576419511430652029e-05 +9.582701921391420790e-05 +3.288742292725251688e-05 +3.288742371399433657e-05 +9.916145538678760996e-06 +9.894136166063183539e-06 +2.979220812430837696e-06 +2.980786288245077264e-06 +9.889575461957785858e-06 +9.897020543467053910e-06 +2.872213171833444155e-05 +2.876210805820848921e-05 +7.303764963771165221e-05 +7.317878348044078575e-05 +1.627089912116706728e-04 +1.630957996839136346e-04 +3.178797761805404916e-04 +3.187520846702849978e-04 +5.448277254544514007e-04 +5.464873064525116019e-04 +8.190586024009303577e-04 +8.217559455426183459e-04 +1.078912809406229988e-03 +1.082673986059210555e-03 +1.242410608538422776e-03 +1.246899866485740461e-03 +1.247260646951661982e-03 +1.251820859528071390e-03 +1.089839231051715302e-03 +1.093774387843194241e-03 +8.297290547657503899e-04 +8.326821681067210967e-04 +5.533821059875110261e-04 +5.556458249212539290e-04 +3.262869846347018024e-04 +3.282080399640392655e-04 +1.644758934189006550e-04 +1.651838596353153853e-04 +7.323336467134893978e-05 +7.337818686101148789e-05 +2.875727902531907771e-05 +2.879747951982021919e-05 +9.894454077828769277e-06 +9.901913424147257105e-06 +2.985671951191606539e-06 +2.981292881337516429e-06 +7.853215406916749501e-07 +7.864267760897346040e-07 +2.606822001051555770e-06 +2.611084617169132440e-06 +7.570253805585842927e-06 +7.587478236540790751e-06 +1.924423841618631329e-05 +1.929839357693980439e-05 +4.282729378453623052e-05 +4.296699963110662499e-05 +8.345849327706300808e-05 +8.376140636367704210e-05 +1.424834646006260894e-04 +1.430423366549708178e-04 +2.131059969321910967e-04 +2.139894577462437555e-04 +2.790408971334771920e-04 +2.802413932104804817e-04 +3.195864534190636470e-04 +3.209891074483558625e-04 +3.198839500540671282e-04 +3.212912513251156370e-04 +2.797183978429781059e-04 +2.809293180730841675e-04 +2.137619991003264258e-04 +2.146552907699469763e-04 +1.428961751644084724e-04 +1.434611101016102029e-04 +8.363727926513693403e-05 +8.394296530382327451e-05 +4.288224353464413187e-05 +4.302269388486384911e-05 +1.925795980102327845e-05 +1.931226505767062683e-05 +7.572801304775587637e-06 +7.590048617651911953e-06 +2.607169240929026175e-06 +2.611432666321197238e-06 +7.869244904034222483e-07 +7.864628180174012540e-07 +1.811681900121778976e-07 +1.818977066157477134e-07 +6.013666738705436099e-07 +6.039256115261939093e-07 +1.746296836108871763e-06 +1.754848528222197469e-06 +4.438649324935923061e-06 +4.462779556543016544e-06 +9.875181983286964905e-06 +9.933277007146465088e-06 +1.923067287552946539e-05 +1.935078852514872296e-05 +3.278021697449139425e-05 +3.299438992253541129e-05 +4.891451012396405248e-05 +4.924468587807235979e-05 +6.388941498947383983e-05 +6.432996171976740807e-05 +7.303060233899729390e-05 +7.353970928471826804e-05 +7.304348883989602388e-05 +7.355293194316015154e-05 +6.391907301576983116e-05 +6.436038362580702487e-05 +4.894343549163842629e-05 +4.927437187914868703e-05 +3.279189490206582013e-05 +3.300654491978398728e-05 +1.922645333434370562e-05 +1.934677103118361604e-05 +9.866485915394293142e-06 +9.924643326108705308e-06 +4.433410095603473354e-06 +4.457555238897948883e-06 +1.744813298294420358e-06 +1.753370121270478106e-06 +6.011096572579853119e-07 +6.036696519356855956e-07 +1.814974797152624845e-07 +1.818657772122127300e-07 From 2fd410ad7254c7dce2277daf8bb7b06dffeeacf8 Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Fri, 24 Jan 2025 11:30:35 -0700 Subject: [PATCH 09/15] fix higher order Burgers for real this time --- ...tion_diffusion_2d_ghost_filler_outflow.hpp | 32 +++--- .../advection_diffusion_2d_prob_class.hpp | 102 ++++++++++-------- 2 files changed, 75 insertions(+), 59 deletions(-) diff --git a/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_outflow.hpp b/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_outflow.hpp index e9ad56bd..5d0d0c53 100644 --- a/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_outflow.hpp +++ b/include/pressiodemoapps/impl/advection_diffusion_2d_ghost_filler_outflow.hpp @@ -153,8 +153,8 @@ class Ghost2dOutflowFiller const auto back1 = graph(smPt, 8); if (left1 == -1){ - m_ghostLeft(gRow, 4) = 0.0; - m_ghostLeft(gRow, 5) = 0.0; + m_ghostLeft(gRow, 2) = 0.0; + m_ghostLeft(gRow, 3) = 0.0; } if (front1 == -1){ @@ -162,8 +162,8 @@ class Ghost2dOutflowFiller if (front0==-1){ ind = back0*m_numDofPerCell; } else { ind = front0*m_numDofPerCell; } - m_ghostFront(gRow, 4) = m_state(ind); - m_ghostFront(gRow, 5) = m_state(ind+1); + m_ghostFront(gRow, 2) = m_state(ind); + m_ghostFront(gRow, 3) = m_state(ind+1); } if (right1 == -1){ @@ -171,13 +171,13 @@ class Ghost2dOutflowFiller if (right0==-1){ ind = left0*m_numDofPerCell; } else { ind = right0*m_numDofPerCell; } - m_ghostRight(gRow, 4) = m_state(ind); - m_ghostRight(gRow, 5) = m_state(ind+1); + m_ghostRight(gRow, 2) = m_state(ind); + m_ghostRight(gRow, 3) = m_state(ind+1); } if (back1 == -1){ - m_ghostBack(gRow, 4) = 0.0; - m_ghostBack(gRow, 5) = 0.0; + m_ghostBack(gRow, 2) = 0.0; + m_ghostBack(gRow, 3) = 0.0; } } @@ -201,8 +201,8 @@ class Ghost2dOutflowFiller const auto back2 = graph(smPt, 12); if (left2 == -1){ - m_ghostLeft(gRow, 8) = 0.0; - m_ghostLeft(gRow, 9) = 0.0; + m_ghostLeft(gRow, 4) = 0.0; + m_ghostLeft(gRow, 5) = 0.0; } if (front2 == -1){ @@ -211,8 +211,8 @@ class Ghost2dOutflowFiller if (front1==-1 && front0!=-1){ ind = uIndex; } if (front1==-1 && front0==-1){ ind = back1*m_numDofPerCell; } - m_ghostFront(gRow, 8) = m_state(ind); - m_ghostFront(gRow, 9) = m_state(ind+1); + m_ghostFront(gRow, 4) = m_state(ind); + m_ghostFront(gRow, 5) = m_state(ind+1); } if (right2 == -1){ @@ -221,13 +221,13 @@ class Ghost2dOutflowFiller if (right1==-1 && right0!=-1){ ind = uIndex; } if (right1==-1 && right0==-1){ ind = left1*m_numDofPerCell; } - m_ghostRight(gRow, 8) = m_state(ind); - m_ghostRight(gRow, 9) = m_state(ind+1); + m_ghostRight(gRow, 4) = m_state(ind); + m_ghostRight(gRow, 5) = m_state(ind+1); } if (back2 == -1){ - m_ghostBack(gRow, 8) = 0.0; - m_ghostBack(gRow, 9) = 0.0; + m_ghostBack(gRow, 4) = 0.0; + m_ghostBack(gRow, 5) = 0.0; } } diff --git a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp index b40cb251..39580320 100644 --- a/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp +++ b/include/pressiodemoapps/impl/advection_diffusion_2d_prob_class.hpp @@ -209,11 +209,12 @@ class EigenApp void initializeJacobian(jacobian_type & J) { J.resize(m_numDofSampleMesh, m_numDofStencilMesh); - using Tr = Eigen::Triplet; std::vector trList; + initializeJacobianForNearBoundaryCells(trList); initializeJacobianForInnerCells(trList); + J.setFromTriplets(trList.begin(), trList.end()); // compress to make it Csr if (!J.isCompressed()){ @@ -377,13 +378,13 @@ class EigenApp for (std::size_t it=0; it -1){ + J.coeffRef(vIndex, uIndexLeft) += diffDxInvSq; + J.coeffRef(vIndex+1, uIndexLeft+1) += diffDxInvSq; } else{ - selfValue += -diffDxInvSq; + J.coeffRef(vIndex, uIndex) += -diffDxInvSq; + J.coeffRef(vIndex+1, uIndex+1) += -diffDxInvSq; } - if (uIndexFront != -1){ - J.coeffRef(smPt, uIndexFront) += diffDyInvSq; - }else{ - selfValue += -diffDyInvSq; + if (uIndexFront > -1){ + J.coeffRef(vIndex, uIndexFront) += diffDyInvSq; + J.coeffRef(vIndex+1, uIndexFront+1) += diffDyInvSq; + } + else{ + J.coeffRef(vIndex, uIndex) += -diffDyInvSq; + J.coeffRef(vIndex+1, uIndex+1) += -diffDyInvSq; } - if (uIndexRight != -1){ - J.coeffRef(smPt, uIndexRight) += diffDxInvSq; + if (uIndexRight > -1){ + J.coeffRef(vIndex, uIndexRight) += diffDxInvSq; + J.coeffRef(vIndex+1, uIndexRight+1) += diffDxInvSq; } else{ - selfValue += -diffDxInvSq; + J.coeffRef(vIndex, uIndex) += -diffDxInvSq; + J.coeffRef(vIndex+1, uIndex+1) += -diffDxInvSq; } - if (uIndexBack != -1){ - J.coeffRef(smPt, uIndexBack) += diffDyInvSq; + if (uIndexBack > -1){ + J.coeffRef(vIndex, uIndexBack) += diffDyInvSq; + J.coeffRef(vIndex+1, uIndexBack+1) += diffDyInvSq; } else{ - selfValue += -diffDyInvSq; + J.coeffRef(vIndex, uIndex) += -diffDyInvSq; + J.coeffRef(vIndex+1, uIndex+1) += -diffDyInvSq; } - J.coeffRef(smPt, uIndex) += selfValue; } } @@ -886,9 +902,9 @@ class EigenApp m_bcCellJacFactors, numDofPerCell); } funcx(smPt, numDofPerCell, m_bcCellJacFactors); - // u diffusion velocity contributions - V(vIndex) += diffDxInvSq*( stencilVals(4) - two*stencilVals(2) + stencilVals(0) ); - V(vIndex) += diffDyInvSq*( stencilVals(4) - two*stencilVals(2) + stencilVals(0) ); + // x-direction velocity contributions + V(vIndex) += diffDxInvSq*( stencilVals(4) - two*stencilVals(2) + stencilVals(0) ); + V(vIndex+1) += diffDxInvSq*( stencilVals(5) - two*stencilVals(3) + stencilVals(1) ); // y-direction inviscid contributions FillStencilY(smPt, it, numDofPerCell); @@ -900,8 +916,8 @@ class EigenApp m_bcCellJacFactors, numDofPerCell); } funcy(smPt, numDofPerCell, m_bcCellJacFactors); - // v diffusion velocity contributions - V(vIndex+1) += diffDxInvSq*( stencilVals(5) - two*stencilVals(3) + stencilVals(1) ); + // y-direction velocity contributions + V(vIndex) += diffDyInvSq*( stencilVals(4) - two*stencilVals(2) + stencilVals(0) ); V(vIndex+1) += diffDyInvSq*( stencilVals(5) - two*stencilVals(3) + stencilVals(1) ); // diffusion Jacobian contributions @@ -1019,31 +1035,31 @@ class EigenApp Fx(smPt, numDofPerCell); // *** add X contribution of diffusion *** if (stencilSize == 3){ - V(vIndex) += diffDxInvSq*( stencilVals(4) - two*stencilVals(2) + stencilVals(0) ); - V(vIndex) += diffDyInvSq*( stencilVals(4) - two*stencilVals(2) + stencilVals(0) ); + V(vIndex) += diffDxInvSq*( stencilVals(4) - two*stencilVals(2) + stencilVals(0) ); + V(vIndex+1) += diffDxInvSq*( stencilVals(5) - two*stencilVals(3) + stencilVals(1) ); } else if (stencilSize == 5){ - V(vIndex) += diffDxInvSq*( stencilVals(6) - two*stencilVals(4) + stencilVals(2) ); - V(vIndex) += diffDyInvSq*( stencilVals(6) - two*stencilVals(4) + stencilVals(2) ); + V(vIndex) += diffDxInvSq*( stencilVals(6) - two*stencilVals(4) + stencilVals(2) ); + V(vIndex+1) += diffDxInvSq*( stencilVals(7) - two*stencilVals(5) + stencilVals(3) ); } else if (stencilSize == 7){ - V(vIndex) += diffDxInvSq*( stencilVals(8) - two*stencilVals(6) + stencilVals(4) ); - V(vIndex) += diffDyInvSq*( stencilVals(8) - two*stencilVals(6) + stencilVals(4) ); + V(vIndex) += diffDxInvSq*( stencilVals(8) - two*stencilVals(6) + stencilVals(4) ); + V(vIndex+1) += diffDxInvSq*( stencilVals(9) - two*stencilVals(7) + stencilVals(5) ); } // *** add Y contribution of diffusion *** StencilFillerY(smPt, it, numDofPerCell); Fy(smPt, numDofPerCell); if (stencilSize == 3){ - V(vIndex+1) += diffDxInvSq*( stencilVals(5) - two*stencilVals(3) + stencilVals(1) ); + V(vIndex) += diffDyInvSq*( stencilVals(4) - two*stencilVals(2) + stencilVals(0) ); V(vIndex+1) += diffDyInvSq*( stencilVals(5) - two*stencilVals(3) + stencilVals(1) ); } else if (stencilSize == 5){ - V(vIndex+1) += diffDxInvSq*( stencilVals(7) - two*stencilVals(5) + stencilVals(3) ); + V(vIndex) += diffDyInvSq*( stencilVals(6) - two*stencilVals(4) + stencilVals(2) ); V(vIndex+1) += diffDyInvSq*( stencilVals(7) - two*stencilVals(5) + stencilVals(3) ); } else if (stencilSize == 7){ - V(vIndex+1) += diffDxInvSq*( stencilVals(9) - two*stencilVals(7) + stencilVals(5) ); + V(vIndex) += diffDyInvSq*( stencilVals(8) - two*stencilVals(6) + stencilVals(4) ); V(vIndex+1) += diffDyInvSq*( stencilVals(9) - two*stencilVals(7) + stencilVals(5) ); } } From 6ef870990f39e09771c36f3808aca0a74c0380cd Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Fri, 24 Jan 2025 11:35:48 -0700 Subject: [PATCH 10/15] update burgers outflow tests --- .../firstorder/gold.txt | 1600 ++++++++--------- .../weno3/gold.txt | 1600 ++++++++--------- .../weno5/gold.txt | 1600 ++++++++--------- 3 files changed, 2400 insertions(+), 2400 deletions(-) diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt b/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt index 474eda0f..29ea6a61 100644 --- a/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/firstorder/gold.txt @@ -1,800 +1,800 @@ -2.878435853441671882e-05 -2.869531668255346032e-05 -9.530982037036910828e-05 -9.505942356082608738e-05 -2.749974912102627557e-04 -2.746227741343039972e-04 -6.899574646928257173e-04 -6.897293429689125297e-04 -1.500033795827715151e-03 -1.500720193279563670e-03 -2.822064973168746972e-03 -2.824892157795791045e-03 -4.610708415846626919e-03 -4.616869578259982440e-03 -6.601414592715534532e-03 -6.611510596013462672e-03 -8.379221313796474113e-03 -8.393106651621986408e-03 -9.517791619126620903e-03 -9.534700759515693513e-03 -9.701111407125416822e-03 -9.719570533389249728e-03 -8.833663517137236090e-03 -8.851420057037501926e-03 -7.115443434111401282e-03 -7.130006148899908393e-03 -5.001165644855171122e-03 -5.010753557795717336e-03 -3.033321980556676067e-03 -3.037944788413154094e-03 -1.582386342210069822e-03 -1.583694598842404992e-03 -7.133006160069324661e-04 -7.132061729457258572e-04 -2.798847805045740498e-04 -2.795247033170625370e-04 -9.607867113080976410e-05 -9.582754307004416432e-05 -2.899159973173924329e-05 -2.878727966471867060e-05 -7.309220257245604003e-05 -7.288939106398787326e-05 -2.410944510642968816e-04 -2.410936266247234137e-04 -6.914253460433727365e-04 -6.914240651246261228e-04 -1.712203669921379253e-03 -1.712202165514351915e-03 -3.640778418160584614e-03 -3.640789127690505049e-03 -6.648741866440578685e-03 -6.648819287136765142e-03 -1.052919256689378684e-02 -1.052946136256923022e-02 -1.470730301096758071e-02 -1.470792561119093830e-02 -1.844178965159027836e-02 -1.844286710597108428e-02 -2.101539832333837801e-02 -2.101687586111416692e-02 -2.182504414037949453e-02 -2.182667556915919918e-02 -2.051062788694026084e-02 -2.051205288609510638e-02 -1.719853331973728375e-02 -1.719948244945651572e-02 -1.258870973459015781e-02 -1.258915913522057166e-02 -7.866839685444909636e-03 -7.866975896920449379e-03 -4.151051774447196696e-03 -4.151072959829258183e-03 -1.862882572692033502e-03 -1.862881946430799008e-03 -7.233741984770407276e-04 -7.233729244437952892e-04 -2.461070681811465674e-04 -2.461058907027326419e-04 -7.398518818259193616e-05 -7.348620898512582956e-05 -1.622097670071987125e-04 -1.616221444478203688e-04 -5.320539744584208523e-04 -5.320523587466157280e-04 -1.506710624135335075e-03 -1.506710611936163281e-03 -3.640889332072427299e-03 -3.640889319065053909e-03 -7.454093573964185385e-03 -7.454093808233752672e-03 -1.299954743808335103e-02 -1.299955026987374002e-02 -1.969834951255066552e-02 -1.969836441436558297e-02 -2.662108260976803198e-02 -2.662112953580858185e-02 -3.281566751751069377e-02 -3.281576774984114320e-02 -3.742837494915363800e-02 -3.742853053359730675e-02 -3.966385575476325670e-02 -3.966403504296556887e-02 -3.876714151607913578e-02 -3.876729190117009227e-02 -3.440117690695580766e-02 -3.440126532874383802e-02 -2.693768531416699044e-02 -2.693771909234863801e-02 -1.791481549883795765e-02 -1.791482297196403395e-02 -9.790494900953376420e-03 -9.790495686106072751e-03 -4.388411333644686579e-03 -4.388411345124230457e-03 -1.669356532028817364e-03 -1.669356520212967199e-03 -5.574507789668151211e-04 -5.574483132710568748e-04 -1.658758372112477907e-04 -1.646101548920075972e-04 -3.145266191002086295e-04 -3.131806483085781880e-04 -1.023193501785587840e-03 -1.023187613503736366e-03 -2.844572449144928353e-03 -2.844572406817938350e-03 -6.649406098996572291e-03 -6.649406098339039235e-03 -1.299957336823059743e-02 -1.299957337581784944e-02 -2.157754376378446734e-02 -2.157754390363079630e-02 -3.135919412272297063e-02 -3.135919517434553744e-02 -4.119232095950498690e-02 -4.119232529188292247e-02 -5.007530846288316129e-02 -5.007531966408032553e-02 -5.714959302014491899e-02 -5.714961270186149495e-02 -6.157953773280567394e-02 -6.157956192988053856e-02 -6.233964902217657006e-02 -6.233966945387245384e-02 -5.847519049231179877e-02 -5.847520196448799390e-02 -4.943524710503998526e-02 -4.943525113166633705e-02 -3.591738961732447027e-02 -3.591739042820918382e-02 -2.107569397789789759e-02 -2.107569406157473388e-02 -9.586743056648312777e-03 -9.586743059977535092e-03 -3.510201545232182873e-03 -3.510201510987562713e-03 -1.124936838134926904e-03 -1.124928957685426053e-03 -3.275499485504851783e-04 -3.248068560613161476e-04 -5.330010633777988466e-04 -5.304642561445566508e-04 -1.716543163530204631e-03 -1.716526199184285938e-03 -4.669521964934218727e-03 -4.669521771568317312e-03 -1.053194531491488672e-02 -1.053194531108249572e-02 -1.969851698477502466e-02 -1.969851698501098522e-02 -3.135920653245365119e-02 -3.135920654136846453e-02 -4.415435185340556290e-02 -4.415435194368004523e-02 -5.685269817323444774e-02 -5.685269864348621582e-02 -6.847982229352703176e-02 -6.847982374058164678e-02 -7.822171403951574953e-02 -7.822171691236749769e-02 -8.529230852543145946e-02 -8.529231234745678070e-02 -8.864435925597445587e-02 -8.864436262704003533e-02 -8.691404813555062003e-02 -8.691405005811189688e-02 -7.865043569882169960e-02 -7.865043638645793922e-02 -6.282338221034369785e-02 -6.282338235987351693e-02 -4.100389165080766535e-02 -4.100389167015520975e-02 -1.983329039562208018e-02 -1.983329039464053548e-02 -6.953628808356468460e-03 -6.953628641205499179e-03 -2.049113153316602012e-03 -2.049091095968416220e-03 -5.711043552591187934e-04 -5.659524427433483768e-04 -7.903028882702028317e-04 -7.862810311888734265e-04 -2.520658554858589036e-03 -2.520620808190049498e-03 -6.722063963195439550e-03 -6.722063353386150547e-03 -1.471528458653541607e-02 -1.471528456976869091e-02 -2.662175952537287199e-02 -2.662175952468353451e-02 -4.119239098454702264e-02 -4.119239098520385833e-02 -5.685270629680522908e-02 -5.685270630580126217e-02 -7.234215474138663837e-02 -7.234215479898233048e-02 -8.671936123494718152e-02 -8.671936144299698113e-02 -9.921807008662858474e-02 -9.921807055206177672e-02 -1.091247030464396472e-01 -1.091247037221880628e-01 -1.155101202019118700e-01 -1.155101208395917234e-01 -1.169597360141769460e-01 -1.169597363996130179e-01 -1.115021415967708679e-01 -1.115021417459204633e-01 -9.661177002863315100e-02 -9.661177006613408391e-02 -7.071741896366900981e-02 -7.071741896958354257e-02 -3.843771076332505587e-02 -3.843771074842145669e-02 -1.351733948653980819e-02 -1.351733881549695149e-02 -3.457429332194558030e-03 -3.457377182109380720e-03 -8.810882738739797332e-04 -8.725903321912977092e-04 -1.027192273399879247e-03 -1.021747527579035730e-03 -3.255450102547748515e-03 -3.255385554362830343e-03 -8.575648630430048394e-03 -8.575647310386685582e-03 -1.845832514887307818e-02 -1.845832510354701236e-02 -3.281744540507572361e-02 -3.281744540271912952e-02 -5.007554183961181876e-02 -5.007554183950903293e-02 -6.847985739772238789e-02 -6.847985739871088884e-02 -8.671936683672760993e-02 -8.671936684442857479e-02 -1.038597213116796703e-01 -1.038597213439825945e-01 -1.191671173436816694e-01 -1.191671174248880860e-01 -1.319911839277597698e-01 -1.319911840570225092e-01 -1.415454964756297229e-01 -1.415454966078319166e-01 -1.466090185058722128e-01 -1.466090185928991541e-01 -1.451411367173588429e-01 -1.451411367547842113e-01 -1.338509701603097790e-01 -1.338509701712866096e-01 -1.081913713116361003e-01 -1.081913713119518200e-01 -6.742790905639871324e-02 -6.742790898670787680e-02 -2.596140139573187289e-02 -2.596139923523580612e-02 -5.683675358966426908e-03 -5.683571530511672028e-03 -1.206857463898149477e-03 -1.194336872888567685e-03 -1.172314957856686584e-03 -1.165958543185705108e-03 -3.712813971138138359e-03 -3.712728938729376992e-03 -9.773842860908207170e-03 -9.773840887643084688e-03 -2.104034385794538789e-02 -2.104034378096882735e-02 -3.743151132150049354e-02 -3.743151131695338085e-02 -5.715007938409805144e-02 -5.715007938373975471e-02 -7.822180149101595759e-02 -7.822180149110086189e-02 -9.921808737580845028e-02 -9.921808737690020197e-02 -1.191671208024655121e-01 -1.191671208077563354e-01 -1.373432028082445522e-01 -1.373432028231576507e-01 -1.531393636791850976e-01 -1.531393637052751167e-01 -1.658892506590495253e-01 -1.658892506881687046e-01 -1.746140671284751589e-01 -1.746140671496030361e-01 -1.775815225621634741e-01 -1.775815225723947621e-01 -1.714380953710867017e-01 -1.714380953744892300e-01 -1.497746779138869333e-01 -1.497746779087926472e-01 -1.055294433014741240e-01 -1.055294430924539340e-01 -4.700474781350934272e-02 -4.700474242042610579e-02 -9.613900135300137290e-03 -9.613721316532377117e-03 -1.485616237373463266e-03 -1.468763203061437339e-03 -1.175460754223032686e-03 -1.169040804837912992e-03 -3.742937569739133042e-03 -3.742851273036458624e-03 -9.968330065757324138e-03 -9.968328027873302882e-03 -2.185252265457882093e-02 -2.185252257214364419e-02 -3.966761266688007687e-02 -3.966761266172056516e-02 -6.158018828527875299e-02 -6.158018828483245027e-02 -8.529244174336064743e-02 -8.529244174332734074e-02 -1.091247335055234996e-01 -1.091247335056796108e-01 -1.319911913606263698e-01 -1.319911913615227639e-01 -1.531393654107384428e-01 -1.531393654135695115e-01 -1.719852103544464994e-01 -1.719852103598982218e-01 -1.879519514580388073e-01 -1.879519514647020884e-01 -2.002635424060218161e-01 -2.002635424113684837e-01 -2.076131370578607194e-01 -2.076131370607888493e-01 -2.071944695480562593e-01 -2.071944695490715860e-01 -1.920415858851777235e-01 -1.920415858744436710e-01 -1.493450568953753055e-01 -1.493450564751228615e-01 -7.683890860715027193e-02 -7.683889839246103859e-02 -1.650798896307488842e-02 -1.650771625414242452e-02 -1.699600853471086885e-03 -1.678524733538301747e-03 -1.034664117130583471e-03 -1.029068876057553060e-03 -3.327934075444114338e-03 -3.327866860315510308e-03 -9.055091880465574936e-03 -9.055090436041570920e-03 -2.053243063913805580e-02 -2.053243058400133769e-02 -3.877015474304751352e-02 -3.877015473963717901e-02 -6.234020409383064787e-02 -6.234020409352540593e-02 -8.864448491775797634e-02 -8.864448491772432270e-02 -1.155101527094781200e-01 -1.155101527094976738e-01 -1.415455055844744015e-01 -1.415455055846284171e-01 -1.658892532974934331e-01 -1.658892532980404955e-01 -1.879519521327199516e-01 -1.879519521338814114e-01 -2.072232870679533989e-01 -2.072232870695108475e-01 -2.230787598163541108e-01 -2.230787598177361997e-01 -2.345739925172407592e-01 -2.345739925180928276e-01 -2.398226555301655183e-01 -2.398226555304376895e-01 -2.324573289643807883e-01 -2.324573289512753826e-01 -1.950686791474326442e-01 -1.950686785690027014e-01 -1.121649327556052539e-01 -1.121649184223565687e-01 -2.624071966613808135e-02 -2.624036783915414603e-02 -1.867851723948758596e-03 -1.843817840711638309e-03 -7.980901342947319078e-04 -7.939124458707776067e-04 -2.598099271370930049e-03 -2.598059330773514700e-03 -7.259338377396317918e-03 -7.259337682010529036e-03 -1.721074468094975149e-02 -1.721074465824106933e-02 -3.440276795941455551e-02 -3.440276795811260391e-02 -5.847549194486535012e-02 -5.847549194474825629e-02 -8.691412270460875666e-02 -8.691412270459444867e-02 -1.169597578284165551e-01 -1.169597578284179151e-01 -1.466090255394811859e-01 -1.466090255395074982e-01 -1.746140695054427261e-01 -1.746140695055487246e-01 -2.002635431985865799e-01 -2.002635431988354642e-01 -2.230787600303958396e-01 -2.230787600307625462e-01 -2.425774737260610880e-01 -2.425774737264204950e-01 -2.581085646639432740e-01 -2.581085646641909093e-01 -2.685117438165195991e-01 -2.685117438165963710e-01 -2.691171569145612841e-01 -2.691171569042051792e-01 -2.393864497603014063e-01 -2.393864492260011634e-01 -1.468697902990059867e-01 -1.468697766765765522e-01 -3.486762947643066990e-02 -3.486729937024990456e-02 -1.821935650831452537e-03 -1.798805841257522953e-03 -5.383510226241925139e-04 -5.357090191654633685e-04 -1.771352434920303240e-03 -1.771334420839493305e-03 -5.073235037535030363e-03 -5.073234813124035368e-03 -1.259336380938049470e-02 -1.259336380377763624e-02 -2.693821692818422833e-02 -2.693821692790474356e-02 -4.943534986294464278e-02 -4.943534986291936439e-02 -7.865046417342774765e-02 -7.865046417342431984e-02 -1.115021512762295053e-01 -1.115021512762294498e-01 -1.451411403732914829e-01 -1.451411403732958683e-01 -1.775815240123481686e-01 -1.775815240123683192e-01 -2.076131376358141545e-01 -2.076131376358668901e-01 -2.345739927313580109e-01 -2.345739927314437201e-01 -2.581085647236869285e-01 -2.581085647237797986e-01 -2.775039786933309327e-01 -2.775039786934020980e-01 -2.917030980118773265e-01 -2.917030980118779926e-01 -3.013404987176535599e-01 -3.013404987120588130e-01 -2.808980624460143405e-01 -2.808980621375506415e-01 -1.692899017002916229e-01 -1.692898947046723723e-01 -3.374925537633300526e-02 -3.374908585851657539e-02 -1.207378887571548647e-03 -1.191283250600158909e-03 -3.171582379027903511e-04 -3.157624412681827772e-04 -1.050901020299339168e-03 -1.050894815096064128e-03 -3.060774572333059898e-03 -3.060774523686202089e-03 -7.867997666892268677e-03 -7.867997666083341099e-03 -1.791492126438883753e-02 -1.791492126435626636e-02 -3.591741099168129642e-02 -3.591741099167822943e-02 -6.282338933216334576e-02 -6.282338933216283228e-02 -9.661177300704819337e-02 -9.661177300704815174e-02 -1.338509715260581268e-01 -1.338509715260588762e-01 -1.714380960172744162e-01 -1.714380960172781077e-01 -2.071944698526173023e-01 -2.071944698526281825e-01 -2.398226556674331322e-01 -2.398226556674525334e-01 -2.685117438709280768e-01 -2.685117438709515580e-01 -2.917030980271906881e-01 -2.917030980272103946e-01 -3.117617136631726793e-01 -3.117617136631505304e-01 -3.376590428734305149e-01 -3.376590428706431890e-01 -3.102915466120482191e-01 -3.102915465064547962e-01 -1.507316571312431464e-01 -1.507316555862789897e-01 -1.759755075056416637e-02 -1.759751806585758971e-02 -4.437247998737189588e-04 -4.372854183546671372e-04 -1.631646982124685123e-04 -1.625601940404110333e-04 -5.423108190521189372e-04 -5.423091409558188905e-04 -1.590292075327279231e-03 -1.590292067938313490e-03 -4.151235251275100201e-03 -4.151235251206037390e-03 -9.790506451388914996e-03 -9.790506451386932207e-03 -2.107569652885297323e-02 -2.107569652885276507e-02 -4.100389280779231926e-02 -4.100389280779225681e-02 -7.071741961453641145e-02 -7.071741961453641145e-02 -1.081913716925065883e-01 -1.081913716925067548e-01 -1.497746781348676115e-01 -1.497746781348683609e-01 -1.920415860109691009e-01 -1.920415860109713768e-01 -2.324573290330719799e-01 -2.324573290330761710e-01 -2.691171569477724956e-01 -2.691171569477780467e-01 -3.013404987306130822e-01 -3.013404987306181337e-01 -3.376590428768991292e-01 -3.376590428768876384e-01 -3.613740464734497837e-01 -3.613740464721680312e-01 -2.645751509405827040e-01 -2.645751509170987115e-01 -7.065945602322755426e-02 -7.065945584152551195e-02 -2.637730598504576651e-03 -2.637727317944814007e-03 -1.687998556321841854e-04 -1.672534897862135324e-04 -7.335165753107376094e-05 -7.314484069507349586e-05 -2.439138145300259817e-04 -2.439134427127699341e-04 -7.149736783165511894e-04 -7.149736774475039507e-04 -1.862901414518337330e-03 -1.862901414514497520e-03 -4.388411973358693173e-03 -4.388411973358630723e-03 -9.586743208275469788e-03 -9.586743208275466319e-03 -1.983329050383643086e-02 -1.983329050383643433e-02 -3.843771085360914164e-02 -3.843771085360914164e-02 -6.742790911508013407e-02 -6.742790911508016183e-02 -1.055294433128085990e-01 -1.055294433128087794e-01 -1.493450568761650887e-01 -1.493450568761656438e-01 -1.950686791534989861e-01 -1.950686791534999298e-01 -2.393864498139974817e-01 -2.393864498139988695e-01 -2.808980624959316330e-01 -2.808980624959329098e-01 -3.102915466375744113e-01 -3.102915466375637532e-01 -2.645751509527408118e-01 -2.645751509523304734e-01 -1.057330141655321021e-01 -1.057330141618885860e-01 -7.209461017072474852e-03 -7.209461009350292583e-03 -2.625315004210071880e-04 -2.625307756376813297e-04 -7.426113860083676671e-05 -7.375582586273816922e-05 -2.883945212177754325e-05 -2.878918931242011541e-05 -9.585302646723919940e-05 -9.585296046854240308e-05 -2.800828485439807599e-04 -2.800828484570636327e-04 -7.233754436173310803e-04 -7.233754436171622700e-04 -1.669356548098332223e-03 -1.669356548098331139e-03 -3.510201538606926540e-03 -3.510201538606927407e-03 -6.953628765219154427e-03 -6.953628765219159631e-03 -1.351733929608287497e-02 -1.351733929608291834e-02 -2.596140072472010590e-02 -2.596140072472031060e-02 -4.700474602104098842e-02 -4.700474602104161292e-02 -7.683890508789656404e-02 -7.683890508789782692e-02 -1.121649278074400985e-01 -1.121649278074419165e-01 -1.468697856600935381e-01 -1.468697856600949814e-01 -1.692898993480994041e-01 -1.692898993481002090e-01 -1.507316566992032425e-01 -1.507316566991991347e-01 -7.065945599807303690e-02 -7.065945599799991483e-02 -7.209461016883152336e-03 -7.209461016707511584e-03 -3.085949366213993966e-04 -3.085949364133116178e-04 -9.665591089574910330e-05 -9.665571744141282636e-05 -2.904792970303228384e-05 -2.888228838061175112e-05 -9.921992550378782455e-06 -9.917398442042992188e-06 -3.296537952501657102e-05 -3.296537443258161341e-05 -9.604030039914687766e-05 -9.604030039459118210e-05 -2.461066162508684821e-04 -2.461066162508908166e-04 -5.574494660385147541e-04 -5.574494660386214396e-04 -1.124933161034850004e-03 -1.124933161035284552e-03 -2.049103856702132881e-03 -2.049103856703787373e-03 -3.457408707234657912e-03 -3.457408707240024279e-03 -5.683634998529368473e-03 -5.683634998543218506e-03 -9.613828068253208251e-03 -9.613828068280875355e-03 -1.650787081782627633e-02 -1.650787081786754887e-02 -2.624055620551864546e-02 -2.624055620556151741e-02 -3.486746856698519359e-02 -3.486746856701335856e-02 -3.374916999860069766e-02 -3.374916999861107825e-02 -1.759753391668683609e-02 -1.759753391668819958e-02 -2.637728870523183260e-03 -2.637728870520957610e-03 -2.625310582342362106e-04 -2.625310582338923017e-04 -9.665577488858740718e-05 -9.665577485243646112e-05 -3.305802138898751948e-05 -3.305797472744860180e-05 -9.972508446555249746e-06 -9.928387193172535650e-06 -2.987743672941010641e-06 -2.990856044558519369e-06 -9.927679313113510533e-06 -9.927682524690510966e-06 -2.886967493020699645e-05 -2.886967494470990135e-05 -7.363351097200261587e-05 -7.363351100979855413e-05 -1.650288558057150647e-04 -1.650288559146652128e-04 -3.258067068654602527e-04 -3.258067071613410855e-04 -5.680091860720520424e-04 -5.680091868104079249e-04 -8.762743675182081606e-04 -8.762743691185050955e-04 -1.200125110543119383e-03 -1.200125113371710694e-03 -1.476848069174106336e-03 -1.476848073054872054e-03 -1.688731899155271029e-03 -1.688731903185373452e-03 -1.855375863986138745e-03 -1.855375867145893538e-03 -1.809797492959649588e-03 -1.809797494819932566e-03 -1.198801557107623478e-03 -1.198801557924578706e-03 -4.401349736691313893e-04 -4.401349739714526541e-04 -1.678131055064414207e-04 -1.678131056159019299e-04 -7.390620290523347493e-05 -7.390620294310907494e-05 -2.892370277384048236e-05 -2.892370277976403787e-05 -9.936031652269990347e-06 -9.936022719573077259e-06 -3.000635389341720259e-06 -2.991855026213038753e-06 -7.874654275943492858e-07 -7.896716508014391816e-07 -2.618039319944192471e-06 -2.618046681102984805e-06 -7.606393526496476661e-06 -7.606410862934870627e-06 -1.935741734636826068e-05 -1.935746733673568692e-05 -4.317726034183715566e-05 -4.317738600535513138e-05 -8.447225136927691562e-05 -8.447253023075077221e-05 -1.450135390790621671e-04 -1.450140859501287732e-04 -2.183480451627651197e-04 -2.183489805518622716e-04 -2.878677780413409085e-04 -2.878691425590421040e-04 -3.314108318873008798e-04 -3.314124922490713156e-04 -3.323703682814160691e-04 -3.323720304632305118e-04 -2.901654917417195527e-04 -2.901668600145216876e-04 -2.205133799961729363e-04 -2.205143184495035526e-04 -1.459420351364650601e-04 -1.459425836217939654e-04 -8.470440937748929919e-05 -8.470468887477468182e-05 -4.324671820066475106e-05 -4.324684405361256523e-05 -1.937577178411685008e-05 -1.937582181828665056e-05 -7.610119383112707791e-06 -7.610136725273094766e-06 -2.618621795896517226e-06 -2.618626000050029246e-06 -7.906698670344471021e-07 -7.897414805354715165e-07 -1.816512200055342424e-07 -1.831132321742630540e-07 -6.028649762382792465e-07 -6.079866027375677449e-07 -1.749794193048175598e-06 -1.766905599489249043e-06 -4.446712872680047417e-06 -4.495007338408844480e-06 -9.895816146221506841e-06 -1.001219636369932488e-05 -1.928882957665929192e-05 -1.952988157043547218e-05 -3.293306202818927094e-05 -3.336398214641530835e-05 -4.924197929155844038e-05 -4.990835888413392194e-05 -6.444064778380405485e-05 -6.533264166379451718e-05 -7.374844619782117638e-05 -7.478138045222389803e-05 -7.376229110175719068e-05 -7.479609634741213819e-05 -6.447267234319041507e-05 -6.536660487450691103e-05 -4.927391969127032517e-05 -4.994206189432669044e-05 -3.295403420153928195e-05 -3.338595196408798216e-05 -1.929880619798280653e-05 -1.954028312004270877e-05 -9.899361626477657086e-06 -1.001588453621093399e-05 -4.447665845927772423e-06 -4.495996436335256502e-06 -1.749989180551918945e-06 -1.767107415747062194e-06 -6.028968819447122512e-07 -6.080180253856458391e-07 -1.823781337314699656e-07 -1.831169957574088870e-07 +2.873982525357717896e-05 +2.873982525357717896e-05 +9.518451723826902263e-05 +9.518451723826902263e-05 +2.748100603588286730e-04 +2.748100603588286730e-04 +6.898420427176647730e-04 +6.898420427176647730e-04 +1.500367128108482653e-03 +1.500367128108482653e-03 +2.823443253766142781e-03 +2.823443253766142781e-03 +4.613711001676902915e-03 +4.613711001676902915e-03 +6.606348232252464391e-03 +6.606348232252464391e-03 +8.386056372392937039e-03 +8.386056372392937039e-03 +9.526208910376336367e-03 +9.526208910376336367e-03 +9.710417656489738272e-03 +9.710417656489738272e-03 +8.842713975724484157e-03 +8.842713975724484157e-03 +7.122917846142971104e-03 +7.122917846142971104e-03 +5.006099646306888182e-03 +5.006099646306888182e-03 +3.035700161556099345e-03 +3.035700161556099345e-03 +1.583060375335185741e-03 +1.583060375335185741e-03 +7.132564019247373101e-04 +7.132564019247373101e-04 +2.797044747132363621e-04 +2.797044747132363621e-04 +9.595270342935998645e-05 +9.595270342935998645e-05 +2.888939192729877558e-05 +2.888939192729877558e-05 +7.299101790638417263e-05 +7.299101790638417263e-05 +2.410940502829049753e-04 +2.410940502829049753e-04 +6.914248354664422839e-04 +6.914248354664422839e-04 +1.712203068150484203e-03 +1.712203068150484203e-03 +3.640781883844851526e-03 +3.640781883844851526e-03 +6.648767095784709029e-03 +6.648767095784709029e-03 +1.052927963725216326e-02 +1.052927963725216326e-02 +1.470750584158317040e-02 +1.470750584158317040e-02 +1.844214827200072945e-02 +1.844214827200072945e-02 +2.101590791367392852e-02 +2.101590791367392852e-02 +2.182563182749713143e-02 +2.182563182749713143e-02 +2.051116346444867289e-02 +2.051116346444867289e-02 +1.719890276001106305e-02 +1.719890276001106305e-02 +1.258888919332892126e-02 +1.258888919332892126e-02 +7.866895093151702115e-03 +7.866895093151702115e-03 +4.151060628453971842e-03 +4.151060628453971842e-03 +1.862882414570770240e-03 +1.862882414570770240e-03 +7.233736877822215033e-04 +7.233736877822215033e-04 +2.461065532856013672e-04 +2.461065532856013672e-04 +7.373597191880513287e-05 +7.373597191880513287e-05 +1.619162163677340181e-04 +1.619162163677340181e-04 +5.320530437926035460e-04 +5.320530437926035460e-04 +1.506710618129291105e-03 +1.506710618129291105e-03 +3.640889328820760568e-03 +3.640889328820760568e-03 +7.454093597361336788e-03 +7.454093597361336788e-03 +1.299954772666421163e-02 +1.299954772666421163e-02 +1.969835095915133463e-02 +1.969835095915133810e-02 +2.662108719676254884e-02 +2.662108719676254884e-02 +3.281567818967875277e-02 +3.281567818967875277e-02 +3.742839416225328397e-02 +3.742839416225328397e-02 +3.966388214772299109e-02 +3.966388214772299109e-02 +3.876716768981489786e-02 +3.876716768981489786e-02 +3.440119465550674910e-02 +3.440119465550674910e-02 +2.693769294484439983e-02 +2.693769294484439983e-02 +1.791481737015239439e-02 +1.791481737015239439e-02 +9.790495122709425707e-03 +9.790495122709425707e-03 +4.388411340120931467e-03 +4.388411340120931467e-03 +1.669356529052715577e-03 +1.669356529052715360e-03 +5.574497953119461916e-04 +5.574497953119461916e-04 +1.652431740165662697e-04 +1.652431740165662697e-04 +3.138536123155618663e-04 +3.138536123155618663e-04 +1.023190008095733712e-03 +1.023190008095733712e-03 +2.844572417833858297e-03 +2.844572417833858297e-03 +6.649406098495009958e-03 +6.649406098495009958e-03 +1.299957336727236221e-02 +1.299957336727236221e-02 +2.157754374143133064e-02 +2.157754374143133064e-02 +3.135919392792172605e-02 +3.135919392792173299e-02 +4.119232010067142014e-02 +4.119232010067142707e-02 +5.007530624758425170e-02 +5.007530624758425863e-02 +5.714958938500840080e-02 +5.714958938500840080e-02 +6.157953383164312122e-02 +6.157953383164312122e-02 +6.233964633366768232e-02 +6.233964633366768232e-02 +5.847518933583577966e-02 +5.847518933583577966e-02 +4.943524681113868613e-02 +4.943524681113868613e-02 +3.591738957422349610e-02 +3.591738957422349610e-02 +2.107569397401294620e-02 +2.107569397401294620e-02 +9.586743056381845374e-03 +9.586743056381845374e-03 +3.510201536893694119e-03 +3.510201536893694119e-03 +1.124933936521681005e-03 +1.124933936521681005e-03 +3.261780234227465371e-04 +3.261780234227465371e-04 +5.317318670383966136e-04 +5.317318670383966136e-04 +1.716532924291051029e-03 +1.716532924291051029e-03 +4.669521818085370542e-03 +4.669521818085370542e-03 +1.053194531115930928e-02 +1.053194531115930928e-02 +1.969851698454277295e-02 +1.969851698454277295e-02 +3.135920652902691314e-02 +3.135920652902691314e-02 +4.415435180969642243e-02 +4.415435180969642243e-02 +5.685269791553066582e-02 +5.685269791553066582e-02 +6.847982145022933620e-02 +6.847982145022933620e-02 +7.822171232738263369e-02 +7.822171232738263369e-02 +8.529230625399511490e-02 +8.529230625399511490e-02 +8.864435728193642561e-02 +8.864435728193642561e-02 +8.691404701734552207e-02 +8.691404701734552207e-02 +7.865043528669900252e-02 +7.865043528669900252e-02 +6.282338211036585240e-02 +6.282338211036585240e-02 +4.100389163469370102e-02 +4.100389163469370102e-02 +1.983329039346224190e-02 +1.983329039346224190e-02 +6.953628767390820052e-03 +6.953628767390820052e-03 +2.049105401645301503e-03 +2.049105401645301503e-03 +5.685272794434416800e-04 +5.685272794434416800e-04 +7.882906212555158658e-04 +7.882906212555158658e-04 +2.520635574158126228e-03 +2.520635574158126228e-03 +6.722063494166427740e-03 +6.722063494166427740e-03 +1.471528456981613386e-02 +1.471528456981613386e-02 +2.662175952444097507e-02 +2.662175952444097507e-02 +4.119239098414981953e-02 +4.119239098414981953e-02 +5.685270629024663513e-02 +5.685270629024663513e-02 +7.234215468871942056e-02 +7.234215468871942056e-02 +8.671936101895622029e-02 +8.671936101895622029e-02 +9.921806956495843322e-02 +9.921806956495844709e-02 +1.091247022483874674e-01 +1.091247022483874535e-01 +1.155101194134125625e-01 +1.155101194134125625e-01 +1.169597355069472294e-01 +1.169597355069472294e-01 +1.115021413786817794e-01 +1.115021413786817794e-01 +9.661176996321826915e-02 +9.661176996321826915e-02 +7.071741894936955930e-02 +7.071741894936955930e-02 +3.843771075688261207e-02 +3.843771075688261207e-02 +1.351733930811111449e-02 +1.351733930811111449e-02 +3.457411149549197323e-03 +3.457411149549197323e-03 +8.768393408823488494e-04 +8.768393408823489579e-04 +1.024469824696957500e-03 +1.024469824696957500e-03 +3.255410691692508639e-03 +3.255410691692508639e-03 +8.575647610993098607e-03 +8.575647610993098607e-03 +1.845832510335571053e-02 +1.845832510335571053e-02 +3.281744540194538040e-02 +3.281744540194538040e-02 +5.007554183929467662e-02 +5.007554183929467662e-02 +6.847985739685481799e-02 +6.847985739685481799e-02 +8.671936682720306211e-02 +8.671936682720306211e-02 +1.038597212620602367e-01 +1.038597212620602367e-01 +1.191671172007175566e-01 +1.191671172007175566e-01 +1.319911836759235513e-01 +1.319911836759235513e-01 +1.415454961931899014e-01 +1.415454961931899014e-01 +1.466090182984615131e-01 +1.466090182984615131e-01 +1.451411366134933156e-01 +1.451411366134933156e-01 +1.338509701225856496e-01 +1.338509701225856496e-01 +1.081913713009177574e-01 +1.081913713009177436e-01 +6.742790903549861214e-02 +6.742790903549861214e-02 +2.596140075687665763e-02 +2.596140075687665763e-02 +5.683638013680356732e-03 +5.683638013680355865e-03 +1.200603655052420249e-03 +1.200603655052420249e-03 +1.169140521971979464e-03 +1.169140521971979464e-03 +3.712762116879750329e-03 +3.712762116879750329e-03 +9.773841340687235493e-03 +9.773841340687235493e-03 +2.104034378075574432e-02 +2.104034378075574432e-02 +3.743151131542591520e-02 +3.743151131542591520e-02 +5.715007938343958510e-02 +5.715007938343958510e-02 +7.822180149083812761e-02 +7.822180149083812761e-02 +9.921808737422396773e-02 +9.921808737422396773e-02 +1.191671207917373992e-01 +1.191671207917373715e-01 +1.373432027709245995e-01 +1.373432027709245995e-01 +1.531393636030465855e-01 +1.531393636030465855e-01 +1.658892505617783619e-01 +1.658892505617783619e-01 +1.746140670466522771e-01 +1.746140670466522771e-01 +1.775815225144266873e-01 +1.775815225144266873e-01 +1.714380953504801852e-01 +1.714380953504801852e-01 +1.497746779069446810e-01 +1.497746779069446810e-01 +1.055294432533241678e-01 +1.055294432533241678e-01 +4.700474608257837472e-02 +4.700474608257836778e-02 +9.613831405004649375e-03 +9.613831405004647640e-03 +1.477208741864330203e-03 +1.477208741864330203e-03 +1.172259265432595322e-03 +1.172259265432595322e-03 +3.742885157004168396e-03 +3.742885157004168396e-03 +9.968328507257488008e-03 +9.968328507257488008e-03 +2.185252257262234807e-02 +2.185252257262234807e-02 +3.966761266000910086e-02 +3.966761266000910779e-02 +6.158018828446369664e-02 +6.158018828446369664e-02 +8.529244174323030725e-02 +8.529244174323030725e-02 +1.091247335052700496e-01 +1.091247335052700496e-01 +1.319911913584337626e-01 +1.319911913584337626e-01 +1.531393654013509242e-01 +1.531393654013509242e-01 +1.719852103320660408e-01 +1.719852103320660408e-01 +1.879519514253438217e-01 +1.879519514253438217e-01 +2.002635423745368903e-01 +2.002635423745368903e-01 +2.076131370365280893e-01 +2.076131370365280893e-01 +2.071944695371971679e-01 +2.071944695371971679e-01 +1.920415858822571709e-01 +1.920415858822571709e-01 +1.493450568351995522e-01 +1.493450568351995522e-01 +7.683890521167344168e-02 +7.683890521167345555e-02 +1.650787558751332096e-02 +1.650787558751333137e-02 +1.689095293933452497e-03 +1.689095293933452497e-03 +1.031877449084909288e-03 +1.031877449084909288e-03 +3.327893491351383796e-03 +3.327893491351383796e-03 +9.055090787826160226e-03 +9.055090787826160226e-03 +2.053243058508896768e-02 +2.053243058508896768e-02 +3.877015473854902167e-02 +3.877015473854902861e-02 +6.234020409327012402e-02 +6.234020409327012402e-02 +8.864448491766446780e-02 +8.864448491766445393e-02 +1.155101527094306579e-01 +1.155101527094306579e-01 +1.415455055840548204e-01 +1.415455055840548204e-01 +1.658892532952233601e-01 +1.658892532952233601e-01 +1.879519521263174897e-01 +1.879519521263174897e-01 +2.072232870572120189e-01 +2.072232870572120189e-01 +2.230787598045296249e-01 +2.230787598045296249e-01 +2.345739925080181643e-01 +2.345739925080181643e-01 +2.398226555245457081e-01 +2.398226555245457081e-01 +2.324573289639490503e-01 +2.324573289639490503e-01 +1.950686791263761544e-01 +1.950686791263761544e-01 +1.121649280712701258e-01 +1.121649280712701258e-01 +2.624056464278549244e-02 +2.624056464278549244e-02 +1.855874179394101766e-03 +1.855874179394101766e-03 +7.960110845126047111e-04 +7.960110845126047111e-04 +2.598075333385254770e-03 +2.598075333385254770e-03 +7.259337858595617601e-03 +7.259337858595617601e-03 +1.721074465909781109e-02 +1.721074465909781109e-02 +3.440276795771838453e-02 +3.440276795771837759e-02 +5.847549194464776723e-02 +5.847549194464775335e-02 +8.691412270456867761e-02 +8.691412270456866374e-02 +1.169597578284046480e-01 +1.169597578284046480e-01 +1.466090255394078279e-01 +1.466090255394078279e-01 +1.746140695049198110e-01 +1.746140695049198110e-01 +2.002635431968111113e-01 +2.002635431968111113e-01 +2.230787600269563686e-01 +2.230787600269563409e-01 +2.425774737217365196e-01 +2.425774737217364641e-01 +2.581085646600990158e-01 +2.581085646600990158e-01 +2.685117438136923051e-01 +2.685117438136923051e-01 +2.691171569138732234e-01 +2.691171569138732234e-01 +2.393864497956572357e-01 +2.393864497956572635e-01 +1.468697860583690062e-01 +1.468697860583690340e-01 +3.486747978138997339e-02 +3.486747978138998033e-02 +1.810406215364018367e-03 +1.810406215364019017e-03 +5.370364921721321096e-04 +5.370364921721321096e-04 +1.771341744497385894e-03 +1.771341744497385894e-03 +5.073234873003343477e-03 +5.073234873003343477e-03 +1.259336380411173878e-02 +1.259336380411173878e-02 +2.693821692782434260e-02 +2.693821692782434260e-02 +4.943534986289626482e-02 +4.943534986289626482e-02 +7.865046417341728380e-02 +7.865046417341726992e-02 +1.115021512762264522e-01 +1.115021512762264522e-01 +1.451411403732800476e-01 +1.451411403732800476e-01 +1.775815240122357030e-01 +1.775815240122357030e-01 +2.076131376353408109e-01 +2.076131376353408109e-01 +2.345739927302898098e-01 +2.345739927302897543e-01 +2.581085647221513790e-01 +2.581085647221513235e-01 +2.775039786917873896e-01 +2.775039786917873341e-01 +2.917030980105513871e-01 +2.917030980105513871e-01 +3.013404987164187698e-01 +3.013404987164187698e-01 +2.808980624867751241e-01 +2.808980624867751796e-01 +1.692898996791745991e-01 +1.692898996791746269e-01 +3.374917818627542337e-02 +3.374917818627543031e-02 +1.199353212326397791e-03 +1.199353212326398225e-03 +3.164636245147167508e-04 +3.164636245147167508e-04 +1.050897393823448317e-03 +1.050897393823448317e-03 +3.060774537530709227e-03 +3.060774537530709227e-03 +7.867997666154346800e-03 +7.867997666154346800e-03 +1.791492126434729090e-02 +1.791492126434729090e-02 +3.591741099167507223e-02 +3.591741099167507223e-02 +6.282338933216155552e-02 +6.282338933216155552e-02 +9.661177300704749948e-02 +9.661177300704749948e-02 +1.338509715260565724e-01 +1.338509715260565724e-01 +1.714380960172517399e-01 +1.714380960172517399e-01 +2.071944698524973705e-01 +2.071944698524973705e-01 +2.398226556671150533e-01 +2.398226556671150256e-01 +2.685117438704012760e-01 +2.685117438704012760e-01 +2.917030980265991613e-01 +2.917030980265991058e-01 +3.117617136625963070e-01 +3.117617136625963070e-01 +3.376590428723901249e-01 +3.376590428723901249e-01 +3.102915466361798602e-01 +3.102915466361799712e-01 +1.507316568240995580e-01 +1.507316568240996690e-01 +1.759753657089992152e-02 +1.759753657089993886e-02 +4.405142112716267438e-04 +4.405142112716269064e-04 +1.628637770638636021e-04 +1.628637770638636021e-04 +5.423098632020054675e-04 +5.423098632020054675e-04 +1.590292070246753387e-03 +1.590292070246753387e-03 +4.151235251214945195e-03 +4.151235251214945195e-03 +9.790506451386415260e-03 +9.790506451386415260e-03 +2.107569652885251527e-02 +2.107569652885251527e-02 +4.100389280779209028e-02 +4.100389280779209722e-02 +7.071741961453627268e-02 +7.071741961453627268e-02 +1.081913716925064078e-01 +1.081913716925064078e-01 +1.497746781348633094e-01 +1.497746781348633094e-01 +1.920415860109393469e-01 +1.920415860109393469e-01 +2.324573290329800257e-01 +2.324573290329800257e-01 +2.691171569475998004e-01 +2.691171569475997449e-01 +3.013404987304033056e-01 +3.013404987304033056e-01 +3.376590428766200191e-01 +3.376590428766200747e-01 +3.613740464733033453e-01 +3.613740464733033453e-01 +2.645751509534173262e-01 +2.645751509534173818e-01 +7.065945601997783432e-02 +7.065945601997788983e-02 +2.637729311442317797e-03 +2.637729311442319098e-03 +1.680293702632584352e-04 +1.680293702632584352e-04 +7.324869501053931438e-05 +7.324869501053931438e-05 +2.439136107724817787e-04 +2.439136107724817787e-04 +7.149736777567683920e-04 +7.149736777567683920e-04 +1.862901414515245619e-03 +1.862901414515245619e-03 +4.388411973358616845e-03 +4.388411973358616845e-03 +9.586743208275457645e-03 +9.586743208275457645e-03 +1.983329050383641351e-02 +1.983329050383641351e-02 +3.843771085360912776e-02 +3.843771085360912776e-02 +6.742790911508014795e-02 +6.742790911508014795e-02 +1.055294433128078080e-01 +1.055294433128078080e-01 +1.493450568761576780e-01 +1.493450568761576780e-01 +1.950686791534719522e-01 +1.950686791534719522e-01 +2.393864498139401942e-01 +2.393864498139401942e-01 +2.808980624958546390e-01 +2.808980624958546390e-01 +3.102915466374367437e-01 +3.102915466374367437e-01 +2.645751509529743473e-01 +2.645751509529743473e-01 +1.057330141696317949e-01 +1.057330141696318226e-01 +7.209461018410067215e-03 +7.209461018410069817e-03 +2.625311877190467796e-04 +2.625311877190467796e-04 +7.400926428664477666e-05 +7.400926428664477666e-05 +2.881444435594164553e-05 +2.881444435594164553e-05 +9.585299182492693299e-05 +9.585299182492693299e-05 +2.800828484928022432e-04 +2.800828484928022432e-04 +7.233754436172108422e-04 +7.233754436172108422e-04 +1.669356548098330922e-03 +1.669356548098330922e-03 +3.510201538606926974e-03 +3.510201538606926974e-03 +6.953628765219156162e-03 +6.953628765219156162e-03 +1.351733929608290967e-02 +1.351733929608290967e-02 +2.596140072472026550e-02 +2.596140072472026203e-02 +4.700474602104129374e-02 +4.700474602104128680e-02 +7.683890508789568974e-02 +7.683890508789568974e-02 +1.121649278074332984e-01 +1.121649278074332984e-01 +1.468697856600742202e-01 +1.468697856600741924e-01 +1.692898993480654313e-01 +1.692898993480654035e-01 +1.507316566991467599e-01 +1.507316566991467321e-01 +7.065945599816894629e-02 +7.065945599816893241e-02 +7.209461017210366286e-03 +7.209461017210368021e-03 +3.085949365568110879e-04 +3.085949365568110879e-04 +9.665582052955351132e-05 +9.665582052955351132e-05 +2.896535004338501613e-05 +2.896535004338501613e-05 +9.919720688948248041e-06 +9.919720688948248041e-06 +3.296537694468057461e-05 +3.296537694468057461e-05 +9.604030039669556431e-05 +9.604030039669556431e-05 +2.461066162508814925e-04 +2.461066162508814925e-04 +5.574494660385840347e-04 +5.574494660385840347e-04 +1.124933161035150545e-03 +1.124933161035150545e-03 +2.049103856703332008e-03 +2.049103856703332008e-03 +3.457408707238642138e-03 +3.457408707238641705e-03 +5.683634998539646710e-03 +5.683634998539646710e-03 +9.613828068273325839e-03 +9.613828068273325839e-03 +1.650787081785519417e-02 +1.650787081785519070e-02 +2.624055620554653634e-02 +2.624055620554653634e-02 +3.486746856699922403e-02 +3.486746856699922403e-02 +3.374916999859873395e-02 +3.374916999859873395e-02 +1.759753391667905759e-02 +1.759753391667905412e-02 +2.637728870528548326e-03 +2.637728870528547893e-03 +2.625310582352186604e-04 +2.625310582352186604e-04 +9.665577487229198405e-05 +9.665577487229198405e-05 +3.305799867477848613e-05 +3.305799867477848613e-05 +9.950518956072408193e-06 +9.950518956072408193e-06 +2.989301098584977337e-06 +2.989301098584977337e-06 +9.927680931472465884e-06 +9.927680931472465884e-06 +2.886967493763391347e-05 +2.886967493763391347e-05 +7.363351099190124940e-05 +7.363351099190124940e-05 +1.650288558657967786e-04 +1.650288558657967786e-04 +3.258067070379667388e-04 +3.258067070379667388e-04 +5.680091865251434913e-04 +5.680091865251434913e-04 +8.762743685381023991e-04 +8.762743685381023991e-04 +1.200125112387124583e-03 +1.200125112387124583e-03 +1.476848071725970655e-03 +1.476848071725970655e-03 +1.688731901793414638e-03 +1.688731901793414638e-03 +1.855375866019437622e-03 +1.855375866019437622e-03 +1.809797494126035369e-03 +1.809797494126035369e-03 +1.198801557605039389e-03 +1.198801557605039389e-03 +4.401349738458046812e-04 +4.401349738458046269e-04 +1.678131055669875526e-04 +1.678131055669875526e-04 +7.390620292520634919e-05 +7.390620292520634919e-05 +2.892370277705373573e-05 +2.892370277705373573e-05 +9.936027232859333486e-06 +9.936027232859333486e-06 +2.996263814266988420e-06 +2.996263814266988420e-06 +7.885662595402906146e-07 +7.885662595402906146e-07 +2.618043009336446800e-06 +2.618043009336446800e-06 +7.606402243416762565e-06 +7.606402243416762565e-06 +1.935744263419941931e-05 +1.935744263419941931e-05 +4.317732465290848265e-05 +4.317732465290848265e-05 +8.447239664758985484e-05 +8.447239664758985484e-05 +1.450138302030300902e-04 +1.450138302030300902e-04 +2.183485535690893212e-04 +2.183485535690893212e-04 +2.878685314670370891e-04 +2.878685314670370891e-04 +3.314117564275045522e-04 +3.314117564275045522e-04 +3.323712941417572087e-04 +3.323712941417572087e-04 +2.901662479352816936e-04 +2.901662479352816936e-04 +2.205138907228784923e-04 +2.205138907228784923e-04 +1.459423275069515779e-04 +1.459423275069515779e-04 +8.470455514567227801e-05 +8.470455514567227801e-05 +4.324678265665701853e-05 +4.324678265665701853e-05 +1.937579710520107211e-05 +1.937579710520107211e-05 +7.610128104894790865e-06 +7.610128104894790865e-06 +2.618623909600831834e-06 +2.618623909600831834e-06 +7.902092518265551476e-07 +7.902092518265551476e-07 +1.823829432661276714e-07 +1.823829432661276714e-07 +6.054324388772379224e-07 +6.054324388772379224e-07 +1.758367701267488359e-06 +1.758367701267488359e-06 +4.470901254621804705e-06 +4.470901254621804705e-06 +9.954087888303038127e-06 +9.954087888303038127e-06 +1.940949665430117800e-05 +1.940949665430117800e-05 +3.314874007852850520e-05 +3.314874007852850520e-05 +4.957547991972452450e-05 +4.957547991972452450e-05 +6.488706005392352156e-05 +6.488706005392352156e-05 +7.426542406889497091e-05 +7.426542406889497091e-05 +7.427975061048183562e-05 +7.427975061048183562e-05 +6.492016138602213558e-05 +6.492016138602213558e-05 +4.960840950866481525e-05 +4.960840950866481525e-05 +3.317028165434255158e-05 +3.317028165434255158e-05 +1.941971858674511545e-05 +1.941971858674511545e-05 +9.957715942325221677e-06 +9.957715942325221677e-06 +4.471875145462200742e-06 +4.471875145462200742e-06 +1.758566644689487472e-06 +1.758566644689487472e-06 +6.054638239274369353e-07 +6.054638239274369353e-07 +1.827505789116900402e-07 +1.827505789116900402e-07 diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/weno3/gold.txt b/tests_cpp/eigen_2d_burgers_outflow_implicit/weno3/gold.txt index 3315ec98..b8cd3325 100644 --- a/tests_cpp/eigen_2d_burgers_outflow_implicit/weno3/gold.txt +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/weno3/gold.txt @@ -1,800 +1,800 @@ -2.869164037512069828e-05 -2.861840838897752496e-05 -9.486549450156784777e-05 -9.462773158050948367e-05 -2.729646154371015063e-04 -2.723761304373860533e-04 -6.816642769398251417e-04 -6.810466247676095390e-04 -1.471643437661504603e-03 -1.472207228454400262e-03 -2.738318649002725695e-03 -2.740830861059724045e-03 -4.412529714431424714e-03 -4.416469598513743898e-03 -6.232697759355248536e-03 -6.237620323918251740e-03 -7.829778427333174834e-03 -7.836351109046735264e-03 -8.852935586720943675e-03 -8.861758081908624810e-03 -8.968807531436976538e-03 -8.977938888412528851e-03 -8.246894769314614890e-03 -8.255529529845267653e-03 -6.725623924581707221e-03 -6.731195836771592701e-03 -4.765577570155121040e-03 -4.767293856679812730e-03 -2.908082985576875088e-03 -2.909514155604309583e-03 -1.526076669663537855e-03 -1.530456136477342799e-03 -6.951730787376193908e-04 -6.996492470409749120e-04 -2.792614374386939865e-04 -2.800721900797777347e-04 -9.835912193230185907e-05 -9.716514887567583437e-05 -2.978307897514767934e-05 -2.912196108097550950e-05 -7.276291579095801963e-05 -7.239756617756851068e-05 -2.400122544127648134e-04 -2.397350379377795532e-04 -6.862147948577710602e-04 -6.858601753911208396e-04 -1.693421519263502064e-03 -1.693399101208418979e-03 -3.574171895161784660e-03 -3.575417382742301399e-03 -6.464414855521904112e-03 -6.468137663400322195e-03 -1.015737994337416461e-02 -1.016445363854157589e-02 -1.413560191657432102e-02 -1.414641076439049176e-02 -1.767380529559235691e-02 -1.768792809451380163e-02 -2.035925661552390881e-02 -2.037698127905456652e-02 -2.079778628039445978e-02 -2.081614045213212721e-02 -1.973694989047737602e-02 -1.975641964220566441e-02 -1.674219692932830267e-02 -1.675995260802429915e-02 -1.218279190255237322e-02 -1.219510424776822782e-02 -7.531015182499117659e-03 -7.537318519219006648e-03 -3.972837984447738502e-03 -3.975020233029446549e-03 -1.800211874688818032e-03 -1.800377099863842163e-03 -7.077785174667968957e-04 -7.074244799493200958e-04 -2.432104301930739778e-04 -2.429233743905006757e-04 -7.779623085155224177e-05 -7.493672450080987937e-05 -1.611755515567542360e-04 -1.600038999089053483e-04 -5.288015527224721422e-04 -5.279729886403147212e-04 -1.492711536264204998e-03 -1.492699185665964266e-03 -3.569693461215865064e-03 -3.569702645936314103e-03 -7.191210827613083931e-03 -7.191292473390608134e-03 -1.235033477657217216e-02 -1.235072381652536910e-02 -1.854534427074775935e-02 -1.854648650695761569e-02 -2.504095055433121220e-02 -2.504336380151346575e-02 -3.067585200384374822e-02 -3.067996363887498523e-02 -3.573455196663962580e-02 -3.573699498507491856e-02 -3.705955472056689931e-02 -3.706474344917325137e-02 -3.616689312645530313e-02 -3.617282729757455989e-02 -3.258179189116059554e-02 -3.258713597417060848e-02 -2.549879982847467683e-02 -2.550189921213503672e-02 -1.653107420771264546e-02 -1.653206108691820247e-02 -8.916790323500454682e-03 -8.916897401243774335e-03 -4.064050126519997211e-03 -4.064021154615783844e-03 -1.592809315458309149e-03 -1.592805459402272606e-03 -5.443894200223200336e-04 -5.435067564409498328e-04 -1.767981293394456854e-04 -1.679808114233938905e-04 -3.119006524137765322e-04 -3.096254918592010507e-04 -1.016513323210380907e-03 -1.014618363594317315e-03 -2.803521910099476908e-03 -2.803481896930973098e-03 -6.443396576391606859e-03 -6.443419576093868499e-03 -1.234425531317091471e-02 -1.234423082038306821e-02 -2.021029541364106549e-02 -2.021018340394658414e-02 -2.918604109494551610e-02 -2.918581082051478759e-02 -3.868161846647261842e-02 -3.868125142760447249e-02 -4.625607911824340668e-02 -4.625635204144403628e-02 -5.477280264711650165e-02 -5.476368019488225131e-02 -5.797781759741851837e-02 -5.797569762132123716e-02 -5.746301021269684811e-02 -5.746228836800695849e-02 -5.431731624332785530e-02 -5.431703658853617028e-02 -4.621744335848528007e-02 -4.621717172186981526e-02 -3.257445018043010621e-02 -3.257423009516403900e-02 -1.802242754474745606e-02 -1.802235426791807399e-02 -8.197295968529349011e-03 -8.197294727542148857e-03 -3.172486289053711925e-03 -3.172505042274366242e-03 -1.071944413631515996e-03 -1.069823195835817309e-03 -3.532324556105772965e-04 -3.276777823003646927e-04 -5.280140256505080204e-04 -5.252433659911570846e-04 -1.703971547846016687e-03 -1.700464401207878390e-03 -4.575588316873577081e-03 -4.575453267530902972e-03 -1.010519380295692680e-02 -1.010525771165638256e-02 -1.852342594546670107e-02 -1.852343239457862611e-02 -2.918492258105444270e-02 -2.918489367219067807e-02 -4.102209333973635963e-02 -4.102200092644977397e-02 -5.291544318244880557e-02 -5.291505499636305065e-02 -6.356615987214901675e-02 -6.356817296826472452e-02 -7.305735805332005950e-02 -7.302697335935144640e-02 -8.139226191098933305e-02 -8.138696963733799139e-02 -8.211415213622191844e-02 -8.211236735666554987e-02 -8.031125570500508015e-02 -8.031029939586757649e-02 -7.316524869512026907e-02 -7.316476657266930694e-02 -5.752681329979585090e-02 -5.752664709499340223e-02 -3.394966005194063885e-02 -3.394964588413992845e-02 -1.507043742312396198e-02 -1.507045136348009705e-02 -5.647963264649820056e-03 -5.648032630572988669e-03 -1.863116465904808170e-03 -1.858870326336672625e-03 -6.204365903063142808e-04 -5.621459202798348735e-04 -7.824540085538831064e-04 -7.799507224261642037e-04 -2.500132708736320895e-03 -2.494693763076874342e-03 -6.561256746207617084e-03 -6.560935318434886476e-03 -1.404502280544815164e-02 -1.404515395199446536e-02 -2.498559405540618644e-02 -2.498562509639318946e-02 -3.867449124855671522e-02 -3.867449009447080505e-02 -5.291253698090823271e-02 -5.291253305688468911e-02 -7.054744921919228751e-02 -7.054730664058962708e-02 -8.116147435249318476e-02 -8.116197183334088183e-02 -9.596004997362413136e-02 -9.591588818125346139e-02 -1.047027035321945743e-01 -1.046951800626392398e-01 -1.088918321935653105e-01 -1.088903813500946421e-01 -1.083178332324092746e-01 -1.083171239051591156e-01 -1.037141697768812904e-01 -1.037138980796523252e-01 -9.000051607289891176e-02 -9.000049660030047527e-02 -6.117877946650990273e-02 -6.117881212488274906e-02 -2.625457064768701651e-02 -2.625461459256131155e-02 -9.098667469724784629e-03 -9.098787525906216686e-03 -2.864719856412238381e-03 -2.857386531449232665e-03 -9.070543107683315528e-04 -8.533567537544908908e-04 -1.016283656995211693e-03 -1.013827488049255003e-03 -3.229328386621033425e-03 -3.222044231193067158e-03 -8.362123115114831681e-03 -8.361559991001830255e-03 -1.755232704028839366e-02 -1.755253587874569532e-02 -3.057814916399519481e-02 -3.057821200865682570e-02 -4.623851098546246513e-02 -4.623851099018075339e-02 -6.357914245354061300e-02 -6.357915054359540574e-02 -8.118333762949926646e-02 -8.118308504935192738e-02 -9.942743714506417640e-02 -9.943333544494560583e-02 -1.123011042130520887e-01 -1.122655559048562901e-01 -1.336927237111158462e-01 -1.336714984017092767e-01 -1.391548797399476678e-01 -1.391523138569634443e-01 -1.393368397960125793e-01 -1.393362360129878907e-01 -1.371304523088009153e-01 -1.371303900489209970e-01 -1.272764969215830488e-01 -1.272765465555257547e-01 -9.994673017118814451e-02 -9.994677322721405577e-02 -4.634724291077257224e-02 -4.634734726337647742e-02 -1.347471517421571473e-02 -1.347481016252959768e-02 -3.893720204829199429e-03 -3.882648659253967217e-03 -1.147441472906898016e-03 -1.095316109613255796e-03 -1.159407319317966919e-03 -1.156504341877010681e-03 -3.684749572815042111e-03 -3.676180595928100082e-03 -9.560124605977994919e-03 -9.559369422261208490e-03 -2.022129328643821125e-02 -2.022156114642881253e-02 -3.557290503251137742e-02 -3.557300275845642901e-02 -5.471542330842427138e-02 -5.471542473299629422e-02 -7.301378750597244116e-02 -7.301378120717885722e-02 -9.589886712301445848e-02 -9.589869894944834383e-02 -1.122450269742770734e-01 -1.122468272484557911e-01 -1.297607180437038432e-01 -1.297293070012890959e-01 -1.459613187802826784e-01 -1.459534921871100399e-01 -1.681348309834225507e-01 -1.681344862568260046e-01 -1.731653303432451885e-01 -1.731651250884226889e-01 -1.714100903722510783e-01 -1.714100122849535890e-01 -1.654131742988878273e-01 -1.654131690641909291e-01 -1.446097402076451655e-01 -1.446097651742117018e-01 -8.359371687414159091e-02 -8.359394341946026208e-02 -1.950661906107502980e-02 -1.950658460692529170e-02 -4.666467728522913534e-03 -4.651406875719230061e-03 -1.254621142678188526e-03 -1.246509146763401374e-03 -1.162867267581495093e-03 -1.159747957383726368e-03 -3.715478695965772783e-03 -3.706766114735432754e-03 -9.696304388898572407e-03 -9.695534245752196814e-03 -2.066133371740766153e-02 -2.066161625384109121e-02 -3.688932859724722985e-02 -3.688944514866929897e-02 -5.791199141600612832e-02 -5.791200108214462211e-02 -8.137731880500372050e-02 -8.137735369604147395e-02 -1.046954554115234470e-01 -1.046955460394484866e-01 -1.336558813956480185e-01 -1.336557806478679555e-01 -1.459502192701622458e-01 -1.459475943759011574e-01 -1.657277258048985291e-01 -1.657283273107825750e-01 -1.812652525142549875e-01 -1.812652129471740425e-01 -1.991990025509802198e-01 -1.991988466073184583e-01 -2.034583765739561845e-01 -2.034583155995041692e-01 -2.013959401680613381e-01 -2.013958957350577839e-01 -1.891827718464478003e-01 -1.891827698884647468e-01 -1.363305817904844897e-01 -1.363310122162166571e-01 -3.289722677162384284e-02 -3.289697969674180295e-02 -4.962666038406935744e-03 -4.943507411112126743e-03 -1.258581220902253023e-03 -1.251893303167938686e-03 -1.024476181674740432e-03 -1.021688621599790067e-03 -3.308016794059987029e-03 -3.300254916605891743e-03 -8.869736850707523115e-03 -8.869404897000811305e-03 -1.960700539832721523e-02 -1.960772663559063114e-02 -3.601107772705935267e-02 -3.601151687868615892e-02 -5.740340526832107826e-02 -5.740340612080158805e-02 -8.210643135971670836e-02 -8.210659679745520301e-02 -1.088969542289089654e-01 -1.088961169886409480e-01 -1.391557244776112923e-01 -1.391554328612125691e-01 -1.681308534157508194e-01 -1.681323836495648705e-01 -1.812643072358485208e-01 -1.812646427652325476e-01 -2.101868062785584579e-01 -2.101868412855976698e-01 -2.198462717570583425e-01 -2.198462667897682632e-01 -2.312732930275505916e-01 -2.312733226341165127e-01 -2.316873419946773316e-01 -2.316873717236324903e-01 -2.262462134812202874e-01 -2.262462143334107167e-01 -1.915904413919319316e-01 -1.915911144253912013e-01 -6.844955435769432828e-02 -6.844886428207108686e-02 -5.449175538606725738e-03 -5.420092465983839675e-03 -1.101441594452586426e-03 -1.095488677392906238e-03 -7.906321643647412070e-04 -7.885419430522082893e-04 -2.582925573000778140e-03 -2.576891805558266784e-03 -7.139541767178640176e-03 -7.139174251553486242e-03 -1.663370162168973515e-02 -1.663395011003698451e-02 -3.246793855591151301e-02 -3.246810168129439511e-02 -5.427376977160696531e-02 -5.427375220858409594e-02 -8.030681745835889507e-02 -8.030665978393285165e-02 -1.083230754741967145e-01 -1.083228779260214519e-01 -1.393409399253152658e-01 -1.393408114402942544e-01 -1.731667663958048609e-01 -1.731668086431570608e-01 -1.991990742890072663e-01 -1.991990608990188427e-01 -2.198463000192047712e-01 -2.198463282636802796e-01 -2.583318729065257058e-01 -2.583319457924851403e-01 -2.584691444138801364e-01 -2.584692092193191515e-01 -2.607110308109876207e-01 -2.607110874880650964e-01 -2.617067670809142266e-01 -2.617067977703009252e-01 -2.436384053224116553e-01 -2.436391493197107849e-01 -1.256659436429149734e-01 -1.256653085470701148e-01 -7.942983429869885162e-03 -7.896099326301780907e-03 -8.460356874965310314e-04 -8.409169397105736073e-04 -5.335205479540083406e-04 -5.322031437728632708e-04 -1.758737794970856305e-03 -1.754869413522967868e-03 -4.975820869580510619e-03 -4.975643958824165977e-03 -1.211642221852457339e-02 -1.211649070779160196e-02 -2.544563053704858302e-02 -2.544564341428825691e-02 -4.619905283087674674e-02 -4.619904828291395565e-02 -7.316532419730324699e-02 -7.316527340365658327e-02 -1.037190396652569041e-01 -1.037189809801255663e-01 -1.371347885707612235e-01 -1.371347277857660474e-01 -1.714119157819729289e-01 -1.714118932790706928e-01 -2.034589011763965061e-01 -2.034588947046259422e-01 -2.312733822728083588e-01 -2.312734097110439591e-01 -2.584691052316877014e-01 -2.584691708934553356e-01 -3.007114157010741806e-01 -3.007115105867964600e-01 -3.064170829887463698e-01 -3.064171522916973589e-01 -3.004480755657000235e-01 -3.004481215601332300e-01 -2.868260019001321881e-01 -2.868264687400386426e-01 -2.002486409995075378e-01 -2.002457984367696786e-01 -1.779925351470506775e-02 -1.773983491968859558e-02 -5.865885647998635372e-04 -5.819714231361349920e-04 -3.145919452904230021e-04 -3.138987123276927712e-04 -1.041956461870181773e-03 -1.039908412798318726e-03 -2.997478541652455128e-03 -2.997422005005361597e-03 -7.505883407919532006e-03 -7.505909668872208333e-03 -1.651805917918622996e-02 -1.651806022784889708e-02 -3.257289867451286514e-02 -3.257290044849495136e-02 -5.752893289639383900e-02 -5.752894539632101567e-02 -9.000359238595229128e-02 -9.000359115554108780e-02 -1.272793263010607856e-01 -1.272793132722644105e-01 -1.654146482581755617e-01 -1.654146290463969216e-01 -2.013963998546851597e-01 -2.013963939035570139e-01 -2.316873751135216375e-01 -2.316873985394163060e-01 -2.607109197505133591e-01 -2.607109781631791190e-01 -3.064168950733909269e-01 -3.064169781019067118e-01 -3.210996812256074473e-01 -3.210997469811724403e-01 -3.304925601406348279e-01 -3.304925479931504761e-01 -3.500559424894251204e-01 -3.500563888111632438e-01 -2.449309360089017007e-01 -2.449288261636059227e-01 -1.635459347142187089e-02 -1.630251907055047314e-02 -3.408100340587586733e-04 -3.380378981527980276e-04 -1.621371380902170459e-04 -1.618377297116840245e-04 -5.373995844509424314e-04 -5.365233104807252355e-04 -1.560937093369614429e-03 -1.560924848851186599e-03 -3.968190969467367407e-03 -3.968197197883691768e-03 -8.914822736940429884e-03 -8.914823249840048494e-03 -1.802257841378478512e-02 -1.802257852513100209e-02 -3.395019778494873935e-02 -3.395020359593872716e-02 -6.117925932651729209e-02 -6.117927223711443901e-02 -9.994749377283697334e-02 -9.994750476751283752e-02 -1.446103636498728973e-01 -1.446103626377833462e-01 -1.891830910944732325e-01 -1.891830872970280963e-01 -2.262461567971192633e-01 -2.262461714432180138e-01 -2.617066178537493792e-01 -2.617066623979288909e-01 -3.004479130164895428e-01 -3.004479775775121819e-01 -3.304924458278132859e-01 -3.304924929753443319e-01 -3.907844024608485012e-01 -3.907843774060372755e-01 -3.937720735434341868e-01 -3.937725965760564550e-01 -1.944147295855945812e-01 -1.944142217534256256e-01 -4.346744823238856033e-03 -4.322173693006360964e-03 -1.654422631138611219e-04 -1.645613654356620356e-04 -7.300472456313683253e-05 -7.290224827779083765e-05 -2.421390559648863103e-04 -2.418509518636451658e-04 -7.047261035352742412e-04 -7.047245643858402516e-04 -1.800961897510782719e-03 -1.800962596012702652e-03 -4.063968289351555137e-03 -4.063968319487845302e-03 -8.197284493558557733e-03 -8.197284489684777964e-03 -1.507046548312756216e-02 -1.507046563133646391e-02 -2.625452363792774024e-02 -2.625452505397997058e-02 -4.634705156999776449e-02 -4.634705663606682874e-02 -8.359368035339620473e-02 -8.359368351048857004e-02 -1.363308048878789092e-01 -1.363308008285154527e-01 -1.915903918221610880e-01 -1.915903924048664997e-01 -2.436382836462678281e-01 -2.436383036592484341e-01 -2.868258270968644386e-01 -2.868258598123960001e-01 -3.500557784018948349e-01 -3.500558106138647596e-01 -3.937719461226664719e-01 -3.937719624154464859e-01 -3.243689204403437665e-01 -3.243690516147456626e-01 -3.406827399033945936e-02 -3.406827857472304738e-02 -2.910843072902718348e-04 -2.894087664805396328e-04 -7.345944507688691519e-05 -7.320792604195051152e-05 -2.873091346539911059e-05 -2.870598593995405220e-05 -9.535791195216814778e-05 -9.529591960803359091e-05 -2.775803791081925742e-04 -2.775802446908238455e-04 -7.085097591087374195e-04 -7.085097909568627934e-04 -1.592818720309198974e-03 -1.592818720896086934e-03 -3.172434312424172488e-03 -3.172434312206808167e-03 -5.647850864737824148e-03 -5.647850867840127284e-03 -9.098528529663687733e-03 -9.098528558105912004e-03 -1.347467369225072500e-02 -1.347467381642690476e-02 -1.950664926926399395e-02 -1.950664938307263355e-02 -3.289729842432222856e-02 -3.289729644475653664e-02 -6.844914113263542155e-02 -6.844913420334269860e-02 -1.256652812327975766e-01 -1.256652767999908438e-01 -2.002481590484986584e-01 -2.002481656281752675e-01 -2.449307072264425567e-01 -2.449307195245742086e-01 -1.944146501883502465e-01 -1.944146599656113028e-01 -3.406825218248504816e-02 -3.406822769790976424e-02 -3.705676563898797644e-04 -3.705674802772173336e-04 -9.582991674817047958e-05 -9.576642897131505759e-05 -2.883198505819104156e-05 -2.874948267207735403e-05 -9.890403529105292745e-06 -9.888147295674193723e-06 -3.283026705255905791e-05 -3.282997660392739336e-05 -9.559255438651743518e-05 -9.559255411255804539e-05 -2.434973922903714279e-04 -2.434973919508284725e-04 -5.448585016593145191e-04 -5.448585011764196535e-04 -1.072601855867977901e-03 -1.072601830742174120e-03 -1.864021769283921281e-03 -1.864021566754833163e-03 -2.865593127344232428e-03 -2.865592410357634730e-03 -3.893911457567781308e-03 -3.893909988099296480e-03 -4.666074735595365092e-03 -4.666072627663709477e-03 -4.962434492364505012e-03 -4.962432253516679131e-03 -5.449551045513040780e-03 -5.449549002664810793e-03 -7.943448354014830126e-03 -7.943446563291826218e-03 -1.779803311259556611e-02 -1.779803094579762712e-02 -1.635461346658281453e-02 -1.635461335300812322e-02 -4.347766738057508643e-03 -4.347766967740436701e-03 -2.918131382665487428e-04 -2.918130855740383401e-04 -9.600343652635248204e-05 -9.600343631851472029e-05 -3.288285170570939890e-05 -3.288260764826400986e-05 -9.915278317951971621e-06 -9.893270525897883213e-06 -2.979158600084043410e-06 -2.980724215106074322e-06 -9.889066045303381231e-06 -9.896422471294536764e-06 -2.880922254795322544e-05 -2.880924782924424956e-05 -7.326311771013134858e-05 -7.326317009241621896e-05 -1.633685417780135095e-04 -1.633686675753084536e-04 -3.197438809074066896e-04 -3.197441107787440408e-04 -5.490583697347274812e-04 -5.490587101727686286e-04 -8.274256402558338242e-04 -8.274261884300992444e-04 -1.093000997746437558e-03 -1.093001845550112478e-03 -1.261445771144719188e-03 -1.261446914804528838e-03 -1.267031757804784262e-03 -1.267032992145336557e-03 -1.107744061464697614e-03 -1.107745222244031595e-03 -8.494652157071934124e-04 -8.494663419797085502e-04 -5.877246129945196997e-04 -5.877256466489324139e-04 -3.410890248290736793e-04 -3.410895135524982563e-04 -1.655466588145530456e-04 -1.655468064322476978e-04 -7.347037415961363770e-05 -7.347042705476096566e-05 -2.884485887031015873e-05 -2.884488321255960358e-05 -9.893834548723101440e-06 -9.901202349122174455e-06 -2.985568719969361000e-06 -2.981189764527389467e-06 -7.853138286067338278e-07 -7.864190776945184817e-07 -2.606742664835642190e-06 -2.611005284095371434e-06 -7.569638588482000841e-06 -7.586911392835287115e-06 -1.924087491853444025e-05 -1.929509943628447029e-05 -4.281917241444158794e-05 -4.295900702345496470e-05 -8.348341577768147624e-05 -8.378671148836488785e-05 -1.426850353592004107e-04 -1.432448688383292708e-04 -2.136455254686918251e-04 -2.145312029853522237e-04 -2.799537319205856571e-04 -2.811583987557141518e-04 -3.207435208122433367e-04 -3.221520775439473119e-04 -3.210307879321194877e-04 -3.224441182713464566e-04 -2.806213832942231791e-04 -2.818372611929468880e-04 -2.143132923459884203e-04 -2.152104371264991088e-04 -1.431168197910656420e-04 -1.436849697259050870e-04 -8.367300837845962518e-05 -8.397976336695126508e-05 -4.287565919051615618e-05 -4.301629611727774837e-05 -1.925438375851987112e-05 -1.930876910856807097e-05 -7.572090052874835759e-06 -7.589387714713882576e-06 -2.607074255321474296e-06 -2.611337919130711482e-06 -7.869132130866778396e-07 -7.864515853595278298e-07 -1.811674487566388691e-07 -1.818969641410978278e-07 -6.013587143402307149e-07 -6.039176246107517642e-07 -1.746231218289389294e-06 -1.754782704405709574e-06 -4.438239346200183028e-06 -4.462368460633125980e-06 -9.873356745406700641e-06 -9.931451620547711789e-06 -1.922576515597627803e-05 -1.934591831206332595e-05 -3.277304223826106529e-05 -3.298743425854150802e-05 -4.891270311353844262e-05 -4.924344568899770053e-05 -6.390803560715963482e-05 -6.434961984678981149e-05 -7.307089151736453328e-05 -7.358132484685702736e-05 -7.308509414236421511e-05 -7.359585256257404867e-05 -6.394059249509613171e-05 -6.438292110992559192e-05 -4.894445336763885205e-05 -4.927591731860205134e-05 -3.279307802915709934e-05 -3.300791600361173151e-05 -1.923478131586047211e-05 -1.935512495466335309e-05 -9.876327698940206667e-06 -9.934481024133275670e-06 -4.438961281918782382e-06 -4.463103678635285394e-06 -1.746361739389304320e-06 -1.754915410270332173e-06 -6.013766408155805394e-07 -6.039354470187641039e-07 -1.815306683971862422e-07 -1.818987059973975959e-07 +2.872340186914654436e-05 +2.872340186914654436e-05 +9.503371622176118934e-05 +9.503371622176118934e-05 +2.736638066969191698e-04 +2.736638066969191698e-04 +6.836853189277268495e-04 +6.836853189277268495e-04 +1.475077367394037053e-03 +1.475077367394037053e-03 +2.741859063866173771e-03 +2.741859063866173771e-03 +4.415224292534288171e-03 +4.415224292534288171e-03 +6.235438338296738110e-03 +6.235438338296738110e-03 +7.834301295433171095e-03 +7.834301295433171095e-03 +8.859773213057376903e-03 +8.859773213057376903e-03 +8.976340063147696460e-03 +8.976340063147696460e-03 +8.255025052703977503e-03 +8.255025052703977503e-03 +6.734701183216371817e-03 +6.734701183216371817e-03 +4.777821600789483938e-03 +4.777821600789483938e-03 +2.924430612614365484e-03 +2.924430612614365484e-03 +1.540881771891522509e-03 +1.540881771891522509e-03 +7.012066306563262148e-04 +7.012066306563262148e-04 +2.770679887837833484e-04 +2.770679887837833484e-04 +9.549390979845627373e-05 +9.549390979845627373e-05 +2.882619817514248288e-05 +2.882619817514248288e-05 +7.289957889827519027e-05 +7.289957889827519027e-05 +2.403025822925897062e-04 +2.403025822925897062e-04 +6.870280598577883317e-04 +6.870280598577883317e-04 +1.695313684748896415e-03 +1.695313684748896415e-03 +3.577784524506906309e-03 +3.577784524506906309e-03 +6.470040839552547961e-03 +6.470040839552547961e-03 +1.016489592116763020e-02 +1.016489592116763020e-02 +1.414496187640165714e-02 +1.414496187640165714e-02 +1.768525800639152851e-02 +1.768525800639152851e-02 +2.037165950048302684e-02 +2.037165950048302684e-02 +2.081283471153486109e-02 +2.081283471153486109e-02 +1.975316774982575907e-02 +1.975316774982575907e-02 +1.675911163151006661e-02 +1.675911163151006661e-02 +1.219811506063076499e-02 +1.219811506063076499e-02 +7.541861092850325916e-03 +7.541861092850325916e-03 +3.978597375643455093e-03 +3.978597375643455093e-03 +1.802586494639276922e-03 +1.802586494639276922e-03 +7.086543341844778014e-04 +7.086543341844778014e-04 +2.435167909453695475e-04 +2.435167909453695475e-04 +7.335442776350058148e-05 +7.335442776350058148e-05 +1.614679488491355380e-04 +1.614679488491355380e-04 +5.292050462580282638e-04 +5.292050462580282638e-04 +1.492733316017893922e-03 +1.492733316017893922e-03 +3.569766212889014401e-03 +3.569766212889014401e-03 +7.191474570551842534e-03 +7.191474570551842534e-03 +1.235101271229600145e-02 +1.235101271229600145e-02 +1.854669225628418835e-02 +1.854669225628418835e-02 +2.504274286320257170e-02 +2.504274286320257170e-02 +3.067992302346804132e-02 +3.067992302346804825e-02 +3.573254471794228698e-02 +3.573254471794228004e-02 +3.706381318431191396e-02 +3.706381318431190008e-02 +3.617128089950789188e-02 +3.617128089950788494e-02 +3.258648585821055654e-02 +3.258648585821055654e-02 +2.550232720483260399e-02 +2.550232720483260745e-02 +1.653244771208326955e-02 +1.653244771208326608e-02 +8.917088106113713400e-03 +8.917088106113713400e-03 +4.064143259353041743e-03 +4.064143259353041743e-03 +1.592824384352219602e-03 +1.592824384352219602e-03 +5.448914977682216450e-04 +5.448914977682216450e-04 +1.635042311972274582e-04 +1.635042311972274582e-04 +3.123394228607603157e-04 +3.123394228607603157e-04 +1.016921740875942901e-03 +1.016921740875942901e-03 +2.803529591411414550e-03 +2.803529591411414550e-03 +6.443360276280795523e-03 +6.443360276280795523e-03 +1.234416541207333448e-02 +1.234416541207333448e-02 +2.021012090543007622e-02 +2.021012090543007622e-02 +2.918599008091407598e-02 +2.918599008091407598e-02 +3.868055418122373634e-02 +3.868055418122374328e-02 +4.625904106773792712e-02 +4.625904106773792712e-02 +5.475787338323014758e-02 +5.475787338323013370e-02 +5.797591427638688205e-02 +5.797591427638688205e-02 +5.746198027024760485e-02 +5.746198027024759791e-02 +5.431668995068502509e-02 +5.431668995068501815e-02 +4.621692130227948725e-02 +4.621692130227948725e-02 +3.257392879010995862e-02 +3.257392879010995862e-02 +1.802217647656975674e-02 +1.802217647656975674e-02 +8.197246263766671745e-03 +8.197246263766671745e-03 +3.172430345147924085e-03 +3.172430345147924085e-03 +1.072736377465606430e-03 +1.072736377465606430e-03 +3.196814615666886150e-04 +3.196814615666886150e-04 +5.283585913230372331e-04 +5.283585913230372331e-04 +1.704190545738113946e-03 +1.704190545738113946e-03 +4.575595642600381770e-03 +4.575595642600381770e-03 +1.010518685414016002e-02 +1.010518685414016002e-02 +1.852341063020004203e-02 +1.852341063020004203e-02 +2.918481544901341956e-02 +2.918481544901341956e-02 +4.102256220956653626e-02 +4.102256220956653626e-02 +5.291231795079547051e-02 +5.291231795079547051e-02 +6.357633875948665025e-02 +6.357633875948666413e-02 +7.301938538218026575e-02 +7.301938538218025188e-02 +8.138510364208428882e-02 +8.138510364208427494e-02 +8.211178655807753468e-02 +8.211178655807754856e-02 +8.030995790746689456e-02 +8.030995790746689456e-02 +7.316450966861615113e-02 +7.316450966861613725e-02 +5.752641158159096241e-02 +5.752641158159096241e-02 +3.394955501565876527e-02 +3.394955501565876527e-02 +1.507043765835094223e-02 +1.507043765835094223e-02 +5.647837388019499513e-03 +5.647837388019499513e-03 +1.864381373183205065e-03 +1.864381373183205065e-03 +5.479127906684417518e-04 +5.479127906684417518e-04 +7.824930372726533788e-04 +7.824930372726533788e-04 +2.499974633517328300e-03 +2.499974633517328300e-03 +6.561233787683196962e-03 +6.561233787683196962e-03 +1.404503008089030662e-02 +1.404503008089030662e-02 +2.498560768770746038e-02 +2.498560768770746038e-02 +3.867438382954749287e-02 +3.867438382954749287e-02 +5.291376646699646330e-02 +5.291376646699646330e-02 +7.054355449308523374e-02 +7.054355449308521986e-02 +8.117468553241330431e-02 +8.117468553241327656e-02 +9.589001407612221528e-02 +9.589001407612217365e-02 +1.046903251896006137e-01 +1.046903251896005999e-01 +1.088895771666096163e-01 +1.088895771666096302e-01 +1.083166999404693021e-01 +1.083166999404693159e-01 +1.037135625516276000e-01 +1.037135625516276000e-01 +9.000031139722490525e-02 +9.000031139722491913e-02 +6.117882292872835193e-02 +6.117882292872835887e-02 +2.625461141643805132e-02 +2.625461141643805479e-02 +9.098494898999050923e-03 +9.098494898999052657e-03 +2.866167596076472229e-03 +2.866167596076472229e-03 +8.240523508639703955e-04 +8.240523508639703955e-04 +1.016131835596077553e-03 +1.016131835596077553e-03 +3.228742920749622970e-03 +3.228742920749622970e-03 +8.362044354872467250e-03 +8.362044354872467250e-03 +1.755234799977231988e-02 +1.755234799977231988e-02 +3.057816832186041958e-02 +3.057816832186041958e-02 +4.623837516144367610e-02 +4.623837516144367610e-02 +6.358020909984013480e-02 +6.358020909984013480e-02 +8.117728315017914975e-02 +8.117728315017914975e-02 +9.944627069482142590e-02 +9.944627069482142590e-02 +1.122497666433840829e-01 +1.122497666433841107e-01 +1.336512873137510049e-01 +1.336512873137510604e-01 +1.391489457596560009e-01 +1.391489457596560286e-01 +1.393349594226837296e-01 +1.393349594226837018e-01 +1.371299607166312773e-01 +1.371299607166313050e-01 +1.272764558610018637e-01 +1.272764558610018915e-01 +9.994683941416608597e-02 +9.994683941416608597e-02 +4.634733427213014179e-02 +4.634733427213014179e-02 +1.347461527214672064e-02 +1.347461527214672064e-02 +3.894671158227016716e-03 +3.894671158227016716e-03 +1.086709291616683214e-03 +1.086709291616683214e-03 +1.159192693890569647e-03 +1.159192693890569647e-03 +3.683881710216504058e-03 +3.683881710216504058e-03 +9.560006779147573949e-03 +9.560006779147573949e-03 +2.022132362507709363e-02 +2.022132362507709363e-02 +3.557297582774773814e-02 +3.557297582774773814e-02 +5.471528105718446305e-02 +5.471528105718444918e-02 +7.301447549445044816e-02 +7.301447549445044816e-02 +9.589554024669337540e-02 +9.589554024669341703e-02 +1.122512110042423045e-01 +1.122512110042422490e-01 +1.297310611919354484e-01 +1.297310611919353929e-01 +1.459469380120116677e-01 +1.459469380120116955e-01 +1.681296805529282345e-01 +1.681296805529282623e-01 +1.731640601003850422e-01 +1.731640601003850422e-01 +1.714094141591715470e-01 +1.714094141591716025e-01 +1.654129004608445863e-01 +1.654129004608445863e-01 +1.446096742386915601e-01 +1.446096742386915601e-01 +8.359383107241911970e-02 +8.359383107241911970e-02 +1.950658379612308507e-02 +1.950658379612308507e-02 +4.666935839643961657e-03 +4.666935839643961657e-03 +1.252935227969043108e-03 +1.252935227969043108e-03 +1.162611199309747552e-03 +1.162611199309747552e-03 +3.714620558941753199e-03 +3.714620558941753199e-03 +9.696195700540831408e-03 +9.696195700540831408e-03 +2.066136134607747532e-02 +2.066136134607747532e-02 +3.688932084783497906e-02 +3.688932084783497906e-02 +5.791215714533537451e-02 +5.791215714533537451e-02 +8.137786236140506779e-02 +8.137786236140506779e-02 +1.046956640730065530e-01 +1.046956640730065807e-01 +1.336552947297852401e-01 +1.336552947297851568e-01 +1.459483683661985942e-01 +1.459483683661985942e-01 +1.657300745854751733e-01 +1.657300745854751456e-01 +1.812640573982127190e-01 +1.812640573982127190e-01 +1.991976086242382427e-01 +1.991976086242382427e-01 +2.034579852073410133e-01 +2.034579852073409578e-01 +2.013956011472494700e-01 +2.013956011472494423e-01 +1.891826196622281575e-01 +1.891826196622281298e-01 +1.363307463481452930e-01 +1.363307463481452930e-01 +3.289729207532702399e-02 +3.289729207532703786e-02 +4.963230958038794896e-03 +4.963230958038794896e-03 +1.258509508911925291e-03 +1.258509508911925291e-03 +1.024161483898132280e-03 +1.024161483898132280e-03 +3.307066622378775252e-03 +3.307066622378775252e-03 +8.869110361388031841e-03 +8.869110361388031841e-03 +1.960616629666059318e-02 +1.960616629666059318e-02 +3.600987233648447056e-02 +3.600987233648447056e-02 +5.740196372463032826e-02 +5.740196372463032826e-02 +8.210499134320792258e-02 +8.210499134320792258e-02 +1.088955199657752754e-01 +1.088955199657753031e-01 +1.391548352957413248e-01 +1.391548352957413526e-01 +1.681322833674999406e-01 +1.681322833674999129e-01 +1.812651307284526003e-01 +1.812651307284525448e-01 +2.101874607502330350e-01 +2.101874607502330072e-01 +2.198458183210821870e-01 +2.198458183210821593e-01 +2.312728747144571495e-01 +2.312728747144571217e-01 +2.316869680866294190e-01 +2.316869680866294190e-01 +2.262458749754666099e-01 +2.262458749754666099e-01 +1.915902697952102662e-01 +1.915902697952102662e-01 +6.844912372541800405e-02 +6.844912372541800405e-02 +5.450133809269877040e-03 +5.450133809269877040e-03 +1.101519818175843504e-03 +1.101519818175843504e-03 +7.905923703832496872e-04 +7.905923703832496872e-04 +2.582783009528992566e-03 +2.582783009528992566e-03 +7.139419895782943629e-03 +7.139419895782943629e-03 +1.663335771800429977e-02 +1.663335771800429977e-02 +3.246728758825490752e-02 +3.246728758825490752e-02 +5.427285346291520901e-02 +5.427285346291520901e-02 +8.030592146248492769e-02 +8.030592146248492769e-02 +1.083224740571800543e-01 +1.083224740571800820e-01 +1.393405002642600643e-01 +1.393405002642600365e-01 +1.731667034361413227e-01 +1.731667034361414059e-01 +1.991989828909614957e-01 +1.991989828909615234e-01 +2.198463231210124880e-01 +2.198463231210125157e-01 +2.583319367746053086e-01 +2.583319367746053086e-01 +2.584689605965893588e-01 +2.584689605965893588e-01 +2.607107326281520310e-01 +2.607107326281520865e-01 +2.617064935877325138e-01 +2.617064935877325138e-01 +2.436381960401965974e-01 +2.436381960401965974e-01 +1.256651850996303443e-01 +1.256651850996303443e-01 +7.943945888664259367e-03 +7.943945888664259367e-03 +8.463624427084775418e-04 +8.463624427084775418e-04 +5.336031539895435627e-04 +5.336031539895435627e-04 +1.759009512168862189e-03 +1.759009512168862189e-03 +4.975850299303851212e-03 +4.975850299303851212e-03 +1.211641910507626693e-02 +1.211641910507626693e-02 +2.544556776053265301e-02 +2.544556776053265301e-02 +4.619883544530085928e-02 +4.619883544530085928e-02 +7.316497938650552701e-02 +7.316497938650552701e-02 +1.037187201716345819e-01 +1.037187201716345958e-01 +1.371345262271489729e-01 +1.371345262271489729e-01 +1.714117809110042301e-01 +1.714117809110042301e-01 +2.034588453072114778e-01 +2.034588453072114778e-01 +2.312733087937207110e-01 +2.312733087937207943e-01 +2.584690747928307664e-01 +2.584690747928308219e-01 +3.007113899750168406e-01 +3.007113899750168406e-01 +3.064169061568519647e-01 +3.064169061568519647e-01 +3.004478869615822001e-01 +3.004478869615822001e-01 +2.868257442179072414e-01 +2.868257442179072414e-01 +2.002480599454643795e-01 +2.002480599454644072e-01 +1.779862631734403441e-02 +1.779862631734404482e-02 +5.870204880368896016e-04 +5.870204880368896016e-04 +3.147277081680782121e-04 +3.147277081680782121e-04 +1.042404972244733970e-03 +1.042404972244733970e-03 +2.997498901140243071e-03 +2.997498901140243071e-03 +7.505878653663883120e-03 +7.505878653663883120e-03 +1.651808004830011833e-02 +1.651808004830011833e-02 +3.257294957993620010e-02 +3.257294957993620010e-02 +5.752893176817616694e-02 +5.752893176817617388e-02 +9.000350198956109937e-02 +9.000350198956111325e-02 +1.272791893161914489e-01 +1.272791893161914767e-01 +1.654145340150749433e-01 +1.654145340150749433e-01 +2.013963449001563433e-01 +2.013963449001563710e-01 +2.316873292598280176e-01 +2.316873292598280176e-01 +2.607108635040313316e-01 +2.607108635040312206e-01 +3.064168540401578378e-01 +3.064168540401576712e-01 +3.210995861791196559e-01 +3.210995861791196559e-01 +3.304923994516762997e-01 +3.304923994516763552e-01 +3.500557044886096203e-01 +3.500557044886097313e-01 +2.449307137395454192e-01 +2.449307137395454470e-01 +1.635581696571078089e-02 +1.635581696571078089e-02 +3.411754664322945202e-04 +3.411754664322945202e-04 +1.622648989579520405e-04 +1.622648989579520405e-04 +5.378249410532217906e-04 +5.378249410532217906e-04 +1.560946321250956514e-03 +1.560946321250956514e-03 +3.968186647472144758e-03 +3.968186647472144758e-03 +8.914822858613755813e-03 +8.914822858613755813e-03 +1.802258619466899983e-02 +1.802258619466899983e-02 +3.395023196160790874e-02 +3.395023196160790180e-02 +6.117929025123992198e-02 +6.117929025123992892e-02 +9.994747039964534119e-02 +9.994747039964535507e-02 +1.446103117989511744e-01 +1.446103117989511744e-01 +1.891830526279451863e-01 +1.891830526279451863e-01 +2.262461173979958551e-01 +2.262461173979958551e-01 +2.617065646220276820e-01 +2.617065646220276820e-01 +3.004478576219950514e-01 +3.004478576219950514e-01 +3.304923615909618473e-01 +3.304923615909617918e-01 +3.907843126682680190e-01 +3.907843126682680746e-01 +3.937718916138377434e-01 +3.937718916138377434e-01 +1.944147639351959389e-01 +1.944147639351959389e-01 +4.349197479748864725e-03 +4.349197479748864725e-03 +1.656410457378680373e-04 +1.656410457378680373e-04 +7.309473690716465828e-05 +7.309473690716465828e-05 +2.424378594455041272e-04 +2.424378594455041272e-04 +7.047285033990149158e-04 +7.047285033990149158e-04 +1.800960849943555962e-03 +1.800960849943555962e-03 +4.063968234616795010e-03 +4.063968234616795010e-03 +8.197284670643779220e-03 +8.197284670643779220e-03 +1.507046669001023236e-02 +1.507046669001023236e-02 +2.625453117718182586e-02 +2.625453117718182239e-02 +4.634706705478338490e-02 +4.634706705478339184e-02 +8.359368316757800899e-02 +8.359368316757800899e-02 +1.363307891829103891e-01 +1.363307891829103613e-01 +1.915903510981476487e-01 +1.915903510981476765e-01 +2.436382181181556139e-01 +2.436382181181556694e-01 +2.868257299815103467e-01 +2.868257299815103467e-01 +3.500556506753876307e-01 +3.500556506753876862e-01 +3.937718690698299717e-01 +3.937718690698299717e-01 +3.243689173803241399e-01 +3.243689173803241399e-01 +3.406837207512914550e-02 +3.406837207512914550e-02 +2.918265366534085817e-04 +2.918265366534085817e-04 +7.356081891974136579e-05 +7.356081891974136579e-05 +2.878183745031362198e-05 +2.878183745031362198e-05 +9.552659700789000309e-05 +9.552659700789000309e-05 +2.775808717671619124e-04 +2.775808717671619124e-04 +7.085096333400628648e-04 +7.085096333400628648e-04 +1.592818717373823724e-03 +1.592818717373823724e-03 +3.172434316021055696e-03 +3.172434316021055696e-03 +5.647850893493710708e-03 +5.647850893493710708e-03 +9.098528695521385101e-03 +9.098528695521385101e-03 +1.347467414500176132e-02 +1.347467414500176305e-02 +1.950665026562079310e-02 +1.950665026562079310e-02 +3.289729591650134011e-02 +3.289729591650133317e-02 +6.844910433844786368e-02 +6.844910433844786368e-02 +1.256651709004969475e-01 +1.256651709004969752e-01 +2.002479903120474303e-01 +2.002479903120474303e-01 +2.449306453863263622e-01 +2.449306453863264454e-01 +1.944147576326029359e-01 +1.944147576326029636e-01 +3.406837078005506281e-02 +3.406837078005505587e-02 +3.705685450209890539e-04 +3.705685450209890539e-04 +9.600415944829897644e-05 +9.600415944829897644e-05 +2.888477147711751710e-05 +2.888477147711751710e-05 +9.914279787327621058e-06 +9.914279787327621058e-06 +3.290932911471119142e-05 +3.290932911471119142e-05 +9.559268071419554404e-05 +9.559268071419554404e-05 +2.434973769309800974e-04 +2.434973769309800974e-04 +5.448585062943892866e-04 +5.448585062943892866e-04 +1.072601844357821358e-03 +1.072601844357821358e-03 +1.864021586280514581e-03 +1.864021586280514581e-03 +2.865592414997476627e-03 +2.865592414997476627e-03 +3.893909957995662918e-03 +3.893909957995662918e-03 +4.666072565865747764e-03 +4.666072565865747764e-03 +4.962432131613385249e-03 +4.962432131613385249e-03 +5.449547418337070612e-03 +5.449547418337070612e-03 +7.943436500071312384e-03 +7.943436500071314119e-03 +1.779799915920607031e-02 +1.779799915920607725e-02 +1.635461733984533775e-02 +1.635461733984535510e-02 +4.347776236650361011e-03 +4.347776236650361878e-03 +2.918135486684698488e-04 +2.918135486684698488e-04 +9.600349278731042416e-05 +9.600349278731042416e-05 +3.296242638936149548e-05 +3.296242638936149548e-05 +9.939424378931682237e-06 +9.939424378931682237e-06 +2.988601987316248402e-06 +2.988601987316248402e-06 +9.920327280683448418e-06 +9.920327280683448418e-06 +2.880928885667598295e-05 +2.880928885667598295e-05 +7.326318781081628967e-05 +7.326318781081628967e-05 +1.633686847550297765e-04 +1.633686847550297765e-04 +3.197441030623565075e-04 +3.197441030623565075e-04 +5.490586746553867328e-04 +5.490586746553867328e-04 +8.274262064250647881e-04 +8.274262064250647881e-04 +1.093002018242471805e-03 +1.093002018242471805e-03 +1.261447233189359925e-03 +1.261447233189359925e-03 +1.267033307655745589e-03 +1.267033307655745589e-03 +1.107745381565444429e-03 +1.107745381565444429e-03 +8.494663299082708422e-04 +8.494663299082708422e-04 +5.877255640199390311e-04 +5.877255640199390311e-04 +3.410895532096535287e-04 +3.410895532096535287e-04 +1.655468338569301230e-04 +1.655468338569301230e-04 +7.347044708653211582e-05 +7.347044708653211582e-05 +2.884491700633570014e-05 +2.884491700633570014e-05 +9.925154114133244695e-06 +9.925154114133244695e-06 +2.995052844888061068e-06 +2.995052844888061068e-06 +7.884975930434087479e-07 +7.884975930434087479e-07 +2.617310956375428986e-06 +2.617310956375428986e-06 +7.600327080210691689e-06 +7.600327080210691689e-06 +1.931890898934767326e-05 +1.931890898934767326e-05 +4.299312990030456310e-05 +4.299312990030456310e-05 +8.382367323520377802e-05 +8.382367323520377802e-05 +1.432687851615411416e-04 +1.432687851615411416e-04 +2.145244519072102827e-04 +2.145244519072102827e-04 +2.811140138506892645e-04 +2.811140138506892645e-04 +3.220817850439932403e-04 +3.220817850439932403e-04 +3.223741720986069586e-04 +3.223741720986069586e-04 +2.817937563431330522e-04 +2.817937563431330522e-04 +2.152047465755699827e-04 +2.152047465755699827e-04 +1.437098539980276790e-04 +1.437098539980276790e-04 +8.401730087581817553e-05 +8.401730087581817553e-05 +4.305063488548597009e-05 +4.305063488548597009e-05 +1.933264489797818320e-05 +1.933264489797818320e-05 +7.602819359828572604e-06 +7.602819359828572604e-06 +2.617648832003952086e-06 +2.617648832003952086e-06 +7.901049517367656961e-07 +7.901049517367656961e-07 +1.823777696231993586e-07 +1.823777696231993586e-07 +6.053765949213519006e-07 +6.053765949213519006e-07 +1.757901891818919833e-06 +1.757901891818919833e-06 +4.467923017837591905e-06 +4.467923017837591905e-06 +9.939495171188612887e-06 +9.939495171188612887e-06 +1.935495142054928958e-05 +1.935495142054928958e-05 +3.299435709305326364e-05 +3.299435709305326364e-05 +4.924497836989638117e-05 +4.924497836989638117e-05 +6.434454308033667517e-05 +6.434454308033667517e-05 +7.357174501377471620e-05 +7.357174501377471620e-05 +7.358631144388814516e-05 +7.358631144388814516e-05 +6.437793731422292501e-05 +6.437793731422292501e-05 +4.927754965352772610e-05 +4.927754965352772610e-05 +3.301491077152221852e-05 +3.301491077152221852e-05 +1.936419606626931577e-05 +1.936419606626931577e-05 +9.942539684234432941e-06 +9.942539684234432941e-06 +4.468662792935623921e-06 +4.468662792935623921e-06 +1.758035637746577950e-06 +1.758035637746577950e-06 +6.053950015225363516e-07 +6.053950015225363516e-07 +1.827435046263828092e-07 +1.827435046263828092e-07 diff --git a/tests_cpp/eigen_2d_burgers_outflow_implicit/weno5/gold.txt b/tests_cpp/eigen_2d_burgers_outflow_implicit/weno5/gold.txt index 97d6136b..3de59eec 100644 --- a/tests_cpp/eigen_2d_burgers_outflow_implicit/weno5/gold.txt +++ b/tests_cpp/eigen_2d_burgers_outflow_implicit/weno5/gold.txt @@ -1,800 +1,800 @@ -2.869503911715961408e-05 -2.868123055853889002e-05 -9.501360536058162901e-05 -9.500292818525862945e-05 -2.738776386611755471e-04 -2.740975529663690390e-04 -6.843455988338412871e-04 -6.847537734082331492e-04 -1.474005945549181507e-03 -1.474148218989691827e-03 -2.735472676162126800e-03 -2.735849494993414580e-03 -4.404010502937389521e-03 -4.406262582176396700e-03 -6.219059077246840740e-03 -6.224204188374188318e-03 -7.804488107878133560e-03 -7.811759132503218184e-03 -8.799244137309817498e-03 -8.807806921399629826e-03 -8.958913509767555197e-03 -8.968201979207134078e-03 -8.199479582445915252e-03 -8.208944641200727199e-03 -6.669723962601754180e-03 -6.679041701523243287e-03 -4.749057290716144838e-03 -4.756832217539298975e-03 -2.924449579048772445e-03 -2.927346591856028104e-03 -1.550015466764138698e-03 -1.547186743595046522e-03 -7.051704262499080634e-04 -7.006883755041007789e-04 -2.743439982257419468e-04 -2.731172118124378903e-04 -9.244833157800152600e-05 -9.335916518972477173e-05 -2.779431143958612107e-05 -2.825161730852937479e-05 -7.286167266619540163e-05 -7.302370338290160130e-05 -2.409112843956742853e-04 -2.418713675699733757e-04 -6.901469353263185551e-04 -6.935662350862582468e-04 -1.698596631342417064e-03 -1.703213102455489701e-03 -3.568227728729856177e-03 -3.570410207391327626e-03 -6.428011776072434583e-03 -6.427067603125537210e-03 -1.007057379186397650e-02 -1.007068416505276474e-02 -1.397612134921289925e-02 -1.398456091797324781e-02 -1.747555326482509719e-02 -1.749255437940839403e-02 -1.988557012224819939e-02 -1.990448874574171981e-02 -2.067078048550324149e-02 -2.069083200081828222e-02 -1.946761205237981796e-02 -1.948619364659894687e-02 -1.633575422618618184e-02 -1.635308515045466593e-02 -1.194607265816911498e-02 -1.195859025737929827e-02 -7.456814348593127431e-03 -7.463219373679927382e-03 -3.949278756673741536e-03 -3.951177143325363024e-03 -1.792748074872914116e-03 -1.792763827364760422e-03 -7.063460091633966612e-04 -7.059921814077016987e-04 -2.430622174088683586e-04 -2.339506370505262578e-04 -6.870629003013997585e-05 -7.102802091163991740e-05 -1.615287214942513088e-04 -1.621163121536993640e-04 -5.311990325787858003e-04 -5.278437178169890706e-04 -1.485285760891426506e-03 -1.483965235999999991e-03 -3.539908007976693988e-03 -3.538722993351724449e-03 -7.126935835031400837e-03 -7.126990093212284827e-03 -1.225614623864691027e-02 -1.225881655820211351e-02 -1.841723773248125570e-02 -1.842391244755520532e-02 -2.479951606467533515e-02 -2.481260697566060186e-02 -3.054298068968581970e-02 -3.055104390492008326e-02 -3.478312668027056659e-02 -3.480819965913483499e-02 -3.680545178068634488e-02 -3.683560622773759258e-02 -3.593557113051778357e-02 -3.596320909518655601e-02 -3.172624076012078159e-02 -3.175404547924063486e-02 -2.460547143830152383e-02 -2.462633168555006247e-02 -1.617641235746573175e-02 -1.618678730025060672e-02 -8.815768060283219257e-03 -8.817862189955606028e-03 -4.027027532586046309e-03 -4.025692238750750926e-03 -1.583197857186005066e-03 -1.581846675716674271e-03 -5.432125981100058070e-04 -5.148318771890274606e-04 -1.497027442316395699e-04 -1.571657744404752804e-04 -3.124326228585937691e-04 -3.133645421505378459e-04 -1.018179364279752979e-03 -1.011941421774817254e-03 -2.781969237323431328e-03 -2.778590662174190967e-03 -6.385235076240392861e-03 -6.385108948572189996e-03 -1.226772503657486309e-02 -1.226772152491548834e-02 -2.015398858695772663e-02 -2.015431446893003326e-02 -2.919468997268981000e-02 -2.919551384374723807e-02 -3.836019104711919925e-02 -3.836495413834505042e-02 -4.670936362793381286e-02 -4.668464003972847692e-02 -5.329051651457557964e-02 -5.329870532402725125e-02 -5.729932662000736254e-02 -5.731212721824983924e-02 -5.785735354760284527e-02 -5.786362988076252517e-02 -5.392381533364493107e-02 -5.393003075334140695e-02 -4.481569330653208116e-02 -4.482034604039862591e-02 -3.154228673084428364e-02 -3.154390053935533789e-02 -1.784816726772715800e-02 -1.784825833651601523e-02 -8.115883755923531187e-03 -8.115696452421656062e-03 -3.140571985736863216e-03 -3.137159169730860484e-03 -1.067862827429217308e-03 -9.991303801140355000e-04 -2.869310630310633681e-04 -3.079701283494605296e-04 -5.275335104211940863e-04 -5.277734087348878852e-04 -1.699581695670925085e-03 -1.692465983040127584e-03 -4.528419081625914035e-03 -4.522172652622900683e-03 -1.000487407500133888e-02 -1.000464749884699689e-02 -1.843770798266758382e-02 -1.843782556484423532e-02 -2.920425459040525834e-02 -2.920427750147183699e-02 -4.119161462143474534e-02 -4.119046950558638565e-02 -5.324159057160441494e-02 -5.324816440553953312e-02 -6.440965562513784048e-02 -6.435134748291952700e-02 -7.370476228516223416e-02 -7.371096496963994160e-02 -8.033749468145245931e-02 -8.034515742474275524e-02 -8.328211796228010555e-02 -8.328193463114562378e-02 -8.131510585494829135e-02 -8.131270505046371555e-02 -7.252815189808824170e-02 -7.252726789163053966e-02 -5.544507304484934396e-02 -5.544468678074988138e-02 -3.324938727041529957e-02 -3.324927026152071918e-02 -1.493583060326424475e-02 -1.493558150795554554e-02 -5.551774010645998611e-03 -5.544727952868859500e-03 -1.850424422819684249e-03 -1.742406474807694844e-03 -4.772393251501033098e-04 -5.304938565101417194e-04 -7.793154925726389695e-04 -7.778221725084429224e-04 -2.484318204289780955e-03 -2.478471865995627525e-03 -6.472721942209762325e-03 -6.463264871462006539e-03 -1.387634122498219470e-02 -1.387565045921720051e-02 -2.482191124538424623e-02 -2.482213077464994963e-02 -3.838153328783563273e-02 -3.838174704154057731e-02 -5.325159712260377903e-02 -5.324940979713790185e-02 -6.818376661398488359e-02 -6.819635439346745376e-02 -8.224819787665479942e-02 -8.217861938233672614e-02 -9.443954888289962657e-02 -9.445585324523245174e-02 -1.040827398124029163e-01 -1.040949984027749325e-01 -1.101033283435124271e-01 -1.101048253201911409e-01 -1.112036201538877112e-01 -1.112015498864358104e-01 -1.054428397349921331e-01 -1.054415884085443955e-01 -8.851314505010994538e-02 -8.851312137130333546e-02 -5.795766279933217691e-02 -5.795764901811339270e-02 -2.588770945194765472e-02 -2.588767136083130679e-02 -8.811849444499501513e-03 -8.797409583592067858e-03 -2.829522232824217051e-03 -2.733609361676965412e-03 -7.274345959602821019e-04 -7.877458459665554477e-04 -1.010105415881085286e-03 -1.007149026985106142e-03 -3.200335654377570692e-03 -3.194916870161037745e-03 -8.218215273628858356e-03 -8.205693155400432121e-03 -1.733023786474221020e-02 -1.732898817432585933e-02 -3.055131530053923489e-02 -3.055165393221838041e-02 -4.673382479640631609e-02 -4.673412134079156510e-02 -6.440518059833770514e-02 -6.440273141069739748e-02 -8.222260527872186919e-02 -8.223670219403347859e-02 -9.921379500181747024e-02 -9.915599835025745712e-02 -1.144010778119721183e-01 -1.144097222017579490e-01 -1.272031869532123383e-01 -1.272176411535727858e-01 -1.366523409692280977e-01 -1.366552843355806346e-01 -1.414553657523243413e-01 -1.414548315042700732e-01 -1.398472026566581483e-01 -1.398466353378724769e-01 -1.282681395861584028e-01 -1.282680330264841517e-01 -9.493373278735052490e-02 -9.493370712976037518e-02 -4.380913338821038755e-02 -4.381044323035624549e-02 -1.267539520052749120e-02 -1.264672141856340061e-02 -3.810301866931643539e-03 -3.740606628253024309e-03 -1.012056030949759792e-03 -1.053020467733730434e-03 -1.151325487056588989e-03 -1.147904439484704860e-03 -3.648541029441094031e-03 -3.641522573158717871e-03 -9.345124773789273767e-03 -9.330185893881948883e-03 -1.969746429981282868e-02 -1.969577261934905843e-02 -3.477882310461673232e-02 -3.477927850982988345e-02 -5.334181029610238212e-02 -5.334201326706619617e-02 -7.374031787593197940e-02 -7.373895007363953646e-02 -9.448571757408362470e-02 -9.449461886280963174e-02 -1.144593975124153923e-01 -1.143887678206580993e-01 -1.327767393869287715e-01 -1.327931003810044752e-01 -1.488372386915984003e-01 -1.488443301998212120e-01 -1.617765074286647842e-01 -1.617781072676151288e-01 -1.705645572046644298e-01 -1.705652019751928983e-01 -1.735822365753020013e-01 -1.735824701242452417e-01 -1.681149562303390077e-01 -1.681150209826938746e-01 -1.441865947638294454e-01 -1.441870930956125341e-01 -7.440796710332311936e-02 -7.440994346795608283e-02 -1.693471127930966727e-02 -1.688614457305767994e-02 -4.491494724566625837e-03 -4.439918290266590441e-03 -1.239089525907808263e-03 -1.235424408993651387e-03 -1.155017106578293219e-03 -1.151748391665785706e-03 -3.682878396902931201e-03 -3.674408461632533082e-03 -9.542137346926840569e-03 -9.526148835610372470e-03 -2.045612253145898465e-02 -2.045429788541786725e-02 -3.678644536154202643e-02 -3.678702965189162288e-02 -5.735617032444887547e-02 -5.735629145657532291e-02 -8.037422513237611754e-02 -8.037399767286926289e-02 -1.041126993829349090e-01 -1.041137386169554008e-01 -1.272245718045056928e-01 -1.272125923810202563e-01 -1.488450649719816332e-01 -1.488430024756480508e-01 -1.682072259432339512e-01 -1.682071165373163479e-01 -1.846930286860858639e-01 -1.846935009253501125e-01 -1.975133908653033676e-01 -1.975138087721974300e-01 -2.052175722407073299e-01 -2.052173579030189265e-01 -2.057027666057652804e-01 -2.057019798923725440e-01 -1.937177722643307620e-01 -1.937159396698836800e-01 -1.272538032761639237e-01 -1.272458522791674318e-01 -2.409156930942180433e-02 -2.402923390960788261e-02 -4.604706774466932502e-03 -4.590230998666212925e-03 -1.247536561457823203e-03 -1.241154015454416564e-03 -1.018922109793482479e-03 -1.016133470642149829e-03 -3.280837634059373138e-03 -3.273050599369729634e-03 -8.694771708896625872e-03 -8.679598941953740876e-03 -1.925066021935914473e-02 -1.924837126939606471e-02 -3.591615686037793326e-02 -3.591628288429391663e-02 -5.791143593467158734e-02 -5.791159167304047589e-02 -8.331682266716239349e-02 -8.331694575422972371e-02 -1.101169301567190284e-01 -1.101171290495238236e-01 -1.366577736020246070e-01 -1.366601666158464290e-01 -1.617783799311411641e-01 -1.617783593801755126e-01 -1.846932556706509798e-01 -1.846931077011004230e-01 -2.048067758797660343e-01 -2.048070597611012233e-01 -2.214922203136978351e-01 -2.214924900026989940e-01 -2.338411463868369233e-01 -2.338409964699232346e-01 -2.403100433303434758e-01 -2.403094937700934741e-01 -2.373953532828251833e-01 -2.373948494368821049e-01 -1.958607820650558884e-01 -1.958555785859842358e-01 -4.479674062826029257e-02 -4.470587224836993639e-02 -4.188441866791030657e-03 -4.167553423495420212e-03 -1.091007743149327407e-03 -1.085437032869948810e-03 -7.877210600851522557e-04 -7.856513380413560326e-04 -2.564304683565984087e-03 -2.558403132533217800e-03 -6.995036031429514856e-03 -6.983218410701712460e-03 -1.615686683019297229e-02 -1.615559264450008858e-02 -3.173667471446739441e-02 -3.173709822336187591e-02 -5.398197796801172677e-02 -5.398202423073309580e-02 -8.134683827304797776e-02 -8.134694241652269675e-02 -1.112123147415838842e-01 -1.112124748399437729e-01 -1.414566786281879485e-01 -1.414570683964527786e-01 -1.705644877529086390e-01 -1.705647994607520090e-01 -1.975133210241706849e-01 -1.975136749070866837e-01 -2.214922537433586525e-01 -2.214926689749812661e-01 -2.420860586180285101e-01 -2.420863753202488478e-01 -2.591314206156120625e-01 -2.591314867539021294e-01 -2.704299337902284495e-01 -2.704296962078485689e-01 -2.741927791439640605e-01 -2.741926307320816103e-01 -2.568490033254675620e-01 -2.568411135065013506e-01 -9.850784833357623116e-02 -9.840311223243440597e-02 -3.934909766378149633e-03 -3.901263699287397385e-03 -8.313146071882084476e-04 -8.271062883450964760e-04 -5.327784319916046250e-04 -5.314701423700330047e-04 -1.749868382843957400e-03 -1.746053465137206110e-03 -4.906594993438724746e-03 -4.898829205974447945e-03 -1.183404625030808066e-02 -1.183340736434913137e-02 -2.464038989932659449e-02 -2.464073001582200301e-02 -4.486406631771464731e-02 -4.486406846739375565e-02 -7.254879842461660344e-02 -7.254875020851354883e-02 -1.054476273291281019e-01 -1.054477133691044677e-01 -1.398465222730766733e-01 -1.398460070853680959e-01 -1.735809483869423797e-01 -1.735809360108321042e-01 -2.052173559002659908e-01 -2.052176253300910802e-01 -2.338413685231816030e-01 -2.338417231031125199e-01 -2.591316657469296403e-01 -2.591319861317505358e-01 -2.798639996349364667e-01 -2.798642470357779466e-01 -2.965610944965306750e-01 -2.965611724748648537e-01 -3.090221071520011242e-01 -3.090219006044935268e-01 -3.085421121909729947e-01 -3.085343115643622292e-01 -1.735437847927150667e-01 -1.734369622315371506e-01 -7.228592122847171501e-03 -7.169839066423344155e-03 -5.553815967970657328e-04 -5.522687502980874047e-04 -3.146623053121043239e-04 -3.139718334573361530e-04 -1.039064021023636524e-03 -1.037032742527418255e-03 -2.972542416714874305e-03 -2.968495196084555959e-03 -7.409358635128664508e-03 -7.409135973483127295e-03 -1.620939627705444280e-02 -1.620954084244654453e-02 -3.156492431644614821e-02 -3.156491096553747794e-02 -5.545025877455217467e-02 -5.545023438013280126e-02 -8.851229571554330988e-02 -8.851228375873104737e-02 -1.282661831884120418e-01 -1.282661513559225364e-01 -1.681127706453130477e-01 -1.681127244058217007e-01 -2.057027032279434287e-01 -2.057027690648511598e-01 -2.403106161244880357e-01 -2.403107825315042023e-01 -2.704305700739696450e-01 -2.704307868037255647e-01 -2.965614800951405505e-01 -2.965618460794123279e-01 -3.182891928027677397e-01 -3.182892353365480709e-01 -3.340825637275115501e-01 -3.340835554659149498e-01 -3.451926643587402976e-01 -3.451852051084025041e-01 -2.411995280201445491e-01 -2.410878997182297756e-01 -1.302481454918441757e-02 -1.295144883984888397e-02 -3.276143393474854394e-04 -3.251805565776982095e-04 -1.622091078355591856e-04 -1.619100401596882917e-04 -5.371624719365915767e-04 -5.362922875220647043e-04 -1.552898472881265217e-03 -1.551319194133265458e-03 -3.937927540536834831e-03 -3.937882880283937077e-03 -8.831995623293681028e-03 -8.832028229622077009e-03 -1.785299726114903535e-02 -1.785299037495147179e-02 -3.324891136937855457e-02 -3.324890833416663943e-02 -5.795646111314248922e-02 -5.795645790492056498e-02 -9.493356843088159025e-02 -9.493363652385850004e-02 -1.441846318626903989e-01 -1.441846143169479011e-01 -1.937187715805851751e-01 -1.937186879043498733e-01 -2.373964629017882022e-01 -2.373964412444293237e-01 -2.741935394872206944e-01 -2.741936172871989874e-01 -3.090228837482957291e-01 -3.090232155101085842e-01 -3.340830862289297376e-01 -3.340831893512297146e-01 -3.558459831543203111e-01 -3.558471241787156125e-01 -3.832031771106466089e-01 -3.831950838219969069e-01 -2.427938880018590817e-01 -2.426812555763117885e-01 -6.795460066599690735e-03 -6.752131383488055305e-03 -1.651456133953075342e-04 -1.641890460551415488e-04 -7.301849308985114743e-05 -7.291601178554403507e-05 -2.422191609393232082e-04 -2.419329747512420571e-04 -7.028346869041775810e-04 -7.024375170225750182e-04 -1.792338311808397552e-03 -1.792334065255112973e-03 -4.031995191594894487e-03 -4.031998280291790825e-03 -8.116157176647049998e-03 -8.116156289330598780e-03 -1.493512411184539680e-02 -1.493512418989180295e-02 -2.588662585210210060e-02 -2.588662653249619236e-02 -4.380898233853661172e-02 -4.380898965368700687e-02 -7.440555541188943744e-02 -7.440557583870086034e-02 -1.272657977004343355e-01 -1.272658023391334825e-01 -1.958663832764379054e-01 -1.958663754184326866e-01 -2.568500255670003174e-01 -2.568500236224678379e-01 -3.085428847870573255e-01 -3.085430439495864263e-01 -3.451938168346599389e-01 -3.451939659743850641e-01 -3.832031435150738408e-01 -3.832034920083642326e-01 -3.785033246984149113e-01 -3.784976985914789704e-01 -6.344655492143037867e-02 -6.340510115556940995e-02 -3.251832563982238263e-04 -3.216697456894179416e-04 -7.346596579898832563e-05 -7.321355158880535720e-05 -2.873322917778269560e-05 -2.870829988938007637e-05 -9.537365935802072077e-05 -9.531228959489314865e-05 -2.770264437024947085e-04 -2.770216283749957708e-04 -7.069936664255645252e-04 -7.069937207586390231e-04 -1.584611757042131983e-03 -1.584611996508686642e-03 -3.142118331962468532e-03 -3.142119478317869762e-03 -5.553095920486662666e-03 -5.553099700551305910e-03 -8.812167943131887782e-03 -8.812177071565504421e-03 -1.267269513889012975e-02 -1.267270645508710228e-02 -1.692814357685956672e-02 -1.692813176588746360e-02 -2.411871905831433627e-02 -2.411864775238238903e-02 -4.480368637007229454e-02 -4.480355087407685705e-02 -9.850684130853185061e-02 -9.850666806214899984e-02 -1.735345670851511646e-01 -1.735343661334239895e-01 -2.411798922705391257e-01 -2.411797911253086846e-01 -2.428173342079449903e-01 -2.428174173643897205e-01 -6.348741882620631549e-02 -6.348770335616918392e-02 -4.151801097260957420e-04 -4.150902324767879407e-04 -9.582792364730436795e-05 -9.576423930183498021e-05 -2.883730002969250535e-05 -2.875479544381199718e-05 -9.890809737459763855e-06 -9.888552517649678599e-06 -3.283346138479313928e-05 -3.283339637929271284e-05 -9.537157535293215940e-05 -9.543154644978443085e-05 -2.433016123275454599e-04 -2.433018037954324424e-04 -5.433638720368629080e-04 -5.433636440323551644e-04 -1.066867981349705046e-03 -1.066865782543744388e-03 -1.846086060758868243e-03 -1.846077033215566803e-03 -2.819110928677702986e-03 -2.819086826461499658e-03 -3.792011199447027549e-03 -3.791965756459351328e-03 -4.466178851174187024e-03 -4.466119524674988517e-03 -4.582583457662408287e-03 -4.582531460453954410e-03 -4.171488207525980013e-03 -4.171457446234789514e-03 -3.927081651520788509e-03 -3.927085208434856478e-03 -7.224823213776643098e-03 -7.224868083756978525e-03 -1.301547613488958539e-02 -1.301553156870883382e-02 -6.788291829822894544e-03 -6.788314180267183279e-03 -3.244943863006549711e-04 -3.244956111067706043e-04 -9.576419511430652029e-05 -9.582701921391420790e-05 -3.288742292725251688e-05 -3.288742371399433657e-05 -9.916145538678760996e-06 -9.894136166063183539e-06 -2.979220812430837696e-06 -2.980786288245077264e-06 -9.889575461957785858e-06 -9.897020543467053910e-06 -2.872213171833444155e-05 -2.876210805820848921e-05 -7.303764963771165221e-05 -7.317878348044078575e-05 -1.627089912116706728e-04 -1.630957996839136346e-04 -3.178797761805404916e-04 -3.187520846702849978e-04 -5.448277254544514007e-04 -5.464873064525116019e-04 -8.190586024009303577e-04 -8.217559455426183459e-04 -1.078912809406229988e-03 -1.082673986059210555e-03 -1.242410608538422776e-03 -1.246899866485740461e-03 -1.247260646951661982e-03 -1.251820859528071390e-03 -1.089839231051715302e-03 -1.093774387843194241e-03 -8.297290547657503899e-04 -8.326821681067210967e-04 -5.533821059875110261e-04 -5.556458249212539290e-04 -3.262869846347018024e-04 -3.282080399640392655e-04 -1.644758934189006550e-04 -1.651838596353153853e-04 -7.323336467134893978e-05 -7.337818686101148789e-05 -2.875727902531907771e-05 -2.879747951982021919e-05 -9.894454077828769277e-06 -9.901913424147257105e-06 -2.985671951191606539e-06 -2.981292881337516429e-06 -7.853215406916749501e-07 -7.864267760897346040e-07 -2.606822001051555770e-06 -2.611084617169132440e-06 -7.570253805585842927e-06 -7.587478236540790751e-06 -1.924423841618631329e-05 -1.929839357693980439e-05 -4.282729378453623052e-05 -4.296699963110662499e-05 -8.345849327706300808e-05 -8.376140636367704210e-05 -1.424834646006260894e-04 -1.430423366549708178e-04 -2.131059969321910967e-04 -2.139894577462437555e-04 -2.790408971334771920e-04 -2.802413932104804817e-04 -3.195864534190636470e-04 -3.209891074483558625e-04 -3.198839500540671282e-04 -3.212912513251156370e-04 -2.797183978429781059e-04 -2.809293180730841675e-04 -2.137619991003264258e-04 -2.146552907699469763e-04 -1.428961751644084724e-04 -1.434611101016102029e-04 -8.363727926513693403e-05 -8.394296530382327451e-05 -4.288224353464413187e-05 -4.302269388486384911e-05 -1.925795980102327845e-05 -1.931226505767062683e-05 -7.572801304775587637e-06 -7.590048617651911953e-06 -2.607169240929026175e-06 -2.611432666321197238e-06 -7.869244904034222483e-07 -7.864628180174012540e-07 -1.811681900121778976e-07 -1.818977066157477134e-07 -6.013666738705436099e-07 -6.039256115261939093e-07 -1.746296836108871763e-06 -1.754848528222197469e-06 -4.438649324935923061e-06 -4.462779556543016544e-06 -9.875181983286964905e-06 -9.933277007146465088e-06 -1.923067287552946539e-05 -1.935078852514872296e-05 -3.278021697449139425e-05 -3.299438992253541129e-05 -4.891451012396405248e-05 -4.924468587807235979e-05 -6.388941498947383983e-05 -6.432996171976740807e-05 -7.303060233899729390e-05 -7.353970928471826804e-05 -7.304348883989602388e-05 -7.355293194316015154e-05 -6.391907301576983116e-05 -6.436038362580702487e-05 -4.894343549163842629e-05 -4.927437187914868703e-05 -3.279189490206582013e-05 -3.300654491978398728e-05 -1.922645333434370562e-05 -1.934677103118361604e-05 -9.866485915394293142e-06 -9.924643326108705308e-06 -4.433410095603473354e-06 -4.457555238897948883e-06 -1.744813298294420358e-06 -1.753370121270478106e-06 -6.011096572579853119e-07 -6.036696519356855956e-07 -1.814974797152624845e-07 -1.818657772122127300e-07 +2.872555083269606567e-05 +2.872555083269606567e-05 +9.505115307558087900e-05 +9.505115307558087900e-05 +2.737642781910634639e-04 +2.737642781910634639e-04 +6.837668209684796524e-04 +6.837668209684796524e-04 +1.473508491452706114e-03 +1.473508491452706114e-03 +2.736899927773278011e-03 +2.736899927773278011e-03 +4.408370636399741929e-03 +4.408370636399741929e-03 +6.225264348165724868e-03 +6.225264348165724868e-03 +7.811161536498911762e-03 +7.811161536498911762e-03 +8.806162388682703401e-03 +8.806162388682703401e-03 +8.966227232250816026e-03 +8.966227232250816026e-03 +8.206641259407938468e-03 +8.206641259407938468e-03 +6.674324709850210438e-03 +6.674324709850210438e-03 +4.746886933102251356e-03 +4.746886933102252223e-03 +2.914379696683458247e-03 +2.914379696683458247e-03 +1.538689839356357624e-03 +1.538689839356357624e-03 +7.008477900491153151e-04 +7.008477900491153151e-04 +2.770081926227910643e-04 +2.770081926227910643e-04 +9.550145182502520810e-05 +9.550145182502520810e-05 +2.882952016266132430e-05 +2.882952016266132430e-05 +7.291539594699776605e-05 +7.291539594699776605e-05 +2.404216705044922003e-04 +2.404216705044922003e-04 +6.865876080061136680e-04 +6.865876080061136680e-04 +1.687962981378506120e-03 +1.687962981378506120e-03 +3.552082567853952471e-03 +3.552082567853952471e-03 +6.415064511833978682e-03 +6.415064511833978682e-03 +1.007004310182199602e-02 +1.007004310182199602e-02 +1.398956842399657653e-02 +1.398956842399657653e-02 +1.749359236389133251e-02 +1.749359236389133251e-02 +1.990219199734364133e-02 +1.990219199734364133e-02 +2.068696049310670901e-02 +2.068696049310670901e-02 +1.948321198774304736e-02 +1.948321198774304736e-02 +1.635124655045732539e-02 +1.635124655045732192e-02 +1.195803159937665686e-02 +1.195803159937665686e-02 +7.464228093995859542e-03 +7.464228093995859542e-03 +3.953459616124052264e-03 +3.953459616124052264e-03 +1.794919274403298549e-03 +1.794919274403298549e-03 +7.072455585601387972e-04 +7.072455585601387972e-04 +2.433398996651103092e-04 +2.433398996651103092e-04 +7.335911591675769224e-05 +7.335911591675769224e-05 +1.615408936559489122e-04 +1.615408936559489122e-04 +5.290583392372023505e-04 +5.290583392372023505e-04 +1.486204959082870498e-03 +1.486204959082870498e-03 +3.541750875007921347e-03 +3.541750875007921347e-03 +7.129550458351711743e-03 +7.129550458351711743e-03 +1.226022654941474541e-02 +1.226022654941474541e-02 +1.842448734906254951e-02 +1.842448734906254951e-02 +2.481164114701116252e-02 +2.481164114701116252e-02 +3.055525468494655131e-02 +3.055525468494655131e-02 +3.480387358944584536e-02 +3.480387358944584536e-02 +3.682734971967805554e-02 +3.682734971967805554e-02 +3.595587819511916750e-02 +3.595587819511916056e-02 +3.175007994279734763e-02 +3.175007994279734763e-02 +2.462811694471289670e-02 +2.462811694471289323e-02 +1.619311778476283450e-02 +1.619311778476283450e-02 +8.824823771124550367e-03 +8.824823771124550367e-03 +4.030691208769150713e-03 +4.030691208769150713e-03 +1.584460935055327429e-03 +1.584460935055327429e-03 +5.434715869394736009e-04 +5.434715869394736009e-04 +1.633500208839404235e-04 +1.633500208839404235e-04 +3.124231930288363370e-04 +3.124231930288363370e-04 +1.014229417011464377e-03 +1.014229417011464377e-03 +2.782790587058836702e-03 +2.782790587058836702e-03 +6.385676632275385546e-03 +6.385676632275385546e-03 +1.226841351863383264e-02 +1.226841351863383264e-02 +2.015517576216856524e-02 +2.015517576216856524e-02 +2.919575138534359973e-02 +2.919575138534359973e-02 +3.836352187511051642e-02 +3.836352187511051642e-02 +4.670414872968226688e-02 +4.670414872968225994e-02 +5.330163686131859230e-02 +5.330163686131859230e-02 +5.730880536242663470e-02 +5.730880536242660694e-02 +5.786056151044519785e-02 +5.786056151044519785e-02 +5.392778562613095850e-02 +5.392778562613095156e-02 +4.482119583310888861e-02 +4.482119583310887473e-02 +3.154595337816208656e-02 +3.154595337816208656e-02 +1.784952796324977206e-02 +1.784952796324977206e-02 +8.116030766075957650e-03 +8.116030766075957650e-03 +3.141706431651832086e-03 +3.141706431651832086e-03 +1.067587814296756376e-03 +1.067587814296756376e-03 +3.188561142043909100e-04 +3.188561142043909100e-04 +5.277218241356750527e-04 +5.277218241356750527e-04 +1.696153606730550507e-03 +1.696153606730550507e-03 +4.528570305369526532e-03 +4.528570305369526532e-03 +1.000498311277565021e-02 +1.000498311277565021e-02 +1.843760703748644619e-02 +1.843760703748644619e-02 +2.920441989991957171e-02 +2.920441989991957865e-02 +4.119031129426077575e-02 +4.119031129426077575e-02 +5.324584904006132019e-02 +5.324584904006134795e-02 +6.439469413751547355e-02 +6.439469413751547355e-02 +7.372264801176460491e-02 +7.372264801176457716e-02 +8.034606923716346161e-02 +8.034606923716346161e-02 +8.328222769155511906e-02 +8.328222769155511906e-02 +8.131228179763733133e-02 +8.131228179763734520e-02 +7.252673975919805838e-02 +7.252673975919803062e-02 +5.544457121022797197e-02 +5.544457121022797197e-02 +3.324902942402468281e-02 +3.324902942402468975e-02 +1.493549989980793094e-02 +1.493549989980793094e-02 +5.551398601227701228e-03 +5.551398601227701228e-03 +1.848715578244682512e-03 +1.848715578244682512e-03 +5.459317698005885502e-04 +5.459317698005885502e-04 +7.798587395375970949e-04 +7.798587395375970949e-04 +2.483694405156190114e-03 +2.483694405156190114e-03 +6.472119596743276457e-03 +6.472119596743276457e-03 +1.387627712150927423e-02 +1.387627712150927423e-02 +2.482185544261909793e-02 +2.482185544261909793e-02 +3.838191996981184934e-02 +3.838191996981184934e-02 +5.324942241977104890e-02 +5.324942241977104890e-02 +6.819143565729945955e-02 +6.819143565729947343e-02 +8.222774606242612416e-02 +8.222774606242615192e-02 +9.448104949937510821e-02 +9.448104949937503882e-02 +1.041027923342827260e-01 +1.041027923342826705e-01 +1.101072418407885306e-01 +1.101072418407884890e-01 +1.112021368713179137e-01 +1.112021368713178998e-01 +1.054410871890366641e-01 +1.054410871890367057e-01 +8.851242059599379042e-02 +8.851242059599381817e-02 +5.795706578794054820e-02 +5.795706578794054820e-02 +2.588771508951703479e-02 +2.588771508951703479e-02 +8.807368670131928562e-03 +8.807368670131928562e-03 +2.825682360804956158e-03 +2.825682360804956158e-03 +8.199376101029054453e-04 +8.199376101029054453e-04 +1.010781603622840823e-03 +1.010781603622840823e-03 +3.201528214919670962e-03 +3.201528214919670962e-03 +8.216844828091313460e-03 +8.216844828091313460e-03 +1.732990021939252723e-02 +1.732990021939252723e-02 +3.055135006264700359e-02 +3.055135006264700359e-02 +4.673397670130106235e-02 +4.673397670130104847e-02 +6.440414548044542942e-02 +6.440414548044542942e-02 +8.222773527488005940e-02 +8.222773527488005940e-02 +9.919418254012495051e-02 +9.919418254012496439e-02 +1.144620413978425233e-01 +1.144620413978424817e-01 +1.272367102730990462e-01 +1.272367102730989907e-01 +1.366592838948322841e-01 +1.366592838948322841e-01 +1.414550125761958321e-01 +1.414550125761958599e-01 +1.398468980764651648e-01 +1.398468980764651648e-01 +1.282684871807271698e-01 +1.282684871807271421e-01 +9.493363543532806759e-02 +9.493363543532809534e-02 +4.381181251915330227e-02 +4.381181251915330921e-02 +1.266267884510490112e-02 +1.266267884510490112e-02 +3.804384817367174008e-03 +3.804384817367174008e-03 +1.079239925500768103e-03 +1.079239925500768103e-03 +1.151788756815191406e-03 +1.151788756815191406e-03 +3.649076801161624251e-03 +3.649076801161624251e-03 +9.343043434831506400e-03 +9.343043434831506400e-03 +1.969695573773456998e-02 +1.969695573773456998e-02 +3.477897414550479988e-02 +3.477897414550479988e-02 +5.334159901200899445e-02 +5.334159901200900139e-02 +7.374164792823792447e-02 +7.374164792823789671e-02 +9.448301153092594773e-02 +9.448301153092596161e-02 +1.144607814626998205e-01 +1.144607814626998760e-01 +1.328318448493940040e-01 +1.328318448493940318e-01 +1.488578910437412528e-01 +1.488578910437412528e-01 +1.617806827816759274e-01 +1.617806827816758997e-01 +1.705654906427084283e-01 +1.705654906427084005e-01 +1.735827065086567589e-01 +1.735827065086567866e-01 +1.681150460606422037e-01 +1.681150460606422592e-01 +1.441848757230303757e-01 +1.441848757230304312e-01 +7.440935418782608501e-02 +7.440935418782607114e-02 +1.691376571571403392e-02 +1.691376571571403392e-02 +4.483522018030907698e-03 +4.483522018030907698e-03 +1.242306277728105583e-03 +1.242306277728105583e-03 +1.155075910490895117e-03 +1.155075910490895117e-03 +3.682227897346315032e-03 +3.682227897346315032e-03 +9.539938258905924021e-03 +9.539938258905924021e-03 +2.045570225273929052e-02 +2.045570225273929052e-02 +3.678642748143022556e-02 +3.678642748143021862e-02 +5.735572078103282068e-02 +5.735572078103283455e-02 +8.037513799857867736e-02 +8.037513799857867736e-02 +1.041090043690522382e-01 +1.041090043690522382e-01 +1.272354419511117218e-01 +1.272354419511117218e-01 +1.488567077380867909e-01 +1.488567077380867909e-01 +1.682123678707450054e-01 +1.682123678707450332e-01 +1.846949522738964844e-01 +1.846949522738964844e-01 +1.975146050885957794e-01 +1.975146050885957238e-01 +2.052186682430302833e-01 +2.052186682430302278e-01 +2.057040271891829586e-01 +2.057040271891829586e-01 +1.937191168454417411e-01 +1.937191168454417689e-01 +1.272688177103888651e-01 +1.272688177103888374e-01 +2.410592957258068589e-02 +2.410592957258066854e-02 +4.599641659053638719e-03 +4.599641659053638719e-03 +1.247368427422860778e-03 +1.247368427422860778e-03 +1.018493102078286234e-03 +1.018493102078286234e-03 +3.279550995383244145e-03 +3.279550995383244145e-03 +8.692584150039374749e-03 +8.692584150039376484e-03 +1.925058132490464410e-02 +1.925058132490464063e-02 +3.591745109181514184e-02 +3.591745109181512796e-02 +5.791286916015237624e-02 +5.791286916015239011e-02 +8.331796145210679239e-02 +8.331796145210680626e-02 +1.101176173302625960e-01 +1.101176173302625544e-01 +1.366589912141640828e-01 +1.366589912141640828e-01 +1.617789724392347250e-01 +1.617789724392347250e-01 +1.846942315551728386e-01 +1.846942315551727831e-01 +2.048079617451222800e-01 +2.048079617451223078e-01 +2.214932967206048875e-01 +2.214932967206049153e-01 +2.338420969515596082e-01 +2.338420969515596359e-01 +2.403111037175892362e-01 +2.403111037175892639e-01 +2.373965678969489346e-01 +2.373965678969490178e-01 +1.958673144850377190e-01 +1.958673144850377190e-01 +4.479763661313836132e-02 +4.479763661313831968e-02 +4.182663719869376441e-03 +4.182663719869376441e-03 +1.090647937398000296e-03 +1.090647937398000296e-03 +7.876783513847759747e-04 +7.876783513847759747e-04 +2.564153132969016445e-03 +2.564153132969016445e-03 +6.994555811957059270e-03 +6.994555811957060137e-03 +1.615679115076007824e-02 +1.615679115076007824e-02 +3.173693140264026435e-02 +3.173693140264026435e-02 +5.398270695003794944e-02 +5.398270695003793557e-02 +8.134758807191531937e-02 +8.134758807191529162e-02 +1.112135391285231784e-01 +1.112135391285231228e-01 +1.414554169813740103e-01 +1.414554169813740658e-01 +1.705636024392850336e-01 +1.705636024392849781e-01 +1.975134331916958141e-01 +1.975134331916957586e-01 +2.214929569170240586e-01 +2.214929569170240864e-01 +2.420869127739254112e-01 +2.420869127739255222e-01 +2.591321770916855116e-01 +2.591321770916856781e-01 +2.704307128313725994e-01 +2.704307128313726549e-01 +2.741933448333433443e-01 +2.741933448333433998e-01 +2.568499327578668279e-01 +2.568499327578667168e-01 +9.850584575914009267e-02 +9.850584575914000940e-02 +3.932394493596183538e-03 +3.932394493596181803e-03 +8.311962497912776977e-04 +8.311962497912776977e-04 +5.328597623791420232e-04 +5.328597623791420232e-04 +1.750134951744371226e-03 +1.750134951744371226e-03 +4.907263094111299732e-03 +4.907263094111299732e-03 +1.183416831723596054e-02 +1.183416831723595880e-02 +2.464032121681640833e-02 +2.464032121681640833e-02 +4.486408671390747921e-02 +4.486408671390748615e-02 +7.254900346100696951e-02 +7.254900346100696951e-02 +1.054478679766742422e-01 +1.054478679766742283e-01 +1.398467127207250749e-01 +1.398467127207250749e-01 +1.735807744393980945e-01 +1.735807744393980667e-01 +2.052172642235866040e-01 +2.052172642235866040e-01 +2.338415435484728078e-01 +2.338415435484728633e-01 +2.591320971332461420e-01 +2.591320971332461975e-01 +2.798645725826297559e-01 +2.798645725826298669e-01 +2.965617104930278192e-01 +2.965617104930279302e-01 +3.090226318968884445e-01 +3.090226318968883890e-01 +3.085424142381226198e-01 +3.085424142381225088e-01 +1.735338286015592202e-01 +1.735338286015590814e-01 +7.227259753144696548e-03 +7.227259753144685273e-03 +5.554783040650471040e-04 +5.554783040650471040e-04 +3.147970531959626240e-04 +3.147970531959626240e-04 +1.039506859183037370e-03 +1.039506859183037370e-03 +2.973763336067419914e-03 +2.973763336067420347e-03 +7.409491219088334100e-03 +7.409491219088334100e-03 +1.620931890789339275e-02 +1.620931890789339275e-02 +3.156489857502521590e-02 +3.156489857502522284e-02 +5.545028016263851833e-02 +5.545028016263851833e-02 +8.851215795612475679e-02 +8.851215795612478454e-02 +1.282668048574594766e-01 +1.282668048574594211e-01 +1.681131824024822696e-01 +1.681131824024822696e-01 +2.057026418858139416e-01 +2.057026418858139694e-01 +2.403104431523657436e-01 +2.403104431523657436e-01 +2.704305381265683095e-01 +2.704305381265683650e-01 +2.965617097303044902e-01 +2.965617097303046013e-01 +3.182896015308052662e-01 +3.182896015308052662e-01 +3.340831565257997848e-01 +3.340831565257997848e-01 +3.451934794710870835e-01 +3.451934794710869725e-01 +2.411783170948159638e-01 +2.411783170948158250e-01 +1.302185537050496063e-02 +1.302185537050494848e-02 +3.279045227196281174e-04 +3.279045227196281174e-04 +1.623368440866359403e-04 +1.623368440866359403e-04 +5.375841419514002005e-04 +5.375841419514002005e-04 +1.554104060753549923e-03 +1.554104060753549923e-03 +3.937992406960883797e-03 +3.937992406960883797e-03 +8.831953840527683938e-03 +8.831953840527683938e-03 +1.785300029290352516e-02 +1.785300029290352863e-02 +3.324891059345760208e-02 +3.324891059345760208e-02 +5.795645706712884010e-02 +5.795645706712885398e-02 +9.493348425490935605e-02 +9.493348425490932829e-02 +1.441848021593984674e-01 +1.441848021593984952e-01 +1.937187595136029006e-01 +1.937187595136028728e-01 +2.373962109950677746e-01 +2.373962109950677191e-01 +2.741932317658227758e-01 +2.741932317658227758e-01 +3.090226761265267852e-01 +3.090226761265268407e-01 +3.340832370287019626e-01 +3.340832370287019626e-01 +3.558459902664787844e-01 +3.558459902664787289e-01 +3.832034566260511532e-01 +3.832034566260510977e-01 +2.427982241635683602e-01 +2.427982241635683047e-01 +6.799226343597920309e-03 +6.799226343597916840e-03 +1.653210747998872432e-04 +1.653210747998872432e-04 +7.310859571484665210e-05 +7.310859571484665210e-05 +2.425170221551450781e-04 +2.425170221551450781e-04 +7.036989477970672811e-04 +7.036989477970672811e-04 +1.792356007629813605e-03 +1.792356007629813605e-03 +4.031983415764348565e-03 +4.031983415764348565e-03 +8.116159578801275531e-03 +8.116159578801275531e-03 +1.493512396753889429e-02 +1.493512396753889429e-02 +2.588662828108775557e-02 +2.588662828108775557e-02 +4.380896418098268602e-02 +4.380896418098268602e-02 +7.440553375438524464e-02 +7.440553375438524464e-02 +1.272659953386175435e-01 +1.272659953386176268e-01 +1.958664878124799502e-01 +1.958664878124798947e-01 +2.568497776471984628e-01 +2.568497776471984628e-01 +3.085424659321741592e-01 +3.085424659321741592e-01 +3.451935290658980082e-01 +3.451935290658980637e-01 +3.832027486913189285e-01 +3.832027486913188730e-01 +3.785081183925155246e-01 +3.785081183925154691e-01 +6.349274648644585850e-02 +6.349274648644585850e-02 +3.262993748132053760e-04 +3.262993748132053760e-04 +7.355575545791597403e-05 +7.355575545791597403e-05 +2.878417633875412273e-05 +2.878417633875412273e-05 +9.554248810953490172e-05 +9.554248810953490172e-05 +2.775169765631349409e-04 +2.775169765631349409e-04 +7.069969869371577498e-04 +7.069969869371577498e-04 +1.584610677719893845e-03 +1.584610677719893845e-03 +3.142121150415842432e-03 +3.142121150415842865e-03 +5.553101314729870161e-03 +5.553101314729870161e-03 +8.812175549613223205e-03 +8.812175549613223205e-03 +1.267269533704302661e-02 +1.267269533704302661e-02 +1.692810915879333980e-02 +1.692810915879333980e-02 +2.411867795861706576e-02 +2.411867795861706576e-02 +4.480371947703632590e-02 +4.480371947703630509e-02 +9.850675655352229831e-02 +9.850675655352229831e-02 +1.735338951668557450e-01 +1.735338951668556617e-01 +2.411789135273784968e-01 +2.411789135273784412e-01 +2.428169114374538751e-01 +2.428169114374538196e-01 +6.349055477697683469e-02 +6.349055477697680694e-02 +4.199002413641269422e-04 +4.199002413641268880e-04 +9.600310355639513039e-05 +9.600310355639513039e-05 +2.888823462211699076e-05 +2.888823462211699076e-05 +9.914690169635016724e-06 +9.914690169635016724e-06 +3.291269729790618955e-05 +3.291269729790618955e-05 +9.560149087867292317e-05 +9.560149087867292317e-05 +2.433022618710791655e-04 +2.433022618710791655e-04 +5.433631019703035608e-04 +5.433631019703035608e-04 +1.066864523189934568e-03 +1.066864523189934568e-03 +1.846075342423255739e-03 +1.846075342423255739e-03 +2.819088331979050129e-03 +2.819088331979050129e-03 +3.791975633204042965e-03 +3.791975633204042965e-03 +4.466137412513410815e-03 +4.466137412513409947e-03 +4.582548556093943987e-03 +4.582548556093943987e-03 +4.171467118629923476e-03 +4.171467118629923476e-03 +3.927088741292592868e-03 +3.927088741292592868e-03 +7.224825638779339143e-03 +7.224825638779332204e-03 +1.301542021939238770e-02 +1.301542021939237209e-02 +6.788302836763500901e-03 +6.788302836763498299e-03 +3.245016950693124249e-04 +3.245016950693124249e-04 +9.600205645207307125e-05 +9.600205645207307125e-05 +3.296714108898086905e-05 +3.296714108898086905e-05 +9.940075302262201066e-06 +9.940075302262201066e-06 +2.988664749935617133e-06 +2.988664749935617133e-06 +9.920924570081776942e-06 +9.920924570081776942e-06 +2.881317967875166792e-05 +2.881317967875166792e-05 +7.326904925447470470e-05 +7.326904925447470470e-05 +1.632250062373032053e-04 +1.632250062373032053e-04 +3.188906369253214084e-04 +3.188906369253214084e-04 +5.465710096525206807e-04 +5.465710096525206807e-04 +8.217080390470497602e-04 +8.217080390470497602e-04 +1.082455036809008711e-03 +1.082455036809008711e-03 +1.246557288649524772e-03 +1.246557288649524772e-03 +1.251481481860872201e-03 +1.251481481860872201e-03 +1.093564877026116872e-03 +1.093564877026116872e-03 +8.326500617539090527e-04 +8.326500617539090527e-04 +5.557655790220897719e-04 +5.557655790220897719e-04 +3.284118741657287600e-04 +3.284118741657287600e-04 +1.653473837208407882e-04 +1.653473837208407882e-04 +7.346977799051132585e-05 +7.346977799051132585e-05 +2.884874749537819899e-05 +2.884874749537819899e-05 +9.925858485812810467e-06 +9.925858485812810467e-06 +2.995136897139399850e-06 +2.995136897139399850e-06 +7.885053095920514014e-07 +7.885053095920514014e-07 +2.617389777183280353e-06 +2.617389777183280353e-06 +7.600937626803264477e-06 +7.600937626803264477e-06 +1.932222232485061964e-05 +1.932222232485061964e-05 +4.300068862743507863e-05 +4.300068862743507863e-05 +8.379561671722442803e-05 +8.379561671722442803e-05 +1.430549121404157324e-04 +1.430549121404157324e-04 +2.139464485629094059e-04 +2.139464485629094059e-04 +2.801103099579138004e-04 +2.801103099579138004e-04 +3.207747091802685621e-04 +3.207747091802685621e-04 +3.210589638091714037e-04 +3.210589638091714037e-04 +2.807612123041981246e-04 +2.807612123041981246e-04 +2.145820104749888502e-04 +2.145820104749888502e-04 +1.434580436888381453e-04 +1.434580436888381453e-04 +8.397143058324390489e-05 +8.397143058324390489e-05 +4.305480403940289269e-05 +4.305480403940289269e-05 +1.933576570876879773e-05 +1.933576570876879773e-05 +7.603459274283963977e-06 +7.603459274283963977e-06 +2.617733981131449207e-06 +2.617733981131449207e-06 +7.901141519359049630e-07 +7.901141519359049630e-07 +1.823784502805593729e-07 +1.823784502805593729e-07 +6.053837776196951026e-07 +6.053837776196951026e-07 +1.757960088509884190e-06 +1.757960088509884190e-06 +4.468283894874134908e-06 +4.468283894874134908e-06 +9.941094234632133530e-06 +9.941094234632133530e-06 +1.935925918764563875e-05 +1.935925918764563875e-05 +3.299912572322029374e-05 +3.299912572322029374e-05 +4.923826898070024017e-05 +4.923826898070024017e-05 +6.431094444417053335e-05 +6.431094444417053335e-05 +7.351330668568372426e-05 +7.351330668568372426e-05 +7.352753103316512964e-05 +7.352753103316512964e-05 +6.434357041419475033e-05 +6.434357041419475033e-05 +4.927003838266346287e-05 +4.927003838266346287e-05 +3.301895763488334651e-05 +3.301895763488334651e-05 +1.936816880633240542e-05 +1.936816880633240542e-05 +9.944162534031167691e-06 +9.944162534031167691e-06 +4.469028507916289829e-06 +4.469028507916289829e-06 +1.758094146113675732e-06 +1.758094146113675732e-06 +6.054025130129001712e-07 +6.054025130129001712e-07 +1.827442643655394671e-07 +1.827442643655394671e-07 From fb0d7454216827365e2601fe7469f4038bd3224f Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Fri, 24 Jan 2025 13:55:56 -0700 Subject: [PATCH 11/15] attempt to force libssl1.1 install --- .github/workflows/test-all.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test-all.yml b/.github/workflows/test-all.yml index f81048e2..d1438e0d 100644 --- a/.github/workflows/test-all.yml +++ b/.github/workflows/test-all.yml @@ -46,8 +46,11 @@ jobs: - name: Install packages run: | + echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list sudo apt-get update + sudo apt-get install libssl1.1 sudo apt-get install -y --install-suggests $APT_PACKAGES + sudo rm /etc/apt/sources.list.d/focal-security.list - name: Install CMake run: | From e4fe2a7a4be028b8d0c1971c390dda894241aea4 Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Fri, 24 Jan 2025 14:10:09 -0700 Subject: [PATCH 12/15] fix Python error, clang build still broken --- src_py/main_binder.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src_py/main_binder.cc b/src_py/main_binder.cc index dc33fb62..e22f869f 100644 --- a/src_py/main_binder.cc +++ b/src_py/main_binder.cc @@ -164,7 +164,7 @@ void bind2dProblemEnums(pybind11::module & mParent) pybind11::enum_(mParent, "AdvectionDiffusion2d") .value("BurgersPeriodic", - pda::AdvectionDiffusion2d::BurgersPeriodic); + pda::AdvectionDiffusion2d::BurgersPeriodic) .value("BurgersOutflow", pda::AdvectionDiffusion2d::BurgersOutflow); From 709cbb5f3da7d9289256173cd35102679a6fb73f Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Fri, 24 Jan 2025 14:21:28 -0700 Subject: [PATCH 13/15] try to suppress unused variable warning due to clang --- .github/workflows/test-all.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-all.yml b/.github/workflows/test-all.yml index d1438e0d..713ec5b0 100644 --- a/.github/workflows/test-all.yml +++ b/.github/workflows/test-all.yml @@ -96,7 +96,7 @@ jobs: -DCMAKE_BUILD_TYPE:STRING=${{ matrix.config.mode }} \ -DPRESSIODEMOAPPS_ENABLE_TESTS:BOOL=ON \ -DPRESSIODEMOAPPS_ENABLE_BINDINGS:BOOL=OFF \ - -DCMAKE_CXX_FLAGS="-Wall -Werror" \ + -DCMAKE_CXX_FLAGS="-Wall -Wno-unused-variable -Werror" \ -B $BUILD_DIR -S $DEMOAPPS_HOME # NOTE: -j2 caused g++ crash (out of memory) From 1917933d64a02de15ac3568366ea71cdbd1395f5 Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Mon, 27 Jan 2025 10:53:41 -0500 Subject: [PATCH 14/15] modify python binder and actions error flag --- .github/workflows/test-all.yml | 2 +- src_py/main_binder.cc | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/test-all.yml b/.github/workflows/test-all.yml index 713ec5b0..7e6ef5dd 100644 --- a/.github/workflows/test-all.yml +++ b/.github/workflows/test-all.yml @@ -96,7 +96,7 @@ jobs: -DCMAKE_BUILD_TYPE:STRING=${{ matrix.config.mode }} \ -DPRESSIODEMOAPPS_ENABLE_TESTS:BOOL=ON \ -DPRESSIODEMOAPPS_ENABLE_BINDINGS:BOOL=OFF \ - -DCMAKE_CXX_FLAGS="-Wall -Wno-unused-variable -Werror" \ + -DCMAKE_CXX_FLAGS="-Wall -Wno-unused-but-set-variable -Werror" \ -B $BUILD_DIR -S $DEMOAPPS_HOME # NOTE: -j2 caused g++ crash (out of memory) diff --git a/src_py/main_binder.cc b/src_py/main_binder.cc index e22f869f..86b25c04 100644 --- a/src_py/main_binder.cc +++ b/src_py/main_binder.cc @@ -396,7 +396,6 @@ void bindAdvectionDiffusion2d(pybind11::module & mParent) pybind11::return_value_policy::take_ownership, pybind11::arg().noconvert(), pybind11::arg().noconvert(), pybind11::arg().noconvert(), pybind11::arg().noconvert(), - pybind11::arg().noconvert(), pybind11::arg().noconvert(), pybind11::arg().noconvert(), pybind11::arg().noconvert()); } From 0f7bff7297c9e7ebc5bd9a5bff978bb07dbfa22e Mon Sep 17 00:00:00 2001 From: Chris Wentland Date: Mon, 27 Jan 2025 11:25:21 -0500 Subject: [PATCH 15/15] update python binder again --- src_py/main_binder.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src_py/main_binder.cc b/src_py/main_binder.cc index 86b25c04..0c3eec9b 100644 --- a/src_py/main_binder.cc +++ b/src_py/main_binder.cc @@ -396,7 +396,7 @@ void bindAdvectionDiffusion2d(pybind11::module & mParent) pybind11::return_value_policy::take_ownership, pybind11::arg().noconvert(), pybind11::arg().noconvert(), pybind11::arg().noconvert(), pybind11::arg().noconvert(), - pybind11::arg().noconvert(), pybind11::arg().noconvert()); + pybind11::arg().noconvert()); } // -----------------------