mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
move Cells(X|Y|Z) to TypeTag-free parameter system
This commit is contained in:
@@ -156,19 +156,6 @@ struct EpisodeLength { using type = Properties::UndefinedProperty;};
|
|||||||
template <class TypeTag, class MyTypeTag>
|
template <class TypeTag, class MyTypeTag>
|
||||||
struct Initialpressure { using type = Properties::UndefinedProperty;};
|
struct Initialpressure { using type = Properties::UndefinedProperty;};
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsX<TypeTag, Properties::TTag::CO2PTBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 30; };
|
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsY<TypeTag, Properties::TTag::CO2PTBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 1; };
|
|
||||||
|
|
||||||
// CellsZ is not needed, while to keep structuredgridvanguard.hh compile
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsZ<TypeTag, Properties::TTag::CO2PTBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 1; };
|
|
||||||
|
|
||||||
//\Note: from the Julia code, the problem is a 1D problem with 3X1 cell.
|
//\Note: from the Julia code, the problem is a 1D problem with 3X1 cell.
|
||||||
//\Note: DomainSizeX is 3.0 meters
|
//\Note: DomainSizeX is 3.0 meters
|
||||||
//\Note: DomainSizeY is 1.0 meters
|
//\Note: DomainSizeY is 1.0 meters
|
||||||
@@ -424,6 +411,16 @@ public:
|
|||||||
("The name of the simulation used for the output files");
|
("The name of the simulation used for the output files");
|
||||||
Parameters::registerParam<TypeTag, Parameters::EpisodeLength>
|
Parameters::registerParam<TypeTag, Parameters::EpisodeLength>
|
||||||
("Time interval [s] for episode length");
|
("Time interval [s] for episode length");
|
||||||
|
|
||||||
|
Parameters::SetDefault<Parameters::CellsX>(30);
|
||||||
|
|
||||||
|
if constexpr (dim > 1) {
|
||||||
|
Parameters::SetDefault<Parameters::CellsY>(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if constexpr (dim == 3) {
|
||||||
|
Parameters::SetDefault<Parameters::CellsZ>(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -517,7 +514,7 @@ public:
|
|||||||
{
|
{
|
||||||
int spatialIdx = context.globalSpaceIndex(spaceIdx, timeIdx);
|
int spatialIdx = context.globalSpaceIndex(spaceIdx, timeIdx);
|
||||||
int inj = 0;
|
int inj = 0;
|
||||||
int prod = Parameters::get<TypeTag, Parameters::CellsX>() - 1;
|
int prod = Parameters::Get<Parameters::CellsX>() - 1;
|
||||||
if (spatialIdx == inj || spatialIdx == prod) {
|
if (spatialIdx == inj || spatialIdx == prod) {
|
||||||
return 1.0;
|
return 1.0;
|
||||||
} else {
|
} else {
|
||||||
@@ -568,7 +565,7 @@ private:
|
|||||||
// p0 = 75e5
|
// p0 = 75e5
|
||||||
// T0 = 423.25
|
// T0 = 423.25
|
||||||
int inj = 0;
|
int inj = 0;
|
||||||
int prod = Parameters::get<TypeTag, Parameters::CellsX>() - 1;
|
int prod = Parameters::Get<Parameters::CellsX>() - 1;
|
||||||
int spatialIdx = context.globalSpaceIndex(spaceIdx, timeIdx);
|
int spatialIdx = context.globalSpaceIndex(spaceIdx, timeIdx);
|
||||||
ComponentVector comp;
|
ComponentVector comp;
|
||||||
comp[0] = Evaluation::createVariable(0.5, 1);
|
comp[0] = Evaluation::createVariable(0.5, 1);
|
||||||
|
|||||||
@@ -110,18 +110,6 @@ struct EnableDiffusion<TypeTag, TTag::DiffusionBaseProblem> { static constexpr b
|
|||||||
|
|
||||||
namespace Opm::Parameters {
|
namespace Opm::Parameters {
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsX<TypeTag, Properties::TTag::DiffusionBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 250; };
|
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsY<TypeTag, Properties::TTag::DiffusionBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 1; };
|
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsZ<TypeTag, Properties::TTag::DiffusionBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 1; };
|
|
||||||
|
|
||||||
// define the properties specific for the diffusion problem
|
// define the properties specific for the diffusion problem
|
||||||
template<class TypeTag>
|
template<class TypeTag>
|
||||||
struct DomainSizeX<TypeTag, Properties::TTag::DiffusionBaseProblem>
|
struct DomainSizeX<TypeTag, Properties::TTag::DiffusionBaseProblem>
|
||||||
@@ -245,6 +233,24 @@ public:
|
|||||||
setupInitialFluidStates_();
|
setupInitialFluidStates_();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \copydoc FvBaseMultiPhaseProblem::registerParameters
|
||||||
|
*/
|
||||||
|
static void registerParameters()
|
||||||
|
{
|
||||||
|
ParentType::registerParameters();
|
||||||
|
|
||||||
|
Parameters::SetDefault<Parameters::CellsX>(250);
|
||||||
|
|
||||||
|
if constexpr (dim > 1) {
|
||||||
|
Parameters::SetDefault<Parameters::CellsY>(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if constexpr (dim == 3) {
|
||||||
|
Parameters::SetDefault<Parameters::CellsZ>(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \name Auxiliary methods
|
* \name Auxiliary methods
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -131,18 +131,6 @@ namespace Opm::Parameters {
|
|||||||
template<class TypeTag, class MyTypeTag>
|
template<class TypeTag, class MyTypeTag>
|
||||||
struct InitialWaterSaturation { using type = Properties::UndefinedProperty; };
|
struct InitialWaterSaturation { using type = Properties::UndefinedProperty; };
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsX<TypeTag, Properties::TTag::FingerBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 20; };
|
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsY<TypeTag, Properties::TTag::FingerBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 70; };
|
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsZ<TypeTag, Properties::TTag::FingerBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 1; };
|
|
||||||
|
|
||||||
// define the properties specific for the finger problem
|
// define the properties specific for the finger problem
|
||||||
template<class TypeTag>
|
template<class TypeTag>
|
||||||
struct DomainSizeX<TypeTag, Properties::TTag::FingerBaseProblem>
|
struct DomainSizeX<TypeTag, Properties::TTag::FingerBaseProblem>
|
||||||
@@ -320,6 +308,16 @@ public:
|
|||||||
|
|
||||||
Parameters::registerParam<TypeTag, Parameters::InitialWaterSaturation>
|
Parameters::registerParam<TypeTag, Parameters::InitialWaterSaturation>
|
||||||
("The initial saturation in the domain [] of the wetting phase");
|
("The initial saturation in the domain [] of the wetting phase");
|
||||||
|
|
||||||
|
Parameters::SetDefault<Parameters::CellsX>(20);
|
||||||
|
|
||||||
|
if constexpr (dim > 1) {
|
||||||
|
Parameters::SetDefault<Parameters::CellsY>(70);
|
||||||
|
}
|
||||||
|
|
||||||
|
if constexpr (dim == 3) {
|
||||||
|
Parameters::SetDefault<Parameters::CellsZ>(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@@ -138,18 +138,6 @@ struct LensUpperRightY { using type = Properties::UndefinedProperty; };
|
|||||||
template<class TypeTag, class MyTypeTag>
|
template<class TypeTag, class MyTypeTag>
|
||||||
struct LensUpperRightZ { using type = Properties::UndefinedProperty; };
|
struct LensUpperRightZ { using type = Properties::UndefinedProperty; };
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsX<TypeTag, Properties::TTag::LensBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 48; };
|
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsY<TypeTag, Properties::TTag::LensBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 32; };
|
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsZ<TypeTag, Properties::TTag::LensBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 16; };
|
|
||||||
|
|
||||||
template<class TypeTag>
|
template<class TypeTag>
|
||||||
struct DomainSizeX<TypeTag, Properties::TTag::LensBaseProblem>
|
struct DomainSizeX<TypeTag, Properties::TTag::LensBaseProblem>
|
||||||
{
|
{
|
||||||
@@ -343,7 +331,7 @@ public:
|
|||||||
lensUpperRight_[0] = Parameters::get<TypeTag, Parameters::LensUpperRightX>();
|
lensUpperRight_[0] = Parameters::get<TypeTag, Parameters::LensUpperRightX>();
|
||||||
lensUpperRight_[1] = Parameters::get<TypeTag, Parameters::LensUpperRightY>();
|
lensUpperRight_[1] = Parameters::get<TypeTag, Parameters::LensUpperRightY>();
|
||||||
|
|
||||||
if (dimWorld == 3) {
|
if constexpr (dim == 3) {
|
||||||
lensLowerLeft_[2] = Parameters::get<TypeTag, Parameters::LensLowerLeftZ>();
|
lensLowerLeft_[2] = Parameters::get<TypeTag, Parameters::LensLowerLeftZ>();
|
||||||
lensUpperRight_[2] = Parameters::get<TypeTag, Parameters::LensUpperRightZ>();
|
lensUpperRight_[2] = Parameters::get<TypeTag, Parameters::LensUpperRightZ>();
|
||||||
}
|
}
|
||||||
@@ -388,12 +376,19 @@ public:
|
|||||||
Parameters::registerParam<TypeTag, Parameters::LensUpperRightY>
|
Parameters::registerParam<TypeTag, Parameters::LensUpperRightY>
|
||||||
("The y-coordinate of the lens' upper-right corner [m].");
|
("The y-coordinate of the lens' upper-right corner [m].");
|
||||||
|
|
||||||
if (dimWorld == 3) {
|
if constexpr (dim == 3) {
|
||||||
Parameters::registerParam<TypeTag, Parameters::LensLowerLeftZ>
|
Parameters::registerParam<TypeTag, Parameters::LensLowerLeftZ>
|
||||||
("The z-coordinate of the lens' lower-left corner [m].");
|
("The z-coordinate of the lens' lower-left corner [m].");
|
||||||
Parameters::registerParam<TypeTag, Parameters::LensUpperRightZ>
|
Parameters::registerParam<TypeTag, Parameters::LensUpperRightZ>
|
||||||
("The z-coordinate of the lens' upper-right corner [m].");
|
("The z-coordinate of the lens' upper-right corner [m].");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Parameters::SetDefault<Parameters::CellsX>(48);
|
||||||
|
Parameters::SetDefault<Parameters::CellsY>(32);
|
||||||
|
|
||||||
|
if constexpr (dim == 3) {
|
||||||
|
Parameters::SetDefault<Parameters::CellsZ>(16);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@@ -123,18 +123,6 @@ public:
|
|||||||
|
|
||||||
namespace Opm::Parameters {
|
namespace Opm::Parameters {
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsX<TypeTag, Properties::TTag::PowerInjectionBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 250; };
|
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsY<TypeTag, Properties::TTag::PowerInjectionBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 1; };
|
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsZ<TypeTag, Properties::TTag::PowerInjectionBaseProblem>
|
|
||||||
{ static constexpr unsigned value = 1; };
|
|
||||||
|
|
||||||
// define the properties specific for the power injection problem
|
// define the properties specific for the power injection problem
|
||||||
template<class TypeTag>
|
template<class TypeTag>
|
||||||
struct DomainSizeX<TypeTag, Properties::TTag::PowerInjectionBaseProblem>
|
struct DomainSizeX<TypeTag, Properties::TTag::PowerInjectionBaseProblem>
|
||||||
@@ -270,6 +258,24 @@ public:
|
|||||||
setupInitialFluidState_();
|
setupInitialFluidState_();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \copydoc FvBaseMultiPhaseProblem::registerParameters
|
||||||
|
*/
|
||||||
|
static void registerParameters()
|
||||||
|
{
|
||||||
|
ParentType::registerParameters();
|
||||||
|
|
||||||
|
Parameters::SetDefault<Parameters::CellsX>(250);
|
||||||
|
|
||||||
|
if constexpr (dim > 1) {
|
||||||
|
Parameters::SetDefault<Parameters::CellsY>(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if constexpr (dim == 3) {
|
||||||
|
Parameters::SetDefault<Parameters::CellsZ>(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \name Auxiliary methods
|
* \name Auxiliary methods
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -124,19 +124,6 @@ public:
|
|||||||
|
|
||||||
namespace Opm::Parameters {
|
namespace Opm::Parameters {
|
||||||
|
|
||||||
// // define the number of cells used for discretizing the physical domain
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsX<TypeTag, Properties::TTag::Tutorial1Problem>
|
|
||||||
{ static constexpr unsigned value = 100; };
|
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsY<TypeTag, Properties::TTag::Tutorial1Problem>
|
|
||||||
{ static constexpr unsigned value = 1; };
|
|
||||||
|
|
||||||
template<class TypeTag>
|
|
||||||
struct CellsZ<TypeTag, Properties::TTag::Tutorial1Problem>
|
|
||||||
{ static constexpr unsigned value = 1; }; /*@\label{tutorial1:default-params-end}@*/
|
|
||||||
|
|
||||||
// define the physical size of the problem's domain [m]
|
// define the physical size of the problem's domain [m]
|
||||||
template<class TypeTag>
|
template<class TypeTag>
|
||||||
struct DomainSizeX<TypeTag, Properties::TTag::Tutorial1Problem>
|
struct DomainSizeX<TypeTag, Properties::TTag::Tutorial1Problem>
|
||||||
@@ -193,7 +180,10 @@ class Tutorial1Problem
|
|||||||
using GridView = GetPropType<TypeTag, Properties::GridView>;
|
using GridView = GetPropType<TypeTag, Properties::GridView>;
|
||||||
|
|
||||||
// Grid dimension
|
// Grid dimension
|
||||||
enum { dimWorld = GridView::dimensionworld };
|
enum {
|
||||||
|
dim = GridView::dimension,
|
||||||
|
dimWorld = GridView::dimensionworld
|
||||||
|
};
|
||||||
|
|
||||||
// The type of the intrinsic permeability tensor
|
// The type of the intrinsic permeability tensor
|
||||||
using DimMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>;
|
using DimMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>;
|
||||||
@@ -247,6 +237,21 @@ public:
|
|||||||
materialParams_.finalize();
|
materialParams_.finalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \copydoc FvBaseMultiPhaseProblem::registerParameters
|
||||||
|
*/
|
||||||
|
static void registerParameters()
|
||||||
|
{
|
||||||
|
ParentType::registerParameters();
|
||||||
|
|
||||||
|
Parameters::SetDefault<Parameters::CellsX>(100);
|
||||||
|
Parameters::SetDefault<Parameters::CellsY>(1);
|
||||||
|
|
||||||
|
if constexpr (dim == 3) {
|
||||||
|
Parameters::SetDefault<Parameters::CellsZ>(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//! Specifies the problem name. This is used for files generated by the simulation.
|
//! Specifies the problem name. This is used for files generated by the simulation.
|
||||||
std::string name() const
|
std::string name() const
|
||||||
{ return "tutorial1"; }
|
{ return "tutorial1"; }
|
||||||
|
|||||||
@@ -58,7 +58,10 @@ class CubeGridVanguard : public BaseVanguard<TypeTag>
|
|||||||
|
|
||||||
using GridPointer = std::unique_ptr<Grid>;
|
using GridPointer = std::unique_ptr<Grid>;
|
||||||
using CoordScalar = typename Grid::ctype;
|
using CoordScalar = typename Grid::ctype;
|
||||||
enum { dimWorld = Grid::dimensionworld };
|
enum {
|
||||||
|
dim = Grid::dimension,
|
||||||
|
dimWorld = Grid::dimensionworld,
|
||||||
|
};
|
||||||
using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
|
using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@@ -72,18 +75,18 @@ public:
|
|||||||
"executed after it was loaded");
|
"executed after it was loaded");
|
||||||
Parameters::registerParam<TypeTag, Parameters::DomainSizeX>
|
Parameters::registerParam<TypeTag, Parameters::DomainSizeX>
|
||||||
("The size of the domain in x direction");
|
("The size of the domain in x direction");
|
||||||
Parameters::registerParam<TypeTag, Parameters::CellsX>
|
Parameters::Register<Parameters::CellsX>
|
||||||
("The number of intervalls in x direction");
|
("The number of intervalls in x direction");
|
||||||
if (dimWorld > 1) {
|
if constexpr (dim > 1) {
|
||||||
Parameters::registerParam<TypeTag, Parameters::DomainSizeY>
|
Parameters::registerParam<TypeTag, Parameters::DomainSizeY>
|
||||||
("The size of the domain in y direction");
|
("The size of the domain in y direction");
|
||||||
Parameters::registerParam<TypeTag, Parameters::CellsY>
|
Parameters::Register<Parameters::CellsY>
|
||||||
("The number of intervalls in y direction");
|
("The number of intervalls in y direction");
|
||||||
}
|
}
|
||||||
if (dimWorld > 2) {
|
if constexpr (dim > 2) {
|
||||||
Parameters::registerParam<TypeTag, Parameters::DomainSizeZ>
|
Parameters::registerParam<TypeTag, Parameters::DomainSizeZ>
|
||||||
("The size of the domain in z direction");
|
("The size of the domain in z direction");
|
||||||
Parameters::registerParam<TypeTag, Parameters::CellsZ>
|
Parameters::Register<Parameters::CellsZ>
|
||||||
("The number of intervalls in z direction");
|
("The number of intervalls in z direction");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -94,22 +97,22 @@ public:
|
|||||||
CubeGridVanguard(Simulator& simulator)
|
CubeGridVanguard(Simulator& simulator)
|
||||||
: ParentType(simulator)
|
: ParentType(simulator)
|
||||||
{
|
{
|
||||||
std::array<unsigned int, dimWorld> cellRes;
|
std::array<unsigned int, dim> cellRes;
|
||||||
GlobalPosition upperRight(0.0);
|
GlobalPosition upperRight(0.0);
|
||||||
GlobalPosition lowerLeft(0.0);
|
GlobalPosition lowerLeft(0.0);
|
||||||
|
|
||||||
for (unsigned i = 0; i < dimWorld; ++i)
|
for (unsigned i = 0; i < dim; ++i)
|
||||||
cellRes[i] = 0;
|
cellRes[i] = 0;
|
||||||
|
|
||||||
upperRight[0] = Parameters::get<TypeTag, Parameters::DomainSizeX>();
|
upperRight[0] = Parameters::get<TypeTag, Parameters::DomainSizeX>();
|
||||||
cellRes[0] = Parameters::get<TypeTag, Parameters::CellsX>();
|
cellRes[0] = Parameters::Get<Parameters::CellsX>();
|
||||||
if (dimWorld > 1) {
|
if constexpr (dim > 1) {
|
||||||
upperRight[1] = Parameters::get<TypeTag, Parameters::DomainSizeY>();
|
upperRight[1] = Parameters::get<TypeTag, Parameters::DomainSizeY>();
|
||||||
cellRes[1] = Parameters::get<TypeTag, Parameters::CellsY>();
|
cellRes[1] = Parameters::Get<Parameters::CellsY>();
|
||||||
}
|
}
|
||||||
if (dimWorld > 2) {
|
if constexpr (dim > 2) {
|
||||||
upperRight[2] = Parameters::get<TypeTag, Parameters::DomainSizeZ>();
|
upperRight[2] = Parameters::get<TypeTag, Parameters::DomainSizeZ>();
|
||||||
cellRes[2] = Parameters::get<TypeTag, Parameters::CellsZ>();
|
cellRes[2] = Parameters::Get<Parameters::CellsZ>();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned numRefinements = Parameters::Get<Parameters::GridGlobalRefinements>();
|
unsigned numRefinements = Parameters::Get<Parameters::GridGlobalRefinements>();
|
||||||
|
|||||||
@@ -53,7 +53,10 @@ class SimplexGridVanguard
|
|||||||
|
|
||||||
using GridPointer = std::unique_ptr<Grid>;
|
using GridPointer = std::unique_ptr<Grid>;
|
||||||
using CoordScalar = typename Grid::ctype;
|
using CoordScalar = typename Grid::ctype;
|
||||||
enum { dimWorld = Grid::dimensionworld };
|
enum {
|
||||||
|
dim = Grid::dimension,
|
||||||
|
dimWorld = Grid::dimensionworld,
|
||||||
|
};
|
||||||
using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
|
using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@@ -67,18 +70,18 @@ public:
|
|||||||
"executed after it was loaded");
|
"executed after it was loaded");
|
||||||
Parameters::registerParam<TypeTag, Parameters::DomainSizeX>
|
Parameters::registerParam<TypeTag, Parameters::DomainSizeX>
|
||||||
("The size of the domain in x direction");
|
("The size of the domain in x direction");
|
||||||
Parameters::registerParam<TypeTag, Parameters::CellsX>
|
Parameters::Register<Parameters::CellsX>
|
||||||
("The number of intervalls in x direction");
|
("The number of intervalls in x direction");
|
||||||
if (dimWorld > 1) {
|
if (dimWorld > 1) {
|
||||||
Parameters::registerParam<TypeTag, Parameters::DomainSizeY>
|
Parameters::registerParam<TypeTag, Parameters::DomainSizeY>
|
||||||
("The size of the domain in y direction");
|
("The size of the domain in y direction");
|
||||||
Parameters::registerParam<TypeTag, Parameters::CellsY>
|
Parameters::Register<Parameters::CellsY>
|
||||||
("The number of intervalls in y direction");
|
("The number of intervalls in y direction");
|
||||||
}
|
}
|
||||||
if (dimWorld > 2) {
|
if constexpr (dim > 2) {
|
||||||
Parameters::registerParam<TypeTag, Parameters::DomainSizeZ>
|
Parameters::registerParam<TypeTag, Parameters::DomainSizeZ>
|
||||||
("The size of the domain in z direction");
|
("The size of the domain in z direction");
|
||||||
Parameters::registerParam<TypeTag, Parameters::CellsZ>
|
Parameters::Register<Parameters::CellsZ>
|
||||||
("The number of intervalls in z direction");
|
("The number of intervalls in z direction");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -89,22 +92,22 @@ public:
|
|||||||
SimplexGridVanguard(Simulator& simulator)
|
SimplexGridVanguard(Simulator& simulator)
|
||||||
: ParentType(simulator)
|
: ParentType(simulator)
|
||||||
{
|
{
|
||||||
Dune::array<unsigned, dimWorld> cellRes;
|
Dune::array<unsigned, dim> cellRes;
|
||||||
GlobalPosition upperRight;
|
GlobalPosition upperRight;
|
||||||
GlobalPosition lowerLeft;
|
GlobalPosition lowerLeft;
|
||||||
|
|
||||||
lowerLeft[0] = 0.0;
|
lowerLeft[0] = 0.0;
|
||||||
upperRight[0] = Parameters::get<TypeTag, Parameters::DomainSizeX>();
|
upperRight[0] = Parameters::get<TypeTag, Parameters::DomainSizeX>();
|
||||||
cellRes[0] = Parameters::get<TypeTag, Parameters::CellsX>();
|
cellRes[0] = Parameters::Get<Parameters::CellsX>();
|
||||||
if (dimWorld > 1) {
|
if constexpr (dim > 1) {
|
||||||
lowerLeft[1] = 0.0;
|
lowerLeft[1] = 0.0;
|
||||||
upperRight[1] = Parameters::get<TypeTag, Parameters::DomainSizeY>();
|
upperRight[1] = Parameters::get<TypeTag, Parameters::DomainSizeY>();
|
||||||
cellRes[1] = Parameters::get<TypeTag, Parameters::CellsY>();
|
cellRes[1] = Parameters::Get<Parameters::CellsY>();
|
||||||
}
|
}
|
||||||
if (dimWorld > 2) {
|
if constexpr (dim > 2) {
|
||||||
lowerLeft[2] = 0.0;
|
lowerLeft[2] = 0.0;
|
||||||
upperRight[2] = Parameters::get<TypeTag, Parameters::DomainSizeZ>();
|
upperRight[2] = Parameters::get<TypeTag, Parameters::DomainSizeZ>();
|
||||||
cellRes[2] = Parameters::get<TypeTag, Parameters::CellsZ>();
|
cellRes[2] = Parameters::Get<Parameters::CellsZ>();
|
||||||
}
|
}
|
||||||
|
|
||||||
simplexGrid_ = Dune::StructuredGridFactory<Grid>::createSimplexGrid(lowerLeft,
|
simplexGrid_ = Dune::StructuredGridFactory<Grid>::createSimplexGrid(lowerLeft,
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ class StructuredGridVanguard : public BaseVanguard<TypeTag>
|
|||||||
|
|
||||||
using GridPointer = std::unique_ptr<Grid>;
|
using GridPointer = std::unique_ptr<Grid>;
|
||||||
|
|
||||||
static const int dim = Grid::dimension;
|
static constexpr int dim = Grid::dimension;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/*!
|
/*!
|
||||||
@@ -113,18 +113,18 @@ public:
|
|||||||
"executed after it was loaded");
|
"executed after it was loaded");
|
||||||
Parameters::registerParam<TypeTag, Parameters::DomainSizeX>
|
Parameters::registerParam<TypeTag, Parameters::DomainSizeX>
|
||||||
("The size of the domain in x direction");
|
("The size of the domain in x direction");
|
||||||
Parameters::registerParam<TypeTag, Parameters::CellsX>
|
Parameters::Register<Parameters::CellsX>
|
||||||
("The number of intervalls in x direction");
|
("The number of intervalls in x direction");
|
||||||
if (dim > 1) {
|
if (dim > 1) {
|
||||||
Parameters::registerParam<TypeTag, Parameters::DomainSizeY>
|
Parameters::registerParam<TypeTag, Parameters::DomainSizeY>
|
||||||
("The size of the domain in y direction");
|
("The size of the domain in y direction");
|
||||||
Parameters::registerParam<TypeTag, Parameters::CellsY>
|
Parameters::Register<Parameters::CellsY>
|
||||||
("The number of intervalls in y direction");
|
("The number of intervalls in y direction");
|
||||||
}
|
}
|
||||||
if (dim > 2) {
|
if constexpr (dim > 2) {
|
||||||
Parameters::registerParam<TypeTag, Parameters::DomainSizeZ>
|
Parameters::registerParam<TypeTag, Parameters::DomainSizeZ>
|
||||||
("The size of the domain in z direction");
|
("The size of the domain in z direction");
|
||||||
Parameters::registerParam<TypeTag, Parameters::CellsZ>
|
Parameters::Register<Parameters::CellsZ>
|
||||||
("The number of intervalls in z direction");
|
("The number of intervalls in z direction");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -144,11 +144,11 @@ public:
|
|||||||
upperRight[0] = Parameters::get<TypeTag, Parameters::DomainSizeX>();
|
upperRight[0] = Parameters::get<TypeTag, Parameters::DomainSizeX>();
|
||||||
upperRight[1] = Parameters::get<TypeTag, Parameters::DomainSizeY>();
|
upperRight[1] = Parameters::get<TypeTag, Parameters::DomainSizeY>();
|
||||||
|
|
||||||
cellRes[0] = Parameters::get<TypeTag, Parameters::CellsX>();
|
cellRes[0] = Parameters::Get<Parameters::CellsX>();
|
||||||
cellRes[1] = Parameters::get<TypeTag, Parameters::CellsY>();
|
cellRes[1] = Parameters::Get<Parameters::CellsY>();
|
||||||
if (dim == 3) {
|
if constexpr (dim == 3) {
|
||||||
upperRight[2] = Parameters::get<TypeTag, Parameters::DomainSizeZ>();
|
upperRight[2] = Parameters::get<TypeTag, Parameters::DomainSizeZ>();
|
||||||
cellRes[2] = Parameters::get<TypeTag, Parameters::CellsZ>();
|
cellRes[2] = Parameters::Get<Parameters::CellsZ>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::stringstream dgffile;
|
std::stringstream dgffile;
|
||||||
|
|||||||
@@ -33,14 +33,9 @@
|
|||||||
namespace Opm::Parameters {
|
namespace Opm::Parameters {
|
||||||
|
|
||||||
//! grid resolution
|
//! grid resolution
|
||||||
template<class TypeTag, class MyTypeTag>
|
struct CellsX { static constexpr unsigned value = 1; };
|
||||||
struct CellsX { using type = Properties::UndefinedProperty; };
|
struct CellsY { static constexpr unsigned value = 1; };
|
||||||
|
struct CellsZ { static constexpr unsigned value = 1; };
|
||||||
template<class TypeTag, class MyTypeTag>
|
|
||||||
struct CellsY { using type = Properties::UndefinedProperty; };
|
|
||||||
|
|
||||||
template<class TypeTag, class MyTypeTag>
|
|
||||||
struct CellsZ { using type = Properties::UndefinedProperty; };
|
|
||||||
|
|
||||||
//! domain size
|
//! domain size
|
||||||
template<class TypeTag, class MyTypeTag>
|
template<class TypeTag, class MyTypeTag>
|
||||||
|
|||||||
Reference in New Issue
Block a user