Commit 89672947 authored by Thomas Fetzer's avatar Thomas Fetzer
Browse files

[interfacegridcreator]

  - added functionality and properties to refine grid in all directions
  - naming (comp -> dimIdx)

[multidomain]
  - adapted to changes in the interfacegridcreator
  - removed unused properties from input file
  - in coupled zeroeq problem added output at beginning of simulations

[freeflow]
  - removed one unused property from test_zeroeq2c.input

reviewed by timok



git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk@15341 2fb0f335-1f38-0410-981e-8018bf24f1b0
parent 0b94c830
......@@ -71,21 +71,30 @@ public:
Dune::array<unsigned int, dim> numCells;
Dune::FieldVector<Scalar, dim> lowerLeft;
Dune::FieldVector<Scalar, dim> upperRight;
Dune::FieldVector<Scalar, dim> refinePoint(0);
Dune::FieldVector<Scalar, dim> gradingFactor(1);
Dune::FieldVector<Scalar, dim> refinePoint(0.0);
Dune::FieldVector<Scalar, dim> gradingFactor(1.0);
Dune::FieldVector<bool, dim> refineTop(false);
// x-direction
numCells[0] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, unsigned int, Grid, NumberOfCellsX);
lowerLeft[0] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Grid, LowerLeftX);
upperRight[0] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Grid, UpperRightX);
try { refinePoint[0] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Grid, InterfacePosX); }
catch (Dumux::ParameterException &e) { }
try { gradingFactor[0] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Grid, GradingFactorX); }
catch (Dumux::ParameterException &e) { }
try { refineTop[0] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, bool, Grid, RefineTopX); }
catch (Dumux::ParameterException &e) { }
// y-direction
numCells[1] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, unsigned int, Grid, NumberOfCellsY);
lowerLeft[1] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Grid, LowerLeftY);
upperRight[1] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Grid, UpperRightY);
refinePoint[1] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Grid, InterfacePosY);
gradingFactor[1] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Grid, GradingFactorY);
bool refineTop = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, bool, Grid, RefineTop);
try { refinePoint[1] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Grid, InterfacePosY); }
catch (Dumux::ParameterException &e) { }
try { gradingFactor[1] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, Grid, GradingFactorY); }
catch (Dumux::ParameterException &e) { }
try { refineTop[1] = GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, bool, Grid, RefineTopY); }
catch (Dumux::ParameterException &e) { }
typedef Dune::YaspGrid<dim> HelperGrid;
std::shared_ptr<HelperGrid> helperGrid = std::shared_ptr<HelperGrid> (
......@@ -110,9 +119,9 @@ public:
int nY = numCells[1];
std::vector<std::vector<Scalar> > localPositions(dim);
for (int comp = 0; comp < dim; comp++)
for (int dimIdx = 0; dimIdx < dim; dimIdx++)
{
Scalar lengthLeft = refinePointLocal[comp];
Scalar lengthLeft = refinePointLocal[dimIdx];
Scalar lengthRight = 1.0 - lengthLeft;
int nLeft, nRight;
......@@ -120,71 +129,71 @@ public:
if (lengthLeft < 1e-10)
{
nLeft = 0;
nRight = numCells[comp];
nRight = numCells[dimIdx];
if (gradingFactor[comp] > 1.0)
hLeft = hRight = (1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nRight));
if (gradingFactor[dimIdx] > 1.0)
hLeft = hRight = (1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nRight));
else
hLeft = hRight = 1.0/numCells[comp];
hLeft = hRight = 1.0/numCells[dimIdx];
}
else if (lengthLeft > 1.0 - 1e-10)
{
nLeft = numCells[comp];
nLeft = numCells[dimIdx];
nRight = 0;
if (gradingFactor[comp] > 1.0)
hLeft = hRight = (1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nLeft));
if (gradingFactor[dimIdx] > 1.0)
hLeft = hRight = (1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nLeft));
else
hLeft = hRight = 1.0/numCells[comp];
hLeft = hRight = 1.0/numCells[dimIdx];
}
else if (comp == dim - 1 && refineTop)
else if (refineTop[dimIdx])
{
lengthLeft = refinePointLocal[comp];
lengthRight = (1 - refinePointLocal[comp])/2;
lengthLeft = refinePointLocal[dimIdx];
lengthRight = (1 - refinePointLocal[dimIdx])/2;
nLeft = nRight = numCells[comp]/3;
nLeft = nRight = numCells[dimIdx]/3;
if (numCells[comp]%3 == 1)
if (numCells[dimIdx]%3 == 1)
nLeft += 1;
else if (numCells[comp]%3 == 2)
else if (numCells[dimIdx]%3 == 2)
nRight += 1;
hLeft = lengthLeft*(1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nLeft));
hRight = lengthRight*(1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nRight));
hLeft = lengthLeft*(1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nLeft));
hRight = lengthRight*(1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nRight));
}
else if (lengthLeft > 0.5)
{
Scalar nLeftDouble = std::ceil(-log((1.0 + sqrt(1.0 + 4.0 * pow(gradingFactor[comp], numCells[comp])
Scalar nLeftDouble = std::ceil(-log((1.0 + sqrt(1.0 + 4.0 * pow(gradingFactor[dimIdx], numCells[dimIdx])
* lengthRight/lengthLeft))
/(2.0*pow(gradingFactor[comp], numCells[comp])))/log(gradingFactor[comp]));
nLeft = std::min((unsigned int)std::ceil(nLeftDouble), numCells[comp]);
/(2.0*pow(gradingFactor[dimIdx], numCells[dimIdx])))/log(gradingFactor[dimIdx]));
nLeft = std::min((unsigned int)std::ceil(nLeftDouble), numCells[dimIdx]);
nRight = numCells[comp] - nLeft;
nRight = numCells[dimIdx] - nLeft;
if (gradingFactor[comp] > 1.0)
if (gradingFactor[dimIdx] > 1.0)
{
hLeft = lengthLeft*(1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nLeft));
hRight = lengthRight*(1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nRight));
hLeft = lengthLeft*(1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nLeft));
hRight = lengthRight*(1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nRight));
}
else
hLeft = hRight = 1.0/numCells[comp];
hLeft = hRight = 1.0/numCells[dimIdx];
}
else
{
Scalar nRightDouble = -log((1.0 + sqrt(1.0 + 4.0 * pow(gradingFactor[comp], numCells[comp])
Scalar nRightDouble = -log((1.0 + sqrt(1.0 + 4.0 * pow(gradingFactor[dimIdx], numCells[dimIdx])
* lengthLeft/lengthRight))
/(2.0*pow(gradingFactor[comp], numCells[comp])))/log(gradingFactor[comp]);
nRight = std::min((unsigned int)std::ceil(nRightDouble), numCells[comp]);
/(2.0*pow(gradingFactor[dimIdx], numCells[dimIdx])))/log(gradingFactor[dimIdx]);
nRight = std::min((unsigned int)std::ceil(nRightDouble), numCells[dimIdx]);
nLeft = numCells[comp] - nRight;
nLeft = numCells[dimIdx] - nRight;
if (gradingFactor[comp] > 1.0)
if (gradingFactor[dimIdx] > 1.0)
{
hLeft = lengthLeft*(1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nLeft));
hRight = lengthRight*(1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nRight));
hLeft = lengthLeft*(1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nLeft));
hRight = lengthRight*(1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nRight));
}
else
hLeft = hRight = 1.0/numCells[comp];
hLeft = hRight = 1.0/numCells[dimIdx];
}
std::cout << "lengthLeft = " << lengthLeft
<< ", lengthRight = " << lengthRight
......@@ -194,33 +203,33 @@ public:
<< ", nRight = " << nRight
<< std::endl;
int numVertices = numCells[comp] + 1;
localPositions[comp].resize(numVertices);
int numVertices = numCells[dimIdx] + 1;
localPositions[dimIdx].resize(numVertices);
localPositions[comp][0] = 0.0;
localPositions[dimIdx][0] = 0.0;
for (int i = 0; i < nLeft; i++)
{
Scalar hI = hLeft*pow(gradingFactor[comp], nLeft-1-i);
localPositions[comp][i+1] = localPositions[comp][i] + hI;
Scalar hI = hLeft*pow(gradingFactor[dimIdx], nLeft-1-i);
localPositions[dimIdx][i+1] = localPositions[dimIdx][i] + hI;
}
for (int i = 0; i < nRight; i++)
{
Scalar hI = hRight*pow(gradingFactor[comp], i);
localPositions[comp][nLeft+i+1] = localPositions[comp][nLeft+i] + hI;
Scalar hI = hRight*pow(gradingFactor[dimIdx], i);
localPositions[dimIdx][nLeft+i+1] = localPositions[dimIdx][nLeft+i] + hI;
}
if (comp == dim - 1 && refineTop)
if (refineTop[dimIdx])
for (int i = 0; i < nRight; i++)
{
Scalar hI = hRight*pow(gradingFactor[comp], nRight-1-i);
localPositions[comp][nLeft+nRight+i+1] = localPositions[comp][nLeft+nRight+i] + hI;
Scalar hI = hRight*pow(gradingFactor[dimIdx], nRight-1-i);
localPositions[dimIdx][nLeft+nRight+i+1] = localPositions[dimIdx][nLeft+nRight+i] + hI;
}
if (localPositions[comp][numVertices-1] != 1.0)
if (localPositions[dimIdx][numVertices-1] != 1.0)
{
for (int i = 0; i < numVertices; i++)
localPositions[comp][i] /= localPositions[comp][numVertices-1];
localPositions[dimIdx][i] /= localPositions[dimIdx][numVertices-1];
}
}
......@@ -285,9 +294,9 @@ public:
int nY = numCells[1];
std::vector<std::vector<Scalar> > localPositions(dim);
for (int comp = 0; comp < dim; comp++)
for (int dimIdx = 0; dimIdx < dim; dimIdx++)
{
Scalar lengthLeft = refinePointLocal[comp];
Scalar lengthLeft = refinePointLocal[dimIdx];
Scalar lengthRight = 1.0 - lengthLeft;
int nLeft, nRight;
......@@ -295,71 +304,71 @@ public:
if (lengthLeft < 1e-10)
{
nLeft = 0;
nRight = numCells[comp];
nRight = numCells[dimIdx];
if (gradingFactor[comp] > 1.0)
hLeft = hRight = (1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nRight));
if (gradingFactor[dimIdx] > 1.0)
hLeft = hRight = (1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nRight));
else
hLeft = hRight = 1.0/numCells[comp];
hLeft = hRight = 1.0/numCells[dimIdx];
}
else if (lengthLeft > 1.0 - 1e-10)
{
nLeft = numCells[comp];
nLeft = numCells[dimIdx];
nRight = 0;
if (gradingFactor[comp] > 1.0)
hLeft = hRight = (1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nLeft));
if (gradingFactor[dimIdx] > 1.0)
hLeft = hRight = (1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nLeft));
else
hLeft = hRight = 1.0/numCells[comp];
hLeft = hRight = 1.0/numCells[dimIdx];
}
else if (comp == dim - 1 && refineTop)
else if (dimIdx == dim - 1 && refineTop)
{
lengthLeft = refinePointLocal[comp];
lengthRight = (1 - refinePointLocal[comp])/2;
lengthLeft = refinePointLocal[dimIdx];
lengthRight = (1 - refinePointLocal[dimIdx])/2;
nLeft = nRight = numCells[comp]/3;
nLeft = nRight = numCells[dimIdx]/3;
if (numCells[comp]%3 == 1)
if (numCells[dimIdx]%3 == 1)
nLeft += 1;
else if (numCells[comp]%3 == 2)
else if (numCells[dimIdx]%3 == 2)
nRight += 1;
hLeft = lengthLeft*(1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nLeft));
hRight = lengthRight*(1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nRight));
hLeft = lengthLeft*(1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nLeft));
hRight = lengthRight*(1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nRight));
}
else if (lengthLeft > 0.5)
{
Scalar nLeftDouble = std::ceil(-log((1.0 + sqrt(1.0 + 4.0 * pow(gradingFactor[comp], numCells[comp])
Scalar nLeftDouble = std::ceil(-log((1.0 + sqrt(1.0 + 4.0 * pow(gradingFactor[dimIdx], numCells[dimIdx])
* lengthRight/lengthLeft))
/(2.0*pow(gradingFactor[comp], numCells[comp])))/log(gradingFactor[comp]));
nLeft = std::min((int)std::ceil(nLeftDouble), numCells[comp]);
/(2.0*pow(gradingFactor[dimIdx], numCells[dimIdx])))/log(gradingFactor[dimIdx]));
nLeft = std::min((int)std::ceil(nLeftDouble), numCells[dimIdx]);
nRight = numCells[comp] - nLeft;
nRight = numCells[dimIdx] - nLeft;
if (gradingFactor[comp] > 1.0)
if (gradingFactor[dimIdx] > 1.0)
{
hLeft = lengthLeft*(1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nLeft));
hRight = lengthRight*(1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nRight));
hLeft = lengthLeft*(1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nLeft));
hRight = lengthRight*(1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nRight));
}
else
hLeft = hRight = 1.0/numCells[comp];
hLeft = hRight = 1.0/numCells[dimIdx];
}
else
{
Scalar nRightDouble = -log((1.0 + sqrt(1.0 + 4.0 * pow(gradingFactor[comp], numCells[comp])
Scalar nRightDouble = -log((1.0 + sqrt(1.0 + 4.0 * pow(gradingFactor[dimIdx], numCells[dimIdx])
* lengthLeft/lengthRight))
/(2.0*pow(gradingFactor[comp], numCells[comp])))/log(gradingFactor[comp]);
nRight = std::min((int)std::ceil(nRightDouble), numCells[comp]);
/(2.0*pow(gradingFactor[dimIdx], numCells[dimIdx])))/log(gradingFactor[dimIdx]);
nRight = std::min((int)std::ceil(nRightDouble), numCells[dimIdx]);
nLeft = numCells[comp] - nRight;
nLeft = numCells[dimIdx] - nRight;
if (gradingFactor[comp] > 1.0)
if (gradingFactor[dimIdx] > 1.0)
{
hLeft = lengthLeft*(1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nLeft));
hRight = lengthRight*(1.0 - gradingFactor[comp])/(1.0 - pow(gradingFactor[comp], nRight));
hLeft = lengthLeft*(1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nLeft));
hRight = lengthRight*(1.0 - gradingFactor[dimIdx])/(1.0 - pow(gradingFactor[dimIdx], nRight));
}
else
hLeft = hRight = 1.0/numCells[comp];
hLeft = hRight = 1.0/numCells[dimIdx];
}
std::cout << "lengthLeft = " << lengthLeft
<< ", lengthRight = " << lengthRight
......@@ -369,33 +378,33 @@ public:
<< ", nRight = " << nRight
<< std::endl;
int numVertices = numCells[comp] + 1;
localPositions[comp].resize(numVertices);
int numVertices = numCells[dimIdx] + 1;
localPositions[dimIdx].resize(numVertices);
localPositions[comp][0] = 0.0;
localPositions[dimIdx][0] = 0.0;
for (int i = 0; i < nLeft; i++)
{
Scalar hI = hLeft*pow(gradingFactor[comp], nLeft-1-i);
localPositions[comp][i+1] = localPositions[comp][i] + hI;
Scalar hI = hLeft*pow(gradingFactor[dimIdx], nLeft-1-i);
localPositions[dimIdx][i+1] = localPositions[dimIdx][i] + hI;
}
for (int i = 0; i < nRight; i++)
{
Scalar hI = hRight*pow(gradingFactor[comp], i);
localPositions[comp][nLeft+i+1] = localPositions[comp][nLeft+i] + hI;
Scalar hI = hRight*pow(gradingFactor[dimIdx], i);
localPositions[dimIdx][nLeft+i+1] = localPositions[dimIdx][nLeft+i] + hI;
}
if (comp == dim - 1 && refineTop)
if (dimIdx == dim - 1 && refineTop)
for (int i = 0; i < nRight; i++)
{
Scalar hI = hRight*pow(gradingFactor[comp], nRight-1-i);
localPositions[comp][nLeft+nRight+i+1] = localPositions[comp][nLeft+nRight+i] + hI;
Scalar hI = hRight*pow(gradingFactor[dimIdx], nRight-1-i);
localPositions[dimIdx][nLeft+nRight+i+1] = localPositions[dimIdx][nLeft+nRight+i] + hI;
}
if (localPositions[comp][numVertices-1] != 1.0)
if (localPositions[dimIdx][numVertices-1] != 1.0)
{
for (int i = 0; i < numVertices; i++)
localPositions[comp][i] /= localPositions[comp][numVertices-1];
localPositions[dimIdx][i] /= localPositions[dimIdx][numVertices-1];
}
}
......
......@@ -18,6 +18,5 @@ InjectionConcentration = .2 # [-]
# 3 = Deissler
# 4 = Meier and Rotta
# 5 = Mamayev exponential law
WriteAllSCVData = 0.8984
EddyViscosityModel = 1
EddyDiffusivityModel = 4
......@@ -19,7 +19,7 @@ NumberOfCellsX = 30
NumberOfCellsY = 62
# Grading and refinement of the mesh in y direction
GradingFactorY = 1.13
RefineTop = false
RefineTopY = false
[Output]
NameFF = stokes2cni
......@@ -69,8 +69,6 @@ Swr = 0.005 # [-]
Snr = 0.01 # [-]
VgAlpha = 6.371e-4 # [1/Pa]
VgN = 8.0 # [-]
Pentry = 1357
BCLambda = 6.960
LambdaSolid = 5.26 # [W/(m*K)]
[Newton]
......@@ -81,6 +79,4 @@ WriteConvergence = false
MaxTimeStepDivisions = 20
[LinearSolver]
ResidualReduction = 1e-9
Verbosity = 0
MaxIterations = 200
\ No newline at end of file
......@@ -19,7 +19,7 @@ NumberOfCellsX = 15
NumberOfCellsY = 20
# Grading and refinement of the mesh in y direction
GradingFactorY = 1.1
RefineTop = false
RefineTopY = false
[Output]
NameFF = stokes2cni_boundarylayer
......@@ -72,8 +72,6 @@ Swr = 0.005 # [-]
Snr = 0.01 # [-]
VgAlpha = 6.371e-4 # [1/Pa]
VgN = 8.0 # [-]
Pentry = 1357
BCLambda = 6.960
LambdaSolid = 5.26 # [W/(m*K)]
[Newton]
......@@ -84,6 +82,4 @@ WriteConvergence = false
MaxTimeStepDivisions = 20
[LinearSolver]
ResidualReduction = 1e-9
Verbosity = 0
MaxIterations = 200
\ No newline at end of file
......@@ -19,7 +19,7 @@ NumberOfCellsX = 15
NumberOfCellsY = 20
# Grading and refinement of the mesh in y direction
GradingFactorY = 1.1
RefineTop = false
RefineTopY = false
[Output]
NameFF = stokes2cni
......@@ -69,8 +69,6 @@ Swr = 0.005 # [-]
Snr = 0.01 # [-]
VgAlpha = 6.371e-4 # [1/Pa]
VgN = 8.0 # [-]
Pentry = 1357
BCLambda = 6.960
LambdaSolid = 5.26 # [W/(m*K)]
[Newton]
......@@ -81,6 +79,4 @@ WriteConvergence = false
MaxTimeStepDivisions = 20
[LinearSolver]
ResidualReduction = 1e-9
Verbosity = 0
MaxIterations = 200
\ No newline at end of file
......@@ -217,18 +217,15 @@ public:
//! \copydoc Dumux::ImplicitProblem::shouldWriteRestartFile()
bool shouldWriteRestartFile() const
{
return ( ((this->timeManager().timeStepIndex() > 0)
return (((this->timeManager().timeStepIndex() > 0)
&& (this->timeManager().timeStepIndex() % freqRestart_ == 0))
// also write a restart file at the end of each episode
|| this->timeManager().episodeWillBeOver());
}
//! \copydoc Dumux::ImplicitProblem::shouldWriteOutput()
bool shouldWriteOutput() const
{
return ( ((this->timeManager().timeStepIndex() > 0)
&& (this->timeManager().timeStepIndex() % freqOutput_ == 0))
// also write a restart file at the end of each episode
return (this->timeManager().timeStepIndex() % freqOutput_ == 0
|| this->timeManager().episodeWillBeOver());
}
......
......@@ -7,6 +7,6 @@ add_dumux_test(test_2cnizeroeq2p2cni test_2cnizeroeq2p2cni test_2cnizeroeq2p2cni
--script fuzzy
--command "${CMAKE_CURRENT_BINARY_DIR}/test_2cnizeroeq2p2cni -ParameterFile ${CMAKE_CURRENT_SOURCE_DIR}/test_2cnizeroeq2p2cni_reference.input"
--files ${CMAKE_SOURCE_DIR}/test/references/2cnizeroeq2p2cni-ff-reference.vtu
${CMAKE_CURRENT_BINARY_DIR}/zeroeq2cni-00008.vtu
${CMAKE_CURRENT_BINARY_DIR}/zeroeq2cni-00010.vtu
${CMAKE_SOURCE_DIR}/test/references/2cnizeroeq2p2cni-pm-reference.vtu
${CMAKE_CURRENT_BINARY_DIR}/2p2cni-00008.vtu)
${CMAKE_CURRENT_BINARY_DIR}/2p2cni-00010.vtu)
......@@ -57,7 +57,7 @@ void printUsage(const char *progName, const std::string &errorMsg)
"NumberOfCellsX Number of cells in x-direction\n"
"NumberOfCellsY Number of cells in y-direction\n"
"GradingFactorY Vertical grading of the cells\n"
"RefineTop Specifies whethter the top of the free flow will be refined\n"
"RefineTopY Specifies whethter the top of the free flow will be refined\n"
"InterfacePosY Vertical position of the interface [m]\n"
"NoDarcyX1 Horizontal position where the porous medium starts [m]\n"
"NoDarcyX2 Horizontal position where the porous medium ends [m]\n"
......
......@@ -14,7 +14,7 @@ NumberOfCellsX = 15
NumberOfCellsY = 30
# Grading and refinement of the mesh
GradingFactorY = 1.16
RefineTop = true
RefineTopY = true
# Position information
NoDarcyX1 = 0.25 # [m] # Beginning of PM below
NoDarcyX2 = 0.5 # [m] # End of PM below
......@@ -29,8 +29,6 @@ NamePM = 2p2cni
FreqRestart = 5 # how often restart files are written out
FreqOutput = 5 # 10 # frequency of VTK output
FreqMassOutput = 5 # 20 # frequency of mass and evaporation rate output (Darcy)
FreqFluxOutput = 100 # 100 # frequency of detailed flux output
FreqVaporFluxOutput = 3 # 5 # frequency of summarized flux output
[FreeFlow]
RefVelocity = 1.0 # [m/s]
......@@ -66,12 +64,9 @@ MaxSteps = 12
WriteConvergence = false
[LinearSolver]
ResidualReduction = 1e-9
Verbosity = 0
MaxIterations = 100
[ZeroEq]
WriteAllSCVData = -1.0
# Eddy Viscosity Models
# 0 = none
# 1 = Prandtl
......
......@@ -14,7 +14,7 @@ NumberOfCellsX = 15
NumberOfCellsY = 15
# Grading and refinement of the mesh
GradingFactorY = 1.75
RefineTop = true
RefineTopY = true
# Position information
NoDarcyX1 = 0.25 # [m] # Beginning of PM below
NoDarcyX2 = 0.5 # [m] # End of PM below
......@@ -29,8 +29,6 @@ NamePM = 2p2cni
FreqRestart = 1000 # how often restart files are written out
FreqOutput = 5 # 10 # frequency of VTK output
FreqMassOutput = 1 # 20 # frequency of mass and evaporation rate output (Darcy)
FreqFluxOutput = 100 # 100 # frequency of detailed flux output
FreqVaporFluxOutput = 2 # 5 # frequency of summarized flux output
[FreeFlow]
RefVelocity = 3.5 # [m/s]
......@@ -66,12 +64,9 @@ MaxSteps = 12
WriteConvergence = false
[LinearSolver]
ResidualReduction = 1e-9
Verbosity = 0
MaxIterations = 100
[ZeroEq]
WriteAllSCVData = -1.0
# Eddy Viscosity Models
# 0 = none
# 1 = Prandtl
......
......@@ -19,7 +19,7 @@ NumberOfCellsX = 30
NumberOfCellsY = 62
# Grading and refinement of the mesh in y direction
GradingFactorY = 1.13
RefineTop = false
RefineTopY = false
[Output]
NameFF = stokes2c
......@@ -77,6 +77,4 @@ WriteConvergence = false
MaxTimeStepDivisions = 20
[LinearSolver]
ResidualReduction = 1e-10
Verbosity = 0
MaxIterations = 200
\ No newline at end of file
......@@ -19,7 +19,7 @@ NumberOfCellsX = 25
NumberOfCellsY = 45
# Grading and refinement of the mesh in y direction
GradingFactorY = 1.1
RefineTop = false
RefineTopY = false
[Output]
NameFF = stokes2c
......@@ -77,6 +77,4 @@ WriteConvergence = false
MaxTimeStepDivisions = 20