From 6cd659aec4d5288769ced252703a848e22903865 Mon Sep 17 00:00:00 2001 From: vishal jambhekar <vishal.jambhekar@iws.uni-stuttgart.de> Date: Thu, 30 Jul 2015 11:17:38 +0000 Subject: [PATCH] New test case for 2pncmin model added to dumux/test. For this following additional files are needed (Reviewde by Johannes) - For variation of salinity in brine the needed constitutive relations are implemented in components brine_VerSalinity.hh and nacl.hh - Additional constraint solvers (compositionfromfugacities2pncmin and computefromreferencephase2pncmin) are needed, specially for the case nPhaseOnly - Additional constraint solvers (computefromreferencephase2pnc and miscible2pnccomposition) are needed for 2pnc cases in general. - Fluidsystem brineairfluidsystem is updated - Binerycoefficient file for brine_air case is included. - A test case for 2pncmin model is included for flusiong of precipitated salt in gas reserviors. The includes corresponding problem file, spatial parameters file, input file and *.cc file. - For this the CMakeLists.txt is also updated. - A reference solution 2pncmin test case "injectionbox2pncmin-reference" is included to test/references folder git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk@15196 2fb0f335-1f38-0410-981e-8018bf24f1b0 --- .../material/components/brine_varSalinity.hh | 332 +++++++ dumux/material/components/nacl.hh | 66 ++ .../compositionfromfugacities2pncmin.hh | 143 +++ .../computefromreferencephase2pnc.hh | 175 ++++ .../computefromreferencephase2pncmin.hh | 177 ++++ .../miscible2pnccomposition.hh | 243 +++++ .../fluidsystems/brineairfluidsystem.hh | 2 +- test/implicit/2pncmin/CMakeLists.txt | 9 + test/implicit/2pncmin/dissolutionproblem.hh | 458 +++++++++ .../2pncmin/dissolutionspatialparams.hh | 218 +++++ test/implicit/2pncmin/grids/test_2pncmin.dgf | 11 + test/implicit/2pncmin/test_box2pncmin.cc | 69 ++ test/implicit/2pncmin/test_box2pncmin.input | 67 ++ test/implicit/CMakeLists.txt | 1 + .../injectionbox2pncmin-reference.vtu | 893 ++++++++++++++++++ 15 files changed, 2863 insertions(+), 1 deletion(-) create mode 100755 dumux/material/components/brine_varSalinity.hh create mode 100644 dumux/material/components/nacl.hh create mode 100644 dumux/material/constraintsolvers/compositionfromfugacities2pncmin.hh create mode 100644 dumux/material/constraintsolvers/computefromreferencephase2pnc.hh create mode 100644 dumux/material/constraintsolvers/computefromreferencephase2pncmin.hh create mode 100644 dumux/material/constraintsolvers/miscible2pnccomposition.hh create mode 100644 test/implicit/2pncmin/CMakeLists.txt create mode 100644 test/implicit/2pncmin/dissolutionproblem.hh create mode 100644 test/implicit/2pncmin/dissolutionspatialparams.hh create mode 100644 test/implicit/2pncmin/grids/test_2pncmin.dgf create mode 100644 test/implicit/2pncmin/test_box2pncmin.cc create mode 100644 test/implicit/2pncmin/test_box2pncmin.input create mode 100644 test/references/injectionbox2pncmin-reference.vtu diff --git a/dumux/material/components/brine_varSalinity.hh b/dumux/material/components/brine_varSalinity.hh new file mode 100755 index 0000000000..b654377e49 --- /dev/null +++ b/dumux/material/components/brine_varSalinity.hh @@ -0,0 +1,332 @@ +// -*- 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 + * + * \ingroup Components + * + * \brief A class for the brine fluid properties,. + */ +#ifndef DUMUX_BRINE_VARSALINITY_HH +#define DUMUX_BRINE_VARSALINITY_HH + + +#include <dumux/material/components/component.hh> +#include <dumux/material/components/h2o.hh> +#include <dumux/material/components/nacl.hh> +#include <dumux/material/components/tabulatedcomponent.hh> + +#include <cmath> + +namespace Dumux +{ +/*! + * + * \ingroup Components + * + * \brief A class for the brine fluid properties. + * + * \tparam Scalar The type used for scalar values + * \tparam H2O Static polymorphism: the Brine class can access all properties of the H2O class + */ +template <class Scalar, +class H2O_Tabulated = Dumux::TabulatedComponent<Scalar, Dumux::H2O<Scalar>>> +class BrineVarSalinity : public Component<Scalar, BrineVarSalinity<Scalar, H2O_Tabulated> > +{ +public: + + typedef Dumux::TabulatedComponent<Scalar, Dumux::H2O<Scalar>> H2O; + + /*! + * \brief A human readable name for the brine. + */ + static const char *name() + { return "Brine"; } + + /*! + * \brief The molar mass in \f$\mathrm{[kg/mol]}\f$ of brine. + * + * This assumes that the salt is pure NaCl. + */ + static Scalar molarMass(Scalar salinity) + { + const Scalar M1 = H2O::molarMass(); + const Scalar M2 = NaCl<Scalar>::molarMass(); // molar mass of NaCl [kg/mol] + const Scalar X2 = salinity; // mass fraction of salt in brine + return M1*M2/(M2 + X2*(M1 - M2)); + }; + + /*! + * \brief Returns the critical temperature \f$\mathrm{[K]}\f$ of brine. Here, it is assumed to be equal to that of pure water. + */ + static Scalar criticalTemperature() + { return H2O::criticalTemperature(); /* [K] */ } + + /*! + * \brief Returns the critical pressure \f$\mathrm{[Pa]}\f$ of brine. Here, it is assumed to be equal to that of pure water. + */ + static Scalar criticalPressure() + { return H2O::criticalPressure(); /* [N/m^2] */ } + + /*! + * \brief Returns the temperature \f$\mathrm{[K]}\f$ at brine's triple point. Here, it is assumed to be equal to that of pure water. + */ + static Scalar tripleTemperature() + { return H2O::tripleTemperature(); /* [K] */ } + + /*! + * \brief Returns the pressure \f$\mathrm{[Pa]}\f$ at brine's triple point. Here, it is assumed to be equal to that of pure water. + */ + static Scalar triplePressure() + { return H2O::triplePressure(); /* [N/m^2] */ } + + /*! + * \brief The vapor pressure in \f$\mathrm{[Pa]}\f$ of pure brine + * at a given temperature. Here, it is assumed to be equal to that of pure water. + * + * \param T temperature of component in \f$\mathrm{[K]}\f$ + */ + static Scalar vaporPressure(Scalar T) + { return H2O::vaporPressure(T); /* [N/m^2] */ } + + /*! + * \brief Specific enthalpy of gaseous brine \f$\mathrm{[J/kg]}\f$. + * Only water volatile and salt is suppose to stay in the liquid phase. + * \param temperature temperature of component in \f$\mathrm{[K]}\f$ + * \param pressure pressure of component in \f$\mathrm{[Pa]}\f$ + */ + static const Scalar gasEnthalpy(Scalar temperature, + Scalar pressure) + { return H2O::gasEnthalpy(temperature, pressure); /* [J/kg] */ } + + /*! + * \brief Specific enthalpy of liquid brine \f$\mathrm{[J/kg]}\f$. + * + * \param T temperature of component in \f$\mathrm{[K]}\f$ + * \param p pressure of component in \f$\mathrm{[Pa]}\f$ + * + * Equations given in: - Palliser & McKibbin 1997 + * - Michaelides 1981 + * - Daubert & Danner 1989 + */ + static const Scalar liquidEnthalpy(Scalar T, + Scalar p, Scalar salinity) + { + /*Numerical coefficents from PALLISER*/ + static const Scalar f[] = { + 2.63500E-1, 7.48368E-6, 1.44611E-6, -3.80860E-10 + }; + + /*Numerical coefficents from MICHAELIDES for the enthalpy of brine*/ + static const Scalar a[4][3] = { + { -9633.6, -4080.0, +286.49 }, + { +166.58, +68.577, -4.6856 }, + { -0.90963, -0.36524, +0.249667E-1 }, + { +0.17965E-2, +0.71924E-3, -0.4900E-4 } + }; + + Scalar theta, h_NaCl; + Scalar m, h_ls, h_ls1, d_h; + Scalar S_lSAT, delta_h; + int i, j; + Scalar hw; + + theta = T - 273.15; + + Scalar S = salinity; + S_lSAT = f[0] + f[1]*theta + f[2]*pow(theta,2) + f[3]*pow(theta,3); + /*Regularization*/ + if (S>S_lSAT) { + S = S_lSAT; + } + + hw = H2O::liquidEnthalpy(T, p)/1E3; /* kJ/kg */ + + /*DAUBERT and DANNER*/ + /*U=*/h_NaCl = (3.6710E4*T + 0.5*(6.2770E1)*T*T - ((6.6670E-2)/3)*T*T*T + +((2.8000E-5)/4)*pow(T,4))/(58.44E3)- 2.045698e+02; /* kJ/kg */ + + m = (1E3/58.44)*(S/(1-S)); + i = 0; + j = 0; + d_h = 0; + + for (i = 0; i<=3; i++) { + for (j=0; j<=2; j++) { + d_h = d_h + a[i][j] * pow(theta, i) * pow(m, j); + } + } + + delta_h = (4.184/(1E3 + (58.44 * m)))*d_h; + + /* Enthalpy of brine */ + + h_ls1 =(1-S)*hw + S*h_NaCl + S*delta_h; /* kJ/kg */ + + h_ls = h_ls1*1E3; /*J/kg*/ + + return (h_ls); + } + + /*! + * \brief Specific internal energy of steam \f$\mathrm{[J/kg]}\f$. + * + * \param temperature temperature of component in \f$\mathrm{[K]}\f$ + * \param pressure pressure of component in \f$\mathrm{[Pa]}\f$ + */ + static const Scalar gasInternalEnergy(Scalar temperature, + Scalar pressure) + { + return H2O::gasInternalEnergy(temperature, pressure); + } + + /*! + * \brief Specific internal energy of liquid brine \f$\mathrm{[J/kg]}\f$. + * + * \param temperature temperature of component in \f$\mathrm{[K]}\f$ + * \param pressure pressure of component in \f$\mathrm{[Pa]}\f$ + */ + static const Scalar liquidInternalEnergy(Scalar temperature, + Scalar pressure, Scalar salinity) + { + return + liquidEnthalpy(temperature, pressure) - + pressure/liquidDensity(temperature, pressure); + } + + /*! + * \brief The density of steam at a given pressure and temperature \f$\mathrm{[kg/m^3]}\f$. + * + * \param temperature temperature of component in \f$\mathrm{[K]}\f$ + * \param pressure pressure of component in \f$\mathrm{[Pa]}\f$ + */ + static Scalar gasDensity(Scalar temperature, Scalar pressure) + { return H2O::gasDensity(temperature, pressure); } + + /*! + * \brief The density of pure brine at a given pressure and temperature \f$\mathrm{[kg/m^3]}\f$. + * + * \param temperature temperature of component in \f$\mathrm{[K]}\f$ + * \param pressure pressure of component in \f$\mathrm{[Pa]}\f$ + * + * Equations given in: - Batzle & Wang (1992) + * - cited by: Adams & Bachu in Geofluids (2002) 2, 257-271 + */ + static Scalar liquidDensity(Scalar temperature, Scalar pressure, Scalar salinity) + { + Scalar TempC = temperature - 273.15; + Scalar pMPa = pressure/1.0E6; + salinity = std::abs(salinity); + + Scalar rhow = H2O::liquidDensity(temperature, pressure); + + Scalar density = rhow + + 1000*salinity*( + 0.668 + + 0.44*salinity + + 1.0E-6*( + 300*pMPa - + 2400*pMPa*salinity + + TempC*( + 80.0 - + 3*TempC - + 3300*salinity - + 13*pMPa + + 47*pMPa*salinity))); + assert(density > 0.0); + return density; + } + + /*! + * \brief The pressure of steam in \f$\mathrm{[Pa]}\f$ at a given density and temperature. + * + * \param temperature temperature of component in \f$\mathrm{[K]}\f$ + * \param density denstiy of component in \f$\mathrm{[kg/m^3]}\f$ + */ + static Scalar gasPressure(Scalar temperature, Scalar density) + { return H2O::gasPressure(temperature, density); } + + /*! + * \brief The pressure of liquid water in \f$\mathrm{[Pa]}\f$ at a given density and + * temperature. + * + * \param temperature temperature of component in \f$\mathrm{[K]}\f$ + * \param density density of component in \f$\mathrm{[kg/m^3]}\f$ + */ + static Scalar liquidPressure(Scalar temperature, Scalar density, Scalar salinity) + { + // We use the newton method for this. For the initial value we + // assume the pressure to be 10% higher than the vapor + // pressure + Scalar pressure = 1.1*vaporPressure(temperature); + Scalar eps = pressure*1e-7; + + Scalar deltaP = pressure*2; + for (int i = 0; i < 5 && std::abs(pressure*1e-9) < std::abs(deltaP); ++i) { + Scalar f = liquidDensity(temperature, pressure) - density; + + Scalar df_dp; + df_dp = liquidDensity(temperature, pressure + eps); + df_dp -= liquidDensity(temperature, pressure - eps); + df_dp /= 2*eps; + + deltaP = - f/df_dp; + + pressure += deltaP; + } + assert(pressure > 0.0); + return pressure; + } + + /*! + * \brief The dynamic viscosity \f$\mathrm{[Pa*s]}\f$ of steam. + * + * \param temperature temperature of component + * \param pressure pressure of component + */ + static Scalar gasViscosity(Scalar temperature, Scalar pressure) + { return H2O::gasViscosity(temperature, pressure); }; + + /*! + * \brief The dynamic viscosity \f$\mathrm{[Pa*s]}\f$ of pure brine. + * + * \param temperature temperature of component in \f$\mathrm{[K]}\f$ + * \param pressure pressure of component in \f$\mathrm{[Pa]}\f$ + * + * Equation given in: - Batzle & Wang (1992) + * - cited by: Bachu & Adams (2002) + * "Equations of State for basin geofluids" + */ + static Scalar liquidViscosity(Scalar temperature, Scalar pressure, Scalar salinity) + { + if(temperature <= 275.) // regularisation + { temperature = 275; } + salinity = std::abs(salinity); + Scalar T_C = temperature - 273.15; + if(salinity < 0.0) + {salinity = 0.0;} + Scalar A = (0.42*pow((pow(salinity, 0.8)-0.17), 2) + 0.045)*pow(T_C, 0.8); + Scalar mu_brine = 0.1 + 0.333*salinity + (1.65+91.9*salinity*salinity*salinity)*exp(-A); + assert(mu_brine > 0.0); + return mu_brine/1000.0; /* unit: Pa s */ + } +}; +} // end namespace + +#endif diff --git a/dumux/material/components/nacl.hh b/dumux/material/components/nacl.hh new file mode 100644 index 0000000000..bb64a6c898 --- /dev/null +++ b/dumux/material/components/nacl.hh @@ -0,0 +1,66 @@ +#ifndef NACL_HH +#define NACL_HH +/*! + * \file + * + * \brief A class for the NaCl properties + */ +#ifndef DUMUX_NACL_HH +#define DUMUX_NACL_HH + +#include <dumux/common/exceptions.hh> +#include <dumux/material/components/component.hh> + +#include <cmath> +#include <iostream> + + +namespace Dumux +{ +/*! + * \brief A class for the NaCl properties + */ +template <class Scalar> +class NaCl : public Component<Scalar, NaCl<Scalar> > +{ +public: + /*! + * \brief A human readable name for the NaCl. + */ + static const char *name() + { + return "NaCl"; + } + + /*! + * \brief The mass in [kg] for one mole of NaCl. + */ + static Scalar molarMass() + { + return 58.4428e-3 ; + } // kg/mol + + /*! + * \brief The diffusion Coefficient of NaCl in water. + */ + static Scalar liquidDiffCoeff(Scalar temperature, Scalar pressure) + { + return 2e-9; + } + + /*! + * \brief The mass density of NaCl. + */ + static Scalar Density() + { + return (2165); /* 2165 kg/m³*/ + } +}; + +} // end namespace + +#endif + + + +#endif // NACL_HH diff --git a/dumux/material/constraintsolvers/compositionfromfugacities2pncmin.hh b/dumux/material/constraintsolvers/compositionfromfugacities2pncmin.hh new file mode 100644 index 0000000000..ca9767b6ef --- /dev/null +++ b/dumux/material/constraintsolvers/compositionfromfugacities2pncmin.hh @@ -0,0 +1,143 @@ +// -*- 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 Determines the fluid composition given the component + * fugacities and an arbitary equation of state. + */ +#ifndef DUMUX_COMPOSITION_FROM_FUGACITIES_2PNCMIN_HH +#define DUMUX_COMPOSITION_FROM_FUGACITIES_2PNCMIN_HH + +#include <dune/common/fvector.hh> +#include <dune/common/fmatrix.hh> + +#include <dumux/common/exceptions.hh> +#include <dumux/common/valgrind.hh> + +namespace Dumux { + +/*! + * \brief Calculates the chemical equilibrium from the component + * fugacities in a phase. + */ +template <class Scalar, class FluidSystem> +class compositionFromFugacities2pncmin +{ + enum { + numComponents = FluidSystem::numComponents, + numMajorComponents = FluidSystem::numMajorComponents + }; + + typedef typename FluidSystem::ParameterCache ParameterCache; + + +public: + typedef Dune::FieldVector<Scalar, numComponents> ComponentVector; + + /*! + * \brief Guess an initial value for the composition of the phase. + * \param fluidState Thermodynamic state of the fluids + * \param paramCache Container for cache parameters + * \param phaseIdx The phase index + * \param phasePresence The presence index of the reference phase + * \param fugVec fugacity vector of the component + */ + template <class FluidState> + static void guessInitial(FluidState &fluidState, + ParameterCache ¶mCache, + int phaseIdx, + int phasePresence, + const ComponentVector &fugVec) + { + if (FluidSystem::isIdealMixture(phaseIdx)) + return; + + // Pure component fugacities + for (int i = 0; i < numComponents; ++ i) { + //std::cout << f << " -> " << mutParams.fugacity(phaseIdx, i)/f << "\n"; + fluidState.setMoleFraction(phaseIdx, + i, + 1.0/numComponents); + } + } + + /*! + * \brief Calculates the chemical equilibrium from the component + * fugacities in a phase. This constraint solver is developed for drying scenarios where salt component is restricted to liquid phase and still for the sake for equilibrium calculation some residual salt must be considered in the gas phase. In such cases for existence of gas phase only, in the theoretical liquid phase, we set the mole fraction of salt to 1e-10. + * \param fluidState Thermodynamic state of the fluids + * \param paramCache Container for cache parameters + * \param phaseIdx The phase index + * \param targetFug target fugacity + * + * The phase's fugacities must already be set. + */ + template <class FluidState> + static void solve(FluidState &fluidState, + ParameterCache ¶mCache, + int phaseIdx, + int phasePresence, + const ComponentVector &targetFug) + { + // use a much more efficient method in case the phase is an + // ideal mixture + if (FluidSystem::isIdealMixture(phaseIdx)) + { + solveIdealMix_(fluidState, paramCache, phaseIdx, phasePresence, targetFug); + return; + } + else + DUNE_THROW(NumericalProblem, "This constraint solver is not tested for non-ideal mixtures: Please refer computefromfugacities.hh for details" ); + } + + +protected: + // update the phase composition in case the phase is an ideal + // mixture, i.e. the component's fugacity coefficients are + // independent of the phase's composition. + template <class FluidState> + static void solveIdealMix_(FluidState &fluidState, + ParameterCache ¶mCache, + int phaseIdx, + int phasePresence, + const ComponentVector &fugacities) + { + for (int i = 0; i < numComponents; ++ i) { + Scalar phi = FluidSystem::fugacityCoefficient(fluidState, + paramCache, + phaseIdx, + i); + Scalar gamma = phi * fluidState.pressure(phaseIdx); + fluidState.setFugacityCoefficient(phaseIdx, i, phi); + fluidState.setMoleFraction(phaseIdx, i, fugacities[i]/gamma); + // Special situation for drying PM and n-phase only situation.set the mole fraction of salt to 1e-10. + if (phaseIdx == 0 && i >= numMajorComponents && phasePresence == 2 /*nPhaseOnly*/) + fluidState.setMoleFraction(phaseIdx, i, 1.0e-10); + } + + paramCache.updatePhase(fluidState, phaseIdx); + + Scalar rho = FluidSystem::density(fluidState, paramCache, phaseIdx); + fluidState.setDensity(phaseIdx, rho); + return; + } +}; +} // end namespace Dumux + +#endif diff --git a/dumux/material/constraintsolvers/computefromreferencephase2pnc.hh b/dumux/material/constraintsolvers/computefromreferencephase2pnc.hh new file mode 100644 index 0000000000..5c4fba6385 --- /dev/null +++ b/dumux/material/constraintsolvers/computefromreferencephase2pnc.hh @@ -0,0 +1,175 @@ +// -*- 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 Computes all quantities of a generic fluid state if a + * reference phase has been specified. + * + * This makes it is possible to specify just one phase and let the + * remaining ones be calculated by the constraint solver. This + * constraint solver assumes thermodynamic equilibrium + */ +#ifndef DUMUX_COMPUTE_FROM_REFERENCE_PHASE_2PNC_HH +#define DUMUX_COMPUTE_FROM_REFERENCE_PHASE_2PNC_HH + +#include <dumux/material/constraintsolvers/compositionfromfugacities.hh> + +#include <dune/common/fvector.hh> +#include <dune/common/fmatrix.hh> + +#include <dumux/common/exceptions.hh> +#include <dumux/common/valgrind.hh> + +namespace Dumux { + +/*! + * \brief Computes all quantities of a generic fluid state if a + * reference phase has been specified. + * + * This makes it is possible to specify just one phase and let the + * remaining ones be calculated by the constraint solver. This + * constraint solver assumes thermodynamic equilibrium. It assumes the + * following quantities to be set: + * + * - composition (mole+mass fractions) of the *reference* phase + * - temperature of the *reference* phase + * - saturations of *all* phases + * - pressures of *all* phases + * + * after calling the solve() method the following quantities are + * calculated in addition: + * + * - temperature of *all* phases + * - density, molar density, molar volume of *all* phases + * - composition in mole and mass fractions and molaries of *all* phases + * - mean molar masses of *all* phases + * - fugacity coefficients of *all* components in *all* phases + * - if the setViscosity parameter is true, also dynamic viscosities of *all* phases + * - if the setEnthalpy parameter is true, also specific enthalpies and internal energies of *all* phases + */ +template <class Scalar, class FluidSystem> +class computeFromReferencePhase2pnc +{ + enum { numPhases = FluidSystem::numPhases }; + enum { numComponents = FluidSystem::numComponents }; + typedef Dumux::CompositionFromFugacities<Scalar, FluidSystem> CompositionFromFugacities; + typedef Dune::FieldVector<Scalar, numComponents> ComponentVector; + +public: + /*! + * \brief Computes all quantities of a generic fluid state if a + * reference phase has been specified. + * + * This makes it is possible to specify just one phase and let the + * remaining ones be calculated by the constraint solver. This + * constraint solver assumes thermodynamic equilibrium. It assumes the + * following quantities to be set: + * + * - composition (mole+mass fractions) of the *reference* phase + * - temperature of the *all* phases + * - saturations of *all* phases + * - pressures of *all* phases + * + * after calling the solve() method the following quantities are + * calculated in addition: + * + * - temperature of *all* phases + * - density, molar density, molar volume of *all* phases + * - composition in mole and mass fractions and molaries of *all* phases + * - mean molar masses of *all* phases + * - fugacity coefficients of *all* components in *all* phases + * - if the setViscosity parameter is true, also dynamic viscosities of *all* phases + * - if the setEnthalpy parameter is true, also specific enthalpies and internal energies of *all* phases + * + * \param fluidState Thermodynamic state of the fluids + * \param paramCache Container for cache parameters + * \param refPhaseIdx The phase index of the reference phase + * \param setViscosity Specify whether the dynamic viscosity of + * each phase should also be set. + * \param setEnthalpy Specify whether the specific + * enthalpy/internal energy of each phase + * should also be set. + */ + template <class FluidState, class ParameterCache> + static void solve(FluidState &fluidState, + ParameterCache ¶mCache, + int refPhaseIdx, + bool setViscosity, + bool setEnthalpy) + { + ComponentVector fugVec; + + // compute the density and enthalpy of the + // reference phase + paramCache.updatePhase(fluidState, refPhaseIdx); + fluidState.setDensity(refPhaseIdx, + FluidSystem::density(fluidState, + paramCache, + refPhaseIdx)); + + if (setEnthalpy) + fluidState.setEnthalpy(refPhaseIdx, + FluidSystem::enthalpy(fluidState, + paramCache, + refPhaseIdx)); + + if (setViscosity) + fluidState.setViscosity(refPhaseIdx, + FluidSystem::viscosity(fluidState, + paramCache, + refPhaseIdx)); + + // compute the fugacities of all components in the reference phase + for (int compIdx = 0; compIdx < numComponents; ++compIdx) { + fluidState.setFugacityCoefficient(refPhaseIdx, + compIdx, + FluidSystem::fugacityCoefficient(fluidState, + paramCache, + refPhaseIdx, + compIdx)); + fugVec[compIdx] = fluidState.fugacity(refPhaseIdx, compIdx); + } + + // compute all quantities for the non-reference phases + for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) { + if (phaseIdx == refPhaseIdx) + continue; // reference phase is already calculated + + CompositionFromFugacities::guessInitial(fluidState, paramCache, phaseIdx, fugVec); + CompositionFromFugacities::solve(fluidState, paramCache, phaseIdx, fugVec); + + if (setViscosity) + fluidState.setViscosity(phaseIdx, + FluidSystem::viscosity(fluidState, + paramCache, + phaseIdx)); + + if (setEnthalpy) + fluidState.setEnthalpy(phaseIdx, + FluidSystem::enthalpy(fluidState, + paramCache, + phaseIdx)); + } + } +}; + +} // end namespace Dumux + +#endif diff --git a/dumux/material/constraintsolvers/computefromreferencephase2pncmin.hh b/dumux/material/constraintsolvers/computefromreferencephase2pncmin.hh new file mode 100644 index 0000000000..b7037a880f --- /dev/null +++ b/dumux/material/constraintsolvers/computefromreferencephase2pncmin.hh @@ -0,0 +1,177 @@ +// -*- 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 Computes all quantities of a generic fluid state if a + * reference phase has been specified. + * + * This makes it is possible to specify just one phase and let the + * remaining ones be calculated by the constraint solver. This + * constraint solver assumes thermodynamic equilibrium + */ +#ifndef DUMUX_COMPUTE_FROM_REFERENCE_PHASE_2PNCMIN_HH +#define DUMUX_COMPUTE_FROM_REFERENCE_PHASE_2PNCMIN_HH + +#include <dumux/material/constraintsolvers/compositionfromfugacities2pncmin.hh> + +#include <dune/common/fvector.hh> +#include <dune/common/fmatrix.hh> + +#include <dumux/common/exceptions.hh> +#include <dumux/common/valgrind.hh> + +namespace Dumux { + +/*! + * \brief Computes all quantities of a generic fluid state if a + * reference phase has been specified. + * + * This makes it is possible to specify just one phase and let the + * remaining ones be calculated by the constraint solver. This + * constraint solver assumes thermodynamic equilibrium. It assumes the + * following quantities to be set: + * + * - composition (mole+mass fractions) of the *reference* phase + * - temperature of the *reference* phase + * - saturations of *all* phases + * - pressures of *all* phases + * + * after calling the solve() method the following quantities are + * calculated in addition: + * + * - temperature of *all* phases + * - density, molar density, molar volume of *all* phases + * - composition in mole and mass fractions and molaries of *all* phases + * - mean molar masses of *all* phases + * - fugacity coefficients of *all* components in *all* phases + * - if the setViscosity parameter is true, also dynamic viscosities of *all* phases + * - if the setEnthalpy parameter is true, also specific enthalpies and internal energies of *all* phases + */ +template <class Scalar, class FluidSystem> +class computeFromReferencePhase2pncmin +{ + enum { numPhases = FluidSystem::numPhases }; + enum { numComponents = FluidSystem::numComponents }; + typedef Dumux::compositionFromFugacities2pncmin<Scalar, FluidSystem> compositionFromFugacities2pncmin; + typedef Dune::FieldVector<Scalar, numComponents> ComponentVector; + +public: + /*! + * \brief Computes all quantities of a generic fluid state if a + * reference phase has been specified. + * + * This makes it is possible to specify just one phase and let the + * remaining ones be calculated by the constraint solver. This + * constraint solver assumes thermodynamic equilibrium. It assumes the + * following quantities to be set: + * + * - composition (mole+mass fractions) of the *reference* phase + * - temperature of the *all* phases + * - saturations of *all* phases + * - pressures of *all* phases + * + * after calling the solve() method the following quantities are + * calculated in addition: + * + * - temperature of *all* phases + * - density, molar density, molar volume of *all* phases + * - composition in mole and mass fractions and molaries of *all* phases + * - mean molar masses of *all* phases + * - fugacity coefficients of *all* components in *all* phases + * - if the setViscosity parameter is true, also dynamic viscosities of *all* phases + * - if the setEnthalpy parameter is true, also specific enthalpies and internal energies of *all* phases + * + * \param fluidState Thermodynamic state of the fluids + * \param paramCache Container for cache parameters + * \param refPhaseIdx The phase index of the reference phase + * \param phasePresence The presence index of the reference phase + * \param setViscosity Specify whether the dynamic viscosity of + * each phase should also be set. + * \param setEnthalpy Specify whether the specific + * enthalpy/internal energy of each phase + * should also be set. + */ + template <class FluidState, class ParameterCache> + static void solve(FluidState &fluidState, + ParameterCache ¶mCache, + int refPhaseIdx, + int phasePresence, + bool setViscosity, + bool setEnthalpy) + { + ComponentVector fugVec; + + // compute the density and enthalpy of the + // reference phase + paramCache.updatePhase(fluidState, refPhaseIdx); + fluidState.setDensity(refPhaseIdx, + FluidSystem::density(fluidState, + paramCache, + refPhaseIdx)); + + if (setEnthalpy) + fluidState.setEnthalpy(refPhaseIdx, + FluidSystem::enthalpy(fluidState, + paramCache, + refPhaseIdx)); + + if (setViscosity) + fluidState.setViscosity(refPhaseIdx, + FluidSystem::viscosity(fluidState, + paramCache, + refPhaseIdx)); + + // compute the fugacities of all components in the reference phase + for (int compIdx = 0; compIdx < numComponents; ++compIdx) { + fluidState.setFugacityCoefficient(refPhaseIdx, + compIdx, + FluidSystem::fugacityCoefficient(fluidState, + paramCache, + refPhaseIdx, + compIdx)); + fugVec[compIdx] = fluidState.fugacity(refPhaseIdx, compIdx); + } + + // compute all quantities for the non-reference phases + for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) { + if (phaseIdx == refPhaseIdx) + continue; // reference phase is already calculated + + compositionFromFugacities2pncmin::guessInitial(fluidState, paramCache, phaseIdx, phasePresence,fugVec); + compositionFromFugacities2pncmin::solve(fluidState, paramCache, phaseIdx, phasePresence, fugVec); + + if (setViscosity) + fluidState.setViscosity(phaseIdx, + FluidSystem::viscosity(fluidState, + paramCache, + phaseIdx)); + + if (setEnthalpy) + fluidState.setEnthalpy(phaseIdx, + FluidSystem::enthalpy(fluidState, + paramCache, + phaseIdx)); + } + } +}; + +} // end namespace Dumux + +#endif diff --git a/dumux/material/constraintsolvers/miscible2pnccomposition.hh b/dumux/material/constraintsolvers/miscible2pnccomposition.hh new file mode 100644 index 0000000000..8d51d7c48f --- /dev/null +++ b/dumux/material/constraintsolvers/miscible2pnccomposition.hh @@ -0,0 +1,243 @@ +// -*- 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 Computes the composition of all phases of a N-phase, + * N-component fluid system assuming that all N phases are + * present + */ +#ifndef DUMUX_MISCIBLE_MULTIPHASE_COMPOSITION_HH +#define DUMUX_MISCIBLE_MULTIPHASE_COMPOSITION_HH + +#include <dune/common/fvector.hh> +#include <dune/common/fmatrix.hh> + +#include <dumux/common/exceptions.hh> +#include <dumux/common/valgrind.hh> + +namespace Dumux { +/*! + * \brief Computes the composition of all phases of a N-phase, + * N-component fluid system assuming that all N phases are + * present + * + * The constraint solver assumes the following quantities to be set: + * + * - temperatures of *all* phases + * - saturations of *all* phases + * - pressures of *all* phases + * + * It also assumes that the mole/mass fractions of all phases sum up + * to 1. After calling the solve() method the following quantities + * are calculated in addition: + * + * - temperature of *all* phases + * - density, molar density, molar volume of *all* phases + * - composition in mole and mass fractions and molarities of *all* phases + * - mean molar masses of *all* phases + * - fugacity coefficients of *all* components in *all* phases + * - if the setViscosity parameter is true, also dynamic viscosities of *all* phases + * - if the setInternalEnergy parameter is true, also specific enthalpies and internal energies of *all* phases + */ +template <class Scalar, class FluidSystem> +class miscible2pncComposition +{ + static const int numPhases = FluidSystem::numPhases; + static const int numComponents = FluidSystem::numComponents; + static const int numMajorComponents = FluidSystem::numPhases; + + +public: + /*! + * \brief Computes the composition of all phases of a M-phase, + * N-component fluid system assuming that all M phases are + * present + * + * It constraint solver assumes the following quantities to be set: + * + * - temperatures of *all* phases + * - saturations of *all* phases + * - pressures of *all* phases + * + * It also assumes that the mole/mass fractions of all phases sum up + * to 1. After calling the solve() method the following quantities + * are calculated in addition: + * + * - temperature of *all* phases + * - density, molar density, molar volume of *all* phases + * - composition in mole and mass fractions and molarities of *all* phases + * - mean molar masses of *all* phases + * - fugacity coefficients of *all* components in *all* phases + * - if the setViscosity parameter is true, also dynamic viscosities of *all* phases + * - if the setInternalEnergy parameter is true, also specific enthalpies and internal energies of *all* phases + */ + template <class FluidState, class ParameterCache> + static void solve(FluidState &fluidState, + ParameterCache ¶mCache, + const int knownPhaseIdx, + bool setViscosity, + bool setInternalEnergy) + { +#ifndef NDEBUG + // currently this solver can only handle fluid systems which + // assume ideal mixtures of all fluids. TODO: relax this + // (requires solving a non-linear system of equations, i.e. using + // newton method.) + for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) { + assert(FluidSystem::isIdealMixture(phaseIdx)); + } +#endif + + //get the known mole fractions from the fluidState + Dune::FieldVector<Scalar, numComponents-numMajorComponents> xKnown(0.0); + for (int knownCompIdx = 0; knownCompIdx < numComponents-numMajorComponents; ++knownCompIdx) + { + xKnown[knownCompIdx] = fluidState.moleFraction(knownPhaseIdx, knownCompIdx + numMajorComponents); + } + + // compute all fugacity coefficients + for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) { + paramCache.updatePhase(fluidState, phaseIdx); + + // since we assume ideal mixtures, the fugacity + // coefficients of the components cannot depend on + // composition, i.e. the parameters in the cache are valid + for (int compIdx = 0; compIdx < numComponents; ++compIdx) { + Scalar fugCoeff = FluidSystem::fugacityCoefficient(fluidState, paramCache, phaseIdx, compIdx); + fluidState.setFugacityCoefficient(phaseIdx, compIdx, fugCoeff); + } + } + + + // create the linear system of equations which defines the + // mole fractions + Dune::FieldMatrix<Scalar, numComponents*numPhases, numComponents*numPhases> M(0.0); + Dune::FieldVector<Scalar, numComponents*numPhases> x(0.0); + Dune::FieldVector<Scalar, numComponents*numPhases> b(0.0); + + // assemble the equations expressing the assumption that the + // sum of all mole fractions in each phase must be 1 + for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) { + int rowIdx = numComponents*(numPhases - 1) + phaseIdx; + b[rowIdx] = 1.0; + + for (int compIdx = 0; compIdx < numComponents; ++compIdx) { + int colIdx = phaseIdx*numComponents + compIdx; + + M[rowIdx][colIdx] = 1.0; + } + } + //set the additional equations for the numComponents-numMajorComponents + //Components, of which the molefractions are known, + //to molefraction(knownCompIdx)=xKnown + for(int knownCompIdx = 0; knownCompIdx < numComponents-numMajorComponents; ++knownCompIdx) + { + int rowIdx = numComponents + numPhases + knownCompIdx; + int colIdx = knownPhaseIdx*numComponents + knownCompIdx + numMajorComponents; + M[rowIdx][colIdx] = 1.0; + b[rowIdx] = xKnown[knownCompIdx]; + } + + // assemble the equations expressing the fact that the + // fugacities of each component is equal in all phases + for (int compIdx = 0; compIdx < numComponents; ++compIdx) { + Scalar entryCol1 = + fluidState.fugacityCoefficient(/*phaseIdx=*/0, compIdx) + * fluidState.pressure(/*phaseIdx=*/0); + int col1Idx = compIdx; + + for (int phaseIdx = 1; phaseIdx < numPhases; ++phaseIdx) { + int rowIdx = (phaseIdx - 1)*numComponents + compIdx; + int col2Idx = phaseIdx*numComponents + compIdx; + + Scalar entryCol2 = + fluidState.fugacityCoefficient(phaseIdx, compIdx) + * fluidState.pressure(phaseIdx); + + M[rowIdx][col1Idx] = entryCol1; + M[rowIdx][col2Idx] = -entryCol2; + } + } + + //preconditioning of M to reduce condition number + //prevents matrix meeting dune's singularity criteria + for (int compIdx = 0; compIdx < numComponents; compIdx++) + { + if (compIdx < numMajorComponents) + { + for (int colIdx = 0; colIdx < numPhases*numComponents; colIdx++) + { + //Multiply row of main component (Raoult's Law) with 10e-5 (order of magn. of pressure) + M[compIdx][colIdx] *= 10e-5; + } + } else { + for (int colIdx = 0; colIdx < numPhases*numComponents; colIdx++) + { + //Multiply row of sec. components (Henry's Law) with 10e-9 (order of magn. of Henry constant) + M[compIdx][colIdx] *= 10e-9; + } + } + } +// std::cout << "M_: "<< M << std::endl; +// std::cout << "b_: "<< b << std::endl; + + // solve for all mole fractions + M.solve(x, b); + +// std::cout << "x_: "<< x << std::endl; + + // In case known mole fraction is set to zero in problem the system determines unrealistic mole fractions + //resetting the mole fractions to zero again +// if(fluidState.moleFraction(knownPhaseIdx, numMajorComponents)== 0.0); +// for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) { +// int rowIdx = phaseIdx*numComponents + numMajorComponents; +// x[rowIdx]= 0.0; +// } + +// std::cout << "x_1: "<< x << std::endl; + + // set all mole fractions and the the additional quantities in + // the fluid state + for (int phaseIdx = 0; phaseIdx < numPhases; ++phaseIdx) { + for (int compIdx = 0; compIdx < numComponents; ++compIdx) { + int rowIdx = phaseIdx*numComponents + compIdx; + fluidState.setMoleFraction(phaseIdx, compIdx, x[rowIdx]); + } + paramCache.updateComposition(fluidState, phaseIdx); + + Scalar value = FluidSystem::density(fluidState, paramCache, phaseIdx); + fluidState.setDensity(phaseIdx, value); + + if (setViscosity) { + value = FluidSystem::viscosity(fluidState, paramCache, phaseIdx); + fluidState.setViscosity(phaseIdx, value); + } + + if (setInternalEnergy) { + value = FluidSystem::enthalpy(fluidState, paramCache, phaseIdx); + fluidState.setEnthalpy(phaseIdx, value); + } + } + } +}; + +} // end namespace Dumux + +#endif diff --git a/dumux/material/fluidsystems/brineairfluidsystem.hh b/dumux/material/fluidsystems/brineairfluidsystem.hh index 2e55807675..7d90af9dc8 100644 --- a/dumux/material/fluidsystems/brineairfluidsystem.hh +++ b/dumux/material/fluidsystems/brineairfluidsystem.hh @@ -33,7 +33,7 @@ #include <dumux/material/components/brine_varSalinity.hh> #include <dumux/material/components/air.hh> #include <dumux/material/components/h2o.hh> -#include <dumux/material/components/NaCl.hh> +#include <dumux/material/components/nacl.hh> #include <dumux/material/binarycoefficients/brine_air.hh> #include <dumux/material/binarycoefficients/h2o_air.hh> #include <dumux/material/components/tabulatedcomponent.hh> diff --git a/test/implicit/2pncmin/CMakeLists.txt b/test/implicit/2pncmin/CMakeLists.txt new file mode 100644 index 0000000000..eceecef072 --- /dev/null +++ b/test/implicit/2pncmin/CMakeLists.txt @@ -0,0 +1,9 @@ +add_input_file_links() + +# isothermal tests +add_dumux_test(test_box2pncmin test_box2pncmin test_box2pncmin.cc + python ${CMAKE_SOURCE_DIR}/bin/runtest.py + --script fuzzy + --files ${CMAKE_SOURCE_DIR}/test/references/injectionbox2pncmin-reference.vtu + ${CMAKE_CURRENT_BINARY_DIR}/injectionbox-00016.vtu + --command "${CMAKE_CURRENT_BINARY_DIR}/test_box2pncmin") \ No newline at end of file diff --git a/test/implicit/2pncmin/dissolutionproblem.hh b/test/implicit/2pncmin/dissolutionproblem.hh new file mode 100644 index 0000000000..26354e3391 --- /dev/null +++ b/test/implicit/2pncmin/dissolutionproblem.hh @@ -0,0 +1,458 @@ +// -*- 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 Problem where water is injected in a for flushing precipitated salt clogging a gas reservoir. + */ +#ifndef DUMUX_DISSOLUTION_PROBLEM_HH +#define DUMUX_DISSOLUTION_PROBLEM_HH + +#include <dune/grid/io/file/dgfparser/dgfyasp.hh> + +#include <dumux/implicit/2pncmin/2pncminmodel.hh> +#include <dumux/implicit/common/implicitporousmediaproblem.hh> +#include<dumux/material/fluidsystems/brineairfluidsystem.hh> + +#include "dissolutionspatialparams.hh" + +namespace Dumux +{ + +template <class TypeTag> +class DissolutionProblem; + +namespace Properties +{ +NEW_TYPE_TAG(DissolutionProblem, INHERITS_FROM(TwoPNCMin, DissolutionSpatialparams)); +NEW_TYPE_TAG(DissolutionBoxProblem, INHERITS_FROM(BoxModel, DissolutionProblem)); +NEW_TYPE_TAG(DissolutionCCProblem, INHERITS_FROM(CCModel, DissolutionProblem)); + +// Set the grid type +SET_TYPE_PROP(DissolutionProblem, Grid, Dune::UGGrid<2>); + +// Set the problem property +SET_TYPE_PROP(DissolutionProblem, Problem, Dumux::DissolutionProblem<TypeTag>); + +// Set fluid configuration +SET_PROP(DissolutionProblem, FluidSystem) +{ + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef Dumux::FluidSystems::BrineAir<Scalar, Dumux::H2O<Scalar>, true/*useComplexrelations=*/> type; +}; + +// Set the spatial parameters +SET_TYPE_PROP(DissolutionProblem, SpatialParams, Dumux::DissolutionSpatialparams<TypeTag>); + +// Enable gravity +SET_BOOL_PROP(DissolutionProblem, ProblemEnableGravity, true); + +//Set properties here to override the default property settings in the model. +SET_INT_PROP(DissolutionProblem, ReplaceCompEqIdx, 1); +SET_INT_PROP(DissolutionProblem, Formulation, TwoPNCFormulation::pgSl); +} + +/*! + * \ingroup TwoPNCMinModel + * \ingroup ImplicitTestProblems + * \brief Problem where water is injected to flush precipitated salt in a gas reservoir clogged due to precipitated salt. + * + * The domain is sized 10m times 20m and contains a vertical low-permeable layer of precipitated salt near an extraction well. + * + * To flush this precipitated salt, water is injected through the gas extraction well in order to dissolve the precipitated salt increasing the permeability and thereby achieving high gas extraction rates later. Here, the system is assumed to be isothermal. + * Neumann no-flow boundary condition is applied at the top and bottom boundary and Dirichlet boundary condition is used on the right and left sides. + * The injected water phase migrates downwards due to increase in density as the precipitated salt dissolves. + * + * The model uses mole fractions of dissolved components and volume fractions of precipitated salt as primary variables. Make sure that the according units are used in the problem setup. + * + * This problem uses the \ref TwoPNCMinModel. + * + * To run the simulation execute the following line in shell: + * <tt>./test_box2pncmin</tt> + */ +template <class TypeTag> +class DissolutionProblem : public ImplicitPorousMediaProblem<TypeTag> +{ + typedef ImplicitPorousMediaProblem<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; + typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables; + typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices; + + enum { + + pressureIdx = Indices::pressureIdx, + switchIdx = Indices::switchIdx, //Saturation + xlNaClIdx = FluidSystem::NaClIdx, + precipNaClIdx = FluidSystem::numComponents, + + //Indices of the components + wCompIdx = FluidSystem::H2OIdx, + nCompIdx = FluidSystem::AirIdx, + NaClIdx = FluidSystem::NaClIdx, + + //Indices of the phases + wPhaseIdx = FluidSystem::wPhaseIdx, + nPhaseIdx = FluidSystem::nPhaseIdx, + sPhaseIdx = FluidSystem::sPhaseIdx, + + //Index of the primary component of G and L phase + conti0EqIdx = Indices::conti0EqIdx, + contiTotalMassIdx = conti0EqIdx + FluidSystem::AirIdx, + precipNaClEqIdx = Indices::conti0EqIdx + FluidSystem::numComponents, + contiWEqIdx = conti0EqIdx + FluidSystem::H2OIdx, + + // Phase State + wPhaseOnly = Indices::wPhaseOnly, + nPhaseOnly = Indices::nPhaseOnly, + bothPhases = Indices::bothPhases, + + // Grid and world dimension + dim = GridView::dimension, + dimWorld = GridView::dimensionworld, + }; + + + typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables; + typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes; + typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager; + typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables; + + typedef typename GET_PROP_TYPE(TypeTag, GridCreator) GridCreator; + 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 Dune::FieldVector<Scalar, dimWorld> GlobalPosition; + +public: + DissolutionProblem(TimeManager &timeManager, + const GridView &gridView) + : ParentType(timeManager, GridCreator::grid().leafGridView()) + { + try + { + outerSalinity_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Problem, OuterSalinity); + saltPorosity_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Problem, SaltPorosity); + temperature_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Problem, Temperature); + reservoirPressure_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Problem, ReservoirPressure); + initLiqSaturation_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Problem, LiquidSaturation); + initPrecipitatedSalt1_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Problem, InitPrecipitatedSalt1); + initPrecipitatedSalt2_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Problem, InitPrecipitatedSalt2); + + outerLiqSaturation_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Problem, OuterLiqSaturation); + innerLiqSaturation_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Problem, InnerLiqSaturation); + innerSalinity_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Problem, InnerSalinity); + innerPressure_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Problem, InnerPressure); + outerPressure_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Problem, OuterPressure); + reservoirSaturation_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Problem, reservoirSaturation); + + nTemperature_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, int, FluidSystem, NTemperature); + nPressure_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, int, FluidSystem, NPressure); + pressureLow_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, FluidSystem, PressureLow); + pressureHigh_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, FluidSystem, PressureHigh); + temperatureLow_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, FluidSystem, TemperatureLow); + temperatureHigh_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, FluidSystem, TemperatureHigh); + name_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, std::string, Problem, OutputName); + freqMassOutput_ = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, int, Output, FreqMassOutput); + storageLastTimestep_ = Scalar(0); + lastMassOutputTime_ = Scalar(0); + + outfile.open("evaporation.out"); + outfile << "time; evaporationRate" << std::endl; + + } + catch (Dumux::ParameterException &e) { + std::cerr << e << ". Abort!\n"; + exit(1) ; + } + catch (...) { + std::cerr << "Unknown exception thrown!\n"; + exit(1); + } + FluidSystem::init(/*Tmin=*/temperatureLow_, + /*Tmax=*/temperatureHigh_, + /*nT=*/nTemperature_, + /*pmin=*/pressureLow_, + /*pmax=*/pressureHigh_, + /*np=*/nPressure_); + } + + void init() + { + ParentType::init(); + } + + ~DissolutionProblem() + { + outfile.close(); + } + + bool shouldWriteOutput() const + { + return + this->timeManager().timeStepIndex() % 1 == 0 || + this->timeManager().episodeWillBeOver() || + this->timeManager().willBeFinished(); + } + + + /*! + * \name Problem parameters + */ + + + /*! + * \brief The problem name. + * + * This is used as a prefix for files generated by the simulation. + */ + const std::string name() const + { return name_; } + + /*! + * \brief Returns the temperature within the domain. + * + * This problem assumes a temperature of 10 degrees Celsius. + */ + Scalar temperature() const + { return temperature_; }; + + /*! + * \name Boundary conditions + */ + // \{ + + /*! + * \brief Specifies which kind of boundary condition should be + * used for which equation on a given boundary segment. + */ + void boundaryTypes(BoundaryTypes &bcTypes, const Vertex &vertex) const + { + const GlobalPosition &globalPos = vertex.geometry().center(); + + Scalar rmax = this->bBoxMax()[0]; // outerRadius_; + Scalar rmin = this->bBoxMin()[0]; // well radius equal to the first value of the dgf grid file + + //Neumann + bcTypes.setAllNeumann(); + + //Constant pressure at reservoir boundary (Dirichlet condition) + if(globalPos[0] > rmax - eps_) + bcTypes.setAllDirichlet(); + + //Constant pressure at well (Dirichlet condition) + + if(globalPos[0] < rmin + eps_) + bcTypes.setAllDirichlet(); + } + + /*! + * \brief Evaluate the boundary conditions for a dirichlet + * boundary segment. + * + * For this method, the \a values parameter stores primary variables. + */ + void dirichlet(PrimaryVariables &values, const Vertex &vertex) const + { + const GlobalPosition &globalPos = vertex.geometry().center(); + + Scalar rmax = this->bBoxMax()[0]; + Scalar rmin = this->bBoxMin()[0]; + + if(globalPos[0] > rmax - eps_) + { + values[pressureIdx] = outerPressure_ ; // Outer boundary pressure bar + values[switchIdx] = outerLiqSaturation_; // Saturation outer boundary + values[xlNaClIdx] = massTomoleFrac_(outerSalinity_);// mole fraction salt + values[precipNaClIdx] = 0.0;// precipitated salt + } + + if(globalPos[0] < rmin + eps_) + { + + values[pressureIdx] = innerPressure_ ; // Inner boundary pressure bar + values[switchIdx] = innerLiqSaturation_; // Saturation inner boundary + values[xlNaClIdx] = massTomoleFrac_(innerSalinity_);// mole fraction salt + values[precipNaClIdx] = 0.0;// precipitated salt + } + } + + /*! + * \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 neumann(PrimaryVariables &values, + const Element &element, + const FVElementGeometry &fvGeometry, + const Intersection &is, + int scvIdx, + int boundaryFaceIdx) const + { + values = 0.0; + } + + /*! + * \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, + int scvIdx) const + { + const GlobalPosition &globalPos = element.geometry().corner(scvIdx); + + values[pressureIdx] = reservoirPressure_; + values[switchIdx] = initLiqSaturation_; // Sl primary variable + values[xlNaClIdx] = massTomoleFrac_(outerSalinity_); // mole fraction + if(globalPos[0]>5.0 && globalPos[0]< 20.0) + values[precipNaClIdx] = initPrecipitatedSalt2_; // [kg/m^3] + else + values[precipNaClIdx] = initPrecipitatedSalt1_; // [kg/m^3] + } + + /*! + * \name Volume terms + */ + // \{ + + /*! + * \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 solDependentSource(PrimaryVariables &source, + const Element &element, + const FVElementGeometry &fvGeometry, + int scvIdx, const ElementVolumeVariables &elemVolVars) const + { +// std::cout<<"Hallo there :)"<<std::endl; + source = 0; + const VolumeVariables &volVars = elemVolVars[scvIdx]; + Scalar moleFracNaCl_lPhase = volVars.fluidState().moleFraction(wPhaseIdx, NaClIdx); + Scalar moleFracNaCl_gPhase = volVars.fluidState().moleFraction(nPhaseIdx, NaClIdx); + Scalar massFracNaCl_Max_lPhase = this->spatialParams().SolubilityLimit(); + Scalar moleFracNaCl_Max_lPhase = massTomoleFrac_(massFracNaCl_Max_lPhase); + Scalar moleFracNaCl_Max_gPhase = moleFracNaCl_Max_lPhase / volVars.fluidState().pressure(nPhaseIdx); + + // liquid phase + Scalar precipSalt = volVars.porosity() * volVars.molarDensity(wPhaseIdx) + * volVars.saturation(wPhaseIdx) + * pow(std::abs(moleFracNaCl_lPhase - moleFracNaCl_Max_lPhase), 1.0); + + if (moleFracNaCl_lPhase < moleFracNaCl_Max_lPhase) + precipSalt *= -1; + + // gas phase + if (moleFracNaCl_gPhase > moleFracNaCl_Max_gPhase) + precipSalt += volVars.porosity() * volVars.molarDensity(nPhaseIdx) + * volVars.saturation(nPhaseIdx) + * pow(std::abs(moleFracNaCl_gPhase - moleFracNaCl_Max_gPhase), 1.0); + + // make sure we don't disolve more salt than previously precipitated + if (precipSalt*this->timeManager().timeStepSize() + volVars.precipitateVolumeFraction(sPhaseIdx)* volVars.molarDensity(sPhaseIdx)< 0) + precipSalt = - volVars.precipitateVolumeFraction(sPhaseIdx)* volVars.molarDensity(sPhaseIdx)/this->timeManager().timeStepSize(); + + if (volVars.precipitateVolumeFraction(sPhaseIdx) >= volVars.InitialPorosity() - saltPorosity_ && precipSalt > 0) + precipSalt = 0; + + source[conti0EqIdx + NaClIdx] += -precipSalt; + source[precipNaClEqIdx] += precipSalt; + + Valgrind::CheckDefined(source); + } + /*! + * \brief Return the initial phase state inside a control volume. + */ + int initialPhasePresence(const Vertex &vert, + int &globalIdx, + const GlobalPosition &globalPos) const + { + return bothPhases; + } + + void preTimeStep() + {} + + + void postTimeStep() + {} + + void episodeEnd() + {} + +private: + + /*! + * \brief Returns the molality of NaCl (mol NaCl / kg water) for a given mole fraction + * + * \param XlNaCl the XlNaCl [kg NaCl / kg solution] + */ + static Scalar massTomoleFrac_(Scalar XlNaCl) + { + const Scalar Mw = 18.015e-3; /* molecular weight of water [kg/mol] */ + const Scalar Ms = 58.44e-3; /* molecular weight of NaCl [kg/mol] */ + + const Scalar X_NaCl = XlNaCl; + /* XlNaCl: conversion from mass fraction to mol fraction */ + const Scalar xlNaCl = -Mw * X_NaCl / ((Ms - Mw) * X_NaCl - Ms); + return xlNaCl; + } + + int nTemperature_; + int nPressure_; + int freqMassOutput_; + PrimaryVariables storageLastTimestep_; + Scalar lastMassOutputTime_; + std::string name_; + + Scalar pressureLow_, pressureHigh_; + Scalar temperatureLow_, temperatureHigh_; + Scalar outerSalinity_; + Scalar saltPorosity_; + Scalar reservoirPressure_; + Scalar innerPressure_; + Scalar outerPressure_; + Scalar temperature_; + Scalar initLiqSaturation_; + Scalar outerLiqSaturation_; + Scalar innerLiqSaturation_; + Scalar initPrecipitatedSalt1_; + Scalar initPrecipitatedSalt2_; + Scalar innerSalinity_; + static constexpr Scalar eps_ = 1e-6; + Scalar reservoirSaturation_; + std::ofstream outfile; + +}; +} //end namespace + +#endif diff --git a/test/implicit/2pncmin/dissolutionspatialparams.hh b/test/implicit/2pncmin/dissolutionspatialparams.hh new file mode 100644 index 0000000000..7b0b959faa --- /dev/null +++ b/test/implicit/2pncmin/dissolutionspatialparams.hh @@ -0,0 +1,218 @@ +// -*- 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/>. * + *****************************************************************************/ +#ifndef DUMUX_INJECTION_SPATIAL_PARAMETERS_HH +#define DUMUX_INJECTION_SPATIAL_PARAMETERS_HH + +#include <dumux/implicit/2pncmin/2pncminindices.hh> +#include <dumux/material/spatialparams/implicitspatialparams.hh> +#include <dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh> +#include <dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh> +#include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh> + +namespace Dumux +{ +//forward declaration +template<class TypeTag> +class DissolutionSpatialparams; + +namespace Properties +{ +// The spatial parameters TypeTag +NEW_TYPE_TAG(DissolutionSpatialparams); + +// Set the spatial parameters +SET_TYPE_PROP(DissolutionSpatialparams, SpatialParams, Dumux::DissolutionSpatialparams<TypeTag>); + +// Set the material Law +SET_PROP(DissolutionSpatialparams, MaterialLaw) +{ +private: + // define the material law which is parameterized by effective + // saturations + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef RegularizedBrooksCorey<Scalar> EffMaterialLaw; +public: + // define the material law parameterized by absolute saturations + typedef EffToAbsLaw<EffMaterialLaw> type; +}; +} + +/** + * \brief Definition of the spatial parameters for the brine-co2 problem + * + */ +template<class TypeTag> +class DissolutionSpatialparams : public ImplicitSpatialParams<TypeTag> +{ + typedef ImplicitSpatialParams<TypeTag> ParentType; + typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid; + typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView; + typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar; + typedef typename GET_PROP_TYPE(TypeTag, MaterialLawParams) MaterialLawParams; + typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem; + typedef typename Grid::ctype CoordScalar; + enum { + dim=GridView::dimension, + dimWorld=GridView::dimensionworld, + }; + + typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices; + enum { + wPhaseIdx = FluidSystem::wPhaseIdx, + nPhaseIdx = FluidSystem::nPhaseIdx, + }; + + typedef Dune::FieldVector<CoordScalar,dimWorld> GlobalPosition; + typedef Dune::FieldMatrix<CoordScalar, dimWorld, dimWorld> Tensor; + + typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector; + + typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables; + typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables; + typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables; + + typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry; + typedef typename GridView::template Codim<0>::Entity Element; + typedef typename GridView::template Codim<dim>::Iterator VertexIterator; + + typedef std::vector<Scalar> PermeabilityType; + typedef std::vector<MaterialLawParams> MaterialLawParamsVector; + typedef typename GridView::template Codim<0>::Iterator ElementIterator; + + typedef typename GET_PROP(TypeTag, ParameterTree) ParameterTree; + +public: + DissolutionSpatialparams(const GridView &gridView) + : ParentType(gridView), + K_(0) + { + //set main diagonal entries of the permeability tensor to a value + //setting to one value means: isotropic, homogeneous + for (int i = 0; i < dim; i++) + // K_[i][i] = 1e-7; + K_[i][i] = 2.23e-14;//2.23e-14; + + // residual saturations + materialParams_.setSwr(0.2); + materialParams_.setSnr(1E-3); + + //parameters of Brooks & Corey Law + //materialParams_.setPe(500.0); + materialParams_.setPe(500); + materialParams_.setLambda(2); + } + + ~DissolutionSpatialparams() + {} + /*! + * \brief Update the spatial parameters with the flow solution + * after a timestep. + * + * \param globalSolution The global solution vector + */ + void update(const SolutionVector &globalSolution) + { + }; + + /*! Intrinsic permeability tensor K \f$[m^2]\f$ depending + * on the position in the domain + * + * \param element The finite volume element + * \param fvGeometry The finite-volume geometry in the box scheme + * \param scvIdx The local vertex index + * + * Alternatively, the function intrinsicPermeabilityAtPos(const GlobalPosition& globalPos) + * could be defined, where globalPos is the vector including the global coordinates + * of the finite volume. + */ + const Dune::FieldMatrix<Scalar, dim, dim> &intrinsicPermeability(const Element &element, /*@\label{tutorial-coupled:permeability}@*/ + const FVElementGeometry &fvGeometry, + const int scvIdx) const + { return K_; } + + /*! + * \brief Define the porosity \f$[-]\f$ of the spatial parameters + * + * \param elemVolVars The data defined on the sub-control volume + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub-control volume where + * the porosity needs to be defined + */ + double porosityMin(const Element &element, + const FVElementGeometry &fvGeometry, + int scvIdx) const + { + return 1e-5; + } + + /*! + * \brief Define the minimum porosity \f$[-]\f$ after clogging caused by mineralization + * + * \param elemVolVars The data defined on the sub-control volume + * \param element The finite element + * \param fvGeometry The finite volume geometry + * \param scvIdx The local index of the sub-control volume where + * the porosity needs to be defined + */ + double porosity(const Element &element, + const FVElementGeometry &fvGeometry, + int scvIdx) const + { + return 0.11; + } + + + double solidity(const Element &element, + const FVElementGeometry &fvGeometry, + int scvIdx) const + { + + return 1 - 0.11; + } + + double SolubilityLimit() const + { + return 0.26; + } + + double theta(const Element &element, + const FVElementGeometry &fvGeometry, + int scvIdx) const + { + return 10.0; + } + + + // return the brooks-corey context depending on the position + const MaterialLawParams& materialLawParams(const Element &element, + const FVElementGeometry &fvGeometry, + int scvIdx) const + { + return materialParams_; + } + +private: + Dune::FieldMatrix<Scalar, dim, dim> K_; + MaterialLawParams materialParams_; +}; + +} + +#endif diff --git a/test/implicit/2pncmin/grids/test_2pncmin.dgf b/test/implicit/2pncmin/grids/test_2pncmin.dgf new file mode 100644 index 0000000000..3235f24992 --- /dev/null +++ b/test/implicit/2pncmin/grids/test_2pncmin.dgf @@ -0,0 +1,11 @@ +DGF +Interval +0 0 % first corner +40 10 % second corner +20 10% 1 cells in x and 1 in y direction +# + +BOUNDARYDOMAIN +default 1 % all boundaries have id 1 +#BOUNDARYDOMAIN +# unitcube.dgf diff --git a/test/implicit/2pncmin/test_box2pncmin.cc b/test/implicit/2pncmin/test_box2pncmin.cc new file mode 100644 index 0000000000..2229d57c01 --- /dev/null +++ b/test/implicit/2pncmin/test_box2pncmin.cc @@ -0,0 +1,69 @@ +// -*- 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 Test for the two-phase n-component isothermal box model. + */ +#include "config.h" +#include "dissolutionproblem.hh" +#include <dune/grid/io/file/dgfparser.hh> +#include <iostream> +#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-FluidSystem.NTemperature Number of tabularization entries [-] \n" + "\t-FluidSystem.NPressure Number of tabularization entries [-] \n" + "\t-FluidSystem.PressureLow Low end for tabularization of fluid properties [Pa] \n" + "\t-FluidSystem.PressureHigh High end for tabularization of fluid properties [Pa] \n" + "\t-FluidSystem.TemperatureLow Low end for tabularization of fluid properties [Pa] \n" + "\t-FluidSystem.TemperatureHigh High end for tabularization of fluid properties [Pa] \n" + "\t-SimulationControl.Name The name of the output files [-] \n" + "\t-InitialConditions.Temperature Initial temperature in the reservoir [K] \n" + "\t-InitialConditions.DepthBOR Depth below ground surface [m] \n"; + + std::cout << errorMessageOut + << "\n"; + } +} + +int main(int argc, char** argv) +{ + typedef TTAG(DissolutionBoxProblem) ProblemTypeTag; + return Dumux::start<ProblemTypeTag>(argc, argv, usage); +} diff --git a/test/implicit/2pncmin/test_box2pncmin.input b/test/implicit/2pncmin/test_box2pncmin.input new file mode 100644 index 0000000000..005619515b --- /dev/null +++ b/test/implicit/2pncmin/test_box2pncmin.input @@ -0,0 +1,67 @@ +# Parameter file for tutorial_coupled. +# Everything behind a '#' is a comment. +# Type "./tutorial_coupled --help" for more information. + +# Mandatory arguments + + +[TimeManager] +TEnd = 1e7 # duration of the simulation [s] +DtInitial = 10# initial time step size [s] +MaxTimeStepSize = 50000 + + +[Grid] +File = grids/test_2pncmin.dgf + +[FluidSystem] +NTemperature = 100 # [-] number of tabularization entries +NPressure = 100 # [-] number of tabularization entries +PressureLow = 1e4 # [Pa] low end for tabularization of fluid properties +PressureHigh = 3e6 # [Pa] high end for tabularization of fluid properties +TemperatureLow = 273.15 # [Pa] low end for tabularization of fluid properties +TemperatureHigh = 400.00 # [Pa] high end for tabularization of fluid properties + +[Problem] +OutputName = injectionbox # [-] name for output files +ReservoirPressure = 11E6 # [pa] Initial reservoir pressure +reservoirSaturation = 0.4 # [-] Initial saturation +solidity = 0.0 # [-] Initial solid salt precipitate +Temperature = 418.15 # [K] reservoir temperature +InnerPressure = 12E6 # [pa] +InnerLiqSaturation = 0.95 # [-] liquid saturation at inner boundary +InnerSalinity = 0.0001 # [-] salinity of inner liquid +OuterPressure = 11E6 # [Pa] reservoir boundary pressure +OuterLiqSaturation = 0.2 # [-] liquid saturation at outer boundary +OuterSalinity = 0.4 # [-] Initial salinity +LiquidSaturation = 0.4 # [-] initial liquid saturation +InitPrecipitatedSalt1 = 0.0 # [-] initial precipitated salt +InitPrecipitatedSalt2 = 0.05 # [-] initial precipitated salt in the blocked part + +[SpatialParams] +SolubilityLimit = 0.295 # [-] solubility limit of salt in brine +Porosity = 0.11 # [-] initial porosity +Permeability = 2.23E-14 +IrreducibleLiqSat = 0.2 # [-] irreducible liquid saturation +IrreducibleGasSat = 0.001 # [-] irreducible gas saturation +Pentry1 = 0.0 # [pa] +BCLambda1 = 2 # [-] + +[Vtk] +AddVelocity = 1 # Add extra information +VtuWritingFreq = 1 # 1: write a vtu file at every timestep, 2: write a vtu file every second timestep ... + +[LinearSolver] +ResidualReduction = 1e-6 + +[TimeManager] +FreqOutput = 100 # frequency of VTK output +WriteRestartFile = 1 # Boolean. Should restart files be written? (1) Yes (0) No + +[Output] +#Frequency of restart file, flux and VTK output +FreqRestart = 1000 # how often restart files are written out +FreqOutput = 50 # frequency of VTK output +FreqMassOutput = 2 # frequency of mass and evaporation rate output (Darcy) +FreqFluxOutput = 1000 # frequency of detailed flux output +FreqVaporFluxOutput = 2 # frequency of summarized flux output diff --git a/test/implicit/CMakeLists.txt b/test/implicit/CMakeLists.txt index 57f10d5c73..979ce3a7cf 100644 --- a/test/implicit/CMakeLists.txt +++ b/test/implicit/CMakeLists.txt @@ -2,6 +2,7 @@ add_subdirectory("1p") add_subdirectory("1p2c") add_subdirectory("2p") add_subdirectory("2p2c") +add_subdirectory("2pncmin") add_subdirectory("2pdfm") add_subdirectory("3p") add_subdirectory("3p3c") diff --git a/test/references/injectionbox2pncmin-reference.vtu b/test/references/injectionbox2pncmin-reference.vtu new file mode 100644 index 0000000000..da420ec006 --- /dev/null +++ b/test/references/injectionbox2pncmin-reference.vtu @@ -0,0 +1,893 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian"> + <UnstructuredGrid> + <Piece NumberOfCells="200" NumberOfPoints="231"> + <PointData Scalars="Sg" Vectors="velocityW"> + <DataArray type="Float32" Name="Sg" NumberOfComponents="1" format="ascii"> + 0.05 0.63648 0.05 0.636631 0.6365 0.636652 0.636686 0.636726 0.636549 0.636589 0.636482 0.636522 + 0.63645 0.636491 0.636442 0.636483 0.636449 0.636489 0.636465 0.636505 0.636362 0.636512 0.636363 0.636514 + 0.636381 0.636531 0.636406 0.636557 0.636442 0.636593 0.636492 0.636643 0.636561 0.636712 0.636662 0.636813 + 0.63682 0.636971 0.637129 0.63728 0.8 0.8 0.05 0.636631 0.636652 0.636726 0.636589 0.636522 + 0.636491 0.636483 0.636489 0.636505 0.636513 0.636514 0.636531 0.636557 0.636593 0.636643 0.636712 0.636813 + 0.636971 0.63728 0.8 0.05 0.636631 0.636652 0.636726 0.636589 0.636522 0.636491 0.636483 0.636489 + 0.636506 0.636513 0.636514 0.636532 0.636557 0.636593 0.636643 0.636712 0.636813 0.636971 0.637279 0.8 + 0.05 0.636631 0.636652 0.636726 0.636589 0.636522 0.636491 0.636483 0.636489 0.636506 0.636513 0.636514 + 0.636532 0.636557 0.636593 0.636643 0.636712 0.636813 0.636971 0.637279 0.8 0.05 0.636631 0.636652 + 0.636726 0.636589 0.636522 0.636491 0.636483 0.636489 0.636506 0.636513 0.636514 0.636532 0.636558 0.636594 + 0.636643 0.636712 0.636813 0.636971 0.637278 0.8 0.05 0.636631 0.636652 0.636726 0.636589 0.636522 + 0.636491 0.636483 0.636489 0.636506 0.636513 0.636514 0.636532 0.636558 0.636594 0.636643 0.636712 0.636813 + 0.63697 0.637278 0.8 0.05 0.636631 0.636652 0.636726 0.636589 0.636523 0.636491 0.636483 0.636489 + 0.636506 0.636513 0.636514 0.636532 0.636558 0.636594 0.636643 0.636712 0.636813 0.63697 0.637277 0.8 + 0.05 0.636631 0.636652 0.636726 0.636589 0.636523 0.636491 0.636483 0.636489 0.636506 0.636513 0.636514 + 0.636532 0.636558 0.636594 0.636643 0.636712 0.636813 0.63697 0.637277 0.8 0.05 0.636631 0.636652 + 0.636726 0.636589 0.636523 0.636491 0.636483 0.636489 0.636506 0.636513 0.636514 0.636532 0.636558 0.636594 + 0.636643 0.636713 0.636813 0.63697 0.637277 0.8 0.05 0.636782 0.636803 0.636767 0.63663 0.636563 + 0.636531 0.636523 0.63653 0.636546 0.636663 0.636665 0.636682 0.636708 0.636744 0.636794 0.636863 0.636964 + 0.637121 0.637427 0.8 + </DataArray> + <DataArray type="Float32" Name="Sl" NumberOfComponents="1" format="ascii"> + 0.95 0.36352 0.95 0.363369 0.3635 0.363348 0.363314 0.363274 0.363451 0.363411 0.363518 0.363478 + 0.36355 0.363509 0.363558 0.363517 0.363551 0.363511 0.363535 0.363495 0.363638 0.363488 0.363637 0.363486 + 0.363619 0.363469 0.363594 0.363443 0.363558 0.363407 0.363508 0.363357 0.363439 0.363288 0.363338 0.363187 + 0.36318 0.363029 0.362871 0.36272 0.2 0.2 0.95 0.363369 0.363348 0.363274 0.363411 0.363478 + 0.363509 0.363517 0.363511 0.363495 0.363487 0.363486 0.363468 0.363443 0.363407 0.363357 0.363288 0.363187 + 0.363029 0.362721 0.2 0.95 0.363369 0.363348 0.363274 0.363411 0.363478 0.363509 0.363517 0.363511 + 0.363494 0.363487 0.363486 0.363468 0.363443 0.363407 0.363357 0.363288 0.363187 0.363029 0.362721 0.2 + 0.95 0.363369 0.363348 0.363274 0.363411 0.363478 0.363509 0.363517 0.363511 0.363494 0.363487 0.363486 + 0.363468 0.363443 0.363407 0.363357 0.363288 0.363187 0.363029 0.362721 0.2 0.95 0.363369 0.363348 + 0.363274 0.363411 0.363478 0.363509 0.363517 0.363511 0.363494 0.363487 0.363486 0.363468 0.363443 0.363406 + 0.363357 0.363288 0.363187 0.363029 0.362722 0.2 0.95 0.363369 0.363348 0.363274 0.363411 0.363478 + 0.363509 0.363517 0.363511 0.363494 0.363487 0.363486 0.363468 0.363442 0.363406 0.363357 0.363288 0.363187 + 0.36303 0.362722 0.2 0.95 0.363369 0.363348 0.363274 0.363411 0.363477 0.363509 0.363517 0.363511 + 0.363494 0.363487 0.363486 0.363468 0.363442 0.363406 0.363357 0.363288 0.363187 0.36303 0.362723 0.2 + 0.95 0.363369 0.363348 0.363274 0.363411 0.363477 0.363509 0.363517 0.363511 0.363494 0.363487 0.363486 + 0.363468 0.363442 0.363406 0.363357 0.363288 0.363187 0.36303 0.362723 0.2 0.95 0.363369 0.363348 + 0.363274 0.363411 0.363477 0.363509 0.363517 0.363511 0.363494 0.363487 0.363486 0.363468 0.363442 0.363406 + 0.363357 0.363287 0.363187 0.36303 0.362723 0.2 0.95 0.363218 0.363197 0.363233 0.36337 0.363437 + 0.363469 0.363477 0.36347 0.363454 0.363337 0.363335 0.363318 0.363292 0.363256 0.363206 0.363137 0.363036 + 0.362879 0.362573 0.2 + </DataArray> + <DataArray type="Float32" Name="pg" NumberOfComponents="1" format="ascii"> + 1.2e+07 1.20125e+07 1.2e+07 1.20116e+07 1.20235e+07 1.20226e+07 1.20601e+07 1.20592e+07 1.21125e+07 1.21115e+07 1.21428e+07 1.21419e+07 + 1.2142e+07 1.2141e+07 1.21029e+07 1.21019e+07 1.20206e+07 1.20197e+07 1.18924e+07 1.18915e+07 1.17924e+07 1.17915e+07 1.17551e+07 1.17542e+07 + 1.17064e+07 1.17055e+07 1.16468e+07 1.16459e+07 1.15768e+07 1.15759e+07 1.14973e+07 1.14963e+07 1.14091e+07 1.14082e+07 1.13133e+07 1.13124e+07 + 1.12113e+07 1.12105e+07 1.11043e+07 1.11035e+07 1.1e+07 1.1e+07 1.2e+07 1.20111e+07 1.20219e+07 1.20583e+07 1.21106e+07 1.21409e+07 + 1.21401e+07 1.2101e+07 1.20187e+07 1.18905e+07 1.17905e+07 1.17532e+07 1.17045e+07 1.16449e+07 1.1575e+07 1.14954e+07 1.14073e+07 1.13116e+07 + 1.12097e+07 1.11029e+07 1.1e+07 1.2e+07 1.20107e+07 1.20213e+07 1.20576e+07 1.21098e+07 1.214e+07 1.21391e+07 1.21e+07 1.20177e+07 + 1.18896e+07 1.17896e+07 1.17523e+07 1.17036e+07 1.1644e+07 1.1574e+07 1.14945e+07 1.14064e+07 1.13108e+07 1.1209e+07 1.11025e+07 1.1e+07 + 1.2e+07 1.20103e+07 1.20207e+07 1.20569e+07 1.2109e+07 1.21391e+07 1.21382e+07 1.20991e+07 1.20168e+07 1.18886e+07 1.17886e+07 1.17513e+07 + 1.17027e+07 1.16431e+07 1.15731e+07 1.14936e+07 1.14056e+07 1.13101e+07 1.12084e+07 1.11022e+07 1.1e+07 1.2e+07 1.201e+07 1.20202e+07 + 1.20563e+07 1.21081e+07 1.21382e+07 1.21373e+07 1.20981e+07 1.20158e+07 1.18877e+07 1.17877e+07 1.17504e+07 1.17017e+07 1.16421e+07 1.15722e+07 + 1.14928e+07 1.14047e+07 1.13093e+07 1.12078e+07 1.11018e+07 1.1e+07 1.2e+07 1.20097e+07 1.20198e+07 1.20556e+07 1.21073e+07 1.21373e+07 + 1.21363e+07 1.20972e+07 1.20149e+07 1.18867e+07 1.17867e+07 1.17494e+07 1.17008e+07 1.16412e+07 1.15713e+07 1.14919e+07 1.14039e+07 1.13086e+07 + 1.12072e+07 1.11015e+07 1.1e+07 1.2e+07 1.20094e+07 1.20192e+07 1.20549e+07 1.21065e+07 1.21364e+07 1.21354e+07 1.20962e+07 1.20139e+07 + 1.18858e+07 1.17858e+07 1.17485e+07 1.16998e+07 1.16403e+07 1.15704e+07 1.1491e+07 1.14031e+07 1.13078e+07 1.12066e+07 1.11011e+07 1.1e+07 + 1.2e+07 1.2009e+07 1.20186e+07 1.20542e+07 1.21057e+07 1.21355e+07 1.21345e+07 1.20953e+07 1.2013e+07 1.18848e+07 1.17848e+07 1.17475e+07 + 1.16989e+07 1.16394e+07 1.15695e+07 1.14901e+07 1.14022e+07 1.1307e+07 1.12059e+07 1.11007e+07 1.1e+07 1.2e+07 1.20084e+07 1.20179e+07 + 1.20534e+07 1.21048e+07 1.21346e+07 1.21335e+07 1.20943e+07 1.2012e+07 1.18839e+07 1.17839e+07 1.17466e+07 1.1698e+07 1.16384e+07 1.15686e+07 + 1.14892e+07 1.14013e+07 1.13062e+07 1.12052e+07 1.11002e+07 1.1e+07 1.2e+07 1.20075e+07 1.2017e+07 1.20524e+07 1.21038e+07 1.21336e+07 + 1.21325e+07 1.20933e+07 1.2011e+07 1.18829e+07 1.17829e+07 1.17456e+07 1.1697e+07 1.16375e+07 1.15676e+07 1.14883e+07 1.14004e+07 1.13053e+07 + 1.12043e+07 1.10993e+07 1.1e+07 + </DataArray> + <DataArray type="Float32" Name="pl" NumberOfComponents="1" format="ascii"> + 1.19995e+07 1.20114e+07 1.19995e+07 1.20105e+07 1.20224e+07 1.20215e+07 1.2059e+07 1.2058e+07 1.21114e+07 1.21104e+07 1.21417e+07 1.21407e+07 + 1.21409e+07 1.21399e+07 1.21018e+07 1.21008e+07 1.20195e+07 1.20185e+07 1.18913e+07 1.18904e+07 1.17913e+07 1.17904e+07 1.1754e+07 1.17531e+07 + 1.17053e+07 1.17044e+07 1.16457e+07 1.16448e+07 1.15757e+07 1.15748e+07 1.14962e+07 1.14952e+07 1.1408e+07 1.1407e+07 1.13122e+07 1.13113e+07 + 1.12102e+07 1.12093e+07 1.11032e+07 1.11024e+07 1.09925e+07 1.09925e+07 1.19995e+07 1.201e+07 1.20208e+07 1.20572e+07 1.21095e+07 1.21398e+07 + 1.2139e+07 1.20999e+07 1.20176e+07 1.18894e+07 1.17894e+07 1.17521e+07 1.17034e+07 1.16438e+07 1.15739e+07 1.14943e+07 1.14062e+07 1.13105e+07 + 1.12086e+07 1.11018e+07 1.09925e+07 1.19995e+07 1.20096e+07 1.20202e+07 1.20565e+07 1.21087e+07 1.21389e+07 1.2138e+07 1.20989e+07 1.20166e+07 + 1.18885e+07 1.17885e+07 1.17512e+07 1.17025e+07 1.16429e+07 1.15729e+07 1.14934e+07 1.14053e+07 1.13097e+07 1.12079e+07 1.11014e+07 1.09925e+07 + 1.19995e+07 1.20092e+07 1.20196e+07 1.20558e+07 1.21078e+07 1.2138e+07 1.21371e+07 1.2098e+07 1.20157e+07 1.18875e+07 1.17875e+07 1.17502e+07 + 1.17016e+07 1.1642e+07 1.1572e+07 1.14925e+07 1.14045e+07 1.13089e+07 1.12073e+07 1.1101e+07 1.09925e+07 1.19995e+07 1.20089e+07 1.20191e+07 + 1.20551e+07 1.2107e+07 1.21371e+07 1.21362e+07 1.2097e+07 1.20147e+07 1.18866e+07 1.17866e+07 1.17493e+07 1.17006e+07 1.1641e+07 1.15711e+07 + 1.14917e+07 1.14036e+07 1.13082e+07 1.12067e+07 1.11007e+07 1.09925e+07 1.19995e+07 1.20086e+07 1.20186e+07 1.20545e+07 1.21062e+07 1.21362e+07 + 1.21352e+07 1.20961e+07 1.20138e+07 1.18856e+07 1.17856e+07 1.17483e+07 1.16997e+07 1.16401e+07 1.15702e+07 1.14908e+07 1.14028e+07 1.13075e+07 + 1.12061e+07 1.11004e+07 1.09925e+07 1.19995e+07 1.20083e+07 1.20181e+07 1.20538e+07 1.21054e+07 1.21353e+07 1.21343e+07 1.20951e+07 1.20128e+07 + 1.18847e+07 1.17847e+07 1.17474e+07 1.16987e+07 1.16392e+07 1.15693e+07 1.14899e+07 1.1402e+07 1.13067e+07 1.12055e+07 1.11e+07 1.09925e+07 + 1.19995e+07 1.20079e+07 1.20175e+07 1.20531e+07 1.21046e+07 1.21344e+07 1.21334e+07 1.20942e+07 1.20119e+07 1.18837e+07 1.17837e+07 1.17464e+07 + 1.16978e+07 1.16382e+07 1.15684e+07 1.1489e+07 1.14011e+07 1.13059e+07 1.12048e+07 1.10996e+07 1.09925e+07 1.19995e+07 1.20073e+07 1.20167e+07 + 1.20522e+07 1.21037e+07 1.21335e+07 1.21324e+07 1.20932e+07 1.20109e+07 1.18828e+07 1.17828e+07 1.17455e+07 1.16969e+07 1.16373e+07 1.15675e+07 + 1.14881e+07 1.14002e+07 1.13051e+07 1.12041e+07 1.10991e+07 1.09925e+07 1.19995e+07 1.20064e+07 1.20159e+07 1.20513e+07 1.21027e+07 1.21325e+07 + 1.21314e+07 1.20922e+07 1.20099e+07 1.18818e+07 1.17818e+07 1.17445e+07 1.16959e+07 1.16364e+07 1.15665e+07 1.14872e+07 1.13993e+07 1.13042e+07 + 1.12032e+07 1.10982e+07 1.09925e+07 + </DataArray> + <DataArray type="Float32" Name="pc" NumberOfComponents="1" format="ascii"> + 516.075 1105.24 516.075 1105.76 1105.31 1105.82 1105.94 1106.08 1105.48 1105.61 1105.25 1105.39 + 1105.14 1105.28 1105.12 1105.25 1105.14 1105.27 1105.19 1105.33 1104.84 1105.35 1104.85 1105.36 + 1104.91 1105.42 1104.99 1105.5 1105.12 1105.63 1105.28 1105.79 1105.52 1106.03 1105.86 1106.37 + 1106.39 1106.91 1107.44 1107.96 7500 7500 516.075 1105.76 1105.82 1106.08 1105.61 1105.39 + 1105.28 1105.25 1105.27 1105.33 1105.35 1105.36 1105.42 1105.51 1105.63 1105.79 1106.03 1106.37 + 1106.91 1107.96 7500 516.075 1105.76 1105.82 1106.08 1105.61 1105.39 1105.28 1105.25 1105.27 + 1105.33 1105.35 1105.36 1105.42 1105.51 1105.63 1105.8 1106.03 1106.37 1106.91 1107.95 7500 + 516.075 1105.76 1105.82 1106.08 1105.61 1105.39 1105.28 1105.25 1105.27 1105.33 1105.35 1105.36 + 1105.42 1105.51 1105.63 1105.8 1106.03 1106.37 1106.91 1107.95 7500 516.075 1105.75 1105.82 + 1106.08 1105.61 1105.39 1105.28 1105.25 1105.27 1105.33 1105.35 1105.36 1105.42 1105.51 1105.63 + 1105.8 1106.03 1106.37 1106.91 1107.95 7500 516.075 1105.75 1105.82 1106.08 1105.61 1105.39 + 1105.28 1105.25 1105.27 1105.33 1105.35 1105.36 1105.42 1105.51 1105.63 1105.8 1106.03 1106.37 + 1106.9 1107.95 7500 516.075 1105.75 1105.82 1106.08 1105.61 1105.39 1105.28 1105.25 1105.27 + 1105.33 1105.35 1105.36 1105.42 1105.51 1105.63 1105.8 1106.03 1106.37 1106.9 1107.95 7500 + 516.075 1105.75 1105.82 1106.08 1105.61 1105.39 1105.28 1105.25 1105.28 1105.33 1105.35 1105.36 + 1105.42 1105.51 1105.63 1105.8 1106.03 1106.37 1106.9 1107.95 7500 516.075 1105.75 1105.82 + 1106.08 1105.61 1105.39 1105.28 1105.25 1105.28 1105.33 1105.36 1105.36 1105.42 1105.51 1105.63 + 1105.8 1106.03 1106.37 1106.9 1107.95 7500 516.075 1106.27 1106.34 1106.21 1105.75 1105.52 + 1105.42 1105.39 1105.41 1105.47 1105.86 1105.87 1105.93 1106.02 1106.14 1106.31 1106.54 1106.88 + 1107.42 1108.46 7500 + </DataArray> + <DataArray type="Float32" Name="rhoL" NumberOfComponents="1" format="ascii"> + 927.972 1084.17 927.972 1084.17 1084.18 1084.17 1084.19 1084.19 1084.21 1084.21 1084.22 1084.22 + 1084.22 1084.22 1084.21 1084.21 1084.17 1084.17 1084.12 1084.12 1084.08 1084.08 1084.06 1084.06 + 1084.04 1084.04 1084.02 1084.02 1083.99 1083.99 1083.96 1083.96 1083.92 1083.92 1083.88 1083.88 + 1083.84 1083.84 1083.8 1083.8 1168.53 1168.53 927.972 1084.17 1084.17 1084.19 1084.21 1084.22 + 1084.22 1084.21 1084.17 1084.12 1084.08 1084.06 1084.04 1084.02 1083.99 1083.96 1083.92 1083.88 + 1083.84 1083.8 1168.53 927.972 1084.17 1084.17 1084.19 1084.21 1084.22 1084.22 1084.21 1084.17 + 1084.12 1084.08 1084.06 1084.04 1084.02 1083.99 1083.96 1083.92 1083.88 1083.84 1083.8 1168.53 + 927.972 1084.17 1084.17 1084.19 1084.21 1084.22 1084.22 1084.21 1084.17 1084.12 1084.08 1084.06 + 1084.04 1084.02 1083.99 1083.96 1083.92 1083.88 1083.84 1083.8 1168.53 927.972 1084.17 1084.17 + 1084.19 1084.21 1084.22 1084.22 1084.21 1084.17 1084.12 1084.08 1084.06 1084.04 1084.02 1083.99 + 1083.96 1083.92 1083.88 1083.84 1083.8 1168.53 927.972 1084.17 1084.17 1084.19 1084.21 1084.22 + 1084.22 1084.21 1084.17 1084.12 1084.08 1084.06 1084.04 1084.02 1083.99 1083.96 1083.92 1083.88 + 1083.84 1083.8 1168.53 927.972 1084.17 1084.17 1084.19 1084.21 1084.22 1084.22 1084.2 1084.17 + 1084.12 1084.08 1084.06 1084.04 1084.02 1083.99 1083.96 1083.92 1083.88 1083.84 1083.8 1168.53 + 927.972 1084.17 1084.17 1084.19 1084.21 1084.22 1084.22 1084.2 1084.17 1084.12 1084.08 1084.06 + 1084.04 1084.02 1083.99 1083.96 1083.92 1083.88 1083.84 1083.8 1168.53 927.972 1084.17 1084.17 + 1084.19 1084.21 1084.22 1084.22 1084.2 1084.17 1084.12 1084.08 1084.06 1084.04 1084.02 1083.99 + 1083.96 1083.92 1083.88 1083.84 1083.8 1168.53 927.972 1084.17 1084.17 1084.19 1084.21 1084.22 + 1084.22 1084.2 1084.17 1084.12 1084.08 1084.06 1084.04 1084.02 1083.99 1083.96 1083.92 1083.88 + 1083.84 1083.8 1168.53 + </DataArray> + <DataArray type="Float32" Name="rhoG" NumberOfComponents="1" format="ascii"> + 98.7381 98.9527 98.7381 98.9454 99.0444 99.037 99.3488 99.3411 99.7853 99.7774 100.038 100.03 + 100.031 100.023 99.7055 99.6974 99.0202 99.0121 97.9524 97.9444 97.1193 97.1113 96.8085 96.8006 + 96.403 96.3951 95.9063 95.8984 95.3233 95.3156 94.6606 94.6529 93.926 93.9184 93.1285 93.1211 + 92.2787 92.2716 91.3874 91.3806 90.6021 90.6021 98.7381 98.9407 99.0308 99.3343 99.7699 100.022 + 100.015 99.6894 99.004 97.9365 97.1034 96.7927 96.3872 95.8906 95.3079 94.6454 93.911 93.1142 + 92.2653 91.376 90.6021 98.7381 98.9372 99.0256 99.3281 99.7628 100.015 100.007 99.6814 98.9961 + 97.9285 97.0955 96.7848 96.3794 95.8829 95.3002 94.6379 93.9039 93.1076 92.2597 91.3725 90.6021 + 98.7381 98.9344 99.0212 99.3224 99.7559 100.007 99.9995 99.6735 98.9881 97.9206 97.0876 96.7769 + 96.3716 95.8751 95.2926 94.6305 93.8969 93.1012 92.2545 91.3695 90.6021 98.7381 98.932 99.0171 + 99.3169 99.7492 99.9997 99.9917 99.6656 98.9802 97.9127 97.0797 96.7691 96.3638 95.8674 95.285 + 94.6232 93.89 93.095 92.2496 91.3667 90.6021 98.7381 98.9295 99.0129 99.3115 99.7425 99.9923 + 99.984 99.6577 98.9723 97.9047 97.0718 96.7612 96.356 95.8597 95.2775 94.6158 93.883 93.0888 + 92.2447 91.3639 90.6021 98.7381 98.9267 99.0085 99.3058 99.7357 99.9849 99.9762 99.6498 98.9643 + 97.8968 97.0639 96.7533 96.3481 95.852 95.2699 94.6085 93.876 93.0825 92.2396 91.361 90.6021 + 98.7381 98.9233 99.0033 99.2996 99.7285 99.9773 99.9684 99.6419 98.9563 97.8889 97.056 96.7454 + 96.3403 95.8442 95.2622 94.601 93.8689 93.0759 92.234 91.3574 90.6021 98.7381 98.9185 98.9971 + 99.2928 99.7211 99.9694 99.9604 99.6339 98.9483 97.8809 97.048 96.7375 96.3325 95.8364 95.2545 + 94.5934 93.8615 93.0689 92.2277 91.3528 90.6021 98.7381 98.9112 98.9897 99.2851 99.7131 99.9614 + 99.9523 99.6257 98.9402 97.8729 97.0401 96.7296 96.3246 95.8286 95.2468 94.5858 93.854 93.0615 + 92.2206 91.346 90.6021 + </DataArray> + <DataArray type="Float32" Name="mobL" NumberOfComponents="1" format="ascii"> + 4371.14 5.17635 4371.14 5.15716 5.17375 5.15461 5.1503 5.1452 5.16764 5.16252 5.17608 5.17096 + 5.18008 5.17496 5.18111 5.17599 5.18029 5.17518 5.17821 5.1731 5.1913 5.17221 5.19116 5.17204 + 5.18892 5.16981 5.18566 5.16653 5.1811 5.16198 5.17482 5.15571 5.16606 5.14696 5.15335 5.13429 + 5.13339 5.11441 5.09458 5.07578 0 0 4371.14 5.15717 5.15461 5.1452 5.16252 5.17096 + 5.17496 5.17599 5.17517 5.17309 5.1722 5.17203 5.1698 5.16653 5.16197 5.1557 5.14696 5.13429 + 5.11442 5.07582 0 4371.14 5.15718 5.15461 5.1452 5.16252 5.17095 5.17495 5.17598 5.17517 + 5.17308 5.17219 5.17203 5.16979 5.16652 5.16197 5.1557 5.14696 5.13429 5.11443 5.07588 0 + 4371.14 5.15719 5.15461 5.1452 5.16251 5.17095 5.17494 5.17597 5.17516 5.17308 5.17218 5.17202 + 5.16979 5.16652 5.16196 5.15569 5.14696 5.1343 5.11446 5.07594 0 4371.14 5.1572 5.15461 + 5.14521 5.16251 5.17094 5.17494 5.17597 5.17515 5.17307 5.17218 5.17201 5.16978 5.16651 5.16196 + 5.15569 5.14696 5.13431 5.11448 5.07599 0 4371.14 5.15721 5.15462 5.14521 5.16251 5.17094 + 5.17493 5.17596 5.17515 5.17306 5.17217 5.17201 5.16977 5.1665 5.16195 5.15569 5.14696 5.13431 + 5.11451 5.07605 0 4371.14 5.15722 5.15462 5.14522 5.16251 5.17093 5.17493 5.17596 5.17514 + 5.17306 5.17216 5.172 5.16977 5.1665 5.16195 5.15568 5.14696 5.13432 5.11453 5.07611 0 + 4371.14 5.15723 5.15462 5.14522 5.1625 5.17093 5.17492 5.17595 5.17513 5.17305 5.17216 5.17199 + 5.16976 5.16649 5.16194 5.15568 5.14696 5.13433 5.11455 5.07616 0 4371.14 5.15721 5.1546 + 5.14522 5.1625 5.17092 5.17491 5.17594 5.17513 5.17304 5.17213 5.17197 5.16973 5.16646 5.16191 + 5.15565 5.14693 5.1343 5.11453 5.07618 0 4371.14 5.13814 5.13557 5.14012 5.15739 5.16581 + 5.16981 5.17084 5.17002 5.16793 5.15315 5.15297 5.15073 5.14746 5.14291 5.13665 5.12795 5.11536 + 5.09566 5.0575 0 + </DataArray> + <DataArray type="Float32" Name="mobG" NumberOfComponents="1" format="ascii"> + 19.0304 25794.2 19.0304 25808.6 25796.2 25810.6 25813.8 25817.6 25800.8 25804.6 25794.4 25798.3 + 25791.4 25795.3 25790.7 25794.5 25791.3 25795.1 25792.8 25796.7 25783 25797.3 25783.1 25797.5 + 25784.8 25799.1 25787.2 25801.6 25790.7 25805 25795.4 25809.7 25801.9 25816.3 25811.5 25825.9 + 25826.5 25840.9 25855.9 25870.2 42559.3 42559.3 19.0304 25808.6 25810.6 25817.6 25804.6 25798.3 + 25795.3 25794.5 25795.1 25796.7 25797.3 25797.5 25799.1 25801.6 25805 25809.7 25816.3 25825.9 + 25840.9 25870.2 42559.3 19.0304 25808.6 25810.6 25817.6 25804.6 25798.3 25795.3 25794.5 25795.1 + 25796.7 25797.3 25797.5 25799.1 25801.6 25805 25809.7 25816.3 25825.9 25840.9 25870.2 42559.3 + 19.0304 25808.6 25810.6 25817.6 25804.6 25798.3 25795.3 25794.5 25795.1 25796.7 25797.3 25797.5 + 25799.1 25801.6 25805 25809.7 25816.3 25825.9 25840.9 25870.1 42559.3 19.0304 25808.6 25810.5 + 25817.6 25804.6 25798.3 25795.3 25794.5 25795.1 25796.7 25797.3 25797.5 25799.2 25801.6 25805 + 25809.7 25816.3 25825.9 25840.8 25870.1 42559.3 19.0304 25808.6 25810.5 25817.6 25804.6 25798.3 + 25795.3 25794.5 25795.1 25796.7 25797.4 25797.5 25799.2 25801.6 25805 25809.7 25816.3 25825.9 + 25840.8 25870 42559.3 19.0304 25808.6 25810.5 25817.6 25804.6 25798.3 25795.3 25794.5 25795.1 + 25796.7 25797.4 25797.5 25799.2 25801.6 25805 25809.7 25816.3 25825.8 25840.8 25870 42559.3 + 19.0304 25808.6 25810.5 25817.6 25804.6 25798.3 25795.3 25794.5 25795.1 25796.7 25797.4 25797.5 + 25799.2 25801.6 25805 25809.7 25816.3 25825.8 25840.8 25870 42559.3 19.0304 25808.6 25810.6 + 25817.6 25804.6 25798.3 25795.3 25794.5 25795.1 25796.7 25797.4 25797.5 25799.2 25801.6 25805.1 + 25809.8 25816.3 25825.9 25840.8 25869.9 42559.3 19.0304 25823 25824.9 25821.5 25808.5 25802.1 + 25799.1 25798.4 25799 25800.5 25811.6 25811.8 25813.5 25815.9 25819.4 25824.1 25830.7 25840.2 + 25855.1 25884.2 42559.3 + </DataArray> + <DataArray type="Float32" Name="porosity" NumberOfComponents="1" format="ascii"> + 0.11 0.105494 0.11 0.105494 0.105494 0.105494 0.0575415 0.0575415 0.0575426 0.0575426 0.0575431 0.0575431 + 0.0575433 0.0575433 0.0575434 0.0575433 0.0575432 0.0575432 0.057543 0.057543 0.105495 0.105495 0.105495 0.105495 + 0.105495 0.105495 0.105494 0.105494 0.105494 0.105494 0.105493 0.105493 0.105492 0.105492 0.10549 0.10549 + 0.105488 0.105488 0.105484 0.105484 0.11 0.11 0.11 0.105494 0.105494 0.0575415 0.0575426 0.0575431 + 0.0575433 0.0575433 0.0575432 0.057543 0.105495 0.105495 0.105495 0.105494 0.105494 0.105493 0.105492 0.10549 + 0.105488 0.105484 0.11 0.11 0.105494 0.105494 0.0575415 0.0575426 0.0575431 0.0575433 0.0575433 0.0575432 + 0.057543 0.105495 0.105495 0.105495 0.105494 0.105494 0.105493 0.105492 0.10549 0.105488 0.105484 0.11 + 0.11 0.105494 0.105494 0.0575415 0.0575426 0.0575431 0.0575433 0.0575433 0.0575432 0.057543 0.105495 0.105495 + 0.105495 0.105494 0.105494 0.105493 0.105492 0.10549 0.105488 0.105484 0.11 0.11 0.105494 0.105494 + 0.0575415 0.0575426 0.0575431 0.0575433 0.0575433 0.0575432 0.057543 0.105495 0.105495 0.105495 0.105494 0.105494 + 0.105493 0.105492 0.10549 0.105488 0.105484 0.11 0.11 0.105494 0.105494 0.0575415 0.0575426 0.0575431 + 0.0575433 0.0575433 0.0575432 0.057543 0.105495 0.105495 0.105495 0.105494 0.105494 0.105493 0.105492 0.10549 + 0.105488 0.105484 0.11 0.11 0.105494 0.105494 0.0575415 0.0575426 0.0575431 0.0575433 0.0575433 0.0575432 + 0.057543 0.105495 0.105495 0.105495 0.105494 0.105494 0.105493 0.105492 0.10549 0.105488 0.105484 0.11 + 0.11 0.105494 0.105494 0.0575415 0.0575426 0.0575431 0.0575433 0.0575433 0.0575432 0.057543 0.105495 0.105495 + 0.105495 0.105494 0.105494 0.105493 0.105492 0.10549 0.105488 0.105484 0.11 0.11 0.105494 0.105494 + 0.0575415 0.0575426 0.0575431 0.0575433 0.0575433 0.0575432 0.057543 0.105495 0.105495 0.105495 0.105494 0.105494 + 0.105493 0.105492 0.10549 0.105488 0.105484 0.11 0.11 0.105494 0.105494 0.0575415 0.0575426 0.0575431 + 0.0575433 0.0575433 0.0575432 0.057543 0.105495 0.105495 0.105495 0.105494 0.105494 0.105493 0.105492 0.10549 + 0.105488 0.105484 0.11 + </DataArray> + <DataArray type="Float32" Name="permeabilityFactor" NumberOfComponents="1" format="ascii"> + 1 0.873211 1 0.873211 0.873204 0.873204 0.12765 0.12765 0.127658 0.127658 0.127661 0.127661 + 0.127663 0.127663 0.127663 0.127663 0.127662 0.127662 0.12766 0.12766 0.873243 0.873243 0.873241 0.873241 + 0.873233 0.873232 0.873221 0.873221 0.873205 0.873205 0.873183 0.873183 0.873155 0.873155 0.873115 0.873114 + 0.873053 0.873053 0.872943 0.872943 1 1 1 0.873211 0.873204 0.12765 0.127658 0.127661 + 0.127663 0.127663 0.127662 0.12766 0.873243 0.873241 0.873232 0.873221 0.873205 0.873183 0.873155 0.873114 + 0.873053 0.872943 1 1 0.873211 0.873204 0.12765 0.127658 0.127661 0.127663 0.127663 0.127662 + 0.12766 0.873243 0.873241 0.873232 0.873221 0.873205 0.873183 0.873155 0.873114 0.873053 0.872943 1 + 1 0.873211 0.873204 0.12765 0.127658 0.127661 0.127663 0.127663 0.127662 0.12766 0.873243 0.873241 + 0.873232 0.87322 0.873204 0.873183 0.873155 0.873114 0.873053 0.872943 1 1 0.873211 0.873204 + 0.12765 0.127658 0.127661 0.127663 0.127663 0.127662 0.12766 0.873243 0.873241 0.873232 0.87322 0.873204 + 0.873183 0.873155 0.873114 0.873053 0.872944 1 1 0.873211 0.873204 0.12765 0.127658 0.127661 + 0.127663 0.127663 0.127662 0.12766 0.873243 0.873241 0.873232 0.87322 0.873204 0.873183 0.873155 0.873114 + 0.873053 0.872944 1 1 0.873211 0.873204 0.12765 0.127658 0.127661 0.127663 0.127663 0.127662 + 0.12766 0.873243 0.873241 0.873232 0.87322 0.873204 0.873183 0.873154 0.873114 0.873054 0.872944 1 + 1 0.873211 0.873204 0.12765 0.127658 0.127661 0.127663 0.127663 0.127662 0.12766 0.873243 0.87324 + 0.873232 0.87322 0.873204 0.873183 0.873154 0.873114 0.873054 0.872944 1 1 0.873211 0.873204 + 0.12765 0.127658 0.127661 0.127663 0.127663 0.127662 0.12766 0.873243 0.87324 0.873232 0.87322 0.873204 + 0.873183 0.873154 0.873114 0.873054 0.872944 1 1 0.873211 0.873204 0.12765 0.127658 0.127661 + 0.127663 0.127663 0.127662 0.12766 0.873242 0.87324 0.873232 0.87322 0.873204 0.873183 0.873154 0.873114 + 0.873054 0.872944 1 + </DataArray> + <DataArray type="Float32" Name="temperature" NumberOfComponents="1" format="ascii"> + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 418.15 + 418.15 418.15 418.15 + </DataArray> + <DataArray type="Float32" Name="phase presence" NumberOfComponents="1" format="ascii"> + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 3 3 3 3 3 3 3 3 3 + 3 3 3 + </DataArray> + <DataArray type="Float32" Name="boxVolume" NumberOfComponents="1" format="ascii"> + 0.5 1 1 2 1 2 1 2 1 2 1 2 + 1 2 1 2 1 2 1 2 1 2 1 2 + 1 2 1 2 1 2 1 2 1 2 1 2 + 1 2 1 2 0.5 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 1 1 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 1 + 1 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 1 1 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 1 1 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 1 1 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 2 2 2 1 + 1 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 2 2 2 1 1 2 2 + 2 2 2 2 2 2 2 2 2 2 2 2 + 2 2 2 2 2 1 0.5 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 0.5 + </DataArray> + <DataArray type="Float32" Name="precipitateVolumeFraction_NaCl" NumberOfComponents="1" format="ascii"> + 0 0.00450597 0 0.00450597 0.00450623 0.00450623 0.0524585 0.0524585 0.0524574 0.0524574 0.0524569 0.0524569 + 0.0524567 0.0524567 0.0524566 0.0524567 0.0524568 0.0524568 0.052457 0.052457 0.00450477 0.00450477 0.00450484 0.00450485 + 0.00450516 0.00450516 0.0045056 0.00450561 0.0045062 0.0045062 0.00450699 0.004507 0.00450806 0.00450807 0.00450957 0.00450957 + 0.00451185 0.00451185 0.00451597 0.00451597 0 0 0 0.00450597 0.00450623 0.0524585 0.0524574 0.0524569 + 0.0524567 0.0524567 0.0524568 0.052457 0.00450477 0.00450485 0.00450517 0.00450561 0.0045062 0.004507 0.00450807 0.00450957 + 0.00451185 0.00451597 0 0 0.00450597 0.00450623 0.0524585 0.0524574 0.0524569 0.0524567 0.0524567 0.0524568 + 0.052457 0.00450477 0.00450485 0.00450517 0.00450561 0.00450621 0.004507 0.00450807 0.00450957 0.00451185 0.00451596 0 + 0 0.00450597 0.00450623 0.0524585 0.0524574 0.0524569 0.0524567 0.0524567 0.0524568 0.052457 0.00450478 0.00450485 + 0.00450517 0.00450561 0.00450621 0.004507 0.00450807 0.00450957 0.00451185 0.00451595 0 0 0.00450597 0.00450623 + 0.0524585 0.0524574 0.0524569 0.0524567 0.0524567 0.0524568 0.052457 0.00450478 0.00450486 0.00450517 0.00450561 0.00450621 + 0.004507 0.00450807 0.00450957 0.00451185 0.00451595 0 0 0.00450597 0.00450623 0.0524585 0.0524574 0.0524569 + 0.0524567 0.0524567 0.0524568 0.052457 0.00450478 0.00450486 0.00450517 0.00450562 0.00450621 0.004507 0.00450807 0.00450957 + 0.00451184 0.00451594 0 0 0.00450597 0.00450623 0.0524585 0.0524574 0.0524569 0.0524567 0.0524567 0.0524568 + 0.052457 0.00450478 0.00450486 0.00450518 0.00450562 0.00450621 0.00450701 0.00450807 0.00450957 0.00451184 0.00451594 0 + 0 0.00450597 0.00450623 0.0524585 0.0524574 0.0524569 0.0524567 0.0524567 0.0524568 0.052457 0.00450478 0.00450486 + 0.00450518 0.00450562 0.00450622 0.00450701 0.00450808 0.00450957 0.00451184 0.00451593 0 0 0.00450597 0.00450624 + 0.0524585 0.0524574 0.0524569 0.0524567 0.0524567 0.0524568 0.052457 0.00450479 0.00450487 0.00450518 0.00450562 0.00450622 + 0.00450701 0.00450808 0.00450957 0.00451184 0.00451593 0 0 0.00450597 0.00450624 0.0524585 0.0524574 0.0524569 + 0.0524567 0.0524567 0.0524568 0.052457 0.00450479 0.00450487 0.00450518 0.00450563 0.00450622 0.00450701 0.00450808 0.00450958 + 0.00451184 0.00451593 0 + </DataArray> + <DataArray type="Float32" Name="Kxx" NumberOfComponents="1" format="ascii"> + 2.23e-14 1.94726e-14 2.23e-14 1.94726e-14 1.94724e-14 1.94724e-14 2.8466e-15 2.8466e-15 2.84676e-15 2.84676e-15 2.84684e-15 2.84684e-15 + 2.84688e-15 2.84688e-15 2.84688e-15 2.84688e-15 2.84686e-15 2.84686e-15 2.84683e-15 2.84683e-15 1.94733e-14 1.94733e-14 1.94733e-14 1.94733e-14 + 1.94731e-14 1.94731e-14 1.94728e-14 1.94728e-14 1.94725e-14 1.94725e-14 1.9472e-14 1.9472e-14 1.94714e-14 1.94713e-14 1.94705e-14 1.94705e-14 + 1.94691e-14 1.94691e-14 1.94666e-14 1.94666e-14 2.23e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 + 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94705e-14 + 1.94691e-14 1.94666e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 2.84688e-15 2.84688e-15 2.84686e-15 + 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94705e-14 1.94691e-14 1.94666e-14 2.23e-14 + 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 + 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94705e-14 1.94691e-14 1.94666e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 + 2.8466e-15 2.84676e-15 2.84684e-15 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 + 1.9472e-14 1.94713e-14 1.94705e-14 1.94691e-14 1.94666e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 + 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94704e-14 + 1.94691e-14 1.94666e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 2.84688e-15 2.84688e-15 2.84686e-15 + 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94704e-14 1.94691e-14 1.94666e-14 2.23e-14 + 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 + 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94704e-14 1.94691e-14 1.94667e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 + 2.8466e-15 2.84676e-15 2.84684e-15 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 + 1.9472e-14 1.94713e-14 1.94704e-14 1.94691e-14 1.94667e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 + 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94704e-14 + 1.94691e-14 1.94667e-14 2.23e-14 + </DataArray> + <DataArray type="Float32" Name="Kyy" NumberOfComponents="1" format="ascii"> + 2.23e-14 1.94726e-14 2.23e-14 1.94726e-14 1.94724e-14 1.94724e-14 2.8466e-15 2.8466e-15 2.84676e-15 2.84676e-15 2.84684e-15 2.84684e-15 + 2.84688e-15 2.84688e-15 2.84688e-15 2.84688e-15 2.84686e-15 2.84686e-15 2.84683e-15 2.84683e-15 1.94733e-14 1.94733e-14 1.94733e-14 1.94733e-14 + 1.94731e-14 1.94731e-14 1.94728e-14 1.94728e-14 1.94725e-14 1.94725e-14 1.9472e-14 1.9472e-14 1.94714e-14 1.94713e-14 1.94705e-14 1.94705e-14 + 1.94691e-14 1.94691e-14 1.94666e-14 1.94666e-14 2.23e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 + 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94705e-14 + 1.94691e-14 1.94666e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 2.84688e-15 2.84688e-15 2.84686e-15 + 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94705e-14 1.94691e-14 1.94666e-14 2.23e-14 + 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 + 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94705e-14 1.94691e-14 1.94666e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 + 2.8466e-15 2.84676e-15 2.84684e-15 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 + 1.9472e-14 1.94713e-14 1.94705e-14 1.94691e-14 1.94666e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 + 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94704e-14 + 1.94691e-14 1.94666e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 2.84688e-15 2.84688e-15 2.84686e-15 + 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94704e-14 1.94691e-14 1.94666e-14 2.23e-14 + 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 + 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94704e-14 1.94691e-14 1.94667e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 + 2.8466e-15 2.84676e-15 2.84684e-15 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 + 1.9472e-14 1.94713e-14 1.94704e-14 1.94691e-14 1.94667e-14 2.23e-14 2.23e-14 1.94726e-14 1.94724e-14 2.8466e-15 2.84676e-15 2.84684e-15 + 2.84688e-15 2.84688e-15 2.84686e-15 2.84683e-15 1.94733e-14 1.94733e-14 1.94731e-14 1.94728e-14 1.94725e-14 1.9472e-14 1.94713e-14 1.94704e-14 + 1.94691e-14 1.94667e-14 2.23e-14 + </DataArray> + <DataArray type="Float32" Name="X^liquid_H2O" NumberOfComponents="1" format="ascii"> + 0.998231 0.738753 0.998231 0.738753 0.738751 0.738752 0.738748 0.738748 0.738742 0.738742 0.738739 0.738739 + 0.738739 0.738739 0.738743 0.738743 0.738752 0.738752 0.738765 0.738766 0.738776 0.738776 0.73878 0.73878 + 0.738785 0.738785 0.738792 0.738792 0.738799 0.738799 0.738808 0.738808 0.738817 0.738817 0.738827 0.738827 + 0.738838 0.738838 0.738849 0.738849 0.599048 0.599048 0.998231 0.738753 0.738752 0.738748 0.738742 0.738739 + 0.738739 0.738743 0.738752 0.738766 0.738776 0.73878 0.738785 0.738792 0.738799 0.738808 0.738817 0.738827 + 0.738838 0.73885 0.599048 0.998231 0.738753 0.738752 0.738748 0.738742 0.738739 0.738739 0.738743 0.738752 + 0.738766 0.738776 0.73878 0.738786 0.738792 0.738799 0.738808 0.738817 0.738827 0.738838 0.73885 0.599048 + 0.998231 0.738753 0.738752 0.738748 0.738742 0.738739 0.738739 0.738743 0.738752 0.738766 0.738777 0.73878 + 0.738786 0.738792 0.738799 0.738808 0.738817 0.738827 0.738838 0.73885 0.599048 0.998231 0.738753 0.738752 + 0.738748 0.738742 0.738739 0.738739 0.738744 0.738752 0.738766 0.738777 0.738781 0.738786 0.738792 0.7388 + 0.738808 0.738817 0.738828 0.738838 0.73885 0.599048 0.998231 0.738753 0.738752 0.738748 0.738743 0.738739 + 0.738739 0.738744 0.738752 0.738766 0.738777 0.738781 0.738786 0.738792 0.7388 0.738808 0.738817 0.738828 + 0.738838 0.73885 0.599048 0.998231 0.738753 0.738752 0.738748 0.738743 0.738739 0.73874 0.738744 0.738752 + 0.738766 0.738777 0.738781 0.738786 0.738792 0.7388 0.738808 0.738818 0.738828 0.738838 0.73885 0.599048 + 0.998231 0.738753 0.738752 0.738748 0.738743 0.73874 0.73874 0.738744 0.738753 0.738766 0.738777 0.738781 + 0.738786 0.738792 0.7388 0.738808 0.738818 0.738828 0.738839 0.73885 0.599048 0.998231 0.738753 0.738752 + 0.738748 0.738743 0.73874 0.73874 0.738744 0.738753 0.738766 0.738777 0.738781 0.738786 0.738792 0.7388 + 0.738808 0.738818 0.738828 0.738839 0.73885 0.599048 0.998231 0.738753 0.738752 0.738748 0.738743 0.73874 + 0.73874 0.738744 0.738753 0.738766 0.738777 0.738781 0.738786 0.738793 0.7388 0.738809 0.738818 0.738828 + 0.738839 0.73885 0.599048 + </DataArray> + <DataArray type="Float32" Name="X^liquid_Air" NumberOfComponents="1" format="ascii"> + 0.00166878 0.00137516 0.00166878 0.00137505 0.00137646 0.00137635 0.00138077 0.00138067 0.00138696 0.00138685 0.00139055 0.00139043 + 0.00139045 0.00139033 0.00138583 0.00138572 0.00137611 0.001376 0.00136098 0.00136086 0.00134916 0.00134905 0.00134476 0.00134464 + 0.00133901 0.00133889 0.00133196 0.00133185 0.0013237 0.00132359 0.0013143 0.00131419 0.00130388 0.00130378 0.00129258 0.00129247 + 0.00128053 0.00128043 0.00126789 0.00126779 0.00111052 0.00111052 0.00166878 0.00137499 0.00137627 0.00138057 0.00138674 0.00139032 + 0.00139022 0.0013856 0.00137589 0.00136075 0.00134894 0.00134453 0.00133878 0.00133174 0.00132348 0.00131408 0.00130367 0.00129237 + 0.00128034 0.00126773 0.00111052 0.00166878 0.00137494 0.00137619 0.00138048 0.00138664 0.00139021 0.00139011 0.00138549 0.00137577 + 0.00136064 0.00134882 0.00134442 0.00133867 0.00133163 0.00132337 0.00131398 0.00130357 0.00129228 0.00128026 0.00126768 0.00111052 + 0.00166878 0.0013749 0.00137613 0.0013804 0.00138655 0.00139011 0.00139 0.00138538 0.00137566 0.00136052 0.00134871 0.00134431 + 0.00133856 0.00133152 0.00132326 0.00131387 0.00130347 0.00129219 0.00128018 0.00126763 0.00111052 0.00166878 0.00137486 0.00137607 + 0.00138032 0.00138645 0.00139 0.00138989 0.00138527 0.00137555 0.00136041 0.0013486 0.0013442 0.00133845 0.00133141 0.00132315 + 0.00131377 0.00130337 0.0012921 0.00128011 0.0012676 0.00111052 0.00166878 0.00137483 0.00137601 0.00138025 0.00138636 0.0013899 + 0.00138978 0.00138515 0.00137543 0.0013603 0.00134849 0.00134408 0.00133834 0.0013313 0.00132305 0.00131367 0.00130328 0.00129201 + 0.00128005 0.00126756 0.00111052 0.00166878 0.00137479 0.00137595 0.00138016 0.00138626 0.00138979 0.00138967 0.00138504 0.00137532 + 0.00136019 0.00134838 0.00134397 0.00133823 0.00133119 0.00132294 0.00131356 0.00130318 0.00129192 0.00127997 0.00126751 0.00111052 + 0.00166878 0.00137474 0.00137588 0.00138008 0.00138616 0.00138968 0.00138956 0.00138493 0.00137521 0.00136007 0.00134826 0.00134386 + 0.00133812 0.00133108 0.00132283 0.00131346 0.00130307 0.00129183 0.00127989 0.00126746 0.00111052 0.00166878 0.00137467 0.00137579 + 0.00137998 0.00138605 0.00138957 0.00138945 0.00138482 0.0013751 0.00135996 0.00134815 0.00134375 0.00133801 0.00133097 0.00132272 + 0.00131335 0.00130297 0.00129173 0.0012798 0.0012674 0.00111052 0.00166878 0.00137457 0.00137568 0.00137987 0.00138594 0.00138946 + 0.00138933 0.0013847 0.00137498 0.00135985 0.00134804 0.00134364 0.00133789 0.00133086 0.00132261 0.00131324 0.00130286 0.00129163 + 0.0012797 0.0012673 0.00111052 + </DataArray> + <DataArray type="Float32" Name="X^liquid_NaCl" NumberOfComponents="1" format="ascii"> + 9.99407e-05 0.259872 9.99407e-05 0.259872 0.259872 0.259872 0.259872 0.259872 0.259871 0.259871 0.259871 0.259871 + 0.259871 0.259871 0.259871 0.259871 0.259872 0.259872 0.259874 0.259874 0.259875 0.259875 0.259875 0.259875 + 0.259876 0.259876 0.259876 0.259876 0.259877 0.259877 0.259878 0.259878 0.259879 0.259879 0.25988 0.25988 + 0.259881 0.259881 0.259883 0.259883 0.399841 0.399841 9.99407e-05 0.259872 0.259872 0.259872 0.259871 0.259871 + 0.259871 0.259871 0.259872 0.259874 0.259875 0.259875 0.259876 0.259876 0.259877 0.259878 0.259879 0.25988 + 0.259881 0.259883 0.399841 9.99407e-05 0.259872 0.259872 0.259872 0.259871 0.259871 0.259871 0.259871 0.259872 + 0.259874 0.259875 0.259875 0.259876 0.259876 0.259877 0.259878 0.259879 0.25988 0.259881 0.259883 0.399841 + 9.99407e-05 0.259872 0.259872 0.259872 0.259871 0.259871 0.259871 0.259871 0.259872 0.259874 0.259875 0.259875 + 0.259876 0.259876 0.259877 0.259878 0.259879 0.25988 0.259881 0.259883 0.399841 9.99407e-05 0.259872 0.259872 + 0.259872 0.259871 0.259871 0.259871 0.259871 0.259872 0.259874 0.259875 0.259875 0.259876 0.259876 0.259877 + 0.259878 0.259879 0.25988 0.259882 0.259883 0.399841 9.99407e-05 0.259872 0.259872 0.259872 0.259871 0.259871 + 0.259871 0.259871 0.259872 0.259874 0.259875 0.259875 0.259876 0.259876 0.259877 0.259878 0.259879 0.25988 + 0.259882 0.259883 0.399841 9.99407e-05 0.259872 0.259872 0.259872 0.259871 0.259871 0.259871 0.259871 0.259872 + 0.259874 0.259875 0.259875 0.259876 0.259877 0.259877 0.259878 0.259879 0.25988 0.259882 0.259883 0.399841 + 9.99407e-05 0.259872 0.259872 0.259872 0.259871 0.259871 0.259871 0.259871 0.259872 0.259874 0.259875 0.259875 + 0.259876 0.259877 0.259877 0.259878 0.259879 0.25988 0.259882 0.259883 0.399841 9.99407e-05 0.259872 0.259872 + 0.259872 0.259871 0.259871 0.259871 0.259871 0.259872 0.259874 0.259875 0.259875 0.259876 0.259877 0.259877 + 0.259878 0.259879 0.25988 0.259882 0.259883 0.399841 9.99407e-05 0.259872 0.259872 0.259872 0.259871 0.259871 + 0.259871 0.259871 0.259872 0.259874 0.259875 0.259875 0.259876 0.259877 0.259877 0.259878 0.259879 0.25988 + 0.259882 0.259883 0.399841 + </DataArray> + <DataArray type="Float32" Name="X^gas_H2O" NumberOfComponents="1" format="ascii"> + 0.0218083 0.0196292 0.0218083 0.0196307 0.019611 0.0196125 0.0195508 0.0195523 0.0194651 0.0194667 0.0194158 0.0194174 + 0.0194172 0.0194188 0.0194807 0.0194823 0.0196158 0.0196174 0.01983 0.0198317 0.0200005 0.0200021 0.0200648 0.0200664 + 0.0201494 0.020151 0.0202539 0.0202556 0.020378 0.0203797 0.0205209 0.0205226 0.0206818 0.0206834 0.0208592 0.0208608 + 0.0210517 0.0210533 0.0212573 0.0212589 0.0197087 0.0197087 0.0218083 0.0196316 0.0196137 0.0195537 0.0194681 0.0194189 + 0.0194203 0.0194839 0.019619 0.0198333 0.0200038 0.0200681 0.0201527 0.0202572 0.0203813 0.0205243 0.020685 0.0208624 + 0.0210547 0.02126 0.0197087 0.0218083 0.0196323 0.0196147 0.0195549 0.0194695 0.0194204 0.0194218 0.0194854 0.0196206 + 0.0198349 0.0200054 0.0200697 0.0201543 0.0202589 0.020383 0.0205259 0.0206866 0.0208639 0.021056 0.0212608 0.0197087 + 0.0218083 0.0196328 0.0196156 0.019556 0.0194709 0.0194219 0.0194233 0.019487 0.0196222 0.0198365 0.020007 0.0200714 + 0.0201559 0.0202605 0.0203846 0.0205275 0.0206882 0.0208653 0.0210572 0.0212615 0.0197087 0.0218083 0.0196333 0.0196164 + 0.0195571 0.0194722 0.0194233 0.0194249 0.0194885 0.0196237 0.0198381 0.0200086 0.020073 0.0201576 0.0202621 0.0203862 + 0.0205291 0.0206897 0.0208667 0.0210583 0.0212622 0.0197087 0.0218083 0.0196338 0.0196172 0.0195582 0.0194735 0.0194247 + 0.0194264 0.0194901 0.0196253 0.0198397 0.0200103 0.0200746 0.0201592 0.0202638 0.0203878 0.0205307 0.0206912 0.0208681 + 0.0210594 0.0212628 0.0197087 0.0218083 0.0196344 0.0196181 0.0195593 0.0194748 0.0194262 0.0194279 0.0194916 0.0196269 + 0.0198413 0.0200119 0.0200763 0.0201609 0.0202654 0.0203895 0.0205323 0.0206928 0.0208695 0.0210606 0.0212635 0.0197087 + 0.0218083 0.0196351 0.0196192 0.0195605 0.0194762 0.0194277 0.0194294 0.0194932 0.0196285 0.0198429 0.0200135 0.0200779 + 0.0201625 0.0202671 0.0203911 0.0205339 0.0206944 0.020871 0.0210619 0.0212643 0.0197087 0.0218083 0.019636 0.0196204 + 0.0195618 0.0194777 0.0194292 0.0194309 0.0194948 0.0196301 0.0198446 0.0200152 0.0200795 0.0201641 0.0202687 0.0203928 + 0.0205355 0.020696 0.0208726 0.0210633 0.0212654 0.0197087 0.0218083 0.0196374 0.0196219 0.0195634 0.0194792 0.0194308 + 0.0194325 0.0194963 0.0196317 0.0198462 0.0200168 0.0200812 0.0201658 0.0202704 0.0203944 0.0205372 0.0206977 0.0208742 + 0.0210649 0.021267 0.0197087 + </DataArray> + <DataArray type="Float32" Name="X^gas_Air" NumberOfComponents="1" format="ascii"> + 0.978192 0.980371 0.978192 0.980369 0.980389 0.980388 0.980449 0.980448 0.980535 0.980533 0.980584 0.980583 + 0.980583 0.980581 0.980519 0.980518 0.980384 0.980383 0.98017 0.980168 0.979999 0.979998 0.979935 0.979934 + 0.979851 0.979849 0.979746 0.979744 0.979622 0.97962 0.979479 0.979477 0.979318 0.979317 0.979141 0.979139 + 0.978948 0.978947 0.978743 0.978741 0.980291 0.980291 0.978192 0.980368 0.980386 0.980446 0.980532 0.980581 + 0.98058 0.980516 0.980381 0.980167 0.979996 0.979932 0.979847 0.979743 0.979619 0.979476 0.979315 0.979138 + 0.978945 0.97874 0.980291 0.978192 0.980368 0.980385 0.980445 0.980531 0.98058 0.980578 0.980515 0.980379 + 0.980165 0.979995 0.97993 0.979846 0.979741 0.979617 0.979474 0.979313 0.979136 0.978944 0.978739 0.980291 + 0.978192 0.980367 0.980384 0.980444 0.980529 0.980578 0.980577 0.980513 0.980378 0.980164 0.979993 0.979929 + 0.979844 0.979739 0.979615 0.979473 0.979312 0.979135 0.978943 0.978738 0.980291 0.978192 0.980367 0.980384 + 0.980443 0.980528 0.980577 0.980575 0.980511 0.980376 0.980162 0.979991 0.979927 0.979842 0.979738 0.979614 + 0.979471 0.97931 0.979133 0.978942 0.978738 0.980291 0.978192 0.980366 0.980383 0.980442 0.980527 0.980575 + 0.980574 0.98051 0.980375 0.98016 0.97999 0.979925 0.979841 0.979736 0.979612 0.979469 0.979309 0.979132 + 0.978941 0.978737 0.980291 0.978192 0.980366 0.980382 0.980441 0.980525 0.980574 0.980572 0.980508 0.980373 + 0.980159 0.979988 0.979924 0.979839 0.979735 0.979611 0.979468 0.979307 0.97913 0.978939 0.978736 0.980291 + 0.978192 0.980365 0.980381 0.980439 0.980524 0.980572 0.980571 0.980507 0.980371 0.980157 0.979986 0.979922 + 0.979837 0.979733 0.979609 0.979466 0.979306 0.979129 0.978938 0.978736 0.980291 0.978192 0.980364 0.98038 + 0.980438 0.980522 0.980571 0.980569 0.980505 0.98037 0.980155 0.979985 0.97992 0.979836 0.979731 0.979607 + 0.979464 0.979304 0.979127 0.978937 0.978735 0.980291 0.978192 0.980363 0.980378 0.980437 0.980521 0.980569 + 0.980567 0.980504 0.980368 0.980154 0.979983 0.979919 0.979834 0.97973 0.979606 0.979463 0.979302 0.979126 + 0.978935 0.978733 0.980291 + </DataArray> + <DataArray type="Float32" Name="X^gas_NaCl" NumberOfComponents="1" format="ascii"> + 5.25317e-12 1.66131e-08 5.25317e-12 1.66144e-08 1.65977e-08 1.6599e-08 1.65468e-08 1.65481e-08 1.64744e-08 1.64757e-08 1.64328e-08 1.64341e-08 + 1.64339e-08 1.64352e-08 1.64876e-08 1.64889e-08 1.66018e-08 1.66032e-08 1.67829e-08 1.67843e-08 1.6927e-08 1.69284e-08 1.69814e-08 1.69828e-08 + 1.70528e-08 1.70542e-08 1.71412e-08 1.71426e-08 1.72461e-08 1.72475e-08 1.7367e-08 1.73684e-08 1.75029e-08 1.75043e-08 1.76529e-08 1.76543e-08 + 1.78156e-08 1.7817e-08 1.79895e-08 1.79908e-08 3.16498e-08 3.16498e-08 5.25317e-12 1.66152e-08 1.66e-08 1.65493e-08 1.6477e-08 1.64354e-08 + 1.64365e-08 1.64903e-08 1.66045e-08 1.67856e-08 1.69298e-08 1.69841e-08 1.70556e-08 1.7144e-08 1.72489e-08 1.73698e-08 1.75057e-08 1.76556e-08 + 1.78182e-08 1.79917e-08 3.16498e-08 5.25317e-12 1.66157e-08 1.66009e-08 1.65503e-08 1.64781e-08 1.64366e-08 1.64378e-08 1.64916e-08 1.66058e-08 + 1.6787e-08 1.69311e-08 1.69855e-08 1.7057e-08 1.71454e-08 1.72503e-08 1.73711e-08 1.7507e-08 1.76569e-08 1.78193e-08 1.79924e-08 3.16498e-08 + 5.25317e-12 1.66162e-08 1.66016e-08 1.65512e-08 1.64793e-08 1.64379e-08 1.64391e-08 1.64929e-08 1.66072e-08 1.67884e-08 1.69325e-08 1.69869e-08 + 1.70584e-08 1.71468e-08 1.72517e-08 1.73725e-08 1.75083e-08 1.76581e-08 1.78203e-08 1.7993e-08 3.16498e-08 5.25317e-12 1.66166e-08 1.66023e-08 + 1.65522e-08 1.64804e-08 1.64391e-08 1.64404e-08 1.64942e-08 1.66085e-08 1.67897e-08 1.69339e-08 1.69883e-08 1.70598e-08 1.71482e-08 1.72531e-08 + 1.73738e-08 1.75096e-08 1.76592e-08 1.78212e-08 1.79936e-08 3.16498e-08 5.25317e-12 1.6617e-08 1.6603e-08 1.65531e-08 1.64815e-08 1.64403e-08 + 1.64416e-08 1.64955e-08 1.66098e-08 1.67911e-08 1.69353e-08 1.69897e-08 1.70612e-08 1.71496e-08 1.72544e-08 1.73752e-08 1.75109e-08 1.76604e-08 + 1.78222e-08 1.79941e-08 3.16498e-08 5.25317e-12 1.66175e-08 1.66038e-08 1.6554e-08 1.64826e-08 1.64415e-08 1.64429e-08 1.64968e-08 1.66112e-08 + 1.67924e-08 1.69366e-08 1.69911e-08 1.70626e-08 1.71509e-08 1.72558e-08 1.73765e-08 1.75122e-08 1.76616e-08 1.78231e-08 1.79947e-08 3.16498e-08 + 5.25317e-12 1.66181e-08 1.66046e-08 1.6555e-08 1.64838e-08 1.64428e-08 1.64442e-08 1.64981e-08 1.66125e-08 1.67938e-08 1.6938e-08 1.69924e-08 + 1.70639e-08 1.71523e-08 1.72572e-08 1.73779e-08 1.75136e-08 1.76629e-08 1.78242e-08 1.79954e-08 3.16498e-08 5.25317e-12 1.66189e-08 1.66057e-08 + 1.65562e-08 1.6485e-08 1.6444e-08 1.64455e-08 1.64995e-08 1.66139e-08 1.67952e-08 1.69394e-08 1.69938e-08 1.70653e-08 1.71537e-08 1.72586e-08 + 1.73793e-08 1.75149e-08 1.76642e-08 1.78254e-08 1.79963e-08 3.16498e-08 5.25317e-12 1.66201e-08 1.66069e-08 1.65575e-08 1.64863e-08 1.64454e-08 + 1.64469e-08 1.65008e-08 1.66152e-08 1.67965e-08 1.69408e-08 1.69952e-08 1.70667e-08 1.71551e-08 1.726e-08 1.73807e-08 1.75163e-08 1.76656e-08 + 1.78268e-08 1.79976e-08 3.16498e-08 + </DataArray> + <DataArray type="Float32" Name="m^w_H2O" NumberOfComponents="1" format="ascii"> + 51419.5 44458.8 51419.5 44458.8 44458.9 44458.9 44459.3 44459.3 44459.9 44459.9 44460.2 44460.2 + 44460.2 44460.2 44459.8 44459.8 44458.9 44458.9 44457.6 44457.6 44456.5 44456.5 44456.1 44456.1 + 44455.6 44455.6 44455 44455 44454.3 44454.3 44453.5 44453.4 44452.5 44452.5 44451.5 44451.5 + 44450.5 44450.5 44449.3 44449.3 38856.3 38856.3 51419.5 44458.8 44458.9 44459.3 44459.9 44460.2 + 44460.2 44459.8 44458.9 44457.6 44456.5 44456.1 44455.6 44455 44454.3 44453.4 44452.5 44451.5 + 44450.4 44449.3 38856.3 51419.5 44458.8 44458.9 44459.3 44459.8 44460.2 44460.2 44459.7 44458.9 + 44457.6 44456.5 44456.1 44455.6 44455 44454.3 44453.4 44452.5 44451.5 44450.4 44449.3 38856.3 + 51419.5 44458.8 44458.9 44459.3 44459.8 44460.2 44460.1 44459.7 44458.9 44457.5 44456.5 44456.1 + 44455.6 44455 44454.2 44453.4 44452.5 44451.5 44450.4 44449.3 38856.3 51419.5 44458.8 44458.9 + 44459.3 44459.8 44460.1 44460.1 44459.7 44458.9 44457.5 44456.5 44456.1 44455.6 44455 44454.2 + 44453.4 44452.5 44451.5 44450.4 44449.3 38856.3 51419.5 44458.8 44458.9 44459.3 44459.8 44460.1 + 44460.1 44459.7 44458.9 44457.5 44456.5 44456.1 44455.6 44455 44454.2 44453.4 44452.5 44451.5 + 44450.4 44449.3 38856.3 51419.5 44458.8 44458.9 44459.3 44459.8 44460.1 44460.1 44459.7 44458.8 + 44457.5 44456.5 44456.1 44455.6 44454.9 44454.2 44453.4 44452.5 44451.5 44450.4 44449.3 38856.3 + 51419.5 44458.8 44458.9 44459.3 44459.8 44460.1 44460.1 44459.7 44458.8 44457.5 44456.5 44456.1 + 44455.6 44454.9 44454.2 44453.4 44452.5 44451.5 44450.4 44449.3 38856.3 51419.5 44458.8 44458.9 + 44459.3 44459.8 44460.1 44460.1 44459.7 44458.8 44457.5 44456.4 44456.1 44455.6 44454.9 44454.2 + 44453.4 44452.4 44451.5 44450.4 44449.3 38856.3 51419.5 44458.8 44458.9 44459.2 44459.8 44460.1 + 44460.1 44459.7 44458.8 44457.5 44456.4 44456.1 44455.5 44454.9 44454.2 44453.4 44452.4 44451.4 + 44450.4 44449.3 38856.3 + </DataArray> + <DataArray type="Float32" Name="m^w_Air" NumberOfComponents="1" format="ascii"> + 53.4731 51.4815 53.4731 51.4776 51.5304 51.5265 51.6927 51.6886 51.9255 51.9212 52.0602 52.0559 + 52.0565 52.0522 51.8829 51.8786 51.5175 51.5132 50.9483 50.944 50.5041 50.4999 50.3385 50.3343 + 50.1223 50.1181 49.8576 49.8534 49.5469 49.5427 49.1937 49.1896 48.8021 48.7981 48.3772 48.3732 + 47.9243 47.9205 47.4494 47.4458 44.809 44.809 53.4731 51.4751 51.5232 51.685 51.9172 52.0517 + 52.048 51.8743 51.5089 50.9398 50.4957 50.33 50.1139 49.8492 49.5386 49.1855 48.7942 48.3695 + 47.9172 47.4433 44.809 53.4731 51.4733 51.5204 51.6817 51.9134 52.0477 52.0438 51.8701 51.5047 + 50.9355 50.4915 50.3258 50.1098 49.8451 49.5346 49.1816 48.7904 48.366 47.9142 47.4414 44.809 + 53.4731 51.4718 51.518 51.6786 51.9098 52.0437 52.0396 51.8658 51.5004 50.9313 50.4872 50.3217 + 50.1056 49.841 49.5305 49.1776 48.7866 48.3626 47.9114 47.4398 44.809 53.4731 51.4705 51.5159 + 51.6757 51.9062 52.0398 52.0355 51.8616 51.4962 50.9271 50.483 50.3175 50.1014 49.8369 49.5265 + 49.1737 48.7829 48.3593 47.9088 47.4384 44.809 53.4731 51.4692 51.5137 51.6728 51.9026 52.0358 + 52.0314 51.8574 51.492 50.9229 50.4788 50.3133 50.0973 49.8327 49.5224 49.1698 48.7792 48.356 + 47.9062 47.4369 44.809 53.4731 51.4677 51.5113 51.6698 51.899 52.0318 52.0272 51.8532 51.4877 + 50.9186 50.4746 50.3091 50.0931 49.8286 49.5184 49.1659 48.7755 48.3526 47.9035 47.4353 44.809 + 53.4731 51.4659 51.5085 51.6665 51.8952 52.0278 52.0231 51.849 51.4835 50.9144 50.4704 50.3049 + 50.0889 49.8245 49.5143 49.1619 48.7717 48.3491 47.9005 47.4334 44.809 53.4731 51.4633 51.5052 + 51.6628 51.8912 52.0236 52.0188 51.8447 51.4792 50.9102 50.4662 50.3007 50.0847 49.8203 49.5102 + 49.1579 48.7678 48.3454 47.8971 47.431 44.809 53.4731 51.4594 51.5013 51.6587 51.887 52.0193 + 52.0145 51.8404 51.4749 50.9059 50.4619 50.2964 50.0805 49.8162 49.5061 49.1538 48.7638 48.3414 + 47.8934 47.4273 44.809 + </DataArray> + <DataArray type="Float32" Name="m^w_NaCl" NumberOfComponents="1" format="ascii"> + 1.58689 4820.88 1.58689 4820.88 4820.9 4820.9 4820.96 4820.96 4821.04 4821.04 4821.09 4821.09 + 4821.09 4821.09 4821.03 4821.02 4820.89 4820.89 4820.69 4820.69 4820.53 4820.52 4820.47 4820.46 + 4820.39 4820.39 4820.29 4820.29 4820.18 4820.18 4820.05 4820.05 4819.91 4819.91 4819.75 4819.75 + 4819.59 4819.59 4819.42 4819.41 7994.57 7994.57 1.58689 4820.88 4820.9 4820.95 4821.04 4821.09 + 4821.09 4821.02 4820.89 4820.68 4820.52 4820.46 4820.38 4820.29 4820.18 4820.05 4819.91 4819.75 + 4819.59 4819.41 7994.57 1.58689 4820.88 4820.89 4820.95 4821.04 4821.09 4821.08 4821.02 4820.89 + 4820.68 4820.52 4820.46 4820.38 4820.29 4820.17 4820.05 4819.9 4819.75 4819.58 4819.41 7994.57 + 1.58689 4820.88 4820.89 4820.95 4821.04 4821.08 4821.08 4821.02 4820.89 4820.68 4820.52 4820.46 + 4820.38 4820.29 4820.17 4820.04 4819.9 4819.75 4819.58 4819.41 7994.57 1.58689 4820.88 4820.89 + 4820.95 4821.03 4821.08 4821.08 4821.02 4820.89 4820.68 4820.52 4820.46 4820.38 4820.28 4820.17 + 4820.04 4819.9 4819.75 4819.58 4819.41 7994.57 1.58689 4820.88 4820.89 4820.95 4821.03 4821.08 + 4821.08 4821.02 4820.88 4820.68 4820.52 4820.46 4820.38 4820.28 4820.17 4820.04 4819.9 4819.75 + 4819.58 4819.41 7994.57 1.58689 4820.88 4820.89 4820.95 4821.03 4821.08 4821.08 4821.02 4820.88 + 4820.68 4820.52 4820.46 4820.38 4820.28 4820.17 4820.04 4819.9 4819.74 4819.58 4819.41 7994.57 + 1.58689 4820.88 4820.89 4820.95 4821.03 4821.08 4821.08 4821.01 4820.88 4820.68 4820.51 4820.45 + 4820.38 4820.28 4820.17 4820.04 4819.9 4819.74 4819.58 4819.41 7994.57 1.58689 4820.87 4820.89 + 4820.95 4821.03 4821.08 4821.08 4821.01 4820.88 4820.67 4820.51 4820.45 4820.37 4820.28 4820.17 + 4820.04 4819.9 4819.74 4819.58 4819.41 7994.57 1.58689 4820.87 4820.89 4820.94 4821.03 4821.08 + 4821.07 4821.01 4820.88 4820.67 4820.51 4820.45 4820.37 4820.28 4820.16 4820.04 4819.89 4819.74 + 4819.58 4819.41 7994.57 + </DataArray> + <DataArray type="Float32" Name="velocityW" NumberOfComponents="3" format="ascii"> + -6.76226e-10 -8.65975e-07 0 -6.5561e-10 -1.13465e-09 0 -6.38084e-10 -8.69741e-07 0 -6.34516e-10 -1.14902e-09 0 + -1.36654e-09 -1.11996e-09 0 -1.36256e-09 -1.1291e-09 0 -2.55855e-09 -1.11435e-09 0 -2.55432e-09 -1.12005e-09 0 + -2.38483e-09 -1.11492e-09 0 -2.38127e-09 -1.11815e-09 0 -8.51472e-10 -1.11494e-09 0 -8.50033e-10 -1.11674e-09 0 + 1.15284e-09 -1.11502e-09 0 1.15191e-09 -1.11606e-09 0 3.50557e-09 -1.11516e-09 0 3.50205e-09 -1.11581e-09 0 + 6.07831e-09 -1.11548e-09 0 6.07203e-09 -1.1159e-09 0 6.5892e-09 -1.11596e-09 0 6.58237e-09 -1.1162e-09 0 + 3.96721e-09 -1.11642e-09 0 3.96019e-09 -1.1166e-09 0 2.48862e-09 -1.11684e-09 0 2.47928e-09 -1.11701e-09 0 + 3.1338e-09 -1.11685e-09 0 3.12203e-09 -1.11707e-09 0 3.74801e-09 -1.11679e-09 0 3.73389e-09 -1.11712e-09 0 + 4.32104e-09 -1.11665e-09 0 4.30468e-09 -1.11718e-09 0 4.84233e-09 -1.11643e-09 0 4.82386e-09 -1.11736e-09 0 + 5.30135e-09 -1.11613e-09 0 5.28088e-09 -1.11783e-09 0 5.68801e-09 -1.11585e-09 0 5.66546e-09 -1.119e-09 0 + 5.9929e-09 -1.11554e-09 0 5.96847e-09 -1.12188e-09 0 6.20023e-09 -1.12182e-09 0 6.15961e-09 -1.13384e-09 0 + 6.2767e-09 0 0 6.22065e-09 0 0 -6.0428e-10 -8.75407e-07 0 -6.13014e-10 -1.17101e-09 0 + -1.35569e-09 -1.14537e-09 0 -2.54992e-09 -1.13052e-09 0 -2.37804e-09 -1.1241e-09 0 -8.48392e-10 -1.12004e-09 0 + 1.15265e-09 -1.11798e-09 0 3.50222e-09 -1.11698e-09 0 6.07181e-09 -1.11663e-09 0 6.58203e-09 -1.11662e-09 0 + 3.95993e-09 -1.11691e-09 0 2.47903e-09 -1.11731e-09 0 3.12166e-09 -1.11745e-09 0 3.73335e-09 -1.11769e-09 0 + 4.30389e-09 -1.11814e-09 0 4.82263e-09 -1.11905e-09 0 5.27884e-09 -1.12093e-09 0 5.66187e-09 -1.12477e-09 0 + 5.96083e-09 -1.13302e-09 0 6.13817e-09 -1.15197e-09 0 6.18846e-09 0 0 -5.79997e-10 -8.78284e-07 0 + -5.95037e-10 -1.1827e-09 0 -1.34641e-09 -1.15712e-09 0 -2.54328e-09 -1.13868e-09 0 -2.37317e-09 -1.12877e-09 0 + -8.45882e-10 -1.12263e-09 0 1.15384e-09 -1.11947e-09 0 3.50264e-09 -1.11788e-09 0 6.07176e-09 -1.11718e-09 0 + 6.58179e-09 -1.11693e-09 0 3.9597e-09 -1.11711e-09 0 2.47875e-09 -1.11751e-09 0 3.12123e-09 -1.11772e-09 0 + 3.73269e-09 -1.11812e-09 0 4.30286e-09 -1.11887e-09 0 4.82093e-09 -1.12037e-09 0 5.27593e-09 -1.12335e-09 0 + 5.65662e-09 -1.12925e-09 0 5.95045e-09 -1.14087e-09 0 6.11905e-09 -1.16119e-09 0 6.16414e-09 0 0 + -5.60545e-10 -8.79684e-07 0 -5.79478e-10 -1.18857e-09 0 -1.33641e-09 -1.16402e-09 0 -2.53515e-09 -1.1438e-09 0 + -2.36712e-09 -1.13175e-09 0 -8.42742e-10 -1.12429e-09 0 1.15536e-09 -1.12041e-09 0 3.50324e-09 -1.11844e-09 0 + 6.07182e-09 -1.11752e-09 0 6.58162e-09 -1.11713e-09 0 3.95949e-09 -1.11725e-09 0 2.47846e-09 -1.11765e-09 0 + 3.12076e-09 -1.1179e-09 0 3.73194e-09 -1.11839e-09 0 4.30165e-09 -1.11934e-09 0 4.8189e-09 -1.12121e-09 0 + 5.27239e-09 -1.1249e-09 0 5.65026e-09 -1.13206e-09 0 5.93903e-09 -1.14536e-09 0 6.10148e-09 -1.16565e-09 0 + 6.14366e-09 0 0 -5.43167e-10 -8.80108e-07 0 -5.65117e-10 -1.19037e-09 0 -1.32624e-09 -1.16628e-09 0 + -2.5263e-09 -1.14554e-09 0 -2.36047e-09 -1.13278e-09 0 -8.39272e-10 -1.12486e-09 0 1.15707e-09 -1.12074e-09 0 + 3.50394e-09 -1.11864e-09 0 6.07195e-09 -1.11765e-09 0 6.58148e-09 -1.1172e-09 0 3.9593e-09 -1.1173e-09 0 + 2.47816e-09 -1.1177e-09 0 3.12026e-09 -1.11796e-09 0 3.73115e-09 -1.11849e-09 0 4.30035e-09 -1.1195e-09 0 + 4.8167e-09 -1.1215e-09 0 5.26852e-09 -1.12543e-09 0 5.64338e-09 -1.13302e-09 0 5.92727e-09 -1.14682e-09 0 + 6.08467e-09 -1.167e-09 0 6.12477e-09 0 0 -5.25791e-10 -8.79686e-07 0 -5.50758e-10 -1.18858e-09 0 + -1.31607e-09 -1.16403e-09 0 -2.51745e-09 -1.14381e-09 0 -2.35382e-09 -1.13177e-09 0 -8.35803e-10 -1.12431e-09 0 + 1.15877e-09 -1.12043e-09 0 3.50464e-09 -1.11846e-09 0 6.07207e-09 -1.11754e-09 0 6.58134e-09 -1.11714e-09 0 + 3.9591e-09 -1.11726e-09 0 2.47787e-09 -1.11766e-09 0 3.11976e-09 -1.11791e-09 0 3.73035e-09 -1.1184e-09 0 + 4.29905e-09 -1.11935e-09 0 4.81449e-09 -1.12122e-09 0 5.26466e-09 -1.12491e-09 0 5.6365e-09 -1.13208e-09 0 + 5.9155e-09 -1.14539e-09 0 6.06787e-09 -1.16568e-09 0 6.10588e-09 0 0 -5.06344e-10 -8.78287e-07 0 + -5.35202e-10 -1.18272e-09 0 -1.30607e-09 -1.15714e-09 0 -2.50931e-09 -1.13871e-09 0 -2.34777e-09 -1.1288e-09 0 + -8.32664e-10 -1.12266e-09 0 1.1603e-09 -1.11949e-09 0 3.50525e-09 -1.1179e-09 0 6.07213e-09 -1.11721e-09 0 + 6.58117e-09 -1.11696e-09 0 3.95889e-09 -1.11714e-09 0 2.47758e-09 -1.11754e-09 0 3.11929e-09 -1.11775e-09 0 + 3.7296e-09 -1.11814e-09 0 4.29784e-09 -1.1189e-09 0 4.81246e-09 -1.12039e-09 0 5.26112e-09 -1.12338e-09 0 + 5.63015e-09 -1.12929e-09 0 5.90408e-09 -1.14091e-09 0 6.05031e-09 -1.16126e-09 0 6.0854e-09 0 0 + -4.82071e-10 -8.75413e-07 0 -5.17232e-10 -1.17104e-09 0 -1.29679e-09 -1.1454e-09 0 -2.50267e-09 -1.13056e-09 0 + -2.3429e-09 -1.12414e-09 0 -8.30155e-10 -1.12009e-09 0 1.16149e-09 -1.11802e-09 0 3.50567e-09 -1.11702e-09 0 + 6.07208e-09 -1.11668e-09 0 6.58093e-09 -1.11666e-09 0 3.95866e-09 -1.11695e-09 0 2.4773e-09 -1.11735e-09 0 + 3.11886e-09 -1.11749e-09 0 3.72895e-09 -1.11773e-09 0 4.2968e-09 -1.11818e-09 0 4.81076e-09 -1.11909e-09 0 + 5.2582e-09 -1.12097e-09 0 5.62489e-09 -1.12482e-09 0 5.89372e-09 -1.13308e-09 0 6.03119e-09 -1.15207e-09 0 + 6.06109e-09 0 0 -4.48283e-10 -8.6975e-07 0 -4.95739e-10 -1.14697e-09 0 -1.28992e-09 -1.12708e-09 0 + -2.49828e-09 -1.11955e-09 0 -2.33967e-09 -1.11766e-09 0 -8.28516e-10 -1.11625e-09 0 1.16222e-09 -1.11557e-09 0 + 3.50583e-09 -1.11532e-09 0 6.07186e-09 -1.1154e-09 0 6.58058e-09 -1.1157e-09 0 3.9584e-09 -1.11461e-09 0 + 2.47704e-09 -1.11501e-09 0 3.11848e-09 -1.11507e-09 0 3.7284e-09 -1.11511e-09 0 4.29599e-09 -1.11518e-09 0 + 4.80951e-09 -1.11536e-09 0 5.25614e-09 -1.11583e-09 0 5.62128e-09 -1.117e-09 0 5.88605e-09 -1.1199e-09 0 + 6.00974e-09 -1.1319e-09 0 6.0289e-09 0 0 -4.11138e-10 -8.65986e-07 0 -4.75321e-10 -1.13051e-09 0 + -1.28616e-09 -1.11588e-09 0 -2.49411e-09 -1.11331e-09 0 -2.33616e-09 -1.11388e-09 0 -8.27102e-10 -1.11391e-09 0 + 1.16129e-09 -1.11398e-09 0 3.50232e-09 -1.11413e-09 0 6.06559e-09 -1.11445e-09 0 6.57377e-09 -1.11492e-09 0 + 3.9514e-09 -1.11238e-09 0 2.46777e-09 -1.1128e-09 0 3.10679e-09 -1.11281e-09 0 3.71438e-09 -1.11274e-09 0 + 4.27977e-09 -1.1126e-09 0 4.79121e-09 -1.11238e-09 0 5.23589e-09 -1.11208e-09 0 5.59904e-09 -1.1118e-09 0 + 5.86208e-09 -1.11151e-09 0 5.96995e-09 -1.11782e-09 0 5.97394e-09 0 0 + </DataArray> + <DataArray type="Float32" Name="velocityN" NumberOfComponents="3" format="ascii"> + -3.53918e-06 -3.17984e-10 0 -3.35263e-06 -1.16006e-07 0 -3.36292e-06 -3.34353e-10 0 -3.26113e-06 -1.87754e-07 0 + -6.841e-06 -4.5747e-08 0 -6.83382e-06 -9.14004e-08 0 -1.27945e-05 -2.93474e-08 0 -1.27879e-05 -5.78659e-08 0 + -1.18986e-05 -1.57544e-08 0 -1.18944e-05 -3.18558e-08 0 -4.24317e-06 -8.12075e-09 0 -4.24082e-06 -1.70297e-08 0 + 5.74005e-06 -4.14902e-09 0 5.74199e-06 -9.31497e-09 0 1.74514e-05 -2.02596e-09 0 1.74537e-05 -5.19542e-09 0 + 3.02601e-05 -8.21853e-10 0 3.02632e-05 -2.8263e-09 0 3.28125e-05 2.69019e-10 0 3.28157e-05 -8.41196e-10 0 + 1.97452e-05 1.32372e-09 0 1.97493e-05 5.66159e-10 0 1.23601e-05 6.96018e-10 0 1.23661e-05 -7.1873e-12 0 + 1.5569e-05 4.0335e-10 0 1.55765e-05 -5.36492e-10 0 1.86319e-05 -1.61199e-10 0 1.86407e-05 -1.62258e-09 0 + 2.14992e-05 -1.26888e-09 0 2.15091e-05 -3.76221e-09 0 2.41219e-05 -3.39621e-09 0 2.41324e-05 -7.88301e-09 0 + 2.64528e-05 -7.46043e-09 0 2.64631e-05 -1.57904e-08 0 2.84502e-05 -1.55568e-08 0 2.84585e-05 -3.12476e-08 0 + 3.00849e-05 -3.12965e-08 0 3.00903e-05 -6.31395e-08 0 3.04107e-05 -1.01424e-07 0 3.03374e-05 -1.62547e-07 0 + 3.00126e-05 -6.4916e-07 0 2.98616e-05 -6.80824e-07 0 -3.19376e-06 -3.5899e-10 0 -3.15353e-06 -2.97637e-07 0 + -6.79938e-06 -1.72658e-07 0 -1.27659e-05 -1.10324e-07 0 -1.18782e-05 -6.15119e-08 0 -4.23264e-06 -3.34326e-08 0 + 5.74565e-06 -1.8781e-08 0 1.74546e-05 -1.09547e-08 0 3.02622e-05 -6.41946e-09 0 3.28141e-05 -2.85355e-09 0 + 1.97481e-05 -7.84959e-10 0 1.23649e-05 -1.2928e-09 0 1.55747e-05 -2.25147e-09 0 1.8638e-05 -4.3027e-09 0 + 2.15051e-05 -8.35373e-09 0 2.41263e-05 -1.61647e-08 0 2.64529e-05 -3.11499e-08 0 2.84404e-05 -6.01018e-08 0 + 3.00516e-05 -1.19232e-07 0 3.02282e-05 -2.54718e-07 0 2.96972e-05 -7.27869e-07 0 -3.07223e-06 -3.71515e-10 0 + -3.06354e-06 -3.56114e-07 0 -6.75289e-06 -2.31474e-07 0 -1.27326e-05 -1.51228e-07 0 -1.18539e-05 -8.4825e-08 0 + -4.22012e-06 -4.6329e-08 0 5.7516e-06 -2.61629e-08 0 1.74567e-05 -1.53783e-08 0 3.02619e-05 -9.11557e-09 0 + 3.28129e-05 -4.38606e-09 0 1.97469e-05 -1.78952e-09 0 1.23635e-05 -2.28832e-09 0 1.55726e-05 -3.57946e-09 0 + 1.86348e-05 -6.3961e-09 0 2.15e-05 -1.19662e-08 0 2.41178e-05 -2.27048e-08 0 2.64383e-05 -4.32548e-08 0 + 2.8414e-05 -8.25917e-08 0 2.99992e-05 -1.58828e-07 0 3.01307e-05 -3.01622e-07 0 2.95729e-05 -7.5086e-07 0 + -2.97488e-06 -3.77613e-10 0 -2.98565e-06 -3.85439e-07 0 -6.70274e-06 -2.65985e-07 0 -1.26919e-05 -1.76893e-07 0 + -1.18237e-05 -9.96787e-08 0 -4.20446e-06 -5.45583e-08 0 5.75922e-06 -3.08524e-08 0 1.74597e-05 -1.81627e-08 0 + 3.02623e-05 -1.07924e-08 0 3.28121e-05 -5.34005e-09 0 1.97459e-05 -2.41112e-09 0 1.23621e-05 -2.91542e-09 0 + 1.55702e-05 -4.42004e-09 0 1.86311e-05 -7.72758e-09 0 2.1494e-05 -1.42736e-08 0 2.41077e-05 -2.68894e-08 0 + 2.64206e-05 -5.0987e-08 0 2.83821e-05 -9.67018e-08 0 2.99415e-05 -1.81498e-07 0 3.00413e-05 -3.2427e-07 0 + 2.94681e-05 -7.6167e-07 0 -2.88791e-06 -3.79458e-10 0 -2.91377e-06 -3.94425e-07 0 -6.65176e-06 -2.77285e-07 0 + -1.26475e-05 -1.85595e-07 0 -1.17905e-05 -1.04774e-07 0 -4.18715e-06 -5.73855e-08 0 5.76772e-06 -3.24603e-08 0 + 1.74632e-05 -1.91134e-08 0 3.02629e-05 -1.13619e-08 0 3.28115e-05 -5.66375e-09 0 1.9745e-05 -2.62175e-09 0 + 1.23606e-05 -3.12945e-09 0 1.55678e-05 -4.70785e-09 0 1.86271e-05 -8.18453e-09 0 2.14875e-05 -1.5067e-08 0 + 2.40967e-05 -2.83292e-08 0 2.64012e-05 -5.36444e-08 0 2.83475e-05 -1.01486e-07 0 2.98821e-05 -1.88822e-07 0 + 2.99556e-05 -3.31064e-07 0 2.93714e-05 -7.64874e-07 0 -2.80095e-06 -3.7762e-10 0 -2.84189e-06 -3.85442e-07 0 + -6.60078e-06 -2.65989e-07 0 -1.26032e-05 -1.76897e-07 0 -1.17573e-05 -9.96801e-08 0 -4.16985e-06 -5.4559e-08 0 + 5.77623e-06 -3.08529e-08 0 1.74667e-05 -1.81631e-08 0 3.02636e-05 -1.07927e-08 0 3.28108e-05 -5.34029e-09 0 + 1.9744e-05 -2.41129e-09 0 1.23592e-05 -2.91561e-09 0 1.55653e-05 -4.42033e-09 0 1.86232e-05 -7.72805e-09 0 + 2.1481e-05 -1.42744e-08 0 2.40856e-05 -2.68908e-08 0 2.63819e-05 -5.09894e-08 0 2.83129e-05 -9.67058e-08 0 + 2.98226e-05 -1.81503e-07 0 2.98701e-05 -3.24275e-07 0 2.92748e-05 -7.61686e-07 0 -2.70362e-06 -3.71529e-10 0 + -2.76402e-06 -3.56123e-07 0 -6.55064e-06 -2.31485e-07 0 -1.25625e-05 -1.51236e-07 0 -1.17271e-05 -8.48277e-08 0 + -4.15419e-06 -4.63303e-08 0 5.78385e-06 -2.61638e-08 0 1.74698e-05 -1.53789e-08 0 3.0264e-05 -9.11607e-09 0 + 3.281e-05 -4.38653e-09 0 1.9743e-05 -1.78982e-09 0 1.23577e-05 -2.28869e-09 0 1.5563e-05 -3.58e-09 0 + 1.86195e-05 -6.39698e-09 0 2.1475e-05 -1.19677e-08 0 2.40755e-05 -2.27075e-08 0 2.63641e-05 -4.32596e-08 0 + 2.82809e-05 -8.25998e-08 0 2.97649e-05 -1.5884e-07 0 2.97806e-05 -3.01633e-07 0 2.917e-05 -7.50895e-07 0 + -2.58214e-06 -3.59016e-10 0 -2.67407e-06 -2.97663e-07 0 -6.50417e-06 -1.72683e-07 0 -1.25292e-05 -1.10337e-07 0 + -1.17027e-05 -6.15156e-08 0 -4.14168e-06 -3.34345e-08 0 5.7898e-06 -1.87822e-08 0 1.74719e-05 -1.09555e-08 0 + 3.02637e-05 -6.42008e-09 0 3.28089e-05 -2.85432e-09 0 1.97419e-05 -7.8532e-10 0 1.23564e-05 -1.29336e-09 0 + 1.55609e-05 -2.25222e-09 0 1.86162e-05 -4.30391e-09 0 2.14699e-05 -8.35584e-09 0 2.40671e-05 -1.61685e-08 0 + 2.63496e-05 -3.11568e-08 0 2.82545e-05 -6.01138e-08 0 2.97125e-05 -1.19252e-07 0 2.96832e-05 -2.54743e-07 0 + 2.90457e-05 -7.2793e-07 0 -2.41308e-06 -3.34392e-10 0 -2.56652e-06 -1.87819e-07 0 -6.46975e-06 -9.14438e-08 0 + -1.25072e-05 -5.78803e-08 0 -1.16866e-05 -3.18605e-08 0 -4.13351e-06 -1.70325e-08 0 5.79345e-06 -9.31694e-09 0 + 1.74727e-05 -5.19692e-09 0 3.02627e-05 -2.82755e-09 0 3.28072e-05 -8.42926e-10 0 1.97406e-05 5.62297e-10 0 + 1.23551e-05 -1.03993e-11 0 1.5559e-05 -5.39786e-10 0 1.86136e-05 -1.62641e-09 0 2.1466e-05 -3.76708e-09 0 + 2.40609e-05 -7.88988e-09 0 2.63394e-05 -1.5801e-08 0 2.82365e-05 -3.12652e-08 0 2.96739e-05 -6.317e-08 0 + 2.95741e-05 -1.62604e-07 0 2.88815e-05 -6.80912e-07 0 -2.23617e-06 -3.18029e-10 0 -2.47458e-06 -1.161e-07 0 + -6.46243e-06 -4.58017e-08 0 -1.25005e-05 -2.93613e-08 0 -1.16824e-05 -1.57597e-08 0 -4.13115e-06 -8.12432e-09 0 + 5.79539e-06 -4.15165e-09 0 1.74751e-05 -2.0281e-09 0 3.02658e-05 -8.23693e-10 0 3.28105e-05 2.66504e-10 0 + 1.97447e-05 1.31636e-09 0 1.23611e-05 6.90257e-10 0 1.55665e-05 3.97592e-10 0 1.86224e-05 -1.67504e-10 0 + 2.14758e-05 -1.27626e-09 0 2.40713e-05 -3.40569e-09 0 2.63496e-05 -7.47391e-09 0 2.82446e-05 -1.5578e-08 0 + 2.9679e-05 -3.1333e-08 0 2.95002e-05 -1.01505e-07 0 2.87298e-05 -6.4926e-07 0 + </DataArray> + </PointData> + <CellData Scalars="process rank"> + <DataArray type="Float32" Name="process rank" 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> + </CellData> + <Points> + <DataArray type="Float32" Name="Coordinates" NumberOfComponents="3" format="ascii"> + 0 0 0 2 0 0 0 1 0 2 1 0 + 4 0 0 4 1 0 6 0 0 6 1 0 + 8 0 0 8 1 0 10 0 0 10 1 0 + 12 0 0 12 1 0 14 0 0 14 1 0 + 16 0 0 16 1 0 18 0 0 18 1 0 + 20 0 0 20 1 0 22 0 0 22 1 0 + 24 0 0 24 1 0 26 0 0 26 1 0 + 28 0 0 28 1 0 30 0 0 30 1 0 + 32 0 0 32 1 0 34 0 0 34 1 0 + 36 0 0 36 1 0 38 0 0 38 1 0 + 40 0 0 40 1 0 0 2 0 2 2 0 + 4 2 0 6 2 0 8 2 0 10 2 0 + 12 2 0 14 2 0 16 2 0 18 2 0 + 20 2 0 22 2 0 24 2 0 26 2 0 + 28 2 0 30 2 0 32 2 0 34 2 0 + 36 2 0 38 2 0 40 2 0 0 3 0 + 2 3 0 4 3 0 6 3 0 8 3 0 + 10 3 0 12 3 0 14 3 0 16 3 0 + 18 3 0 20 3 0 22 3 0 24 3 0 + 26 3 0 28 3 0 30 3 0 32 3 0 + 34 3 0 36 3 0 38 3 0 40 3 0 + 0 4 0 2 4 0 4 4 0 6 4 0 + 8 4 0 10 4 0 12 4 0 14 4 0 + 16 4 0 18 4 0 20 4 0 22 4 0 + 24 4 0 26 4 0 28 4 0 30 4 0 + 32 4 0 34 4 0 36 4 0 38 4 0 + 40 4 0 0 5 0 2 5 0 4 5 0 + 6 5 0 8 5 0 10 5 0 12 5 0 + 14 5 0 16 5 0 18 5 0 20 5 0 + 22 5 0 24 5 0 26 5 0 28 5 0 + 30 5 0 32 5 0 34 5 0 36 5 0 + 38 5 0 40 5 0 0 6 0 2 6 0 + 4 6 0 6 6 0 8 6 0 10 6 0 + 12 6 0 14 6 0 16 6 0 18 6 0 + 20 6 0 22 6 0 24 6 0 26 6 0 + 28 6 0 30 6 0 32 6 0 34 6 0 + 36 6 0 38 6 0 40 6 0 0 7 0 + 2 7 0 4 7 0 6 7 0 8 7 0 + 10 7 0 12 7 0 14 7 0 16 7 0 + 18 7 0 20 7 0 22 7 0 24 7 0 + 26 7 0 28 7 0 30 7 0 32 7 0 + 34 7 0 36 7 0 38 7 0 40 7 0 + 0 8 0 2 8 0 4 8 0 6 8 0 + 8 8 0 10 8 0 12 8 0 14 8 0 + 16 8 0 18 8 0 20 8 0 22 8 0 + 24 8 0 26 8 0 28 8 0 30 8 0 + 32 8 0 34 8 0 36 8 0 38 8 0 + 40 8 0 0 9 0 2 9 0 4 9 0 + 6 9 0 8 9 0 10 9 0 12 9 0 + 14 9 0 16 9 0 18 9 0 20 9 0 + 22 9 0 24 9 0 26 9 0 28 9 0 + 30 9 0 32 9 0 34 9 0 36 9 0 + 38 9 0 40 9 0 0 10 0 2 10 0 + 4 10 0 6 10 0 8 10 0 10 10 0 + 12 10 0 14 10 0 16 10 0 18 10 0 + 20 10 0 22 10 0 24 10 0 26 10 0 + 28 10 0 30 10 0 32 10 0 34 10 0 + 36 10 0 38 10 0 40 10 0 + </DataArray> + </Points> + <Cells> + <DataArray type="Int32" Name="connectivity" NumberOfComponents="1" format="ascii"> + 0 1 3 2 1 4 5 3 4 6 7 5 + 6 8 9 7 8 10 11 9 10 12 13 11 + 12 14 15 13 14 16 17 15 16 18 19 17 + 18 20 21 19 20 22 23 21 22 24 25 23 + 24 26 27 25 26 28 29 27 28 30 31 29 + 30 32 33 31 32 34 35 33 34 36 37 35 + 36 38 39 37 38 40 41 39 2 3 43 42 + 3 5 44 43 5 7 45 44 7 9 46 45 + 9 11 47 46 11 13 48 47 13 15 49 48 + 15 17 50 49 17 19 51 50 19 21 52 51 + 21 23 53 52 23 25 54 53 25 27 55 54 + 27 29 56 55 29 31 57 56 31 33 58 57 + 33 35 59 58 35 37 60 59 37 39 61 60 + 39 41 62 61 42 43 64 63 43 44 65 64 + 44 45 66 65 45 46 67 66 46 47 68 67 + 47 48 69 68 48 49 70 69 49 50 71 70 + 50 51 72 71 51 52 73 72 52 53 74 73 + 53 54 75 74 54 55 76 75 55 56 77 76 + 56 57 78 77 57 58 79 78 58 59 80 79 + 59 60 81 80 60 61 82 81 61 62 83 82 + 63 64 85 84 64 65 86 85 65 66 87 86 + 66 67 88 87 67 68 89 88 68 69 90 89 + 69 70 91 90 70 71 92 91 71 72 93 92 + 72 73 94 93 73 74 95 94 74 75 96 95 + 75 76 97 96 76 77 98 97 77 78 99 98 + 78 79 100 99 79 80 101 100 80 81 102 101 + 81 82 103 102 82 83 104 103 84 85 106 105 + 85 86 107 106 86 87 108 107 87 88 109 108 + 88 89 110 109 89 90 111 110 90 91 112 111 + 91 92 113 112 92 93 114 113 93 94 115 114 + 94 95 116 115 95 96 117 116 96 97 118 117 + 97 98 119 118 98 99 120 119 99 100 121 120 + 100 101 122 121 101 102 123 122 102 103 124 123 + 103 104 125 124 105 106 127 126 106 107 128 127 + 107 108 129 128 108 109 130 129 109 110 131 130 + 110 111 132 131 111 112 133 132 112 113 134 133 + 113 114 135 134 114 115 136 135 115 116 137 136 + 116 117 138 137 117 118 139 138 118 119 140 139 + 119 120 141 140 120 121 142 141 121 122 143 142 + 122 123 144 143 123 124 145 144 124 125 146 145 + 126 127 148 147 127 128 149 148 128 129 150 149 + 129 130 151 150 130 131 152 151 131 132 153 152 + 132 133 154 153 133 134 155 154 134 135 156 155 + 135 136 157 156 136 137 158 157 137 138 159 158 + 138 139 160 159 139 140 161 160 140 141 162 161 + 141 142 163 162 142 143 164 163 143 144 165 164 + 144 145 166 165 145 146 167 166 147 148 169 168 + 148 149 170 169 149 150 171 170 150 151 172 171 + 151 152 173 172 152 153 174 173 153 154 175 174 + 154 155 176 175 155 156 177 176 156 157 178 177 + 157 158 179 178 158 159 180 179 159 160 181 180 + 160 161 182 181 161 162 183 182 162 163 184 183 + 163 164 185 184 164 165 186 185 165 166 187 186 + 166 167 188 187 168 169 190 189 169 170 191 190 + 170 171 192 191 171 172 193 192 172 173 194 193 + 173 174 195 194 174 175 196 195 175 176 197 196 + 176 177 198 197 177 178 199 198 178 179 200 199 + 179 180 201 200 180 181 202 201 181 182 203 202 + 182 183 204 203 183 184 205 204 184 185 206 205 + 185 186 207 206 186 187 208 207 187 188 209 208 + 189 190 211 210 190 191 212 211 191 192 213 212 + 192 193 214 213 193 194 215 214 194 195 216 215 + 195 196 217 216 196 197 218 217 197 198 219 218 + 198 199 220 219 199 200 221 220 200 201 222 221 + 201 202 223 222 202 203 224 223 203 204 225 224 + 204 205 226 225 205 206 227 226 206 207 228 227 + 207 208 229 228 208 209 230 229 + </DataArray> + <DataArray type="Int32" Name="offsets" NumberOfComponents="1" format="ascii"> + 4 8 12 16 20 24 28 32 36 40 44 48 + 52 56 60 64 68 72 76 80 84 88 92 96 + 100 104 108 112 116 120 124 128 132 136 140 144 + 148 152 156 160 164 168 172 176 180 184 188 192 + 196 200 204 208 212 216 220 224 228 232 236 240 + 244 248 252 256 260 264 268 272 276 280 284 288 + 292 296 300 304 308 312 316 320 324 328 332 336 + 340 344 348 352 356 360 364 368 372 376 380 384 + 388 392 396 400 404 408 412 416 420 424 428 432 + 436 440 444 448 452 456 460 464 468 472 476 480 + 484 488 492 496 500 504 508 512 516 520 524 528 + 532 536 540 544 548 552 556 560 564 568 572 576 + 580 584 588 592 596 600 604 608 612 616 620 624 + 628 632 636 640 644 648 652 656 660 664 668 672 + 676 680 684 688 692 696 700 704 708 712 716 720 + 724 728 732 736 740 744 748 752 756 760 764 768 + 772 776 780 784 788 792 796 800 + </DataArray> + <DataArray type="UInt8" Name="types" NumberOfComponents="1" format="ascii"> + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 9 9 9 9 + 9 9 9 9 9 9 9 9 + </DataArray> + </Cells> + </Piece> + </UnstructuredGrid> +</VTKFile> -- GitLab