diff --git a/dumux/material/fluidsystems/purewatersimplefluidsystem.hh b/dumux/material/fluidsystems/purewatersimplefluidsystem.hh new file mode 100644 index 0000000000000000000000000000000000000000..00182da50bfaa78525af4949a489e338f47e7166 --- /dev/null +++ b/dumux/material/fluidsystems/purewatersimplefluidsystem.hh @@ -0,0 +1,581 @@ +// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +// vi: set et ts=4 sw=4 sts=4: +/***************************************************************************** + * See the file COPYING for full copying permissions. * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see <http://www.gnu.org/licenses/>. * + *****************************************************************************/ +/*! + * \file + * + * \brief A twophase fluid system with water and nitrogen as components. + */ +#ifndef DUMUX_PURE_WATER_FLUID_SYSTEM_HH +#define DUMUX_PURE_WATER_FLUID_SYSTEM_HH + +#include <cassert> + +#include <dumux/material/idealgas.hh> + +#include <dumux/material/components/n2.hh> +#include <dumux/material/components/h2o.hh> +#include <dumux/material/components/simpleh2o.hh> +#include <dumux/material/components/tabulatedcomponent.hh> +#include <dumux/material/binarycoefficients/h2o_n2.hh> + +#include <dumux/common/valgrind.hh> +#include <dumux/common/exceptions.hh> + +#include <dumux/material/fluidsystems/basefluidsystem.hh> + +#ifdef DUMUX_PROPERTIES_HH +#include <dumux/common/basicproperties.hh> +#include <dumux/material/fluidsystems/defaultcomponents.hh> +#endif + +namespace Dumux +{ +namespace FluidSystems +{ + +/*! + * \ingroup Fluidsystems + * + * \brief A two-phase fluid system with water as sole component. + * Values are taken from Shi & Wang, A numerical investigation of transpiration cooling with liquid coolant phase change, Transport in Porous Media, 2011 + * + * This FluidSystem can be used without the PropertySystem that is applied in Dumux, + * as all Parameters are defined via template parameters. Hence it is in an + * additional namespace Dumux::FluidSystem::. + * An adapter class using Dumux::FluidSystem<TypeTag> is also provided + * at the end of this file. + */ +template <class Scalar, bool useComplexRelations = false> +class PureWaterSimpleFluidSystem + : public BaseFluidSystem<Scalar, PureWaterSimpleFluidSystem<Scalar, useComplexRelations> > +{ + typedef PureWaterSimpleFluidSystem<Scalar, useComplexRelations> ThisType; + typedef BaseFluidSystem<Scalar, ThisType> Base; + + // convenience typedefs + typedef Dumux::IdealGas<Scalar> IdealGas; + typedef Dumux::SimpleH2O<Scalar> SimpleH2O; + typedef Dumux::N2<Scalar> SimpleN2; + +public: + /**************************************** + * Fluid phase related static parameters + ****************************************/ + + //! Number of phases in the fluid system + static constexpr int numPhases = 2; + + static constexpr int wPhaseIdx = 0; // index of the wetting phase + static constexpr int nPhaseIdx = 1; // index of the non-wetting phase + static constexpr int sPhaseIdx = 2; // Index of the solid phase + + // export component indices to indicate the main component + // of the corresponding phase at atmospheric pressure 1 bar + // and room temperature 20°C: + static const int wCompIdx = wPhaseIdx; + static const int nCompIdx = nPhaseIdx; + + /*! + * \brief Return the human readable name of a fluid phase + * + * \param phaseIdx The index of the fluid phase to consider + */ + static const char *phaseName(int phaseIdx) + { + static const char *name[] = { + "w", + "n", + "s" + }; + + assert(0 <= phaseIdx && phaseIdx < numPhases); + return name[phaseIdx]; + } + + /*! + * \brief Return whether a phase is liquid + * + * \param phaseIdx The index of the fluid phase to consider + */ + static bool isLiquid(int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + return phaseIdx != nPhaseIdx; + } + + /*! + * \brief Returns true if and only if a fluid phase is assumed to + * be an ideal mixture. + * + * We define an ideal mixture as a fluid phase where the fugacity + * coefficients of all components times the pressure of the phase + * are indepent on the fluid composition. This assumtion is true + * if Henry's law and Rault's law apply. If you are unsure what + * this function should return, it is safe to return false. The + * only damage done will be (slightly) increased computation times + * in some cases. + * + * \param phaseIdx The index of the fluid phase to consider + */ + static bool isIdealMixture(int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + // we assume Henry's and Rault's laws for the water phase and + // and no interaction between gas molecules of different + // components, so all phases are ideal mixtures! + return true; + } + + /*! + * \brief Returns true if and only if a fluid phase is assumed to + * be compressible. + * + * Compressible means that the partial derivative of the density + * to the fluid pressure is always larger than zero. + * + * \param phaseIdx The index of the fluid phase to consider + */ + static bool isCompressible(int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + // gases are always compressible + if (phaseIdx == nPhaseIdx) + return true; + // the water component decides for the liquid phase... + return H2O::liquidIsCompressible(); + } + + /*! + * \brief Returns true if and only if a fluid phase is assumed to + * be an ideal gas. + * + * \param phaseIdx The index of the fluid phase to consider + */ + static bool isIdealGas(int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + + if (phaseIdx == nPhaseIdx) + // let the components decide + return H2O::gasIsIdeal() && N2::gasIsIdeal(); + return false; // not a gas + } + + /**************************************** + * Component related static parameters + ****************************************/ + + //! Number of components in the fluid system + static constexpr int numComponents = 2; + + static constexpr int H2OIdx = 0; + static constexpr int N2Idx = 1; + + //! The components for pure water + typedef SimpleH2O H2O; + + //! The components for pure nitrogen + typedef SimpleN2 N2; + + /*! + * \brief Return the human readable name of a component + * + * \param compIdx The index of the component to consider + */ + static const char *componentName(int compIdx) + { + static const char *name[] = { + H2O::name(), + N2::name() + }; + + assert(0 <= compIdx && compIdx < numComponents); + return name[compIdx]; + } + + /*! + * \brief Return the molar mass of a component in [kg/mol]. + * + * \param compIdx The index of the component to consider + */ + static Scalar molarMass(int compIdx) + { + static const Scalar M[] = { + H2O::molarMass(), + N2::molarMass(), + }; + + assert(0 <= compIdx && compIdx < numComponents); + return M[compIdx]; + } + + /*! + * \brief Critical temperature of a component [K]. + * + * \param compIdx The index of the component to consider + */ + static Scalar criticalTemperature(int compIdx) + { + static const Scalar Tcrit[] = { + H2O::criticalTemperature(), // H2O + N2::criticalTemperature() // N2 + }; + + assert(0 <= compIdx && compIdx < numComponents); + return Tcrit[compIdx]; + } + + /*! + * \brief Critical pressure of a component [Pa]. + * + * \param compIdx The index of the component to consider + */ + static Scalar criticalPressure(int compIdx) + { + static const Scalar pcrit[] = { + H2O::criticalPressure(), + N2::criticalPressure() + }; + + assert(0 <= compIdx && compIdx < numComponents); + return pcrit[compIdx]; + } + + /*! + * \brief Molar volume of a component at the critical point [m^3/mol]. + * + * \param compIdx The index of the component to consider + */ + static Scalar criticalMolarVolume(int compIdx) + { + DUNE_THROW(Dune::NotImplemented, + "H2ON2FluidSystem::criticalMolarVolume()"); + return 0; + } + + /*! + * \brief The acentric factor of a component []. + * + * \param compIdx The index of the component to consider + */ + static Scalar acentricFactor(int compIdx) + { + static const Scalar accFac[] = { + H2O::acentricFactor(), // H2O (from Reid, et al.) + N2::acentricFactor() + }; + + assert(0 <= compIdx && compIdx < numComponents); + return accFac[compIdx]; + } + + /**************************************** + * thermodynamic relations + ****************************************/ + + /*! + * \brief Initialize the fluid system's static parameters generically + * + * If a tabulated H2O component is used, we do our best to create + * tables that always work. + */ + static void init() + { + init(/*tempMin=*/273.15, + /*tempMax=*/623.15, + /*numTemp=*/100, + /*pMin=*/0.0, + /*pMax=*/20e6, + /*numP=*/200); + } + + /*! + * \brief Initialize the fluid system's static parameters using + * problem specific temperature and pressure ranges + * + * \param tempMin The minimum temperature used for tabulation of water [K] + * \param tempMax The maximum temperature used for tabulation of water [K] + * \param nTemp The number of ticks on the temperature axis of the table of water + * \param pressMin The minimum pressure used for tabulation of water [Pa] + * \param pressMax The maximum pressure used for tabulation of water [Pa] + * \param nPress The number of ticks on the pressure axis of the table of water + */ + static void init(Scalar tempMin, Scalar tempMax, unsigned nTemp, + Scalar pressMin, Scalar pressMax, unsigned nPress) + { + std::cout << "Using very simple pure water fluid system\n"; + } + + /*! + * \brief Calculate the density [kg/m^3] of a fluid phase + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + */ + using Base::density; + template <class FluidState> + static Scalar density(const FluidState &fluidState, + int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + + // liquid phase + if (phaseIdx == wPhaseIdx) { + return 1044.0 ; + } + else if (phaseIdx == nPhaseIdx)// gas phase + { + return + 1.679 ; + } + else DUNE_THROW(Dune::NotImplemented, + "wrong index"); + } + + /*! + * \brief Calculate the dynamic viscosity of a fluid phase [Pa*s] + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + */ + using Base::viscosity; + template <class FluidState> + static Scalar viscosity(const FluidState &fluidState, + int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + + // liquid phase + if (phaseIdx == wPhaseIdx) { + return 2.694e-7 * density(fluidState, phaseIdx) ; + } + else if (phaseIdx == nPhaseIdx) // gas phase + { + return 7.16e-6 * density(fluidState, phaseIdx) ; + } + else DUNE_THROW(Dune::NotImplemented, + "wrong index"); + } + + /*! + * \brief calculate the temperature of vapor at a given pressure on the vapor pressure curve. + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + */ + template <class FluidState> + static Scalar vaporTemperature(const FluidState &fluidState, + const unsigned int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + Scalar pressure = fluidState.pressure(nPhaseIdx) ; + + return IAPWS::Region4<Scalar>::vaporTemperature( pressure ) ; + } + + /*! + * \brief Calculate the fugacity coefficient [Pa] of an individual + * component in a fluid phase + * + * The fugacity coefficient \f$\phi^\kappa_\alpha\f$ of + * component \f$\kappa\f$ in phase \f$\alpha\f$ is connected to + * the fugacity \f$f^\kappa_\alpha\f$ and the component's mole + * fraction \f$x^\kappa_\alpha\f$ by means of the relation + * + * \f[ + f^\kappa_\alpha = \phi^\kappa_\alpha\;x^\kappa_\alpha\;p_\alpha + \f] + * where \f$p_\alpha\f$ is the pressure of the fluid phase. + * + * The quantity "fugacity" itself is just an other way to express + * the chemical potential \f$\zeta^\kappa_\alpha\f$ of the + * component. It is defined via + * + * \f[ + f^\kappa_\alpha := \exp\left\{\frac{\zeta^\kappa_\alpha}{k_B T_\alpha} \right\} + \f] + * where \f$k_B = 1.380\cdot10^{-23}\;J/K\f$ is the Boltzmann constant. + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + * \param compIdx The index of the component to consider + */ + using Base::fugacityCoefficient; + template <class FluidState> + static Scalar fugacityCoefficient(const FluidState &fluidState, + int phaseIdx, + int compIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + assert(0 <= compIdx && compIdx < numComponents); + + Scalar T = fluidState.temperature(phaseIdx); + Scalar p = fluidState.pressure(phaseIdx); + + // liquid phase + if (phaseIdx == wPhaseIdx) { + if (compIdx == H2OIdx) + return H2O::vaporPressure(T)/p; + return Dumux::BinaryCoeff::H2O_N2::henry(T)/p; + } + + // for the gas phase, assume an ideal gas when it comes to + // fugacity (-> fugacity == partial pressure) + return 1.0; + } + + + /*! + * \brief Calculate the molecular diffusion coefficient for a + * component in a fluid phase [mol^2 * s / (kg*m^3)] + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + * \param compIdx The index of the component to consider + */ + using Base::diffusionCoefficient; + template <class FluidState> + static Scalar diffusionCoefficient(const FluidState &fluidState, + int phaseIdx, + int compIdx) + { + // TODO! + DUNE_THROW(Dune::NotImplemented, "Diffusion coefficients"); + } + + /*! + * \brief Given a phase's composition, temperature and pressure, + * return the binary diffusion coefficient for components + * \f$i\f$ and \f$j\f$ in this phase. + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + * \param compIIdx The index of the first component to consider + * \param compJIdx The index of the second component to consider + */ + using Base::binaryDiffusionCoefficient; + template <class FluidState> + static Scalar binaryDiffusionCoefficient(const FluidState &fluidState, + int phaseIdx, + int compIIdx, + int compJIdx) + + { + DUNE_THROW(Dune::NotImplemented, "Binary Diffusion coefficients"); + } + + /*! + * \brief Calculate specific enthalpy [J/kg]. + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + */ + using Base::enthalpy; + template <class FluidState> + static Scalar enthalpy(const FluidState &fluidState, + int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + Scalar temperature = fluidState.temperature(phaseIdx); + + const Scalar cp = heatCapacity(fluidState, phaseIdx) ; + + // liquid phase + if (phaseIdx == wPhaseIdx) { + return cp * (temperature - 373.15); + } + else if (phaseIdx == nPhaseIdx) // gas phase + { + return cp * (temperature - 373.15) + 2.257e6; + } + else DUNE_THROW(Dune::NotImplemented, + "wrong index"); + } + + /*! + * \brief Thermal conductivity of a fluid phase [W/(m K)]. + * + * Use the conductivity of vapor and liquid water at 100°C + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + */ + using Base::thermalConductivity; + template <class FluidState> + static Scalar thermalConductivity(const FluidState &fluidState, + const int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + // liquid phase + if (phaseIdx == wPhaseIdx) { + return 0.68 ; + } + else if (phaseIdx == nPhaseIdx) // gas phase + { + return 0.0248; + } + else DUNE_THROW(Dune::NotImplemented, + "wrong index"); + } + + /*! + * \brief Specific isobaric heat capacity of a fluid phase. + * \f$\mathrm{[J/kg / K]}\f$. + * + * \param fluidState An arbitrary fluid state + * \param phaseIdx The index of the fluid phase to consider + */ + using Base::heatCapacity; + template <class FluidState> + static Scalar heatCapacity(const FluidState &fluidState, + int phaseIdx) + { + assert(0 <= phaseIdx && phaseIdx < numPhases); + // liquid phase + if (phaseIdx == wPhaseIdx) { + return 4.217e3 ; + } + else if (phaseIdx == nPhaseIdx) // gas phase + { + return 2.029e3; + } + else DUNE_THROW(Dune::NotImplemented, + "wrong index"); + } +}; + +} // end namespace FluidSystems + +#ifdef DUMUX_PROPERTIES_HH +/*! + * \brief A twophase fluid system with water and nitrogen as components. + * + * This is an adapter to use Dumux::H2ON2FluidSystem<TypeTag>, as is + * done with most other classes in Dumux. + */ +template<class TypeTag> +class PureWaterSimpleFluidSystem +: public FluidSystems::PureWaterSimpleFluidSystem<typename GET_PROP_TYPE(TypeTag, Scalar), + GET_PROP_VALUE(TypeTag, EnableComplicatedFluidSystem)> +{}; +#endif + +} // end namespace + +#endif diff --git a/test/implicit/mpnc/CMakeLists.txt b/test/implicit/mpnc/CMakeLists.txt index f89c5cf21b5577fe63890553964a2a19af3e9954..76a23e7c1b96712f2e28904ed697f674d9bf9e72 100644 --- a/test/implicit/mpnc/CMakeLists.txt +++ b/test/implicit/mpnc/CMakeLists.txt @@ -40,6 +40,7 @@ add_dumux_test(test_forchheimer2p test_forchheimer2p test_forchheimer2p.cc -ParameterFile ${CMAKE_CURRENT_SOURCE_DIR}/test_forchheimer2p.input -Grid.File ${CMAKE_CURRENT_SOURCE_DIR}/grids/obstacle_24x16.dgf) +# build target for the full kinetic test problem add_dumux_test(test_boxmpnckinetic test_boxmpnckinetic test_boxmpnckinetic.cc ${CMAKE_SOURCE_DIR}/bin/runTest.sh ${CMAKE_SOURCE_DIR}/bin/fuzzycomparevtu.py @@ -49,6 +50,16 @@ add_dumux_test(test_boxmpnckinetic test_boxmpnckinetic test_boxmpnckinetic.cc -ParameterFile ${CMAKE_CURRENT_SOURCE_DIR}/test_boxmpnckinetic.input -Grid.File ${CMAKE_CURRENT_SOURCE_DIR}/grids/interfacedomain.dgf) + # build target for the energy kinetic test problem, two energy balance equations +add_dumux_test(test_boxmpncthermalnonequil test_boxmpncthermalnonequil test_boxmpncthermalnonequil.cc + ${CMAKE_SOURCE_DIR}/bin/runTest.sh + ${CMAKE_SOURCE_DIR}/bin/fuzzycomparevtu.py + ${CMAKE_SOURCE_DIR}/test/references/combustion-reference.vtp + ${CMAKE_CURRENT_BINARY_DIR}/combustion-00078.vtp + ${CMAKE_CURRENT_BINARY_DIR}/test_boxmpncthermalnonequil + -ParameterFile ${CMAKE_CURRENT_SOURCE_DIR}/test_boxmpncthermalnonequil.input + -Grid.File ${CMAKE_CURRENT_SOURCE_DIR}/grids/combustionOutflowGridLinNX100LogNx100.dgf) + target_link_libraries(test_boxmpnckinetic ${DUNE_LIBS} ${MPI_LIBRARIES}) add_dune_alugrid_flags(test_boxmpnckinetic) add_dune_ug_flags(test_boxmpnckinetic) diff --git a/test/implicit/mpnc/Makefile.am b/test/implicit/mpnc/Makefile.am index 369fce3287d8bdebaaf66e0a1210c91565dac84c..30c22237bbe422ca5ec105784f9a893ab6969674 100644 --- a/test/implicit/mpnc/Makefile.am +++ b/test/implicit/mpnc/Makefile.am @@ -1,4 +1,4 @@ -check_PROGRAMS = test_boxmpnc test_ccmpnc test_forchheimer2p test_forchheimer1p test_boxmpnckinetic +check_PROGRAMS = test_boxmpnc test_ccmpnc test_forchheimer2p test_forchheimer1p test_boxmpnckinetic test_boxmpncthermalnonequil noinst_HEADERS = *.hh EXTRA_DIST= *.input CMakeLists.txt grids/*.dgf @@ -10,6 +10,7 @@ test_ccmpnc_SOURCES = test_ccmpnc.cc test_forchheimer2p_SOURCES = test_forchheimer2p.cc test_forchheimer1p_SOURCES = test_forchheimer1p.cc test_boxmpnckinetic_SOURCES = test_boxmpnckinetic.cc +test_boxmpncthermalnonequil_SOURCES = test_boxmpncthermalnonequil.cc diff --git a/test/implicit/mpnc/combustionproblem1c.hh b/test/implicit/mpnc/combustionproblem1c.hh new file mode 100644 index 0000000000000000000000000000000000000000..5941635103de927cb1e31203fb0ec64d983c9f7f --- /dev/null +++ b/test/implicit/mpnc/combustionproblem1c.hh @@ -0,0 +1,792 @@ +/***************************************************************************** + * Copyright (C) 2012 by Philipp Nuske * + * Institute for Modelling Hydraulic and Environmental Systems * + * University of Stuttgart, Germany * + * email: <givenname>.<name>@iws.uni-stuttgart.de * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see <http://www.gnu.org/licenses/>. * + *****************************************************************************/ +/* + * \file CombustionProblem.hh + * \ingroup MpNcBoxproblems + * + * \brief Problem where hot, pure air is injected from the left hand side into a initially + * isotherm domain. A kinetic model is used: i.e. three different (fluid, gas, solid) + * temperatures are primary variables. + * + * The Problem is written, such that the kinetic consideration for mass and energy can + * be switched of by merely setting kinetic, kineticenergy respectivly to false. + * Boundary and initial conditions are specified for all cases. + * + * \author Philipp Nuske + */ +#ifndef DUMUX_COMBUSTION_PROBLEM_ONE_COMPONENT_HH +#define DUMUX_COMBUSTION_PROBLEM_ONE_COMPONENT_HH + + +// st this to one for the Thermo-Gross Mass Transfer +#define FUNKYMASSTRANSFER 0 + +// this sets that the relation using pc_max is used. +// i.e. - only parameters for awn, ans are given, +// - the fit for ans involves the maximum value for pc, where Sw, awn are zero. +// setting it here, because it impacts volume variables and spatialparameters +#define USE_PCMAX 0 + + + + +#include <dune/common/parametertreeparser.hh> + + +#include <dumux/implicit/common/implicitporousmediaproblem.hh> + +#include <dumux/implicit/mpnc/mpncmodelkinetic.hh> + +#include "combustionspatialparams.hh" + +#include <dumux/implicit/mpnc/velomodelnewtoncontroller.hh> + +#include <dumux/material/fluidsystems/purewatersimplefluidsystem.hh> + +#include <dumux/material/fluidstates/compositionalfluidstate.hh> + +#include <dumux/material/fluidmatrixinteractions/2p/thermalconductivitysimplefluidlumping.hh> + +#include <dumux/material/constraintsolvers/computefromreferencephase.hh> + +//#include <dumux/io/plotoverline1d.hh> + + +namespace Dumux +{ + +template <class TypeTag> +class CombustionProblemOneComponent; + +namespace Properties +{ +NEW_TYPE_TAG(CombustionProblemOneComponent, + INHERITS_FROM(BoxMPNCKinetic, CombustionSpatialParams)); + + +// Set the grid type +SET_PROP(CombustionProblemOneComponent, Grid) +{ + typedef typename Dune::OneDGrid type; +}; + +SET_TYPE_PROP(CombustionProblemOneComponent, LinearSolver, SuperLUBackend<TypeTag>); + +// Set the problem property +SET_TYPE_PROP(CombustionProblemOneComponent, + Problem, + Dumux::CombustionProblemOneComponent<TTAG(CombustionProblemOneComponent)>); + +// Set fluid configuration +SET_PROP(CombustionProblemOneComponent, FluidSystem) +{ +private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; +public: typedef Dumux::FluidSystems::PureWaterSimpleFluidSystem<Scalar, /*useComplexRelations=*/false> type; +}; + +// Set the newton controller +SET_TYPE_PROP(CombustionProblemOneComponent, + NewtonController, + Dumux::VeloModelNewtonController<TypeTag>); + + +//! Set the default pressure formulation: either pw first or pn first +SET_INT_PROP(CombustionProblemOneComponent, + PressureFormulation, + MpNcPressureFormulation::mostWettingFirst); + +// Set the type used for scalar values +SET_TYPE_PROP(CombustionProblemOneComponent, Scalar, double ); // quad / double + +// Enable gravity +SET_BOOL_PROP(CombustionProblemOneComponent, ProblemEnableGravity, true); + +// Specify whether diffusion is enabled +SET_BOOL_PROP(CombustionProblemOneComponent, EnableDiffusion, false); + +// do not use smooth upwinding +SET_BOOL_PROP(CombustionProblemOneComponent, ImplicitEnableSmoothUpwinding, false); + +// do not use a chopped newton method in the beginning +SET_BOOL_PROP(CombustionProblemOneComponent, NewtonEnableChop, false); + +// use forward differences instead of central ones +SET_INT_PROP(CombustionProblemOneComponent, ImplicitNumericDifferenceMethod, +1); + + +// disable partial jacobian matrix reassembly +SET_BOOL_PROP(CombustionProblemOneComponent, ImplicitEnablePartialReassemble, false); + +// Enable the re-use of the jacobian matrix whenever possible? +SET_BOOL_PROP(CombustionProblemOneComponent, ImplicitEnableJacobianRecycling, true); + +// Specify whether the convergence rate ought to be written out by the +// newton method +SET_BOOL_PROP(CombustionProblemOneComponent, NewtonWriteConvergence, false); + +//! Franz Lindners simple lumping +SET_PROP(CombustionProblemOneComponent, ThermalConductivityModel) +{ + public: typedef ThermalConductivitySimpleFluidLumping<TypeTag> type; +}; + + +//################# +// Which Code to compile +// Specify whether there is any energy equation +SET_BOOL_PROP(CombustionProblemOneComponent, EnableEnergy, true ); +// Specify whether the kinetic energy module is used +SET_INT_PROP(CombustionProblemOneComponent, NumEnergyEquations, 2 ); +// Specify whether the kinetic mass module is use +SET_BOOL_PROP(CombustionProblemOneComponent, EnableKinetic, false); +//################# + +/*! + * \brief The fluid state which is used by the volume variables to + * store the thermodynamic state. This has to be chosen + * appropriately for the model ((non-)isothermal, equilibrium, ...). + */ +SET_PROP(CombustionProblemOneComponent, FluidState){ + private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + private: typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + public: typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> type; +}; + +SET_BOOL_PROP(CombustionProblemOneComponent, UseMaxwellDiffusion, false); + +// Output variables +SET_BOOL_PROP(CombustionProblemOneComponent, VtkAddVelocities, true); +SET_BOOL_PROP(CombustionProblemOneComponent, VtkAddReynolds, true); +SET_BOOL_PROP(CombustionProblemOneComponent, VtkAddPrandtl, true); +SET_BOOL_PROP(CombustionProblemOneComponent, VtkAddNusselt, true); +SET_BOOL_PROP(CombustionProblemOneComponent, VtkAddBoundaryTypes, true); +SET_BOOL_PROP(CombustionProblemOneComponent, VtkAddInterfacialArea, true); +SET_BOOL_PROP(CombustionProblemOneComponent, VtkAddTemperatures, true); +SET_BOOL_PROP(CombustionProblemOneComponent, VtkAddxEquil, true); +SET_BOOL_PROP(CombustionProblemOneComponent, VtkAddDeltaP, true); + +SET_BOOL_PROP(CombustionProblemOneComponent, VelocityAveragingInModel, true); +} + +/*! + * \ingroup MpNcBoxproblems + * + * \brief Problem where the evaporation is tested. + */ +template <class TypeTag> +class CombustionProblemOneComponent + : public ImplicitPorousMediaProblem<TypeTag> +{ + + typedef CombustionProblemOneComponent<TypeTag> ThisType; + typedef ImplicitPorousMediaProblem<TypeTag> ParentType; + typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices; + typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView; + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables; + typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes; + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + /*! + * \brief The fluid state which is used by the volume variables to + * store the thermodynamic state. This should be chosen + * appropriately for the model ((non-)isothermal, equilibrium, ...). + * This can be done in the problem. + */ + typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState; + typedef typename FluidSystem::ParameterCache ParameterCache; + enum { dim = GridView::dimension}; // Grid and world dimension + enum { dimWorld = GridView::dimensionworld}; + enum { numPhases = GET_PROP_VALUE(TypeTag, NumPhases)}; + enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents)}; + enum { s0EqIdx = Indices::s0Idx}; + enum { p0EqIdx = Indices::p0Idx}; + enum { conti00EqIdx = Indices::conti0EqIdx }; + enum { temperature0Idx = Indices::temperatureIdx}; + enum { energyEq0Idx = Indices::energyEqIdx}; + enum { numEnergyEqs = Indices::numPrimaryEnergyVars}; + enum { energyEqSolidIdx = energyEq0Idx + numEnergyEqs - 1}; + enum { wPhaseIdx = FluidSystem::wPhaseIdx}; + enum { nPhaseIdx = FluidSystem::nPhaseIdx}; + enum { sPhaseIdx = FluidSystem::sPhaseIdx}; + enum { wCompIdx = FluidSystem::H2OIdx}; + enum { nCompIdx = FluidSystem::N2Idx}; + enum { enableKinetic = GET_PROP_VALUE(TypeTag, EnableKinetic)}; + enum { enableEnergy = GET_PROP_VALUE(TypeTag, EnableEnergy)}; + enum { numEnergyEquations = GET_PROP_VALUE(TypeTag, NumEnergyEquations)}; + enum { velocityOutput = GET_PROP_VALUE(TypeTag, VtkAddVelocities)}; + enum { velocityAveragingInModel = GET_PROP_VALUE(TypeTag, VelocityAveragingInModel)}; + + // formulations + enum { + pressureFormulation = GET_PROP_VALUE(TypeTag, PressureFormulation), + mostWettingFirst = MpNcPressureFormulation::mostWettingFirst, + leastWettingFirst = MpNcPressureFormulation::leastWettingFirst + }; + + typedef typename GridView::template Codim<0>::Entity Element; + typedef typename GridView::template Codim<dim>::Entity Vertex; + typedef typename GridView::Intersection Intersection; + typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry; + typedef typename GET_PROP_TYPE(TypeTag, MaterialLawParams) MaterialLawParams; + typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw; + typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables; + typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables; + typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager; + typedef typename GridView::template Codim<0>::Iterator ElementIterator; + typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes; + typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables; + + typedef Dune::FieldVector<typename GridView::Grid::ctype, dim> DimVector; + typedef Dune::FieldVector<typename GridView::Grid::ctype, dimWorld> GlobalPosition; + + typedef std::vector<Dune::FieldVector<Scalar, 1> > ScalarBuffer; + typedef std::array<ScalarBuffer, numPhases> PhaseBuffer; + typedef Dune::FieldVector<Scalar, dim> VelocityVector; + typedef Dune::BlockVector<VelocityVector> VelocityField; + typedef std::array<VelocityField, numPhases> PhaseVelocityField; + +public: + CombustionProblemOneComponent(TimeManager &timeManager, + const GridView &gridView) + : ParentType(timeManager, gridView) + { + } + + void init() + { + try + { + eps_ = 1e-6; + outputName_ = GET_RUNTIME_PARAM(TypeTag, std::string, Constants.outputName); + nRestart_ = GET_RUNTIME_PARAM(TypeTag, int, Constants.nRestart); + TInitial_ = GET_RUNTIME_PARAM(TypeTag, Scalar, InitialConditions.TInitial); + TRight_ = GET_RUNTIME_PARAM(TypeTag, Scalar, InitialConditions.TRight); + pnInitial_ = GET_RUNTIME_PARAM(TypeTag, Scalar,InitialConditions.pnInitial); + TBoundary_ = GET_RUNTIME_PARAM(TypeTag, Scalar,BoundaryConditions.TBoundary); + SwBoundary_ = GET_RUNTIME_PARAM(TypeTag, Scalar,BoundaryConditions.SwBoundary); + SwOneComponentSys_ = GET_RUNTIME_PARAM(TypeTag, Scalar,BoundaryConditions.SwOneComponentSys); + massFluxInjectedPhase_ = GET_RUNTIME_PARAM(TypeTag, Scalar,BoundaryConditions.massFluxInjectedPhase); + heatFluxFromRight_ = GET_RUNTIME_PARAM(TypeTag, Scalar,BoundaryConditions.heatFluxFromRight); + coldTime_ = GET_RUNTIME_PARAM(TypeTag, Scalar,BoundaryConditions.coldTime); + } + + catch (Dumux::ParameterException &e) { + std::cerr << e << ". Abort!\n"; + exit(1) ; + } + catch (...) { + std::cerr << "Unknown exception thrown!\n"; + exit(1); + } + + this->spatialParams().setInputInitialize(); + + ParentType::init(); + this->model().initVelocityStuff(); + } + + + /*! + * \brief Returns the temperature \f$\mathrm{[K]}\f$ for an isothermal problem. + * + * This is not specific to the discretization. + */ + Scalar temperature() const + { return TInitial_; }; + + /*! + * \name Problem Params + */ + // \{ + + /*! + * \brief The problem name. + * + * This is used as a prefix for files generated by the simulation. + */ + const std::string name() const + { return outputName_ ; } + + /*! + * \brief Returns the temperature within the domain. + */ + Scalar boxTemperature(const Element &element, + const FVElementGeometry &fvGeometry, + const unsigned int scvIdx) const + { return TInitial_; }; + + // \} + + /*! + * \brief Called directly after the time integration. + */ + void postTimeStep() + { +// if(this->timeManager().willBeFinished()){ +// // write plot over Line to text files +// // each output gets it's writer object in order to allow for different header files +// PlotOverLine1D<TypeTag> writer; +// +// // writer points: in the porous medium, not the outflow +// GlobalPosition pointOne ; +// GlobalPosition pointTwo ; +// +// pointOne[0] = this->bBoxMin()[0] ; +// pointTwo[0] = (this->spatialParams().lengthPM()) ; +// +// writer.write(*this, +// pointOne, +// pointTwo, +// "plotOverLine"); +// } + + + // Calculate storage terms of the individual phases + for (int phaseIdx = 0; phaseIdx < numEnergyEqs; ++phaseIdx) { + PrimaryVariables phaseStorage; + /* wieviel Erhaltungsgröße im System ist (in Einheit der Bilanzgleichung) + * Aufssummierte Storage term für das ganze System. + */ + this->model().globalPhaseStorage(phaseStorage, phaseIdx); + + if (this->gridView().comm().rank() == 0) { + std::cout + <<"Storage in " + << FluidSystem::phaseName(phaseIdx) + << "Phase: [" + << phaseStorage + << "]" + << "\n"; + } + } + + // Calculate total storage terms + PrimaryVariables storage; + this->model().globalStorage(storage); + + // Write mass balance information for rank 0 + if (this->gridView().comm().rank() == 0) { + std::cout + <<"Storage total: [" << storage << "]" + << "\n"; + } + } + + /*! + * \brief Write a restart file? + *yes of course: + * - every nRestart_'th steps + */ + bool shouldWriteRestartFile() const + { + return this->timeManager().timeStepIndex() > 0 and + (this->timeManager().timeStepIndex() % nRestart_ == 0); + } + + /*! + * \brief Write a output file? + */ + bool shouldWriteOutput() const + { return true; } + + + /*! + * \brief Evaluate the source term for all phases within a given + * sub-control-volume. + * + * For this method, the \a values parameter stores the rate mass + * of a component is generated or annihilate per volume + * unit. Positive values mean that mass is created, negative ones + * mean that it vanishes. + */ + void source(PrimaryVariables & priVars, + const Element & element, + const FVElementGeometry & fvGeometry, + const unsigned int scvIdx) const + { + priVars = Scalar(0.0); + const GlobalPosition & globalPos = fvGeometry.subContVol[scvIdx].global; + + const Scalar volume = fvGeometry.subContVol[scvIdx].volume ; + const unsigned int numScv = fvGeometry.numScv; // box: numSCV, cc:1 + + if ((this->timeManager().time()) > coldTime_ ) + { + if (onRightBoundaryPorousMedium_(globalPos)) + { + if(numEnergyEquations>1) // for 2 and 3 energy equations + { + if(numEnergyEquations==2){ + // Testing the location of a vertex, but function is called for each associated scv. Compensate for that + priVars[energyEqSolidIdx] = heatFluxFromRight_ / volume / (Scalar)numScv; + } + else + // Multiply by volume, because afterwards we divide by it -> make independet of grid resolution + priVars[energyEq0Idx + sPhaseIdx] = heatFluxFromRight_ / volume / (Scalar)numScv ; + } + else if (enableEnergy){ + // Multiply by volume, because afterwards we divide by it -> make independet of grid resolution + priVars[energyEq0Idx] = heatFluxFromRight_ / volume / (Scalar)numScv; + } + } + } + } + + /*! + * \brief Specifies which kind of boundary condition should be + * used for which equation on a given boundary segment. + * + * \param values The bounentraldary types for the conservation equations + * \param vertex The vertex for which the boundary type is set + */ + void boundaryTypes(BoundaryTypes & bTypes, const Vertex &vertex) const + { + const GlobalPosition & globalPos = vertex.geometry().center(); + + // Default: Neumann + bTypes.setAllNeumann(); + + if(onRightBoundary_(globalPos) ){ + bTypes.setAllDirichlet(); + } + } + + /*! + * \brief Evaluate the boundary conditions for a dirichlet + * boundary segment. + * + * \param values The dirichlet values for the primary variables + * \param vertex The vertex for which the boundary type is set + * + * For this method, the \a values parameter stores primary variables. + */ + void dirichlet(PrimaryVariables &priVars, const Vertex &vertex) const + { + const GlobalPosition globalPos = vertex.geometry().center(); + initial_(priVars, globalPos); + } + + /*! + * \brief Evaluate the boundary conditions for a neumann + * boundary segment. + * + * For this method, the \a values parameter stores the mass flux + * in normal direction of each component. Negative values mean + * influx. + */ + + void solDependentNeumann(PrimaryVariables &priVars, + const Element &element, + const FVElementGeometry &fvGeometry, + const Intersection &intersection, + const int scvIdx, + const int boundaryFaceIdx, + const ElementVolumeVariables &elemVolVars) const{ + + const GlobalPosition & globalPos = fvGeometry.subContVol[scvIdx].global ; + const Scalar massFluxInjectedPhase = massFluxInjectedPhase_ ; + + FluidState fluidState; + + const Scalar pn = elemVolVars[scvIdx].fluidState().pressure(nPhaseIdx); + const Scalar pw = elemVolVars[scvIdx].fluidState().pressure(wPhaseIdx); + + const Scalar Tn = elemVolVars[scvIdx].fluidState().temperature(nPhaseIdx); + const Scalar Tw = elemVolVars[scvIdx].fluidState().temperature(wPhaseIdx); + + fluidState.setPressure(nPhaseIdx, pn); + fluidState.setPressure(wPhaseIdx, pw); + + if(numEnergyEquations == 3 ){ // only in this case the fluidstate hase several temperatures + fluidState.setTemperature(nPhaseIdx, Tn ); + fluidState.setTemperature(wPhaseIdx, Tw ); + } + else + fluidState.setTemperature(TBoundary_ ); + + ParameterCache dummyCache; + // This solves the system of equations defining x=x(p,T) +// FluidSystem::calculateEquilibriumMoleFractions(fluidState, dummyCache) ; + + fluidState.setMoleFraction(wPhaseIdx, nCompIdx, 0.0) ; + fluidState.setMoleFraction(wPhaseIdx, wCompIdx, 1.0) ; + // compute density of injection phase + const Scalar density = FluidSystem::density(fluidState, + dummyCache, + wPhaseIdx); + fluidState.setDensity(wPhaseIdx, density); + + for(int phaseIdx=0; phaseIdx<numPhases; phaseIdx++){ + const Scalar h = FluidSystem::enthalpy(fluidState, + dummyCache, + phaseIdx); + fluidState.setEnthalpy(phaseIdx, h); + } + + const Scalar molarFlux = massFluxInjectedPhase / fluidState.averageMolarMass(wPhaseIdx); + + // Default Neumann noFlow + priVars = 0.0; + + if (onLeftBoundary_(globalPos)) + { + if (enableKinetic){ + priVars[conti00EqIdx + numComponents*wPhaseIdx+wCompIdx] = - molarFlux * fluidState.moleFraction(wPhaseIdx, wCompIdx) ; + priVars[conti00EqIdx + numComponents*wPhaseIdx+nCompIdx] = - molarFlux * fluidState.moleFraction(wPhaseIdx, nCompIdx) ; + if (enableEnergy){ + if (numEnergyEquations == 3) + priVars[energyEq0Idx + wPhaseIdx] = - massFluxInjectedPhase * fluidState.enthalpy(wPhaseIdx) ; + else if(numEnergyEquations == 2) + priVars[energyEq0Idx] = - massFluxInjectedPhase * fluidState.enthalpy(wPhaseIdx) ; + else if(numEnergyEquations == 1) + priVars[energyEq0Idx] = - massFluxInjectedPhase * fluidState.enthalpy(wPhaseIdx) ; + else DUNE_THROW(Dune::InvalidStateException, "Formulation: " << pressureFormulation << " is invalid."); + } + } + else { + priVars[conti00EqIdx + wCompIdx] = - molarFlux * fluidState.moleFraction(wPhaseIdx, wCompIdx) ; ; + priVars[conti00EqIdx + nCompIdx] = - molarFlux * fluidState.moleFraction(wPhaseIdx, nCompIdx) ; ; + if (enableEnergy){ + if (numEnergyEquations == 3) + priVars[energyEq0Idx + wPhaseIdx] = - massFluxInjectedPhase * fluidState.enthalpy(wPhaseIdx) ; + else if(numEnergyEquations == 2) + priVars[energyEq0Idx] = - massFluxInjectedPhase * fluidState.enthalpy(wPhaseIdx) ; + else if(numEnergyEquations == 1) + priVars[energyEq0Idx] = - massFluxInjectedPhase * fluidState.enthalpy(wPhaseIdx) ; + else DUNE_THROW(Dune::InvalidStateException, "Formulation: " << pressureFormulation << " is invalid."); + } + } + } + } + + + /*! + * \brief Evaluate the initial value for a control volume. + * + * For this method, the \a values parameter stores primary + * variables. + */ + void initial(PrimaryVariables &values, + const Element &element, + const FVElementGeometry &fvGeometry, + const unsigned int scvIdx) const + { + const GlobalPosition &globalPos = element.geometry().corner(scvIdx); + + initial_(values, globalPos); + } + +private: + // the internal method for the initial condition + void initial_(PrimaryVariables &priVars, + const GlobalPosition &globalPos) const + { + const Scalar curPos = globalPos[0] ; + const Scalar slope = (SwBoundary_-SwOneComponentSys_) / (this->spatialParams().lengthPM()) ; + Scalar S[numPhases]; + const Scalar thisSaturation = SwOneComponentSys_ + curPos * slope ; + + S[wPhaseIdx] = SwBoundary_ ; + if (inPM_(globalPos) ) { + S[wPhaseIdx] = thisSaturation ; + } + + S[nPhaseIdx] = 1. - S[wPhaseIdx] ; + + ////////////////////////////////////// + // Set saturation + ////////////////////////////////////// + for (int i = 0; i < numPhases - 1; ++i){ + priVars[s0EqIdx + i] = S[i]; + } + + FluidState fluidState; + + Scalar thisTemperature = TInitial_ ; + if(onRightBoundary_(globalPos)) + thisTemperature = TRight_ ; + + for (int phaseIdx = 0; phaseIdx < numPhases ; ++phaseIdx) { + fluidState.setSaturation(phaseIdx, S[phaseIdx]); + + if(numEnergyEquations > 2){ // only in this case the fluidstate has more than one temperature + fluidState.setTemperature(phaseIdx, thisTemperature ); + } + else + fluidState.setTemperature(thisTemperature ); + } + + ////////////////////////////////////// + // Set temperature + ////////////////////////////////////// + if(enableEnergy){ + for (int energyEqIdx=0; energyEqIdx< numEnergyEqs; ++energyEqIdx) + priVars[energyEq0Idx + energyEqIdx] = thisTemperature; + } + + const MaterialLawParams &materialParams = + this->spatialParams().materialLawParamsAtPos(globalPos); + Scalar capPress[numPhases]; + + //obtain pc according to saturation + MaterialLaw::capillaryPressures(capPress, materialParams, fluidState); + + Scalar p[numPhases]; + + p[wPhaseIdx] = pnInitial_ - std::abs(capPress[wPhaseIdx]); + p[nPhaseIdx] = p[wPhaseIdx] + std::abs(capPress[wPhaseIdx]); + + for (int phaseIdx=0; phaseIdx<numPhases; phaseIdx++) + fluidState.setPressure(phaseIdx, p[phaseIdx]); + + ////////////////////////////////////// + // Set pressure + ////////////////////////////////////// + if(pressureFormulation == mostWettingFirst){ + // This means that the pressures are sorted from the most wetting to the least wetting-1 in the primary variables vector. + // For two phases this means that there is one pressure as primary variable: pw + priVars[p0EqIdx] = p[wPhaseIdx]; + } + else if(pressureFormulation == leastWettingFirst){ + // This means that the pressures are sorted from the least wetting to the most wetting-1 in the primary variables vector. + // For two phases this means that there is one pressure as primary variable: pn + priVars[p0EqIdx] = p[nPhaseIdx]; + } + else DUNE_THROW(Dune::InvalidStateException, "Formulation: " << pressureFormulation << " is invalid."); + + fluidState.setMoleFraction(wPhaseIdx, wCompIdx, 1.0) ; + fluidState.setMoleFraction(wPhaseIdx, nCompIdx, 0.0) ; + + fluidState.setMoleFraction(nPhaseIdx, wCompIdx, 1.0) ; + fluidState.setMoleFraction(nPhaseIdx, nCompIdx, 0.0) ; + + /* Difference between kinetic and MPNC: + * number of component related primVar and how they are calculated (mole fraction, fugacities, resp.) */ + if(enableKinetic){ + for(int phaseIdx=0; phaseIdx < numPhases; ++ phaseIdx){ + for(int compIdx=0; compIdx <numComponents; ++compIdx){ + int offset = compIdx + phaseIdx * numComponents ; + priVars[conti00EqIdx + offset] = fluidState.moleFraction(phaseIdx,compIdx) ; + } + } + } + else{ //enableKinetic + int refPhaseIdx ; + + // on right boundary: reference is gas + refPhaseIdx = nPhaseIdx; + + if(inPM_(globalPos)){ + refPhaseIdx = wPhaseIdx; + } + + // obtain fugacities + typedef Dumux::ComputeFromReferencePhase<Scalar, FluidSystem> ComputeFromReferencePhase; + ParameterCache paramCache; + ComputeFromReferencePhase::solve(fluidState, + paramCache, + refPhaseIdx, + /*setViscosity=*/false, + /*setEnthalpy=*/false); + + ////////////////////////////////////// + // Set fugacities + ////////////////////////////////////// + for (int compIdx = 0; compIdx < numComponents; ++compIdx){ + const Scalar fug = fluidState.fugacity(refPhaseIdx) ; + priVars[conti00EqIdx + compIdx] = fluidState.fugacity(refPhaseIdx,compIdx); + } + } // end not enableKinetic + } + + /*! + * \brief Give back whether the tested position (input) is a specific region (left) in the domain + */ + bool onLeftBoundary_(const GlobalPosition & globalPos) const + { return globalPos[0] < this->bBoxMin()[0] + eps_; } + + /*! + * \brief Give back whether the tested position (input) is a specific region (right) in the domain + */ + bool onRightBoundary_(const GlobalPosition & globalPos) const + { return globalPos[0] > this->bBoxMax()[0] - eps_; } + + /*! + * \brief Give back whether the tested position (input) is a specific region (right) in the domain + * \todo this needs to be more sophisticated in order to allow for meshes with nodes not directly on the boundary + */ + bool onRightBoundaryPorousMedium_(const GlobalPosition & globalPos) const + { return ( std::fabs(globalPos[0] - (this->spatialParams().lengthPM())) < eps_ ); } + + /*! + * \brief Give back whether the tested position (input) is a specific region (right) in the domain + */ + bool inPM_(const GlobalPosition & globalPos) const + { return + not this->spatialParams().inOutFlow(globalPos) ; + } + + /*! + * \brief Give back whether the tested position (input) is a specific region (down, (gravityDir)) in the domain + */ + bool onLowerBoundary_(const GlobalPosition & globalPos) const + { return globalPos[dim-1] < this->bBoxMin()[dim-1] + eps_; } + + /*! + * \brief Give back whether the tested position (input) is a specific region (up, (gravityDir)) in the domain + */ + bool onUpperBoundary_(const GlobalPosition & globalPos) const + { return globalPos[dim-1] > this->bBoxMax()[dim-1] - eps_; } + +private: + Scalar eps_; + int nTemperature_; + int nPressure_; + std::string outputName_; + int nRestart_ ; + Scalar TInitial_ ; + Scalar TRight_ ; + + Scalar pnInitial_; + + Dune::ParameterTree inputParameters_; + Scalar x_[numPhases][numComponents] ; + + Scalar TBoundary_; + Scalar SwBoundary_; + Scalar SwOneComponentSys_; + + Scalar massFluxInjectedPhase_ ; + Scalar heatFluxFromRight_ ; + PhaseVelocityField volumeDarcyVelocity_; + PhaseBuffer volumeDarcyMagVelocity_ ; + ScalarBuffer boxSurface_; + Scalar lengthPM_ ; + Scalar coldTime_ ; + +public: + + Dune::ParameterTree getInputParameters() const + { return inputParameters_; } +}; + +} //end namespace + +#endif diff --git a/test/implicit/mpnc/combustionspatialparams.hh b/test/implicit/mpnc/combustionspatialparams.hh new file mode 100644 index 0000000000000000000000000000000000000000..823a893b4555fdd6308dcecc3217fa0fce3d218e --- /dev/null +++ b/test/implicit/mpnc/combustionspatialparams.hh @@ -0,0 +1,372 @@ +/***************************************************************************** + * Institute for Modelling Hydraulic and Environmental Systems * + * University of Stuttgart, Germany * + * email: <givenname>.<name>@iws.uni-stuttgart.de * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see <http://www.gnu.org/licenses/>. * + *****************************************************************************/ +#ifndef DUMUX_COMBUSTION_SPATIALPARAMS_HH +#define DUMUX_COMBUSTION_SPATIALPARAMS_HH + +#include <dumux/material/spatialparams/implicitspatialparams.hh> + +#include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh> + +#include <dumux/material/fluidmatrixinteractions/mp/2padapter.hh> +#include <dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh> + +#include <dune/common/parametertreeparser.hh> +#include <dumux/material/fluidmatrixinteractions/2p/heatpipelaw.hh> + +namespace Dumux +{ + +//forward declaration +template<class TypeTag> +class CombustionSpatialParams; + +namespace Properties +{ +// The spatial params TypeTag +NEW_TYPE_TAG(CombustionSpatialParams); + +// Set the spatial parameters +SET_TYPE_PROP(CombustionSpatialParams, SpatialParams, Dumux::CombustionSpatialParams<TypeTag>); + +// Set the material Law +SET_PROP(CombustionSpatialParams, MaterialLaw) +{ +private: + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + enum {wPhaseIdx = FluidSystem::wPhaseIdx}; + + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + +// actually other people call this Leverett + typedef HeatPipeLaw<Scalar> EffectiveLaw; + + typedef EffToAbsLaw<EffectiveLaw> TwoPMaterialLaw; + public: + typedef TwoPAdapter<wPhaseIdx, TwoPMaterialLaw> type; +}; + + +}// end namespace properties + +/** + * \brief Definition of the soil properties for the kinetic Energy problem + * + */ +template<class TypeTag> +class CombustionSpatialParams : public ImplicitSpatialParams<TypeTag> +{ + typedef ImplicitSpatialParams<TypeTag> ParentType; + typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView; + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + + enum {dim=GridView::dimension }; + enum {dimWorld=GridView::dimensionworld}; + enum {wPhaseIdx = FluidSystem::wPhaseIdx}; + enum {nPhaseIdx = FluidSystem::nPhaseIdx}; + enum {sPhaseIdx = FluidSystem::sPhaseIdx}; + enum {numEnergyEquations = GET_PROP_VALUE(TypeTag, NumEnergyEquations)}; + enum {numPhases = GET_PROP_VALUE(TypeTag, NumPhases)}; + enum {enableEnergy = GET_PROP_VALUE(TypeTag, EnableEnergy)}; + + typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables; + typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables; + typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables; + typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector; + typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry; + typedef typename GridView::template Codim<0>::Entity Element; + typedef Dune::FieldVector<Scalar,dimWorld> GlobalPosition; + typedef Dune::FieldVector<Scalar,dimWorld> DimVector; + typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState; + +public: + typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw; + typedef typename MaterialLaw::Params MaterialLawParams; + + CombustionSpatialParams(const GridView &gv) + : ParentType(gv) + { + } + + ~CombustionSpatialParams() + {} + + //! load parameters from input file and initialize parameter values + void setInputInitialize() + { + try + { + eps_ = 1e-6; + // BEWARE! First the input values have to be set, than the material parameters can be set + + // this is the parameter value from file part + porosity_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.PorousMedium.porosity); + + intrinsicPermeabilityOutFlow_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.OutFlow.permeabilityOutFlow); + porosityOutFlow_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.OutFlow.porosityOutFlow); + thermalConductivitySolidOutflow_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.OutFlow.soilThermalConductivityOutFlow); + + densitySolid_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.soil.density); + thermalConductivitySolid_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.soil.soilThermalConductivity); + heatCapacity_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.soil.heatCapacity); + + interfacialTension_ = GET_RUNTIME_PARAM(TypeTag, Scalar, Constants.interfacialTension); + + Swr_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.soil.Swr); + Snr_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.soil.Snr); + + characteristicLength_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.PorousMedium.meanPoreSize); + intrinsicPermeability_ = (std::pow(characteristicLength_,2.0) * std::pow(porosity_,3.0)) / (150.0 * std::pow((1.0-porosity_),2.0)); + + factorEnergyTransfer_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.PorousMedium.factorEnergyTransfer); + factorMassTransfer_ = GET_RUNTIME_PARAM(TypeTag, Scalar, SpatialParams.PorousMedium.factorMassTransfer); + + lengthPM_ = GET_RUNTIME_PARAM(TypeTag, Scalar,Grid.lengthPM); + } + catch (Dumux::ParameterException &e) { + std::cerr << e << ". Abort!\n"; + exit(1) ; + } + catch (...) { + std::cerr << "Unknown exception thrown!\n"; + exit(1); + } + + // residual saturations + materialParams_.setSwr(Swr_) ; + materialParams_.setSnr(Snr_) ; + + materialParams_.setP0(std::sqrt(porosity_/intrinsicPermeability_)); + materialParams_.setGamma(interfacialTension_); // interfacial tension of water-air at 100°C + } + + /*! \brief Update the spatial parameters with the flow solution + * after a timestep. */ + void update(const SolutionVector & globalSolutionFn) + { } + + /*! \brief Returns the intrinsic permeability + * + * The position is determined based on the coordinate of + * the vertex belonging to the considered sub control volume. + * \param element The current finite element + * \param fvGeometry The current finite volume geometry of the element + * \param scvIdx The index sub-control volume */ + const Scalar intrinsicPermeability(const Element & element, + const FVElementGeometry & fvGeometry, + const unsigned int scvIdx) const + { + const GlobalPosition & globalPos = fvGeometry.subContVol[scvIdx].global ; + if ( inOutFlow(globalPos) ) + return intrinsicPermeabilityOutFlow_ ; + else + return intrinsicPermeability_ ; + } + + /*! \brief Return the porosity \f$[-]\f$ of the soil + * + * The position is determined based on the coordinate of + * the vertex belonging to the considered sub control volume. + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub-control volume */ + const Scalar porosity(const Element & element, + const FVElementGeometry & fvGeometry, + const unsigned int scvIdx) const + { + const GlobalPosition & globalPos = fvGeometry.subContVol[scvIdx].global ; + if ( inOutFlow(globalPos) ) + return porosityOutFlow_ ; + else + return porosity_ ; + } + + /*! + * \brief Return a reference to the material parameters of the material law. + * + * The position is determined based on the coordinate of + * the vertex belonging to the considered sub control volume. + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub-control volume */ + const MaterialLawParams & materialLawParams(const Element & element, + const FVElementGeometry & fvGeometry, + const unsigned int scvIdx) const + { + const GlobalPosition & globalPos = fvGeometry.subContVol[scvIdx].global ; + const MaterialLawParams & materialParams = materialLawParamsAtPos(globalPos) ; + return materialParams ; + } + + /*! + * \brief Return a reference to the material parameters of the material law. + * \param globalPos The position in global coordinates. */ + const MaterialLawParams & materialLawParamsAtPos(const GlobalPosition & globalPos) const + { + return materialParams_ ; + } + + /*!\brief Return the characteristic length for the mass transfer. + * + * The position is determined based on the coordinate of + * the vertex belonging to the considered sub controle volume. + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub control volume */ + const Scalar characteristicLength(const Element & element, + const FVElementGeometry & fvGeometry, + const unsigned int scvIdx) const + { const GlobalPosition & globalPos = fvGeometry.subContVol[scvIdx].global ; + return characteristicLengthAtPos(globalPos); } + /*!\brief Return the characteristic length for the mass transfer. + * \param globalPos The position in global coordinates.*/ + const Scalar characteristicLengthAtPos(const GlobalPosition & globalPos) const + { return characteristicLength_ ; } + + /*!\brief Return the pre factor the the energy transfer + * + * The position is determined based on the coordinate of + * the vertex belonging to the considered sub controle volume. + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub control volume */ + const Scalar factorEnergyTransfer(const Element & element, + const FVElementGeometry & fvGeometry, + const unsigned int scvIdx) const + { const GlobalPosition & globalPos = fvGeometry.subContVol[scvIdx].global ; + return factorEnergyTransferAtPos(globalPos); } + /*!\brief Return the pre factor the the energy transfer + * \param globalPos The position in global coordinates.*/ + const Scalar factorEnergyTransferAtPos(const GlobalPosition & globalPos) const + { + return factorEnergyTransfer_ ; + } + + + /*!\brief Return the pre factor the the mass transfer + * + * The position is determined based on the coordinate of + * the vertex belonging to the considered sub controle volume. + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub control volume */ + const Scalar factorMassTransfer(const Element & element, + const FVElementGeometry & fvGeometry, + const unsigned int scvIdx) const + { const GlobalPosition & globalPos = fvGeometry.subContVol[scvIdx].global ; + return factorMassTransferAtPos(globalPos); } + /*!\brief Return the pre factor the the mass transfer + * \param globalPos The position in global coordinates.*/ + const Scalar factorMassTransferAtPos(const GlobalPosition & globalPos) const + { + return factorMassTransfer_ ; + } + + + /*! \brief Returns the heat capacity \f$[J/m^3 K]\f$ of the rock matrix. + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub-control volume where + * the heat capacity needs to be defined */ + const Scalar heatCapacity(const Element &element, + const FVElementGeometry &fvGeometry, + const unsigned int scvIdx) const + { return heatCapacity_ ;} // specific heat capacity of solid [J / (kg K)] + + /*!\brief Returns the density \f$[kg/m^3]\f$ of the rock matrix. + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub-control volume */ + const Scalar densitySolid(const Element & element, + const FVElementGeometry & fvGeometry, + const unsigned int scvIdx) const + { return densitySolid_ ;} // density of solid [kg/m^3] + + /*!\brief Returns the thermal conductivity \f$[W/(m K)]\f$ of the rock matrix. + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub-control volume */ + const Scalar thermalConductivitySolid(const Element &element, + const FVElementGeometry &fvGeometry, + const unsigned int scvIdx)const + { + const GlobalPosition & globalPos = fvGeometry.subContVol[scvIdx].global ; + if ( inOutFlow(globalPos) ) + return thermalConductivitySolidOutflow_ ; + else + return thermalConductivitySolid_ ; + } // conductivity of solid [W / (m K ) ] + + /*! + * \brief Give back whether the tested position (input) is a specific region (right end of porous medium) in the domain + */ + bool inOutFlow(const GlobalPosition & globalPos) const + { return globalPos[0] > (lengthPM_ - eps_) ; } + + /*! + * \brief Give back how long the porous medium domain is. + */ + Scalar lengthPM() const + { + return lengthPM_ ; + } + + /*! + * \brief Give back the itnerfacial tension + */ + Scalar interfacialTension() const + { + return interfacialTension_ ; + } + +private: + Scalar eps_ ; + + + // Porous Medium Domain + Scalar intrinsicPermeability_ ; + Scalar porosity_ ; + Scalar factorEnergyTransfer_ ; + Scalar factorMassTransfer_ ; + Scalar characteristicLength_ ; + MaterialLawParams materialParams_ ; + + // Outflow Domain + Scalar intrinsicPermeabilityOutFlow_ ; + Scalar porosityOutFlow_ ; + + // solid parameters + Scalar densitySolid_ ; + Scalar thermalConductivitySolid_ ; + Scalar thermalConductivitySolidOutflow_ ; + Scalar heatCapacity_ ; + Scalar interfacialTension_ ; + + + // capillary pressures parameters + Scalar Swr_ ; + Scalar Snr_ ; + + // grid + Scalar lengthPM_ ; +}; + +} + +#endif // GUARDIAN diff --git a/test/implicit/mpnc/grids/combustionOutflowGridLinNX100LogNx100.dgf b/test/implicit/mpnc/grids/combustionOutflowGridLinNX100LogNx100.dgf new file mode 100644 index 0000000000000000000000000000000000000000..a77b8580f84b0a82ec14d0e960924ac258570d61 --- /dev/null +++ b/test/implicit/mpnc/grids/combustionOutflowGridLinNX100LogNx100.dgf @@ -0,0 +1,410 @@ +DGF + +VERTEX +dimension 1 +0.000000 +0.001000 +0.002000 +0.003000 +0.004000 +0.005000 +0.006000 +0.007000 +0.008000 +0.009000 +0.010000 +0.011000 +0.012000 +0.013000 +0.014000 +0.015000 +0.016000 +0.017000 +0.018000 +0.019000 +0.020000 +0.021000 +0.022000 +0.023000 +0.024000 +0.025000 +0.026000 +0.027000 +0.028000 +0.029000 +0.030000 +0.031000 +0.032000 +0.033000 +0.034000 +0.035000 +0.036000 +0.037000 +0.038000 +0.039000 +0.040000 +0.041000 +0.042000 +0.043000 +0.044000 +0.045000 +0.046000 +0.047000 +0.048000 +0.049000 +0.050000 +0.051000 +0.052000 +0.053000 +0.054000 +0.055000 +0.056000 +0.057000 +0.058000 +0.059000 +0.060000 +0.061000 +0.062000 +0.063000 +0.064000 +0.065000 +0.066000 +0.067000 +0.068000 +0.069000 +0.070000 +0.071000 +0.072000 +0.073000 +0.074000 +0.075000 +0.076000 +0.077000 +0.078000 +0.079000 +0.080000 +0.081000 +0.082000 +0.083000 +0.084000 +0.085000 +0.086000 +0.087000 +0.088000 +0.089000 +0.090000 +0.091000 +0.092000 +0.093000 +0.094000 +0.095000 +0.096000 +0.097000 +0.098000 +0.099000 +0.100000 +0.104772 +0.109772 +0.115010 +0.120499 +0.126249 +0.132274 +0.138586 +0.145200 +0.152129 +0.159388 +0.166995 +0.174964 +0.183313 +0.192061 +0.201226 +0.210829 +0.220890 +0.231431 +0.242475 +0.254047 +0.266170 +0.278872 +0.292180 +0.306123 +0.320732 +0.336037 +0.352073 +0.368875 +0.386478 +0.404921 +0.424244 +0.444489 +0.465701 +0.487925 +0.511209 +0.535604 +0.561164 +0.587943 +0.616001 +0.645397 +0.676196 +0.708465 +0.742273 +0.777695 +0.814808 +0.853691 +0.894430 +0.937113 +0.981834 +1.028688 +1.077778 +1.129210 +1.183097 +1.239556 +1.298709 +1.360685 +1.425618 +1.493650 +1.564929 +1.639609 +1.717853 +1.799830 +1.885720 +1.975709 +2.069992 +2.168774 +2.272270 +2.380705 +2.494315 +2.613346 +2.738058 +2.868721 +3.005619 +3.149050 +3.299326 +3.456774 +3.621735 +3.794568 +3.975648 +4.165370 +4.364146 +4.572408 +4.790608 +5.019221 +5.258743 +5.509696 +5.772625 +6.048100 +6.336722 +6.639117 +6.955943 +7.287888 +7.635674 +8.000056 +8.381827 +8.781817 +9.200894 +9.639970 +10.100000 +# + +CUBE +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 117 +117 118 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +124 125 +125 126 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 137 +137 138 +138 139 +139 140 +140 141 +141 142 +142 143 +143 144 +144 145 +145 146 +146 147 +147 148 +148 149 +149 150 +150 151 +151 152 +152 153 +153 154 +154 155 +155 156 +156 157 +157 158 +158 159 +159 160 +160 161 +161 162 +162 163 +163 164 +164 165 +165 166 +166 167 +167 168 +168 169 +169 170 +170 171 +171 172 +172 173 +173 174 +174 175 +175 176 +176 177 +177 178 +178 179 +179 180 +180 181 +181 182 +182 183 +183 184 +184 185 +185 186 +186 187 +187 188 +188 189 +189 190 +190 191 +191 192 +192 193 +193 194 +194 195 +195 196 +196 197 +197 198 +198 199 +# + +# + diff --git a/test/implicit/mpnc/grids/combustionOutflowGridLinNX200LogNx200.dgf b/test/implicit/mpnc/grids/combustionOutflowGridLinNX200LogNx200.dgf new file mode 100644 index 0000000000000000000000000000000000000000..6e4b1d26b3b15af055562ed5376955d3f492a7e6 --- /dev/null +++ b/test/implicit/mpnc/grids/combustionOutflowGridLinNX200LogNx200.dgf @@ -0,0 +1,810 @@ +DGF + +VERTEX +dimension 1 +0.000000 +0.000500 +0.001000 +0.001500 +0.002000 +0.002500 +0.003000 +0.003500 +0.004000 +0.004500 +0.005000 +0.005500 +0.006000 +0.006500 +0.007000 +0.007500 +0.008000 +0.008500 +0.009000 +0.009500 +0.010000 +0.010500 +0.011000 +0.011500 +0.012000 +0.012500 +0.013000 +0.013500 +0.014000 +0.014500 +0.015000 +0.015500 +0.016000 +0.016500 +0.017000 +0.017500 +0.018000 +0.018500 +0.019000 +0.019500 +0.020000 +0.020500 +0.021000 +0.021500 +0.022000 +0.022500 +0.023000 +0.023500 +0.024000 +0.024500 +0.025000 +0.025500 +0.026000 +0.026500 +0.027000 +0.027500 +0.028000 +0.028500 +0.029000 +0.029500 +0.030000 +0.030500 +0.031000 +0.031500 +0.032000 +0.032500 +0.033000 +0.033500 +0.034000 +0.034500 +0.035000 +0.035500 +0.036000 +0.036500 +0.037000 +0.037500 +0.038000 +0.038500 +0.039000 +0.039500 +0.040000 +0.040500 +0.041000 +0.041500 +0.042000 +0.042500 +0.043000 +0.043500 +0.044000 +0.044500 +0.045000 +0.045500 +0.046000 +0.046500 +0.047000 +0.047500 +0.048000 +0.048500 +0.049000 +0.049500 +0.050000 +0.050500 +0.051000 +0.051500 +0.052000 +0.052500 +0.053000 +0.053500 +0.054000 +0.054500 +0.055000 +0.055500 +0.056000 +0.056500 +0.057000 +0.057500 +0.058000 +0.058500 +0.059000 +0.059500 +0.060000 +0.060500 +0.061000 +0.061500 +0.062000 +0.062500 +0.063000 +0.063500 +0.064000 +0.064500 +0.065000 +0.065500 +0.066000 +0.066500 +0.067000 +0.067500 +0.068000 +0.068500 +0.069000 +0.069500 +0.070000 +0.070500 +0.071000 +0.071500 +0.072000 +0.072500 +0.073000 +0.073500 +0.074000 +0.074500 +0.075000 +0.075500 +0.076000 +0.076500 +0.077000 +0.077500 +0.078000 +0.078500 +0.079000 +0.079500 +0.080000 +0.080500 +0.081000 +0.081500 +0.082000 +0.082500 +0.083000 +0.083500 +0.084000 +0.084500 +0.085000 +0.085500 +0.086000 +0.086500 +0.087000 +0.087500 +0.088000 +0.088500 +0.089000 +0.089500 +0.090000 +0.090500 +0.091000 +0.091500 +0.092000 +0.092500 +0.093000 +0.093500 +0.094000 +0.094500 +0.095000 +0.095500 +0.096000 +0.096500 +0.097000 +0.097500 +0.098000 +0.098500 +0.099000 +0.099500 +0.100000 +0.102346 +0.104748 +0.107205 +0.109721 +0.112295 +0.114930 +0.117626 +0.120386 +0.123210 +0.126101 +0.129060 +0.132088 +0.135187 +0.138359 +0.141605 +0.144928 +0.148328 +0.151808 +0.155370 +0.159015 +0.162746 +0.166565 +0.170473 +0.174473 +0.178566 +0.182756 +0.187044 +0.191432 +0.195924 +0.200521 +0.205225 +0.210040 +0.214969 +0.220012 +0.225174 +0.230457 +0.235865 +0.241399 +0.247062 +0.252859 +0.258792 +0.264864 +0.271078 +0.277438 +0.283948 +0.290610 +0.297428 +0.304407 +0.311549 +0.318859 +0.326340 +0.333997 +0.341833 +0.349853 +0.358062 +0.366463 +0.375061 +0.383861 +0.392867 +0.402085 +0.411519 +0.421174 +0.431056 +0.441170 +0.451521 +0.462115 +0.472957 +0.484054 +0.495411 +0.507035 +0.518931 +0.531106 +0.543568 +0.556321 +0.569374 +0.582733 +0.596405 +0.610398 +0.624720 +0.639377 +0.654379 +0.669732 +0.685446 +0.701528 +0.717988 +0.734834 +0.752075 +0.769721 +0.787780 +0.806264 +0.825181 +0.844541 +0.864357 +0.884637 +0.905392 +0.926635 +0.948376 +0.970628 +0.993401 +1.016709 +1.040564 +1.064978 +1.089965 +1.115538 +1.141712 +1.168499 +1.195915 +1.223975 +1.252692 +1.282084 +1.312165 +1.342951 +1.374460 +1.406709 +1.439714 +1.473493 +1.508065 +1.543448 +1.579662 +1.616724 +1.654657 +1.693479 +1.733213 +1.773879 +1.815498 +1.858095 +1.901690 +1.946309 +1.991974 +2.038711 +2.086544 +2.135500 +2.185604 +2.236884 +2.289367 +2.343082 +2.398057 +2.454321 +2.511906 +2.570842 +2.631160 +2.692894 +2.756076 +2.820741 +2.886923 +2.954657 +3.023981 +3.094932 +3.167547 +3.241866 +3.317928 +3.395775 +3.475449 +3.556992 +3.640448 +3.725862 +3.813281 +3.902750 +3.994319 +4.088036 +4.183951 +4.282118 +4.382587 +4.485414 +4.590653 +4.698362 +4.808598 +4.921420 +5.036889 +5.155067 +5.276018 +5.399807 +5.526501 +5.656167 +5.788875 +5.924697 +6.063706 +6.205976 +6.351584 +6.500608 +6.653129 +6.809229 +6.968991 +7.132502 +7.299848 +7.471122 +7.646413 +7.825818 +8.009432 +8.197354 +8.389685 +8.586528 +8.787990 +8.994179 +9.205206 +9.421184 +9.642229 +9.868460 +10.100000 +# + +CUBE +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 117 +117 118 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +124 125 +125 126 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 137 +137 138 +138 139 +139 140 +140 141 +141 142 +142 143 +143 144 +144 145 +145 146 +146 147 +147 148 +148 149 +149 150 +150 151 +151 152 +152 153 +153 154 +154 155 +155 156 +156 157 +157 158 +158 159 +159 160 +160 161 +161 162 +162 163 +163 164 +164 165 +165 166 +166 167 +167 168 +168 169 +169 170 +170 171 +171 172 +172 173 +173 174 +174 175 +175 176 +176 177 +177 178 +178 179 +179 180 +180 181 +181 182 +182 183 +183 184 +184 185 +185 186 +186 187 +187 188 +188 189 +189 190 +190 191 +191 192 +192 193 +193 194 +194 195 +195 196 +196 197 +197 198 +198 199 +199 200 +200 201 +201 202 +202 203 +203 204 +204 205 +205 206 +206 207 +207 208 +208 209 +209 210 +210 211 +211 212 +212 213 +213 214 +214 215 +215 216 +216 217 +217 218 +218 219 +219 220 +220 221 +221 222 +222 223 +223 224 +224 225 +225 226 +226 227 +227 228 +228 229 +229 230 +230 231 +231 232 +232 233 +233 234 +234 235 +235 236 +236 237 +237 238 +238 239 +239 240 +240 241 +241 242 +242 243 +243 244 +244 245 +245 246 +246 247 +247 248 +248 249 +249 250 +250 251 +251 252 +252 253 +253 254 +254 255 +255 256 +256 257 +257 258 +258 259 +259 260 +260 261 +261 262 +262 263 +263 264 +264 265 +265 266 +266 267 +267 268 +268 269 +269 270 +270 271 +271 272 +272 273 +273 274 +274 275 +275 276 +276 277 +277 278 +278 279 +279 280 +280 281 +281 282 +282 283 +283 284 +284 285 +285 286 +286 287 +287 288 +288 289 +289 290 +290 291 +291 292 +292 293 +293 294 +294 295 +295 296 +296 297 +297 298 +298 299 +299 300 +300 301 +301 302 +302 303 +303 304 +304 305 +305 306 +306 307 +307 308 +308 309 +309 310 +310 311 +311 312 +312 313 +313 314 +314 315 +315 316 +316 317 +317 318 +318 319 +319 320 +320 321 +321 322 +322 323 +323 324 +324 325 +325 326 +326 327 +327 328 +328 329 +329 330 +330 331 +331 332 +332 333 +333 334 +334 335 +335 336 +336 337 +337 338 +338 339 +339 340 +340 341 +341 342 +342 343 +343 344 +344 345 +345 346 +346 347 +347 348 +348 349 +349 350 +350 351 +351 352 +352 353 +353 354 +354 355 +355 356 +356 357 +357 358 +358 359 +359 360 +360 361 +361 362 +362 363 +363 364 +364 365 +365 366 +366 367 +367 368 +368 369 +369 370 +370 371 +371 372 +372 373 +373 374 +374 375 +375 376 +376 377 +377 378 +378 379 +379 380 +380 381 +381 382 +382 383 +383 384 +384 385 +385 386 +386 387 +387 388 +388 389 +389 390 +390 391 +391 392 +392 393 +393 394 +394 395 +395 396 +396 397 +397 398 +398 399 +# + +# + diff --git a/test/implicit/mpnc/grids/combustionOutflowGridLinNX400LogNx400.dgf b/test/implicit/mpnc/grids/combustionOutflowGridLinNX400LogNx400.dgf new file mode 100644 index 0000000000000000000000000000000000000000..fcedaac0012b9f49ef1c7a9283a03f18dc581c93 --- /dev/null +++ b/test/implicit/mpnc/grids/combustionOutflowGridLinNX400LogNx400.dgf @@ -0,0 +1,1610 @@ +DGF + +VERTEX +dimension 1 +0.000000 +0.000250 +0.000500 +0.000750 +0.001000 +0.001250 +0.001500 +0.001750 +0.002000 +0.002250 +0.002500 +0.002750 +0.003000 +0.003250 +0.003500 +0.003750 +0.004000 +0.004250 +0.004500 +0.004750 +0.005000 +0.005250 +0.005500 +0.005750 +0.006000 +0.006250 +0.006500 +0.006750 +0.007000 +0.007250 +0.007500 +0.007750 +0.008000 +0.008250 +0.008500 +0.008750 +0.009000 +0.009250 +0.009500 +0.009750 +0.010000 +0.010250 +0.010500 +0.010750 +0.011000 +0.011250 +0.011500 +0.011750 +0.012000 +0.012250 +0.012500 +0.012750 +0.013000 +0.013250 +0.013500 +0.013750 +0.014000 +0.014250 +0.014500 +0.014750 +0.015000 +0.015250 +0.015500 +0.015750 +0.016000 +0.016250 +0.016500 +0.016750 +0.017000 +0.017250 +0.017500 +0.017750 +0.018000 +0.018250 +0.018500 +0.018750 +0.019000 +0.019250 +0.019500 +0.019750 +0.020000 +0.020250 +0.020500 +0.020750 +0.021000 +0.021250 +0.021500 +0.021750 +0.022000 +0.022250 +0.022500 +0.022750 +0.023000 +0.023250 +0.023500 +0.023750 +0.024000 +0.024250 +0.024500 +0.024750 +0.025000 +0.025250 +0.025500 +0.025750 +0.026000 +0.026250 +0.026500 +0.026750 +0.027000 +0.027250 +0.027500 +0.027750 +0.028000 +0.028250 +0.028500 +0.028750 +0.029000 +0.029250 +0.029500 +0.029750 +0.030000 +0.030250 +0.030500 +0.030750 +0.031000 +0.031250 +0.031500 +0.031750 +0.032000 +0.032250 +0.032500 +0.032750 +0.033000 +0.033250 +0.033500 +0.033750 +0.034000 +0.034250 +0.034500 +0.034750 +0.035000 +0.035250 +0.035500 +0.035750 +0.036000 +0.036250 +0.036500 +0.036750 +0.037000 +0.037250 +0.037500 +0.037750 +0.038000 +0.038250 +0.038500 +0.038750 +0.039000 +0.039250 +0.039500 +0.039750 +0.040000 +0.040250 +0.040500 +0.040750 +0.041000 +0.041250 +0.041500 +0.041750 +0.042000 +0.042250 +0.042500 +0.042750 +0.043000 +0.043250 +0.043500 +0.043750 +0.044000 +0.044250 +0.044500 +0.044750 +0.045000 +0.045250 +0.045500 +0.045750 +0.046000 +0.046250 +0.046500 +0.046750 +0.047000 +0.047250 +0.047500 +0.047750 +0.048000 +0.048250 +0.048500 +0.048750 +0.049000 +0.049250 +0.049500 +0.049750 +0.050000 +0.050250 +0.050500 +0.050750 +0.051000 +0.051250 +0.051500 +0.051750 +0.052000 +0.052250 +0.052500 +0.052750 +0.053000 +0.053250 +0.053500 +0.053750 +0.054000 +0.054250 +0.054500 +0.054750 +0.055000 +0.055250 +0.055500 +0.055750 +0.056000 +0.056250 +0.056500 +0.056750 +0.057000 +0.057250 +0.057500 +0.057750 +0.058000 +0.058250 +0.058500 +0.058750 +0.059000 +0.059250 +0.059500 +0.059750 +0.060000 +0.060250 +0.060500 +0.060750 +0.061000 +0.061250 +0.061500 +0.061750 +0.062000 +0.062250 +0.062500 +0.062750 +0.063000 +0.063250 +0.063500 +0.063750 +0.064000 +0.064250 +0.064500 +0.064750 +0.065000 +0.065250 +0.065500 +0.065750 +0.066000 +0.066250 +0.066500 +0.066750 +0.067000 +0.067250 +0.067500 +0.067750 +0.068000 +0.068250 +0.068500 +0.068750 +0.069000 +0.069250 +0.069500 +0.069750 +0.070000 +0.070250 +0.070500 +0.070750 +0.071000 +0.071250 +0.071500 +0.071750 +0.072000 +0.072250 +0.072500 +0.072750 +0.073000 +0.073250 +0.073500 +0.073750 +0.074000 +0.074250 +0.074500 +0.074750 +0.075000 +0.075250 +0.075500 +0.075750 +0.076000 +0.076250 +0.076500 +0.076750 +0.077000 +0.077250 +0.077500 +0.077750 +0.078000 +0.078250 +0.078500 +0.078750 +0.079000 +0.079250 +0.079500 +0.079750 +0.080000 +0.080250 +0.080500 +0.080750 +0.081000 +0.081250 +0.081500 +0.081750 +0.082000 +0.082250 +0.082500 +0.082750 +0.083000 +0.083250 +0.083500 +0.083750 +0.084000 +0.084250 +0.084500 +0.084750 +0.085000 +0.085250 +0.085500 +0.085750 +0.086000 +0.086250 +0.086500 +0.086750 +0.087000 +0.087250 +0.087500 +0.087750 +0.088000 +0.088250 +0.088500 +0.088750 +0.089000 +0.089250 +0.089500 +0.089750 +0.090000 +0.090250 +0.090500 +0.090750 +0.091000 +0.091250 +0.091500 +0.091750 +0.092000 +0.092250 +0.092500 +0.092750 +0.093000 +0.093250 +0.093500 +0.093750 +0.094000 +0.094250 +0.094500 +0.094750 +0.095000 +0.095250 +0.095500 +0.095750 +0.096000 +0.096250 +0.096500 +0.096750 +0.097000 +0.097250 +0.097500 +0.097750 +0.098000 +0.098250 +0.098500 +0.098750 +0.099000 +0.099250 +0.099500 +0.099750 +0.100000 +0.101163 +0.102340 +0.103531 +0.104735 +0.105954 +0.107187 +0.108434 +0.109695 +0.110971 +0.112262 +0.113568 +0.114890 +0.116226 +0.117578 +0.118946 +0.120330 +0.121730 +0.123146 +0.124579 +0.126028 +0.127494 +0.128978 +0.130478 +0.131996 +0.133532 +0.135085 +0.136657 +0.138246 +0.139855 +0.141482 +0.143128 +0.144793 +0.146478 +0.148182 +0.149906 +0.151650 +0.153414 +0.155199 +0.157004 +0.158831 +0.160679 +0.162548 +0.164439 +0.166352 +0.168287 +0.170245 +0.172226 +0.174229 +0.176256 +0.178307 +0.180381 +0.182480 +0.184603 +0.186750 +0.188923 +0.191121 +0.193344 +0.195594 +0.197869 +0.200171 +0.202500 +0.204856 +0.207239 +0.209650 +0.212089 +0.214557 +0.217053 +0.219578 +0.222132 +0.224717 +0.227331 +0.229976 +0.232651 +0.235358 +0.238096 +0.240866 +0.243668 +0.246503 +0.249371 +0.252272 +0.255207 +0.258176 +0.261179 +0.264218 +0.267292 +0.270402 +0.273547 +0.276730 +0.279949 +0.283206 +0.286501 +0.289834 +0.293206 +0.296617 +0.300068 +0.303559 +0.307090 +0.310663 +0.314277 +0.317933 +0.321632 +0.325374 +0.329159 +0.332989 +0.336863 +0.340782 +0.344746 +0.348757 +0.352815 +0.356919 +0.361071 +0.365272 +0.369522 +0.373821 +0.378170 +0.382569 +0.387020 +0.391522 +0.396077 +0.400685 +0.405347 +0.410063 +0.414833 +0.419659 +0.424542 +0.429481 +0.434477 +0.439532 +0.444645 +0.449818 +0.455051 +0.460345 +0.465701 +0.471119 +0.476600 +0.482144 +0.487754 +0.493428 +0.499169 +0.504976 +0.510851 +0.516794 +0.522806 +0.528888 +0.535041 +0.541266 +0.547563 +0.553933 +0.560378 +0.566897 +0.573492 +0.580164 +0.586914 +0.593742 +0.600649 +0.607637 +0.614707 +0.621858 +0.629093 +0.636411 +0.643815 +0.651305 +0.658883 +0.666548 +0.674302 +0.682147 +0.690083 +0.698111 +0.706233 +0.714449 +0.722761 +0.731170 +0.739676 +0.748281 +0.756987 +0.765794 +0.774703 +0.783715 +0.792833 +0.802057 +0.811388 +0.820827 +0.830377 +0.840037 +0.849810 +0.859697 +0.869698 +0.879816 +0.890052 +0.900407 +0.910882 +0.921479 +0.932199 +0.943045 +0.954016 +0.965115 +0.976343 +0.987701 +0.999192 +1.010817 +1.022576 +1.034473 +1.046508 +1.058683 +1.070999 +1.083459 +1.096064 +1.108815 +1.121715 +1.134765 +1.147967 +1.161322 +1.174833 +1.188501 +1.202328 +1.216315 +1.230466 +1.244781 +1.259262 +1.273913 +1.288733 +1.303726 +1.318893 +1.334237 +1.349760 +1.365462 +1.381348 +1.397419 +1.413676 +1.430122 +1.446760 +1.463592 +1.480619 +1.497844 +1.515270 +1.532898 +1.550732 +1.568773 +1.587024 +1.605487 +1.624165 +1.643061 +1.662176 +1.681513 +1.701076 +1.720866 +1.740886 +1.761139 +1.781628 +1.802356 +1.823324 +1.844536 +1.865995 +1.887704 +1.909665 +1.931882 +1.954357 +1.977094 +2.000095 +2.023364 +2.046904 +2.070717 +2.094808 +2.119178 +2.143833 +2.168774 +2.194005 +2.219530 +2.245351 +2.271474 +2.297900 +2.324633 +2.351678 +2.379037 +2.406714 +2.434714 +2.463039 +2.491693 +2.520681 +2.550007 +2.579673 +2.609685 +2.640045 +2.670759 +2.701831 +2.733263 +2.765062 +2.797230 +2.829773 +2.862694 +2.895998 +2.929690 +2.963774 +2.998254 +3.033135 +3.068422 +3.104120 +3.140233 +3.176766 +3.213724 +3.251112 +3.288935 +3.327198 +3.365906 +3.405065 +3.444679 +3.484754 +3.525295 +3.566308 +3.607798 +3.649770 +3.692231 +3.735186 +3.778641 +3.822601 +3.867073 +3.912062 +3.957574 +4.003616 +4.050194 +4.097313 +4.144981 +4.193203 +4.241986 +4.291337 +4.341262 +4.391767 +4.442861 +4.494548 +4.546837 +4.599735 +4.653247 +4.707383 +4.762148 +4.817550 +4.873597 +4.930295 +4.987654 +5.045680 +5.104380 +5.163764 +5.223839 +5.284612 +5.346093 +5.408288 +5.471208 +5.534859 +5.599251 +5.664392 +5.730291 +5.796956 +5.864397 +5.932623 +6.001642 +6.071464 +6.142099 +6.213555 +6.285843 +6.358972 +6.432951 +6.507791 +6.583502 +6.660094 +6.737577 +6.815961 +6.895257 +6.975475 +7.056627 +7.138723 +7.221774 +7.305791 +7.390786 +7.476769 +7.563753 +7.651749 +7.740768 +7.830823 +7.921926 +8.014089 +8.107323 +8.201643 +8.297060 +8.393587 +8.491237 +8.590023 +8.689958 +8.791056 +8.893330 +8.996794 +9.101461 +9.207346 +9.314463 +9.422827 +9.532451 +9.643350 +9.755539 +9.869034 +9.983849 +10.100000 +# + +CUBE +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +79 80 +80 81 +81 82 +82 83 +83 84 +84 85 +85 86 +86 87 +87 88 +88 89 +89 90 +90 91 +91 92 +92 93 +93 94 +94 95 +95 96 +96 97 +97 98 +98 99 +99 100 +100 101 +101 102 +102 103 +103 104 +104 105 +105 106 +106 107 +107 108 +108 109 +109 110 +110 111 +111 112 +112 113 +113 114 +114 115 +115 116 +116 117 +117 118 +118 119 +119 120 +120 121 +121 122 +122 123 +123 124 +124 125 +125 126 +126 127 +127 128 +128 129 +129 130 +130 131 +131 132 +132 133 +133 134 +134 135 +135 136 +136 137 +137 138 +138 139 +139 140 +140 141 +141 142 +142 143 +143 144 +144 145 +145 146 +146 147 +147 148 +148 149 +149 150 +150 151 +151 152 +152 153 +153 154 +154 155 +155 156 +156 157 +157 158 +158 159 +159 160 +160 161 +161 162 +162 163 +163 164 +164 165 +165 166 +166 167 +167 168 +168 169 +169 170 +170 171 +171 172 +172 173 +173 174 +174 175 +175 176 +176 177 +177 178 +178 179 +179 180 +180 181 +181 182 +182 183 +183 184 +184 185 +185 186 +186 187 +187 188 +188 189 +189 190 +190 191 +191 192 +192 193 +193 194 +194 195 +195 196 +196 197 +197 198 +198 199 +199 200 +200 201 +201 202 +202 203 +203 204 +204 205 +205 206 +206 207 +207 208 +208 209 +209 210 +210 211 +211 212 +212 213 +213 214 +214 215 +215 216 +216 217 +217 218 +218 219 +219 220 +220 221 +221 222 +222 223 +223 224 +224 225 +225 226 +226 227 +227 228 +228 229 +229 230 +230 231 +231 232 +232 233 +233 234 +234 235 +235 236 +236 237 +237 238 +238 239 +239 240 +240 241 +241 242 +242 243 +243 244 +244 245 +245 246 +246 247 +247 248 +248 249 +249 250 +250 251 +251 252 +252 253 +253 254 +254 255 +255 256 +256 257 +257 258 +258 259 +259 260 +260 261 +261 262 +262 263 +263 264 +264 265 +265 266 +266 267 +267 268 +268 269 +269 270 +270 271 +271 272 +272 273 +273 274 +274 275 +275 276 +276 277 +277 278 +278 279 +279 280 +280 281 +281 282 +282 283 +283 284 +284 285 +285 286 +286 287 +287 288 +288 289 +289 290 +290 291 +291 292 +292 293 +293 294 +294 295 +295 296 +296 297 +297 298 +298 299 +299 300 +300 301 +301 302 +302 303 +303 304 +304 305 +305 306 +306 307 +307 308 +308 309 +309 310 +310 311 +311 312 +312 313 +313 314 +314 315 +315 316 +316 317 +317 318 +318 319 +319 320 +320 321 +321 322 +322 323 +323 324 +324 325 +325 326 +326 327 +327 328 +328 329 +329 330 +330 331 +331 332 +332 333 +333 334 +334 335 +335 336 +336 337 +337 338 +338 339 +339 340 +340 341 +341 342 +342 343 +343 344 +344 345 +345 346 +346 347 +347 348 +348 349 +349 350 +350 351 +351 352 +352 353 +353 354 +354 355 +355 356 +356 357 +357 358 +358 359 +359 360 +360 361 +361 362 +362 363 +363 364 +364 365 +365 366 +366 367 +367 368 +368 369 +369 370 +370 371 +371 372 +372 373 +373 374 +374 375 +375 376 +376 377 +377 378 +378 379 +379 380 +380 381 +381 382 +382 383 +383 384 +384 385 +385 386 +386 387 +387 388 +388 389 +389 390 +390 391 +391 392 +392 393 +393 394 +394 395 +395 396 +396 397 +397 398 +398 399 +399 400 +400 401 +401 402 +402 403 +403 404 +404 405 +405 406 +406 407 +407 408 +408 409 +409 410 +410 411 +411 412 +412 413 +413 414 +414 415 +415 416 +416 417 +417 418 +418 419 +419 420 +420 421 +421 422 +422 423 +423 424 +424 425 +425 426 +426 427 +427 428 +428 429 +429 430 +430 431 +431 432 +432 433 +433 434 +434 435 +435 436 +436 437 +437 438 +438 439 +439 440 +440 441 +441 442 +442 443 +443 444 +444 445 +445 446 +446 447 +447 448 +448 449 +449 450 +450 451 +451 452 +452 453 +453 454 +454 455 +455 456 +456 457 +457 458 +458 459 +459 460 +460 461 +461 462 +462 463 +463 464 +464 465 +465 466 +466 467 +467 468 +468 469 +469 470 +470 471 +471 472 +472 473 +473 474 +474 475 +475 476 +476 477 +477 478 +478 479 +479 480 +480 481 +481 482 +482 483 +483 484 +484 485 +485 486 +486 487 +487 488 +488 489 +489 490 +490 491 +491 492 +492 493 +493 494 +494 495 +495 496 +496 497 +497 498 +498 499 +499 500 +500 501 +501 502 +502 503 +503 504 +504 505 +505 506 +506 507 +507 508 +508 509 +509 510 +510 511 +511 512 +512 513 +513 514 +514 515 +515 516 +516 517 +517 518 +518 519 +519 520 +520 521 +521 522 +522 523 +523 524 +524 525 +525 526 +526 527 +527 528 +528 529 +529 530 +530 531 +531 532 +532 533 +533 534 +534 535 +535 536 +536 537 +537 538 +538 539 +539 540 +540 541 +541 542 +542 543 +543 544 +544 545 +545 546 +546 547 +547 548 +548 549 +549 550 +550 551 +551 552 +552 553 +553 554 +554 555 +555 556 +556 557 +557 558 +558 559 +559 560 +560 561 +561 562 +562 563 +563 564 +564 565 +565 566 +566 567 +567 568 +568 569 +569 570 +570 571 +571 572 +572 573 +573 574 +574 575 +575 576 +576 577 +577 578 +578 579 +579 580 +580 581 +581 582 +582 583 +583 584 +584 585 +585 586 +586 587 +587 588 +588 589 +589 590 +590 591 +591 592 +592 593 +593 594 +594 595 +595 596 +596 597 +597 598 +598 599 +599 600 +600 601 +601 602 +602 603 +603 604 +604 605 +605 606 +606 607 +607 608 +608 609 +609 610 +610 611 +611 612 +612 613 +613 614 +614 615 +615 616 +616 617 +617 618 +618 619 +619 620 +620 621 +621 622 +622 623 +623 624 +624 625 +625 626 +626 627 +627 628 +628 629 +629 630 +630 631 +631 632 +632 633 +633 634 +634 635 +635 636 +636 637 +637 638 +638 639 +639 640 +640 641 +641 642 +642 643 +643 644 +644 645 +645 646 +646 647 +647 648 +648 649 +649 650 +650 651 +651 652 +652 653 +653 654 +654 655 +655 656 +656 657 +657 658 +658 659 +659 660 +660 661 +661 662 +662 663 +663 664 +664 665 +665 666 +666 667 +667 668 +668 669 +669 670 +670 671 +671 672 +672 673 +673 674 +674 675 +675 676 +676 677 +677 678 +678 679 +679 680 +680 681 +681 682 +682 683 +683 684 +684 685 +685 686 +686 687 +687 688 +688 689 +689 690 +690 691 +691 692 +692 693 +693 694 +694 695 +695 696 +696 697 +697 698 +698 699 +699 700 +700 701 +701 702 +702 703 +703 704 +704 705 +705 706 +706 707 +707 708 +708 709 +709 710 +710 711 +711 712 +712 713 +713 714 +714 715 +715 716 +716 717 +717 718 +718 719 +719 720 +720 721 +721 722 +722 723 +723 724 +724 725 +725 726 +726 727 +727 728 +728 729 +729 730 +730 731 +731 732 +732 733 +733 734 +734 735 +735 736 +736 737 +737 738 +738 739 +739 740 +740 741 +741 742 +742 743 +743 744 +744 745 +745 746 +746 747 +747 748 +748 749 +749 750 +750 751 +751 752 +752 753 +753 754 +754 755 +755 756 +756 757 +757 758 +758 759 +759 760 +760 761 +761 762 +762 763 +763 764 +764 765 +765 766 +766 767 +767 768 +768 769 +769 770 +770 771 +771 772 +772 773 +773 774 +774 775 +775 776 +776 777 +777 778 +778 779 +779 780 +780 781 +781 782 +782 783 +783 784 +784 785 +785 786 +786 787 +787 788 +788 789 +789 790 +790 791 +791 792 +792 793 +793 794 +794 795 +795 796 +796 797 +797 798 +798 799 +# + +# + diff --git a/test/implicit/mpnc/grids/combustionOutflowGridLinNX40LogNx40.dgf b/test/implicit/mpnc/grids/combustionOutflowGridLinNX40LogNx40.dgf new file mode 100644 index 0000000000000000000000000000000000000000..6f9aa985447775132fb5a77bd8c0967254091934 --- /dev/null +++ b/test/implicit/mpnc/grids/combustionOutflowGridLinNX40LogNx40.dgf @@ -0,0 +1,170 @@ +DGF + +VERTEX +dimension 1 +0.000000 +0.002500 +0.005000 +0.007500 +0.010000 +0.012500 +0.015000 +0.017500 +0.020000 +0.022500 +0.025000 +0.027500 +0.030000 +0.032500 +0.035000 +0.037500 +0.040000 +0.042500 +0.045000 +0.047500 +0.050000 +0.052500 +0.055000 +0.057500 +0.060000 +0.062500 +0.065000 +0.067500 +0.070000 +0.072500 +0.075000 +0.077500 +0.080000 +0.082500 +0.085000 +0.087500 +0.090000 +0.092500 +0.095000 +0.097500 +0.100000 +0.112562 +0.126703 +0.142619 +0.160536 +0.180703 +0.203403 +0.228955 +0.257717 +0.290092 +0.326534 +0.367554 +0.413727 +0.465701 +0.524204 +0.590055 +0.664180 +0.747616 +0.841533 +0.947249 +1.066245 +1.200190 +1.350961 +1.520672 +1.711703 +1.926732 +2.168774 +2.441221 +2.747894 +3.093092 +3.481655 +3.919029 +4.411349 +4.965514 +5.589296 +6.291438 +7.081786 +7.971419 +8.972811 +10.100000 +# + +CUBE +0 1 +1 2 +2 3 +3 4 +4 5 +5 6 +6 7 +7 8 +8 9 +9 10 +10 11 +11 12 +12 13 +13 14 +14 15 +15 16 +16 17 +17 18 +18 19 +19 20 +20 21 +21 22 +22 23 +23 24 +24 25 +25 26 +26 27 +27 28 +28 29 +29 30 +30 31 +31 32 +32 33 +33 34 +34 35 +35 36 +36 37 +37 38 +38 39 +39 40 +40 41 +41 42 +42 43 +43 44 +44 45 +45 46 +46 47 +47 48 +48 49 +49 50 +50 51 +51 52 +52 53 +53 54 +54 55 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +61 62 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 69 +69 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 76 +76 77 +77 78 +78 79 +# + +# + diff --git a/test/implicit/mpnc/test_boxmpncthermalnonequil.cc b/test/implicit/mpnc/test_boxmpncthermalnonequil.cc new file mode 100644 index 0000000000000000000000000000000000000000..dedbc49e74387c1b8236a3c11d9cb2e637b8ce17 --- /dev/null +++ b/test/implicit/mpnc/test_boxmpncthermalnonequil.cc @@ -0,0 +1,64 @@ +/***************************************************************************** + * Copyright (C) 2009-2010 by Philipp Nuske * + * Institute of Hydraulic Engineering * + * University of Stuttgart, Germany * + * email: <givenname>.<name>@iws.uni-stuttgart.de * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see <http://www.gnu.org/licenses/>. * + *****************************************************************************/ +#include "config.h" + +//#include "combustionproblem.hh" +#include "combustionproblem1c.hh" + + +#include <dumux/common/start.hh> + +/*! + * \brief Provides an interface for customizing error messages associated with + * reading in parameters. + * + * \param progName The name of the program, that was tried to be started. + * \param errorMsg The error message that was issued by the start function. + * Comprises the thing that went wrong and a general help message. + */ +void usage(const char *progName, const std::string &errorMsg) +{ + if (errorMsg.size() > 0) { + std::string errorMessageOut = "\nUsage: "; + errorMessageOut += progName; + errorMessageOut += " [options]\n"; + errorMessageOut += errorMsg; + errorMessageOut += "\n\nThe list of mandatory options for this program is:\n" + "\t-TimeManager.TEnd End of the simulation [s] \n" + "\t-TimeManager.DtInitial Initial timestep size [s] \n" + "\t-Grid.File Name of the file containing the grid \n" + "\t definition in DGF format\n" + "\t-SpatialParams.LensLowerLeftX x-coordinate of the lower left corner of the lens [m] \n" + "\t-SpatialParams.LensLowerLeftY y-coordinate of the lower left corner of the lens [m] \n" + "\t-SpatialParams.LensUpperRightX x-coordinate of the upper right corner of the lens [m] \n" + "\t-SpatialParams.LensUpperRightY y-coordinate of the upper right corner of the lens [m] \n" + "\t-Problem.Name String for naming of the output files \n" + "\n"; + + std::cout << errorMessageOut << std::endl; + } +} + +int main(int argc, char** argv) +{ +// typedef TTAG(CombustionProblem) ProblemTypeTag; + typedef TTAG(CombustionProblemOneComponent) ProblemTypeTag; + return Dumux::start<ProblemTypeTag>(argc, argv, usage); +} diff --git a/test/implicit/mpnc/test_boxmpncthermalnonequil.input b/test/implicit/mpnc/test_boxmpncthermalnonequil.input new file mode 100644 index 0000000000000000000000000000000000000000..6b2b2d507801cff0b5de17a86f510c6b6bc48236 --- /dev/null +++ b/test/implicit/mpnc/test_boxmpncthermalnonequil.input @@ -0,0 +1,83 @@ + +############################################################# +#Configuration file for test_inputfile +############################################################# + + +############################################################# +# Mandatory arguments # +############################################################# +[TimeManager] +DtInitial = 5e-1 # [s] +TEnd = 1e3 # [s] +MaxTimeStepSize = 2e20 # maximum allowed timestep size +# + +############################################################# +[Grid] +############################################################# +#Name of the dgf file (grid) + File = ./grids/combustionOutflowGridLinNX100LogNx100.dgf +# File = ./grids/combustionGrid.dgf + +lengthPM = 0.1 + +############################################################# +#Define initial conditions +############################################################# +[InitialConditions] +pnInitial = 1e5 # 6.8e6 # 1e5 # 101475 # Pa +TInitial = 372 # 373.15 # +TRight = 400 # 373.15 # + +[BoundaryConditions] +TBoundary =300 # +SwBoundary = 1e-3 # +SwOneComponentSys = 1 # + +massFluxInjectedPhase = 0.5 # +# heatFluxFromRight = 2e6 # fluid temperature on boundary: analytical approx 1080 K +heatFluxFromRight = 1.5e6 # fluid temperature on boundary: analytical approx 587.3 K +coldTime = 1 + +############################################################ +#Define spatial parameters +############################################################ +[SpatialParams.PorousMedium] +porosity = 0.35 # +meanPoreSize = 5e-4 # characteristic length of the system +factorEnergyTransfer = 1 # +factorMassTransfer = 1 # + +[SpatialParams.OutFlow] +permeabilityOutFlow = 1e-6 # m^2 +porosityOutFlow = 0.35 # +soilThermalConductivityOutFlow = 0.01# + +############################### +#Define soil parameters +############################### +[SpatialParams.soil] +density = 2600. # kg/m^3 +soilThermalConductivity = 30 # W / (m K) soil:3, metal:30 +heatCapacity = 466 # J / (kg K) steel:466 granite:800 + +Swr = 0.0 # 5e-3 +Snr = 0 # + +############################################################ +#Define constants: tabulation etc +############################################################# +[Constants] +outputName = combustion # + +interfacialTension = 0.0589 # interfacial tension of water at 100 ° C + +nRestart = 10000 # after so many timesteps a restart file should be written + +# +[Implicit] +MassUpwindWeight=1 +MobilityUpwindWeight=1 +# + diff --git a/test/references/combustion-reference.vtp b/test/references/combustion-reference.vtp new file mode 100644 index 0000000000000000000000000000000000000000..5b12d93b753174bd314c849bc0117c1fa1fa2747 --- /dev/null +++ b/test/references/combustion-reference.vtp @@ -0,0 +1,614 @@ +<?xml version="1.0"?> +<VTKFile type="PolyData" version="0.1" byte_order="LittleEndian"> + <PolyData> + <Piece NumberOfLines="199" NumberOfPoints="200"> + <PointData Scalars="S_w"> + <DataArray type="Float32" Name="S_w" NumberOfComponents="1" format="ascii"> + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 0.892001 0.782712 0.707405 0.645213 0.588605 0.53415 0.480437 0.427439 0.375605 0.324586 0.27241 + 0.214602 0.140417 0.0154366 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0.00175038 0.00175116 0.00175043 0.00174967 0.00174887 0.00174802 0.00174714 0.00174622 0.00174525 + 0.00174424 0.00174318 0.00174207 0.0017409 0.00173967 0.00173837 0.00173698 0.00173545 0.00173368 0.00173144 0.00172822 0.00172292 + 0.00171331 0.00169523 0.00166161 0.00160183 0.00150206 0.00134824 0.00114112 0.001 + </DataArray> + <DataArray type="Float32" Name="S_n" NumberOfComponents="1" format="ascii"> + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0.107999 0.217288 0.292595 0.354787 0.411395 0.46585 0.519563 0.572561 0.624395 0.675414 0.72759 + 0.785398 0.859583 0.984563 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 0.99825 0.998249 0.99825 0.99825 0.998251 0.998252 0.998253 0.998254 0.998255 + 0.998256 0.998257 0.998258 0.998259 0.99826 0.998262 0.998263 0.998265 0.998266 0.998269 0.998272 0.998277 + 0.998287 0.998305 0.998338 0.998398 0.998498 0.998652 0.998859 0.999 + </DataArray> + <DataArray type="Float32" Name="p_w" NumberOfComponents="1" format="ascii"> + 100295 100284 100273 100262 100251 100240 100229 100218 100207 100196 100185 100174 + 100163 100152 100141 100130 100119 100108 100097 100086 100074 100063 100052 100041 + 100030 100019 100008 99997.2 99986.2 99975.1 99964.1 99953.1 99942 99931 99920 99908.9 + 99897.9 99886.8 99875.8 99864.8 99853.7 99842.7 99831.6 99820.6 99809.6 99798.5 99787.5 99776.5 + 99765.4 99754.4 99743.3 99732.3 99721.3 99710.2 99699.2 99688.2 99677.1 99666.1 99655 99644 + 99633 99621.9 99610.9 99599.9 99588.8 99577.8 99566.7 99555.7 99544.7 99533.6 99522.6 99511.5 + 99500.5 99489.5 99478.4 99467.4 99456.4 99445.3 99434.3 99423.2 99412.2 99401.2 99390.1 99379.1 + 99368 99357 99345.5 99333.4 99320.6 99307 99292.4 99276.2 99257.9 99236.1 99208.9 99172.5 + 99118.6 99022.5 98771.3 98710.7 98700.1 98700 98699.9 98699.8 98699.7 98699.6 98699.5 98699.3 + 98699.2 98699.1 98698.9 98698.8 98698.6 98698.4 98698.3 98698.1 98697.9 98697.7 98697.5 98697.3 + 98697 98696.8 98696.5 98696.3 98696 98695.7 98695.4 98695.1 98694.7 98694.4 98694 98693.6 + 98693.2 98692.8 98692.3 98691.9 98691.4 98690.9 98690.3 98689.8 98689.2 98688.6 98687.9 98687.2 + 98686.5 98685.8 98685 98684.2 98683.3 98682.4 98681.5 98680.5 98679.5 98678.4 98677.3 98676.1 + 98674.8 98673.5 98672.2 98670.8 98669.2 98667.7 98666 98664.3 98662.5 98660.6 98658.6 98656.6 + 98654.4 98652.1 98649.7 98651.7 98649.1 98646.4 98643.5 98640.5 98637.3 98634 98630.5 98626.9 + 98623.1 98619.1 98614.9 98610.5 98606 98601.1 98596.1 98590.8 98585.3 98579.5 98573.4 98567.1 + 98560.4 98553.4 98546 98538.1 98529.9 98521.1 98511.7 98502.1 + </DataArray> + <DataArray type="Float32" Name="p_n" NumberOfComponents="1" format="ascii"> + 100295 100284 100273 100262 100251 100240 100229 100218 100207 100196 100185 100174 + 100163 100152 100141 100130 100119 100108 100097 100086 100074 100063 100052 100041 + 100030 100019 100008 99997.2 99986.2 99975.1 99964.1 99953.1 99942 99931 99920 99908.9 + 99897.9 99886.8 99875.8 99864.8 99853.7 99842.7 99831.6 99820.6 99809.6 99798.5 99787.5 99776.5 + 99765.4 99754.4 99743.3 99732.3 99721.3 99710.2 99699.2 99688.2 99677.1 99666.1 99655 99644 + 99633 99621.9 99610.9 99599.9 99588.8 99577.8 99566.7 99555.7 99544.7 99533.6 99522.6 99511.5 + 99500.5 99489.5 99478.4 99467.4 99456.4 99445.3 99434.3 99423.2 99412.2 99401.2 99390.1 99379.1 + 99368 99705 99937 100043 100104 100143 100170 100190 100205 100216 100225 100231 + 100236 100238 100233 100211 100201 100200 100200 100200 100200 100200 100200 100200 + 100200 100200 100199 100199 100199 100199 100199 100199 100198 100198 100198 100198 + 100197 100197 100197 100197 100196 100196 100196 100196 100195 100195 100194 100194 + 100194 100193 100193 100192 100192 100191 100191 100190 100190 100189 100188 100188 + 100187 100186 100185 100185 100184 100183 100182 100181 100180 100179 100178 100177 + 100175 100174 100173 100171 100170 100168 100166 100165 100163 100161 100159 100157 + 100155 100153 100150 100148 100145 100142 100139 100136 100133 100130 100126 100123 + 100119 100115 100111 100107 100102 100097 100092 100087 100081 100075 100069 100063 + 100056 100049 100042 100034 100026 100018 100009 100000 + </DataArray> + <DataArray type="Float32" Name="rho_w" NumberOfComponents="1" format="ascii"> + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 1044 + 1044 1044 1044 1044 1044 1044 1044 1044 + </DataArray> + <DataArray type="Float32" Name="rho_n" NumberOfComponents="1" format="ascii"> + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + 1.679 1.679 1.679 1.679 1.679 1.679 1.679 1.679 + </DataArray> + <DataArray type="Float32" Name="lambda_w" NumberOfComponents="1" format="ascii"> + 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 + 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 + 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 + 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 + 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 + 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 + 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 3555.51 + 3555.51 2523.47 1704.94 1258.65 955.017 725.06 541.865 394.285 277.667 188.406 121.588 71.8736 + 35.14 9.84381 0.0130784 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 1.90676e-05 1.90933e-05 1.90694e-05 1.90444e-05 1.90183e-05 1.89909e-05 1.89622e-05 1.89321e-05 1.89007e-05 + 1.88678e-05 1.88334e-05 1.87973e-05 1.87595e-05 1.87198e-05 1.86779e-05 1.8633e-05 1.85838e-05 1.85271e-05 1.84556e-05 1.83528e-05 1.81844e-05 + 1.78818e-05 1.73215e-05 1.63113e-05 1.46133e-05 1.20493e-05 8.71372e-06 5.2832e-06 3.55551e-06 + </DataArray> + <DataArray type="Float32" Name="lambda_n" NumberOfComponents="1" format="ascii"> + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 104.783 853.378 2083.72 3714.84 5791.79 8409.59 11666.8 15613.6 20249.6 25629.9 32040.3 + 40300.1 52832.3 81231.1 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 + 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 + 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 + 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 + 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 + 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 83183.3 + 83183.3 83183.3 83183.3 83154 83154 83154 83154.1 83154.1 83154.1 83154.1 83154.2 83154.2 + 83154.2 83154.3 83154.3 83154.4 83154.4 83154.4 83154.5 83154.5 83154.6 83154.7 83154.8 83154.9 + 83155.3 83155.8 83156.9 83158.8 83161.7 83165.9 83170.8 83173.7 + </DataArray> + <DataArray type="Float32" Name="porosity" NumberOfComponents="1" format="ascii"> + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + 0.35 0.35 0.35 0.35 0.35 0.35 0.35 0.35 + </DataArray> + <DataArray type="Float32" Name="boundary types" NumberOfComponents="1" format="ascii"> + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 63 + </DataArray> + <DataArray type="Float32" Name="x_w^H2O" NumberOfComponents="1" format="ascii"> + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 0.127405 0.00960322 0.00960059 0.00960058 0.00960056 0.00960055 0.00960053 0.00960051 0.00960049 + 0.00960047 0.00960044 0.00960041 0.00960037 0.00960033 0.00960028 0.00960021 0.00960014 0.00960005 0.00959993 0.00959978 0.00959958 + 0.00959931 0.00959894 0.00959841 0.00959765 0.00959654 0.00959488 0.00959236 0.00958853 0.0095827 0.00957381 0.00956038 0.00954032 + 0.00951081 0.00946818 0.00940798 0.00932505 0.00921404 0.00907 0.0088895 0.00867173 0.00841972 0.00814121 0.00784898 0.00756044 + 0.00729686 0.0070823 0.00694312 0.00690835 0.0070116 0.00729492 0.00781524 0.00865486 0.00993784 0.011856 0.0147095 0.0189699 + 0.0253755 0.0350635 0.0497294 0.0717803 0.104344 0.150927 0.214668 0.297253 0.396929 0.507976 0.624433 0.736896 + 0.834142 0.915099 0.999951 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 0.406912 + </DataArray> + <DataArray type="Float32" Name="x_w^N2" NumberOfComponents="1" format="ascii"> + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + </DataArray> + <DataArray type="Float32" Name="x_n^H2O" NumberOfComponents="1" format="ascii"> + 0.0352867 0.0352959 0.0353031 0.0353106 0.0353184 0.0353267 0.0353354 0.0353446 0.0353544 0.0353649 0.035376 0.0353879 + 0.0354007 0.0354144 0.0354292 0.0354451 0.0354623 0.0354809 0.0355011 0.0355231 0.0355469 0.035573 0.0356013 0.0356323 + 0.0356662 0.0357034 0.035744 0.0357887 0.0358377 0.0358915 0.0359508 0.036016 0.0360879 0.0361671 0.0362544 0.0363509 + 0.0364574 0.0365751 0.0367053 0.0368494 0.0370089 0.0371856 0.0373815 0.0375988 0.0378401 0.0381081 0.0384061 0.0387376 + 0.0391067 0.0395182 0.0399774 0.0404902 0.0410637 0.0417059 0.042426 0.0432346 0.0441442 0.0451692 0.0463266 0.0476364 + 0.0491221 0.0508118 0.0527388 0.0549435 0.0574745 0.0603906 0.0637643 0.0676845 0.0722614 0.0776329 0.0839721 0.091499 + 0.100495 0.111321 0.124448 0.140494 0.160276 0.184883 0.215785 0.254983 0.305221 0.370306 0.455564 0.568601 + 0.737149 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 + </DataArray> + <DataArray type="Float32" Name="x_n^N2" NumberOfComponents="1" format="ascii"> + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + </DataArray> + <DataArray type="Float32" Name="velocity_w" NumberOfComponents="1" format="ascii"> + 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 + 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 + 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 + 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 + 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 + 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 + 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 0.000478927 + 0.00048373 0.000510654 0.000535825 0.000539727 0.00054085 0.000541197 0.000541287 0.000541245 0.000540999 0.000540308 0.000538612 0.000534296 + 0.000520827 0.000455797 0.000200615 5.5683e-08 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 -9.77959e-08 -1.95378e-07 -1.95042e-07 -1.94792e-07 -1.9453e-07 -1.94256e-07 -1.9397e-07 -1.9367e-07 -1.93356e-07 -1.93027e-07 + -1.92683e-07 -1.92323e-07 -1.91945e-07 -1.91549e-07 -1.91131e-07 -1.90688e-07 -1.90207e-07 -1.89666e-07 -1.8901e-07 -1.88119e-07 -1.86733e-07 -1.84326e-07 + -1.79915e-07 -1.71887e-07 -1.58044e-07 -1.3626e-07 -1.06107e-07 -7.1528e-08 -4.51681e-08 -3.63401e-08 + </DataArray> + <DataArray type="Float32" Name="velocity_n" NumberOfComponents="1" format="ascii"> + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + -0.00298628 -0.0197277 -0.0353787 -0.0378055 -0.0385034 -0.0387194 -0.0387752 -0.0387489 -0.0385963 -0.0381666 -0.0371117 -0.0344282 + -0.0260535 0.0143822 0.173054 0.297762 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 + 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 + 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 + 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 + 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 + 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 0.297796 + 0.297796 0.297796 0.29813 0.298464 0.298465 0.298465 0.298465 0.298465 0.298465 0.298466 0.298466 0.298466 + 0.298467 0.298467 0.298467 0.298467 0.298468 0.298468 0.298469 0.298469 0.298469 0.29847 0.29847 0.298471 + 0.298471 0.298472 0.298472 0.298473 0.298473 0.298474 0.298475 0.298476 + </DataArray> + <DataArray type="Float32" Name="T_fluid" NumberOfComponents="1" format="ascii"> + 300.012 300.015 300.016 300.018 300.02 300.022 300.024 300.027 300.03 300.033 300.036 300.04 + 300.044 300.049 300.054 300.06 300.066 300.074 300.081 300.09 300.1 300.11 300.122 300.135 + 300.149 300.165 300.182 300.202 300.223 300.247 300.273 300.302 300.334 300.37 300.409 300.453 + 300.501 300.554 300.613 300.678 300.75 300.829 300.917 301.015 301.123 301.242 301.374 301.52 + 301.681 301.86 302.057 302.276 302.518 302.785 303.081 303.408 303.77 304.17 304.613 305.103 + 305.645 306.245 306.908 307.642 308.454 309.351 310.345 311.443 312.659 314.003 315.491 317.136 + 318.956 320.969 323.197 325.66 328.386 331.401 334.736 338.425 342.507 347.021 352.016 357.544 + 364.28 372.673 372.738 372.768 372.785 372.796 372.804 372.809 372.813 372.816 372.819 372.821 + 372.822 372.822 372.821 442.862 587.288 587.308 587.308 587.308 587.308 587.308 587.308 587.308 + 587.309 587.309 587.309 587.309 587.309 587.31 587.31 587.31 587.311 587.312 587.313 587.314 + 587.316 587.319 587.323 587.328 587.337 587.349 587.368 587.398 587.443 587.511 587.615 587.771 + 588.001 588.335 588.81 589.471 590.366 591.548 593.062 594.939 597.185 599.763 602.587 605.502 + 608.284 610.64 612.214 612.613 611.433 608.302 602.916 595.08 584.741 572.002 557.128 540.53 + 522.729 504.314 485.896 468.048 451.269 435.966 422.4 410.683 400.872 392.913 386.524 381.567 + 377.95 375.298 372.799 372.797 372.796 372.796 372.795 372.794 372.793 372.792 372.791 372.79 + 372.789 372.788 372.787 372.786 372.784 372.783 372.782 372.78 372.779 372.777 372.775 372.774 + 372.772 372.77 372.768 372.766 372.763 372.761 372.758 400 + </DataArray> + <DataArray type="Float32" Name="T_solid" NumberOfComponents="1" format="ascii"> + 300.013 300.015 300.016 300.018 300.02 300.022 300.024 300.027 300.03 300.033 300.036 300.04 + 300.045 300.049 300.055 300.06 300.067 300.074 300.082 300.091 300.1 300.111 300.123 300.136 + 300.15 300.166 300.184 300.203 300.225 300.248 300.275 300.304 300.336 300.372 300.412 300.455 + 300.504 300.557 300.616 300.682 300.754 300.834 300.923 301.021 301.129 301.249 301.382 301.529 + 301.691 301.871 302.069 302.289 302.532 302.801 303.099 303.428 303.792 304.195 304.64 305.133 + 305.678 306.281 306.948 307.686 308.503 309.406 310.405 311.51 312.733 314.085 315.581 317.236 + 319.067 321.092 323.332 325.81 328.551 331.584 334.939 338.649 342.755 347.296 352.319 357.876 + 364.016 369.69 371.037 371.655 372.07 372.422 372.757 373.09 373.436 373.83 374.344 375.148 + 376.706 380.767 398.046 463.759 602.401 587.309 587.308 587.308 587.308 587.308 587.308 587.309 + 587.309 587.309 587.309 587.309 587.309 587.31 587.31 587.31 587.311 587.312 587.313 587.314 + 587.316 587.319 587.323 587.328 587.337 587.349 587.369 587.398 587.444 587.513 587.617 587.774 + 588.005 588.34 588.816 589.479 590.377 591.561 593.078 594.959 597.207 599.788 602.612 605.527 + 608.307 610.659 612.226 612.616 611.425 608.282 602.882 595.033 584.682 571.933 557.051 540.448 + 522.645 504.231 485.817 467.975 451.204 435.909 422.352 410.643 400.84 392.888 386.505 381.553 + 377.941 375.292 372.799 372.797 372.796 372.796 372.795 372.794 372.793 372.792 372.791 372.79 + 372.789 372.788 372.787 372.786 372.784 372.783 372.782 372.78 372.779 372.777 372.775 372.774 + 372.772 372.77 372.768 372.766 372.763 372.761 372.758 400 + </DataArray> + <DataArray type="Float32" Name="h_w" NumberOfComponents="1" format="ascii"> + -308423 -308412 -308405 -308398 -308390 -308381 -308371 -308360 -308348 -308335 -308321 -308304 + -308286 -308266 -308244 -308220 -308193 -308163 -308130 -308094 -308054 -308009 -307960 -307905 + -307845 -307778 -307704 -307622 -307532 -307432 -307321 -307199 -307064 -306914 -306748 -306565 + -306362 -306138 -305890 -305615 -305312 -304976 -304605 -304194 -303739 -303236 -302680 -302065 + -301384 -300631 -299798 -298876 -297857 -296729 -295482 -294102 -292576 -290887 -289019 -286953 + -284667 -282139 -279342 -276248 -272825 -269038 -264850 -260217 -255091 -249421 -243149 -236211 + -228536 -220045 -210653 -200263 -188770 -176056 -161992 -146434 -129223 -110184 -89123.3 -65808.8 + -37404.3 -2009.97 -1736.12 -1611.45 -1539.58 -1493.11 -1461.04 -1437.92 -1420.69 -1407.49 -1397.23 -1389.35 + -1383.77 -1381.2 -1387.59 293976 903020 903105 903105 903105 903106 903106 903106 903106 + 903107 903107 903108 903109 903109 903111 903112 903114 903116 903119 903124 903130 + 903138 903149 903165 903189 903225 903278 903359 903483 903673 903962 904401 905058 + 906028 907436 909439 912224 916000 920984 927368 935285 944754 955628 967534 979827 + 991562 1.0015e+06 1.00813e+06 1.00981e+06 1.00484e+06 991636 968922 935879 892277 838557 775836 705842 + 630773 553118 475452 400184 329428 264894 207688 158276 116902 83339.1 56398.4 35494.6 + 20243.5 9060.1 -1479.12 -1487.85 -1490.94 -1494.17 -1497.56 -1501.11 -1504.83 -1508.73 -1512.81 -1517.09 + -1521.57 -1526.27 -1531.19 -1536.34 -1541.74 -1547.4 -1553.33 -1559.55 -1566.06 -1572.88 -1580.02 -1587.51 + -1595.36 -1603.58 -1612.19 -1621.22 -1630.67 -1640.58 -1650.96 113226 + </DataArray> + <DataArray type="Float32" Name="h_n" NumberOfComponents="1" format="ascii"> + 2.1086e+06 2.10861e+06 2.10861e+06 2.10862e+06 2.10862e+06 2.10862e+06 2.10863e+06 2.10863e+06 2.10864e+06 2.10865e+06 2.10865e+06 2.10866e+06 + 2.10867e+06 2.10868e+06 2.10869e+06 2.1087e+06 2.10871e+06 2.10873e+06 2.10874e+06 2.10876e+06 2.10878e+06 2.1088e+06 2.10883e+06 2.10885e+06 + 2.10888e+06 2.10891e+06 2.10895e+06 2.10899e+06 2.10903e+06 2.10908e+06 2.10913e+06 2.10919e+06 2.10926e+06 2.10933e+06 2.10941e+06 2.1095e+06 + 2.10959e+06 2.1097e+06 2.10982e+06 2.10995e+06 2.1101e+06 2.11026e+06 2.11044e+06 2.11064e+06 2.11086e+06 2.1111e+06 2.11137e+06 2.11166e+06 + 2.11199e+06 2.11235e+06 2.11275e+06 2.1132e+06 2.11369e+06 2.11423e+06 2.11483e+06 2.11549e+06 2.11623e+06 2.11704e+06 2.11794e+06 2.11893e+06 + 2.12003e+06 2.12125e+06 2.1226e+06 2.12408e+06 2.12573e+06 2.12755e+06 2.12957e+06 2.1318e+06 2.13426e+06 2.13699e+06 2.14001e+06 2.14335e+06 + 2.14704e+06 2.15113e+06 2.15564e+06 2.16064e+06 2.16617e+06 2.17229e+06 2.17906e+06 2.18654e+06 2.19482e+06 2.20398e+06 2.21412e+06 2.22534e+06 + 2.239e+06 2.25603e+06 2.25616e+06 2.25622e+06 2.25626e+06 2.25628e+06 2.2563e+06 2.25631e+06 2.25632e+06 2.25632e+06 2.25633e+06 2.25633e+06 + 2.25633e+06 2.25634e+06 2.25633e+06 2.39845e+06 2.69149e+06 2.69153e+06 2.69153e+06 2.69153e+06 2.69153e+06 2.69153e+06 2.69153e+06 2.69153e+06 + 2.69153e+06 2.69153e+06 2.69153e+06 2.69153e+06 2.69153e+06 2.69153e+06 2.69153e+06 2.69153e+06 2.69153e+06 2.69153e+06 2.69154e+06 2.69154e+06 + 2.69154e+06 2.69155e+06 2.69156e+06 2.69157e+06 2.69158e+06 2.69161e+06 2.69165e+06 2.69171e+06 2.6918e+06 2.69194e+06 2.69215e+06 2.69247e+06 + 2.69293e+06 2.69361e+06 2.69457e+06 2.69591e+06 2.69773e+06 2.70013e+06 2.7032e+06 2.70701e+06 2.71157e+06 2.7168e+06 2.72253e+06 2.72844e+06 + 2.73409e+06 2.73887e+06 2.74206e+06 2.74287e+06 2.74048e+06 2.73412e+06 2.72319e+06 2.7073e+06 2.68632e+06 2.66047e+06 2.63029e+06 2.59661e+06 + 2.56049e+06 2.52313e+06 2.48576e+06 2.44955e+06 2.4155e+06 2.38445e+06 2.35693e+06 2.33315e+06 2.31325e+06 2.2971e+06 2.28414e+06 2.27408e+06 + 2.26674e+06 2.26136e+06 2.25629e+06 2.25628e+06 2.25628e+06 2.25628e+06 2.25628e+06 2.25628e+06 2.25628e+06 2.25627e+06 2.25627e+06 2.25627e+06 + 2.25627e+06 2.25627e+06 2.25626e+06 2.25626e+06 2.25626e+06 2.25626e+06 2.25625e+06 2.25625e+06 2.25625e+06 2.25624e+06 2.25624e+06 2.25624e+06 + 2.25623e+06 2.25623e+06 2.25622e+06 2.25622e+06 2.25622e+06 2.25621e+06 2.25621e+06 2.31148e+06 + </DataArray> + <DataArray type="Float32" Name="reynoldsNumber_w" NumberOfComponents="1" format="ascii"> + 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 + 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 + 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 + 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 + 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 + 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 + 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 0.888878 + 0.897791 0.947762 0.994478 1.00172 1.0038 1.00445 1.00462 1.00454 1.00408 1.0028 0.99965 0.991641 + 0.966643 0.845949 0.372336 0.000103346 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0.000181507 0.000362617 0.000361993 0.000361529 0.000361043 0.000360535 0.000360003 0.000359446 0.000358863 0.000358253 + 0.000357615 0.000356946 0.000356245 0.00035551 0.000354735 0.000353912 0.00035302 0.000352016 0.000350799 0.000349145 0.000346573 0.000342104 + 0.000333918 0.000319018 0.000293326 0.000252895 0.000196933 0.000132754 8.3831e-05 6.74464e-05 + </DataArray> + <DataArray type="Float32" Name="reynoldsNumber_n" NumberOfComponents="1" format="ascii"> + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 + 0.208539 1.37763 2.47058 2.64005 2.68879 2.70387 2.70776 2.70593 2.69527 2.66526 2.5916 2.4042 + 1.81938 1.00434 12.0848 20.7934 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 + 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 + 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 + 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 + 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 + 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 20.7958 + 20.7958 20.7958 20.8191 20.8425 20.8425 20.8425 20.8425 20.8425 20.8426 20.8426 20.8426 20.8426 + 20.8426 20.8427 20.8427 20.8427 20.8427 20.8427 20.8428 20.8428 20.8428 20.8429 20.8429 20.8429 + 20.843 20.843 20.843 20.8431 20.8431 20.8431 20.8432 20.8433 + </DataArray> + <DataArray type="Float32" Name="prandtlNumber_w" NumberOfComponents="1" format="ascii"> + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 1.74419 + </DataArray> + <DataArray type="Float32" Name="prandtlNumber_n" NumberOfComponents="1" format="ascii"> + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 0.983545 + </DataArray> + <DataArray type="Float32" Name="nusseltNumber_w" NumberOfComponents="1" format="ascii"> + 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 + 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 + 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 + 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 + 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 + 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 + 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 3.23375 + 3.24116 3.28216 3.31972 3.32548 3.32713 3.32764 3.32777 3.32771 3.32735 3.32633 3.32383 3.31746 + 3.29743 3.19765 2.73196 2.00538 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2.00754 2.01142 2.01141 2.0114 2.01139 2.01138 2.01137 2.01136 2.01135 2.01134 + 2.01132 2.01131 2.0113 2.01128 2.01127 2.01125 2.01124 2.01122 2.01119 2.01116 2.01111 2.01103 + 2.01087 2.01057 2.01005 2.0092 2.00792 2.00625 2.00474 2.00416 + </DataArray> + <DataArray type="Float32" Name="nusseltNumber_n" NumberOfComponents="1" format="ascii"> + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2.42707 3.32578 3.88222 3.95865 3.98027 3.98693 3.98864 3.98784 3.98313 3.96986 3.93701 3.85171 + 3.56655 3.09678 6.87904 8.75688 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 + 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 + 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 + 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 + 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 + 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 8.75735 + 8.75735 8.75735 8.76189 8.76644 8.76645 8.76645 8.76645 8.76645 8.76646 8.76646 8.76646 8.76647 + 8.76647 8.76648 8.76648 8.76648 8.76649 8.76649 8.7665 8.7665 8.76651 8.76652 8.76652 8.76653 + 8.76653 8.76654 8.76655 8.76656 8.76656 8.76657 8.76659 8.7666 + </DataArray> + </PointData> + <Points> + <DataArray type="Float32" Name="Coordinates" NumberOfComponents="3" format="ascii"> + 0 0 0 0.001 0 0 0.002 0 0 0.003 0 0 + 0.004 0 0 0.005 0 0 0.006 0 0 0.007 0 0 + 0.008 0 0 0.009 0 0 0.01 0 0 0.011 0 0 + 0.012 0 0 0.013 0 0 0.014 0 0 0.015 0 0 + 0.016 0 0 0.017 0 0 0.018 0 0 0.019 0 0 + 0.02 0 0 0.021 0 0 0.022 0 0 0.023 0 0 + 0.024 0 0 0.025 0 0 0.026 0 0 0.027 0 0 + 0.028 0 0 0.029 0 0 0.03 0 0 0.031 0 0 + 0.032 0 0 0.033 0 0 0.034 0 0 0.035 0 0 + 0.036 0 0 0.037 0 0 0.038 0 0 0.039 0 0 + 0.04 0 0 0.041 0 0 0.042 0 0 0.043 0 0 + 0.044 0 0 0.045 0 0 0.046 0 0 0.047 0 0 + 0.048 0 0 0.049 0 0 0.05 0 0 0.051 0 0 + 0.052 0 0 0.053 0 0 0.054 0 0 0.055 0 0 + 0.056 0 0 0.057 0 0 0.058 0 0 0.059 0 0 + 0.06 0 0 0.061 0 0 0.062 0 0 0.063 0 0 + 0.064 0 0 0.065 0 0 0.066 0 0 0.067 0 0 + 0.068 0 0 0.069 0 0 0.07 0 0 0.071 0 0 + 0.072 0 0 0.073 0 0 0.074 0 0 0.075 0 0 + 0.076 0 0 0.077 0 0 0.078 0 0 0.079 0 0 + 0.08 0 0 0.081 0 0 0.082 0 0 0.083 0 0 + 0.084 0 0 0.085 0 0 0.086 0 0 0.087 0 0 + 0.088 0 0 0.089 0 0 0.09 0 0 0.091 0 0 + 0.092 0 0 0.093 0 0 0.094 0 0 0.095 0 0 + 0.096 0 0 0.097 0 0 0.098 0 0 0.099 0 0 + 0.1 0 0 0.104772 0 0 0.109772 0 0 0.11501 0 0 + 0.120499 0 0 0.126249 0 0 0.132274 0 0 0.138586 0 0 + 0.1452 0 0 0.152129 0 0 0.159388 0 0 0.166995 0 0 + 0.174964 0 0 0.183313 0 0 0.192061 0 0 0.201226 0 0 + 0.210829 0 0 0.22089 0 0 0.231431 0 0 0.242475 0 0 + 0.254047 0 0 0.26617 0 0 0.278872 0 0 0.29218 0 0 + 0.306123 0 0 0.320732 0 0 0.336037 0 0 0.352073 0 0 + 0.368875 0 0 0.386478 0 0 0.404921 0 0 0.424244 0 0 + 0.444489 0 0 0.465701 0 0 0.487925 0 0 0.511209 0 0 + 0.535604 0 0 0.561164 0 0 0.587943 0 0 0.616001 0 0 + 0.645397 0 0 0.676196 0 0 0.708465 0 0 0.742273 0 0 + 0.777695 0 0 0.814808 0 0 0.853691 0 0 0.89443 0 0 + 0.937113 0 0 0.981834 0 0 1.02869 0 0 1.07778 0 0 + 1.12921 0 0 1.1831 0 0 1.23956 0 0 1.29871 0 0 + 1.36068 0 0 1.42562 0 0 1.49365 0 0 1.56493 0 0 + 1.63961 0 0 1.71785 0 0 1.79983 0 0 1.88572 0 0 + 1.97571 0 0 2.06999 0 0 2.16877 0 0 2.27227 0 0 + 2.38071 0 0 2.49431 0 0 2.61335 0 0 2.73806 0 0 + 2.86872 0 0 3.00562 0 0 3.14905 0 0 3.29933 0 0 + 3.45677 0 0 3.62174 0 0 3.79457 0 0 3.97565 0 0 + 4.16537 0 0 4.36415 0 0 4.57241 0 0 4.79061 0 0 + 5.01922 0 0 5.25874 0 0 5.5097 0 0 5.77262 0 0 + 6.0481 0 0 6.33672 0 0 6.63912 0 0 6.95594 0 0 + 7.28789 0 0 7.63567 0 0 8.00006 0 0 8.38183 0 0 + 8.78182 0 0 9.20089 0 0 9.63997 0 0 10.1 0 0 + </DataArray> + </Points> + <Lines> + <DataArray type="Int32" Name="connectivity" NumberOfComponents="1" format="ascii"> + 0 1 1 2 2 3 3 4 4 5 5 6 + 6 7 7 8 8 9 9 10 10 11 11 12 + 12 13 13 14 14 15 15 16 16 17 17 18 + 18 19 19 20 20 21 21 22 22 23 23 24 + 24 25 25 26 26 27 27 28 28 29 29 30 + 30 31 31 32 32 33 33 34 34 35 35 36 + 36 37 37 38 38 39 39 40 40 41 41 42 + 42 43 43 44 44 45 45 46 46 47 47 48 + 48 49 49 50 50 51 51 52 52 53 53 54 + 54 55 55 56 56 57 57 58 58 59 59 60 + 60 61 61 62 62 63 63 64 64 65 65 66 + 66 67 67 68 68 69 69 70 70 71 71 72 + 72 73 73 74 74 75 75 76 76 77 77 78 + 78 79 79 80 80 81 81 82 82 83 83 84 + 84 85 85 86 86 87 87 88 88 89 89 90 + 90 91 91 92 92 93 93 94 94 95 95 96 + 96 97 97 98 98 99 99 100 100 101 101 102 + 102 103 103 104 104 105 105 106 106 107 107 108 + 108 109 109 110 110 111 111 112 112 113 113 114 + 114 115 115 116 116 117 117 118 118 119 119 120 + 120 121 121 122 122 123 123 124 124 125 125 126 + 126 127 127 128 128 129 129 130 130 131 131 132 + 132 133 133 134 134 135 135 136 136 137 137 138 + 138 139 139 140 140 141 141 142 142 143 143 144 + 144 145 145 146 146 147 147 148 148 149 149 150 + 150 151 151 152 152 153 153 154 154 155 155 156 + 156 157 157 158 158 159 159 160 160 161 161 162 + 162 163 163 164 164 165 165 166 166 167 167 168 + 168 169 169 170 170 171 171 172 172 173 173 174 + 174 175 175 176 176 177 177 178 178 179 179 180 + 180 181 181 182 182 183 183 184 184 185 185 186 + 186 187 187 188 188 189 189 190 190 191 191 192 + 192 193 193 194 194 195 195 196 196 197 197 198 + 198 199 + </DataArray> + <DataArray type="Int32" Name="offsets" NumberOfComponents="1" format="ascii"> + 2 4 6 8 10 12 14 16 18 20 22 24 + 26 28 30 32 34 36 38 40 42 44 46 48 + 50 52 54 56 58 60 62 64 66 68 70 72 + 74 76 78 80 82 84 86 88 90 92 94 96 + 98 100 102 104 106 108 110 112 114 116 118 120 + 122 124 126 128 130 132 134 136 138 140 142 144 + 146 148 150 152 154 156 158 160 162 164 166 168 + 170 172 174 176 178 180 182 184 186 188 190 192 + 194 196 198 200 202 204 206 208 210 212 214 216 + 218 220 222 224 226 228 230 232 234 236 238 240 + 242 244 246 248 250 252 254 256 258 260 262 264 + 266 268 270 272 274 276 278 280 282 284 286 288 + 290 292 294 296 298 300 302 304 306 308 310 312 + 314 316 318 320 322 324 326 328 330 332 334 336 + 338 340 342 344 346 348 350 352 354 356 358 360 + 362 364 366 368 370 372 374 376 378 380 382 384 + 386 388 390 392 394 396 398 + </DataArray> + </Lines> + </Piece> + </PolyData> +</VTKFile>