Commit b63eb573 authored by Ned Coltman's avatar Ned Coltman
Browse files

Merge branch 'feature/symm-grad-fluxvars' into 'master'

[freeflow] Consider full stress tensor at Dirichlet/Neumann BCs

Closes #691

See merge request !1548
parents bce9ce7e 536e2f45
......@@ -136,10 +136,10 @@ private:
for (const auto& data : scvf.pairData())
{
auto& normalFace = fvGeometry.scvf(eIdx, data.localNormalFaceIdx);
if (!normalFace.boundary())
auto& lateralFace = fvGeometry.scvf(eIdx, data.localLateralFaceIdx);
if (!lateralFace.boundary())
{
const auto firstParallelElementDofIdx = normalFace.outsideScvIdx();
const auto firstParallelElementDofIdx = lateralFace.outsideScvIdx();
stencil.push_back(firstParallelElementDofIdx);
}
}
......@@ -159,9 +159,9 @@ private:
for (const auto& data : scvf.pairData())
{
// add normal dofs
stencil.push_back(data.normalPair.first);
stencil.push_back(data.lateralPair.first);
if (!scvf.boundary())
stencil.push_back(data.normalPair.second);
stencil.push_back(data.lateralPair.second);
// add parallel dofs
for (SmallLocalIndex i = 0; i < upwindSchemeOrder; i++)
......
......@@ -110,10 +110,10 @@ public:
const auto& subFaceData = scvf.pairData(i);
// treat the velocities normal to the face
velocityNormalInside_[i] = faceSol[subFaceData.normalPair.first];
velocityLateralInside_[i] = faceSol[subFaceData.lateralPair.first];
if (scvf.hasOuterNormal(i))
velocityNormalOutside_[i] = faceSol[subFaceData.normalPair.second];
if (scvf.hasOuterLateral(i))
velocityLateralOutside_[i] = faceSol[subFaceData.lateralPair.second];
// treat the velocities parallel to the self face
for (int j = 0; j < upwindSchemeOrder; j++)
......@@ -178,9 +178,9 @@ public:
*
* \param localSubFaceIdx The local index of the subface
*/
Scalar velocityNormalInside(const int localSubFaceIdx) const
Scalar velocityLateralInside(const int localSubFaceIdx) const
{
return velocityNormalInside_[localSubFaceIdx];
return velocityLateralInside_[localSubFaceIdx];
}
/*!
......@@ -188,9 +188,9 @@ public:
*
* \param localSubFaceIdx The local index of the subface
*/
Scalar velocityNormalOutside(const int localSubFaceIdx) const
Scalar velocityLateralOutside(const int localSubFaceIdx) const
{
return velocityNormalOutside_[localSubFaceIdx];
return velocityLateralOutside_[localSubFaceIdx];
}
private:
......@@ -221,8 +221,8 @@ private:
InAxisVelocities inAxisVelocities_;
std::array<std::array<Scalar, upwindSchemeOrder>, numPairs> velocityParallel_;
std::array<Scalar, numPairs> velocityNormalInside_;
std::array<Scalar, numPairs> velocityNormalOutside_;
std::array<Scalar, numPairs> velocityLateralInside_;
std::array<Scalar, numPairs> velocityLateralOutside_;
};
......
......@@ -53,11 +53,11 @@ struct PairData
std::bitset<upwindSchemeOrder> hasParallelNeighbor;
std::array<GridIndexType, upwindSchemeOrder> parallelDofs;
std::array<Scalar, upwindSchemeOrder> parallelCellWidths;
bool hasNormalNeighbor = false;
std::pair<GridIndexType, GridIndexType> normalPair;
SmallLocalIndexType localNormalFaceIdx;
Scalar normalDistance;
GlobalPosition virtualFirstParallelFaceDofPos;
bool hasOuterLateral = false;
std::pair<GridIndexType, GridIndexType> lateralPair;
SmallLocalIndexType localLateralFaceIdx;
Scalar lateralDistance;
GlobalPosition virtualBoundaryFaceDofPos;
};
......@@ -350,7 +350,7 @@ private:
}
/*!
* \brief Fills the pair data with the normal dofs and distances
* \brief Fills the pair data with the lateral dofs and distances
* and calls a further function to collect the parallel dofs and distances
*/
void fillPairData_()
......@@ -359,23 +359,23 @@ private:
pairData_ = {};
// set basic global positions
const auto& elementCenter = element_.geometry().center();
const auto& FacetCenter = intersection_.geometry().center();
const auto& selfElementCenter = element_.geometry().center();
const auto& selfFacetCenter = intersection_.geometry().center();
// get the inner normal Dof Index
SmallLocalIndexType numPairInnerNormalIdx = 0;
// get the inner lateral Dof Index
SmallLocalIndexType numPairInnerLateralIdx = 0;
for (const auto& innerElementIntersection : intersections(gridView_, element_))
{
if (facetIsNormal_(innerElementIntersection.indexInInside(), intersection_.indexInInside()))
{
const auto innerElementIntersectionIdx = innerElementIntersection.indexInInside();
setNormalPairFirstInfo_(innerElementIntersectionIdx, element_, numPairInnerNormalIdx);
numPairInnerNormalIdx++;
setLateralPairFirstInfo_(innerElementIntersectionIdx, element_, numPairInnerLateralIdx);
numPairInnerLateralIdx++;
}
}
// get the outer normal Dof Index
SmallLocalIndexType numPairOuterNormalIdx = 0;
// get the outer lateral Dof Index
SmallLocalIndexType numPairOuterLateralIdx = 0;
if (intersection_.neighbor())
{
// the direct neighbor element and the respective intersection index
......@@ -387,20 +387,25 @@ private:
if (facetIsNormal_(directNeighborElementIntersection.indexInInside(), intersection_.indexInOutside()))
{
const auto directNeighborElemIsIdx = directNeighborElementIntersection.indexInInside();
setNormalPairSecondInfo_(directNeighborElemIsIdx, directNeighborElement, numPairOuterNormalIdx);
numPairOuterNormalIdx++;
setLateralPairSecondInfo_(directNeighborElemIsIdx, directNeighborElement, numPairOuterLateralIdx);
numPairOuterLateralIdx++;
}
}
}
else // intersection is on boundary
{
// fill the normal pair entries
for(SmallLocalIndexType pairIdx = 0; pairIdx < numPairs; ++pairIdx)
for (const auto& intersection : intersections(gridView_, element_))
{
assert(!pairData_[pairIdx].hasNormalNeighbor);
const auto distance = FacetCenter - elementCenter;
pairData_[pairIdx].normalDistance = std::move(distance.two_norm());
numPairOuterNormalIdx++;
if (facetIsNormal_(intersection.indexInInside(), intersection_.indexInInside()))
{
assert(!pairData_[numPairOuterLateralIdx].hasOuterLateral);
const auto boundaryDistanceOffset = intersection.geometry().center() - selfElementCenter;
pairData_[numPairOuterLateralIdx].virtualBoundaryFaceDofPos = std::move(boundaryDistanceOffset + selfElementCenter);
const auto normalDistanceoffset = selfFacetCenter - selfElementCenter;
pairData_[numPairOuterLateralIdx].lateralDistance = std::move(normalDistanceoffset.two_norm());
numPairOuterLateralIdx++;
}
}
}
......@@ -427,7 +432,7 @@ private:
auto parallelAxisIdx = directionIndex(intersection);
if (intersection.neighbor())
{
// If the normal intersection has a neighboring cell, go in and store the parallel information.
// If the lateral intersection has a neighboring cell, go in and store the parallel information.
const auto& outerElement = intersection.outside();
pairData_[numPairParallelIdx].hasParallelNeighbor.set(0, true);
pairData_[numPairParallelIdx].parallelDofs[0] = gridView_.indexSet().subIndex(outerElement, parallelLocalIdx, codimIntersection);
......@@ -438,9 +443,9 @@ private:
// If the intersection has no neighbor we have to deal with the virtual outer parallel dof
const auto& boundaryFacetCenter = intersection.geometry().center();
const auto distance = boundaryFacetCenter - elementCenter;
const auto virtualFirstParallelFaceDofPos = intersection_.geometry().center() + distance;
const auto virtualBoundaryFaceDofPos = intersection_.geometry().center() + distance;
pairData_[numPairParallelIdx].virtualFirstParallelFaceDofPos = std::move(virtualFirstParallelFaceDofPos);
pairData_[numPairParallelIdx].virtualBoundaryFaceDofPos = std::move(virtualBoundaryFaceDofPos);
}
numPairParallelIdx++;
}
......@@ -468,19 +473,19 @@ private:
if( intersection.neighbor() )
{
auto parallelAxisIdx = directionIndex(intersection);
auto localNormalIntersectionIndex = intersection.indexInInside();
auto localLateralIntersectionIndex = intersection.indexInInside();
auto e = element_;
bool keepStacking = (parallelElementStack.size() < numParallelFaces);
while(keepStacking)
{
for(const auto& normalIntersection : intersections(gridView_, e))
for(const auto& lateralIntersection : intersections(gridView_, e))
{
if( normalIntersection.indexInInside() == localNormalIntersectionIndex )
if( lateralIntersection.indexInInside() == localLateralIntersectionIndex )
{
if( normalIntersection.neighbor() )
if( lateralIntersection.neighbor() )
{
parallelElementStack.push(normalIntersection.outside());
parallelElementStack.push(lateralIntersection.outside());
keepStacking = (parallelElementStack.size() < numParallelFaces);
}
else
......@@ -507,9 +512,9 @@ private:
const auto& boundaryFacetCenter = intersection.geometry().center();
const auto distance = boundaryFacetCenter - elementCenter;
const auto virtualFirstParallelFaceDofPos = intersection_.geometry().center() + distance;
const auto virtualBoundaryFaceDofPos = intersection_.geometry().center() + distance;
pairData_[numPairParallelIdx].virtualFirstParallelFaceDofPos = std::move(virtualFirstParallelFaceDofPos);
pairData_[numPairParallelIdx].virtualBoundaryFaceDofPos = std::move(virtualBoundaryFaceDofPos);
}
numPairParallelIdx++;
}
......@@ -542,29 +547,29 @@ private:
return element.template subEntity <1> (localFacetIdx);
};
//! Sets the information about the normal faces (within the element)
void setNormalPairFirstInfo_(const int isIdx, const Element& element, const int numPairsIdx)
//! Sets the information about the lateral faces (within the element)
void setLateralPairFirstInfo_(const int isIdx, const Element& element, const int numPairsIdx)
{
// store the inner normal dofIdx
pairData_[numPairsIdx].normalPair.first = gridView_.indexSet().subIndex(element, isIdx, codimIntersection);
// store the inner lateral dofIdx
pairData_[numPairsIdx].lateralPair.first = gridView_.indexSet().subIndex(element, isIdx, codimIntersection);
// store the local normal facet index
pairData_[numPairsIdx].localNormalFaceIdx = isIdx;
// store the local lateral facet index
pairData_[numPairsIdx].localLateralFaceIdx = isIdx;
}
//! Sets the information about the normal faces (in the neighbor element)
void setNormalPairSecondInfo_(const int isIdx, const Element& element, const int numPairsIdx)
//! Sets the information about the lateral faces (in the neighbor element)
void setLateralPairSecondInfo_(const int isIdx, const Element& element, const int numPairsIdx)
{
// store the dofIdx
pairData_[numPairsIdx].hasNormalNeighbor = true;
pairData_[numPairsIdx].normalPair.second = gridView_.indexSet().subIndex(element, isIdx, codimIntersection);
pairData_[numPairsIdx].hasOuterLateral = true;
pairData_[numPairsIdx].lateralPair.second = gridView_.indexSet().subIndex(element, isIdx, codimIntersection);
// store the element distance
const auto& outerNormalFacet = getFacet_(isIdx, element);
const auto outerNormalFacetPos = outerNormalFacet.geometry().center();
const auto& innerNormalFacet = getFacet_(isIdx, element_);
const auto innerNormalFacetPos = innerNormalFacet.geometry().center();
pairData_[numPairsIdx].normalDistance = (innerNormalFacetPos - outerNormalFacetPos).two_norm();
const auto& outerLateralFacet = getFacet_(isIdx, element);
const auto outerLateralFacetPos = outerLateralFacet.geometry().center();
const auto& innerLateralFacet = getFacet_(isIdx, element_);
const auto innerLateralFacetPos = innerLateralFacet.geometry().center();
pairData_[numPairsIdx].lateralDistance = (innerLateralFacetPos - outerLateralFacetPos).two_norm();
}
//! Sets the information about the parallel distances
......@@ -597,7 +602,7 @@ private:
const typename Element::Geometry elementGeometry_; //!< Reference to the element geometry
const GridView gridView_; //!< The grid view
AxisData axisData_; //!< Data related to forward and backward faces
std::array<PairData, numPairs> pairData_; //!< Collection of pair information related to normal and parallel faces
std::array<PairData, numPairs> pairData_; //!< Collection of pair information related to lateral and parallel faces
};
} // end namespace Dumux
......
......@@ -267,9 +267,9 @@ public:
*
* \param localSubFaceIdx The local index of the subface
*/
bool hasOuterNormal(const int localSubFaceIdx) const
bool hasOuterLateral(const int localSubFaceIdx) const
{
return pairData(localSubFaceIdx).hasNormalNeighbor;
return pairData(localSubFaceIdx).hasOuterLateral;
}
/*!
......@@ -330,7 +330,7 @@ public:
* \param localSubFaceIdx The local index of the subface
* \param parallelDegreeIdx The index describing how many faces away from the self
*/
Scalar cellCenteredParallelDistance(const int localSubFaceIdx, const int parallelDegreeIdx) const
Scalar parallelDofsDistance(const int localSubFaceIdx, const int parallelDegreeIdx) const
{
if (parallelDegreeIdx == 0)
return (faceLength(localSubFaceIdx) + pairData(localSubFaceIdx).parallelCellWidths[0]) * 0.5;
......
......@@ -74,6 +74,7 @@ class NavierStokesProblem : public NavierStokesParentProblem<TypeTag>
using Scalar = GetPropType<TypeTag, Properties::Scalar>;
using FVElementGeometry = typename FVGridGeometry::LocalView;
using SubControlVolume = typename FVElementGeometry::SubControlVolume;
using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
using PrimaryVariables = GetPropType<TypeTag, Properties::PrimaryVariables>;
using Indices = typename GetPropType<TypeTag, Properties::ModelTraits>::Indices;
......@@ -205,18 +206,18 @@ public:
//! helper function to evaluate the slip velocity on the boundary when the Beavers-Joseph-Saffman condition is used
const Scalar bjsVelocity(const Element& element,
const SubControlVolumeFace& scvf,
const SubControlVolumeFace& normalFace,
const Scalar& localSubFaceIdx,
const Scalar& velocitySelf) const
const SubControlVolume& scv,
const SubControlVolumeFace& faceOnPorousBoundary,
const Scalar velocitySelf) const
{
// du/dy = alpha/sqrt(K) * u_boundary
// du/dy = (u_center - u_boundary) / deltaY
// u_boundary = u_center / (alpha/sqrt(K)*deltaY + 1)
using std::sqrt;
const Scalar K = asImp_().permeability(element, normalFace);
const Scalar alpha = asImp_().alphaBJ(normalFace);
return velocitySelf / (alpha / sqrt(K) * scvf.cellCenteredParallelDistance(localSubFaceIdx,0) + 1.0);
const Scalar K = asImp_().permeability(element, faceOnPorousBoundary);
const Scalar alpha = asImp_().alphaBJ(faceOnPorousBoundary);
const Scalar distance = (faceOnPorousBoundary.center() - scv.center()).two_norm();
return velocitySelf / (alpha / sqrt(K) * distance + 1.0);
}
private:
......
......@@ -64,6 +64,7 @@ class RANSProblemBase : public NavierStokesProblem<TypeTag>
using FVElementGeometry = typename FVGridGeometry::LocalView;
using GridView = typename FVGridGeometry::GridView;
using Element = typename GridView::template Codim<0>::Entity;
using SubControlVolume = typename FVElementGeometry::SubControlVolume;
using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
using VolumeVariables = GetPropType<TypeTag, Properties::VolumeVariables>;
using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
......@@ -332,21 +333,22 @@ public:
const int numSubFaces = scvf.pairData().size();
for(int localSubFaceIdx = 0; localSubFaceIdx < numSubFaces; ++localSubFaceIdx)
{
const auto& normalFace = fvGeometry.scvf(scvf.insideScvIdx(), scvf.pairData()[localSubFaceIdx].localNormalFaceIdx);
const auto& lateralFace = fvGeometry.scvf(scvf.insideScvIdx(), scvf.pairData()[localSubFaceIdx].localLateralFaceIdx);
// adapt calculations for Beavers-Joseph-Saffman condition
unsigned int normalNormDim = normalFace.directionIndex();
if (normalFace.boundary() && (asImp_().boundaryTypes(element, normalFace).isBJS(Indices::velocity(velIdx))))
unsigned int normalNormDim = lateralFace.directionIndex();
if (lateralFace.boundary() && (asImp_().boundaryTypes(element, lateralFace).isBJS(Indices::velocity(velIdx))))
{
unsigned int neighborIdx = neighborIdx_[elementIdx][normalNormDim][0];
if (normalFace.center()[normalNormDim] < cellCenter_[elementIdx][normalNormDim])
if (lateralFace.center()[normalNormDim] < cellCenter_[elementIdx][normalNormDim])
neighborIdx = neighborIdx_[elementIdx][normalNormDim][1];
bjsVelocityAverage[normalNormDim] += ParentType::bjsVelocity(element, scvf, normalFace, localSubFaceIdx, velocity_[elementIdx][velIdx]);
const SubControlVolume& scv = fvGeometry.scv(scvf.insideScvIdx());
bjsVelocityAverage[normalNormDim] += ParentType::bjsVelocity(element, scv, lateralFace, velocity_[elementIdx][velIdx]);
if (bjsNumFaces[normalNormDim] > 0 && neighborIdx != bjsNeighbor[normalNormDim])
DUNE_THROW(Dune::InvalidStateException, "Two different neighborIdx should not occur");
bjsNeighbor[normalNormDim] = neighborIdx;
normalNormCoordinate[normalNormDim] = normalFace.center()[normalNormDim];
normalNormCoordinate[normalNormDim] = lateralFace.center()[normalNormDim];
bjsNumFaces[normalNormDim]++;
}
}
......@@ -446,7 +448,7 @@ public:
const ElementVolumeVariables& elemVolVars,
const ElementFaceVariables& elemFaceVars,
const SubControlVolumeFace& scvf,
const SubControlVolumeFace& localSubFace) const
const SubControlVolumeFace& lateralBoundaryFace) const
{ return FacePrimaryVariables(0.0); }
/*!
......
......@@ -39,42 +39,6 @@
100000 100000 100000 100000 100000 100000 100000 100000 100000 100000 100000 100000
100000 100000 100000 100000
</DataArray>
<DataArray type="Float32" Name="rhoMolar" NumberOfComponents="1" format="ascii">
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5
</DataArray>
<DataArray type="Float32" Name="rho" NumberOfComponents="1" format="ascii">
1000.27 1000.24 1000.2 1000.16 1000.12 1000.09 1000.05 1000.02 999.99 999.963 999.939 999.917
999.897 999.879 999.863 999.848 999.835 999.823 999.812 999.804 1000.29 1000.29 1000.27 1000.26
......@@ -111,6 +75,42 @@
1000.2 1000.16 1000.13 1000.09 1000.06 1000.03 1000 999.974 999.95 999.928 999.908 999.889
999.872 999.857 999.844 999.833
</DataArray>
<DataArray type="Float32" Name="rhoMolar" NumberOfComponents="1" format="ascii">
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5 55491.5
55491.5 55491.5 55491.5 55491.5
</DataArray>
<DataArray type="Float32" Name="X^H2O_liq" NumberOfComponents="1" format="ascii">
0.998453 0.998541 0.99864 0.998744 0.998848 0.998948 0.999041 0.999126 0.999204 0.999275 0.999339 0.999396
0.999449 0.999496 0.999539 0.999578 0.999613 0.999645 0.999674 0.999695 0.998401 0.998421 0.998452 0.998494
......@@ -294,24 +294,24 @@
<DataArray type="Float32" Name="velocity_liq (m/s)" NumberOfComponents="3" format="ascii">
9.78509e-08 -3.50913e-10 0 9.84899e-08 -2.8809e-10 0 9.89535e-08 -1.75455e-10 0 9.92314e-08 -1.02466e-10 0
9.93949e-08 -6.10353e-11 0 9.94935e-08 -3.75578e-11 0 9.95548e-08 -2.37564e-11 0 9.95938e-08 -1.52927e-11 0
9.9619e-08 -9.92126e-12 0 9.96354e-08 -6.43427e-12 0 9.9646e-08 -4.14368e-12 0 9.96528e-08 -2.63431e-12 0
9.9657e-08 -1.6436e-12 0 9.96597e-08 -1.00007e-12 0 9.96613e-08 -5.89996e-13 0 9.96622e-08 -3.38091e-13 0
9.96627e-08 -1.96171e-13 0 9.96631e-08 -1.35792e-13 0 9.96633e-08 -1.41627e-13 0 9.96637e-08 -1.93683e-13 0
9.9619e-08 -9.92126e-12 0 9.96354e-08 -6.43427e-12 0 9.9646e-08 -4.14369e-12 0 9.96528e-08 -2.63431e-12 0
9.9657e-08 -1.6436e-12 0 9.96597e-08 -1.00007e-12 0 9.96613e-08 -5.89994e-13 0 9.96622e-08 -3.381e-13 0
9.96627e-08 -1.96171e-13 0 9.96631e-08 -1.35807e-13 0 9.96633e-08 -1.41608e-13 0 9.96637e-08 -1.93685e-13 0
2.7748e-07 -6.81674e-10 0 2.7759e-07 -7.06312e-10 0 2.77881e-07 -5.12215e-10 0 2.7818e-07 -3.42244e-10 0
2.7842e-07 -2.25104e-10 0 2.78597e-07 -1.4859e-10 0 2.78721e-07 -9.87402e-11 0 2.78808e-07 -6.58752e-11 0
2.78867e-07 -4.39348e-11 0 2.78908e-07 -2.91654e-11 0 2.78935e-07 -1.91929e-11 0 2.78953e-07 -1.24723e-11 0
2.78965e-07 -7.97215e-12 0 2.78973e-07 -4.99198e-12 0 2.78977e-07 -3.05249e-12 0 2.78981e-07 -1.82739e-12 0
2.78982e-07 -1.09905e-12 0 2.78984e-07 -7.27355e-13 0 2.78984e-07 -6.20765e-13 0 2.78985e-07 -6.85122e-13 0
2.78965e-07 -7.97215e-12 0 2.78973e-07 -4.99198e-12 0 2.78977e-07 -3.05249e-12 0 2.78981e-07 -1.8274e-12 0
2.78982e-07 -1.09905e-12 0 2.78984e-07 -7.27362e-13 0 2.78984e-07 -6.20758e-13 0 2.78985e-07 -6.85121e-13 0
4.3743e-07 -5.91037e-10 0 4.37365e-07 -8.42512e-10 0 4.37442e-07 -7.44243e-10 0 4.37604e-07 -5.71011e-10 0
4.37782e-07 -4.14155e-10 0 4.37938e-07 -2.92938e-10 0 4.38064e-07 -2.04503e-10 0 4.38159e-07 -1.41469e-10 0
4.38228e-07 -9.70221e-11 0 4.38277e-07 -6.58984e-11 0 4.38312e-07 -4.4251e-11 0 4.38336e-07 -2.93153e-11 0
4.38352e-07 -1.9113e-11 0 4.38363e-07 -1.22319e-11 0 4.3837e-07 -7.66938e-12 0 4.38374e-07 -4.7205e-12 0
4.38377e-07 -2.89827e-12 0 4.38379e-07 -1.87229e-12 0 4.3838e-07 -1.4132e-12 0 4.38381e-07 -1.32233e-12 0
4.38377e-07 -2.89827e-12 0 4.38379e-07 -1.8723e-12 0 4.3838e-07 -1.4132e-12 0 4.38381e-07 -1.32233e-12 0
5.77438e-07 -4.5894e-10 0 5.7733e-07 -8.02112e-10 0 5.77284e-07 -8.15329e-10 0 5.77318e-07 -6.95521e-10 0
5.77397e-07 -5.46387e-10 0 5.7749e-07 -4.10261e-10 0 5.77577e-07 -2.99537e-10 0 5.7765e-07 -2.14404e-10 0
5.77707e-07 -1.51023e-10 0 5.77751e-07 -1.04834e-10 0 5.77783e-07 -7.17251e-11 0 5.77805e-07 -4.83339e-11 0
5.77821e-07 -3.20407e-11 0 5.77832e-07 -2.08612e-11 0 5.77839e-07 -1.33241e-11 0 5.77844e-07 -8.35952e-12 0
5.77847e-07 -5.20496e-12 0 5.77849e-07 -3.32711e-12 0 5.7785e-07 -2.35251e-12 0 5.77851e-07 -1.99819e-12 0
5.77847e-07 -5.20496e-12 0 5.77849e-07 -3.32712e-12 0 5.7785e-07 -2.35251e-12 0 5.77851e-07 -1.99819e-12 0
6.97452e-07 -3.49382e-10 0 6.97341e-07 -6.92652e-10 0 6.97238e-07 -7.75305e-10 0 6.97184e-07 -7.15357e-10 0
6.97177e-07 -5.98351e-10 0 6.97198e-07 -4.72049e-10 0 6.97231e-07 -3.58269e-10 0 6.97267e-07 -2.64394e-10 0
6.97299e-07 -1.90841e-10 0 6.97326e-07 -1.3516e-10 0 6.97347e-07 -9.40702e-11 0 6.97362e-07 -6.43701e-11 0
......@@ -345,13 +345,13 @@
9.97475e-07 2.32991e-11 0 9.9739e-07 5.46298e-11 0 9.97252e-07 7.10754e-11 0 9.97091e-07 7.50482e-11 0
9.96928e-07 7.03399e-11 0 9.96778e-07 6.07548e-11 0 9.9665e-07 4.93242e-11 0 9.96546e-07 3.80748e-11 0
9.96464e-07 2.81319e-11 0 9.96402e-07 1.99576e-11 0 9.96357e-07 1.35936e-11 0 9.96324e-07 8.85498e-12 0
9.96301e-07 5.46262e-12 0 9.96286e-07 3.12248e-12 0 9.96275e-07 1.56737e-12 0 9.96268e-07 5.7413e-13 0
9.96264e-07 -3.29674e-14 0 9.96261e-07 -3.85552e-13 0 9.96259e-07 -5.76265e-13 0 9.96258e-07 -6.62042e-13 0
9.96301e-07 5.46262e-12 0 9.96286e-07 3.12248e-12 0 9.96275e-07 1.56737e-12 0 9.96268e-07 5.74129e-13 0
9.96264e-07 -3.29677e-14 0 9.96261e-07 -3.85553e-13 0 9.96259e-07 -5.76266e-13 0 9.96258e-07 -6.62043e-13 0
9.77474e-07 7.45925e-11 0 9.77387e-07 1.74524e-10 0 9.7725e-07 2.26707e-10 0 9.77091e-07 2.39399e-10 0
9.76935e-07 2.24984e-10 0 9.76795e-07 1.95515e-10 0 9.76677e-07 1.60379e-10 0 9.76583e-07 1.25738e-10 0
9.7651e-07 9.4972e-11 0 9.76456e-07 6.946e-11 0 9.76416e-07 4.93373e-11 0 9.76388e-07 3.40761e-11 0
9.76368e-07 2.2874e-11 0 9.76355e-07 1.48848e-11 0 9.76346e-07 9.33767e-12 0 9.7634e-07 5.58739e-12 0
9.76336e-07 3.12423e-12 0 9.76334e-07 1.56613e-12 0 9.76332e-07 6.46109e-13 0 9.76331e-07 2.05916e-13 0
9.76336e-07 3.12423e-12 0 9.76334e-07 1.56613e-12 0 9.76332e-07 6.46109e-13 0 9.76331e-07 2.05915e-13 0
9.37472e-07 1.28806e-10 0 9.37382e-07 2.96814e-10 0 9.37244e-07 3.79677e-10 0 9.37094e-07 3.94973e-10 0
9.36953e-07 3.6621e-10 0 9.36833e-07 3.14628e-10 0 9.36736e-07 2.55757e-10 0 9.36662e-07 1.99188e-10 0
9.36606e-07 1.49815e-10 0 9.36566e-07 1.09371e-10 0 9.36538e-07 7.77368e-11 0 9.36518e-07 5.38716e-11 0
......
......@@ -8,7 +8,7 @@
0.176232 0.176232 0.176231 0.176231 0.0606153 0.0606162 0.0606168 0.0606171 0.0606172 0.0606172 0.0606172 0.0606172
0.0329025 0.032912 0.0329206 0.0329272 0.0329323 0.0329363 0.032939 0.0329399 0.0220651 0.0220979 0.0221246 0.022145
0.022161 0.0221737 0.0221828 0.0221854 0.0157813 0.0158566 0.0159109 0.015952 0.0159845 0.0160107 0.01603 0.0160347
0.0094194 0.00968352 0.00985117 0.00997587 0.0100741 0.0101533 0.0102129 0.0102257 0 0 0 0
0.0094194 0.00968352 0.00985117 0.00997587 0.0100741 0.0101533 0.0102128 0.0102257 0 0 0 0
0 0 0 0
</DataArray>
<DataArray type="Float32" Name="p_liq" NumberOfComponents="1" format="ascii">
......@@ -181,39 +181,39 @@
</DataArray>
<DataArray type="Float32" Name="velocity_liq (m/s)" NumberOfComponents="3" format="ascii">
-1.28083e-10 4.75774e-09 0 -3.41541e-10 4.63906e-09 0 -4.6588e-10 4.51013e-09 0 -5.03878e-10 4.39926e-09 0
-4.69404e-10 4.30886e-09 0 -3.76998e-10 4.23832e-09 0 -2.42023e-10 4.19022e-09 0 -8.29724e-11 4.1704e-09 0
-4.69405e-10 4.30886e-09 0 -3.76998e-10 4.23832e-09 0 -2.42023e-10 4.19022e-09 0 -8.29724e-11 4.1704e-09 0
1.48331e-11 1.09296e-08 0 4.35161e-11 1.06936e-08 0 6.55302e-11 1.04455e-08 0 7.51674e-11 1.02353e-08 0
7.22191e-11 1.00646e-08 0 5.89342e-11 9.93106e-09 0 3.84017e-11 9.8396e-09 0 1.33662e-11 9.80288e-09 0
-5.25052e-12 1.26397e-08 0 -9.04852e-12 1.23961e-08 0 -5.61849e-12 1.21561e-08 0 -2.47188e-12 1.19574e-08 0
-8.36024e-13 1.17968e-08 0 -1.81935e-13 1.16705e-08 0 3.62606e-13 1.15831e-08 0 3.59913e-13 1.15499e-08 0
-1.77834e-11 1.3043e-08 0 -3.37193e-11 1.27734e-08 0 -2.82157e-11 1.25295e-08 0 -2.17754e-11 1.23307e-08 0
-1.68627e-11 1.21701e-08 0 -1.24675e-11 1.20429e-08 0 -6.75276e-12 1.19535e-08 0 -1.65222e-12 1.19224e-08 0
-8.36023e-13 1.17968e-08 0 -1.81934e-13 1.16705e-08 0 3.62603e-13 1.15831e-08 0 3.5991e-13 1.15499e-08 0
-1.77833e-11 1.3043e-08 0 -3.37193e-11 1.27734e-08 0 -2.82157e-11 1.25295e-08 0 -2.17754e-11 1.23307e-08 0
-1.68627e-11 1.21701e-08 0 -1.24675e-11 1.20429e-08 0 -6.75277e-12 1.19535e-08 0 -1.65222e-12 1.19224e-08 0
-2.71883e-11 1.32078e-08 0 -4.92111e-11 1.28996e-08 0 -3.87887e-11 1.26525e-08 0 -2.98938e-11 1.24541e-08 0
-2.35235e-11 1.22935e-08 0 -1.78204e-11 1.21653e-08 0 -9.55844e-12 1.20732e-08 0 -2.13366e-12 1.20451e-08 0
-2.9346e-11 1.33065e-08 0 -5.05085e-11 1.29529e-08 0 -3.71629e-11 1.27043e-08 0 -2.86546e-11 1.25063e-08 0
-2.28455e-11 1.23457e-08 0 -1.77173e-11 1.22166e-08 0 -9.36896e-12 1.21217e-08 0 -1.84306e-12 1.20967e-08 0
-2.35235e-11 1.22935e-08 0 -1.78204e-11 1.21653e-08 0 -9.55845e-12 1.20732e-08 0 -2.13368e-12 1.20451e-08 0
-2.9346e-11 1.33065e-08 0 -5.05084e-11 1.29529e-08 0 -3.71629e-11 1.27043e-08 0 -2.86546e-11 1.25063e-08 0
-2.28455e-11 1.23457e-08 0 -1.77173e-11 1.22166e-08 0 -9.36898e-12 1.21217e-08 0 -1.84307e-12 1.20967e-08 0
-1.05939e-11 8.1523e-09 0 -1.79637e-11 8.26277e-09 0 -1.32201e-11 8.34105e-09 0 -1.06944e-11 8.40068e-09 0
-8.90683e-12 8.45037e-09 0 -7.2091e-12 8.49443e-09 0 -3.82968e-12 8.53101e-09 0 -6.8331e-13 8.53674e-09 0
-8.90683e-12 8.45037e-09 0 -7.2091e-12 8.49443e-09 0 -3.82968e-12 8.53101e-09 0 -6.83318e-13 8.53674e-09 0
0 2.95705e-09 0 0 3.55527e-09 0 0 3.96107e-09 0 0 4.27828e-09 0
0 4.53839e-09 0 0 4.75593e-09 0 0 4.92531e-09 0 0 4.96049e-09 0
</DataArray>
<DataArray type="Float32" Name="velocity_gas (m/s)" NumberOfComponents="3" format="ascii">
-1.34005e-09 -6.5189e-08 0 -3.62385e-09 -6.712e-08 0 -4.77765e-09 -7.09687e-08 0 -4.9716e-09 -7.74916e-08 0
-5.44688e-09 -8.44827e-08 0 -5.45719e-09 -8.62565e-08 0 -3.78448e-09 -8.57933e-08 0 -1.29641e-09 -8.55366e-08 0
-1.14932e-08 -5.80769e-08 0 -3.19496e-08 -6.51543e-08 0 -4.62855e-08 -7.81786e-08 0 -5.22241e-08 -9.37353e-08 0
-4.8204e-08 -1.0748e-07 0 -3.71068e-08 -1.13969e-07 0 -2.31669e-08 -1.15709e-07 0 -7.86911e-09 -1.15766e-07 0