Merge pull request #327 from andlaus/property_and_parameter_system_improvements

Some property- and parameter system improvements
This commit is contained in:
Tor Harald Sandve 2018-06-19 15:59:13 +02:00 committed by GitHub
commit 6d11c69121
60 changed files with 282 additions and 194 deletions

View File

@ -38,8 +38,8 @@
#include "problems/co2injectionflash.hh"
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionFlashEcfvProblem, INHERITS_FROM(FlashModel, Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionFlashEcfvProblem, SpatialDiscretizationSplice, EcfvDiscretization);
@ -64,8 +64,8 @@ SET_TAG_PROP(Co2InjectionFlashEcfvProblem, LinearSolverSplice, ParallelBiCGStabL
#else
SET_SCALAR_PROP(Co2InjectionFlashEcfvProblem, NewtonRawTolerance, 1e-5);
#endif
} // namespace Properties
} // namespace Ewoms
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -35,8 +35,8 @@
#include "problems/co2injectionflash.hh"
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionFlashNiEcfvProblem, INHERITS_FROM(FlashModel, Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionFlashNiEcfvProblem, SpatialDiscretizationSplice, EcfvDiscretization);
@ -63,8 +63,8 @@ SET_TAG_PROP(Co2InjectionFlashNiEcfvProblem, LinearSolverSplice, ParallelBiCGSta
#else
SET_SCALAR_PROP(Co2InjectionFlashNiEcfvProblem, NewtonRawTolerance, 1e-5);
#endif
}
}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -35,8 +35,8 @@
#include "problems/co2injectionflash.hh"
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionFlashNiVcfvProblem, INHERITS_FROM(FlashModel, Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionFlashNiVcfvProblem, SpatialDiscretizationSplice, VcfvDiscretization);
@ -60,8 +60,8 @@ SET_TAG_PROP(Co2InjectionFlashNiVcfvProblem, LinearSolverSplice, ParallelBiCGSta
#else
SET_SCALAR_PROP(Co2InjectionFlashNiVcfvProblem, NewtonRawTolerance, 1e-5);
#endif
}
}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -38,8 +38,8 @@
#include "problems/co2injectionflash.hh"
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionFlashVcfvProblem, INHERITS_FROM(FlashModel, Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionFlashVcfvProblem, SpatialDiscretizationSplice, VcfvDiscretization);
@ -61,8 +61,8 @@ SET_TAG_PROP(Co2InjectionFlashVcfvProblem, LinearSolverSplice, ParallelBiCGStabL
#else
SET_SCALAR_PROP(Co2InjectionFlashVcfvProblem, NewtonRawTolerance, 1e-5);
#endif
} // namespace Properties
} // namespace Ewoms
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -34,14 +34,15 @@
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionImmiscibleEcfvProblem,
INHERITS_FROM(ImmiscibleModel,
Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionImmiscibleEcfvProblem, SpatialDiscretizationSplice,
EcfvDiscretization);
}}
END_PROPERTIES
////////////////////////
// the main function

View File

@ -33,8 +33,8 @@
#include <ewoms/disc/ecfv/ecfvdiscretization.hh>
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionImmiscibleNiEcfvProblem, INHERITS_FROM(ImmiscibleModel,
Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionImmiscibleNiEcfvProblem, SpatialDiscretizationSplice,
@ -44,7 +44,8 @@ SET_BOOL_PROP(Co2InjectionImmiscibleNiEcfvProblem, EnableEnergy, true);
//! Use automatic differentiation to linearize the system of PDEs
SET_TAG_PROP(Co2InjectionImmiscibleNiEcfvProblem, LocalLinearizerSplice, AutoDiffLocalLinearizer);
}}
END_PROPERTIES
////////////////////////
// the main function

View File

@ -33,14 +33,15 @@
#include <ewoms/disc/vcfv/vcfvdiscretization.hh>
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionImmiscibleNiVcfvProblem, INHERITS_FROM(ImmiscibleModel,
Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionImmiscibleNiVcfvProblem, SpatialDiscretizationSplice, VcfvDiscretization);
SET_BOOL_PROP(Co2InjectionImmiscibleNiVcfvProblem, EnableEnergy, true);
}}
END_PROPERTIES
////////////////////////
// the main function

View File

@ -34,12 +34,13 @@
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionImmiscibleVcfvProblem, INHERITS_FROM(ImmiscibleModel,
Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionImmiscibleVcfvProblem, SpatialDiscretizationSplice, VcfvDiscretization);
}}
END_PROPERTIES
////////////////////////
// the main function

View File

@ -33,11 +33,12 @@
#include <ewoms/disc/ecfv/ecfvdiscretization.hh>
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionNcpEcfvProblem, INHERITS_FROM(NcpModel, Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionNcpEcfvProblem, SpatialDiscretizationSplice, EcfvDiscretization);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -33,15 +33,16 @@
#include <ewoms/disc/ecfv/ecfvdiscretization.hh>
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionNcpNiEcfvProblem, INHERITS_FROM(NcpModel, Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionNcpNiEcfvProblem, SpatialDiscretizationSplice, EcfvDiscretization);
SET_BOOL_PROP(Co2InjectionNcpNiEcfvProblem, EnableEnergy, true);
//! Use automatic differentiation to linearize the system of PDEs
SET_TAG_PROP(Co2InjectionNcpNiEcfvProblem, LocalLinearizerSplice, AutoDiffLocalLinearizer);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -33,12 +33,13 @@
#include <ewoms/disc/vcfv/vcfvdiscretization.hh>
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionNcpNiVcfvProblem, INHERITS_FROM(NcpModel, Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionNcpNiVcfvProblem, SpatialDiscretizationSplice, VcfvDiscretization);
SET_BOOL_PROP(Co2InjectionNcpNiVcfvProblem, EnableEnergy, true);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -34,11 +34,12 @@
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionNcpVcfvProblem, INHERITS_FROM(NcpModel, Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionNcpVcfvProblem, SpatialDiscretizationSplice, VcfvDiscretization);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -33,11 +33,12 @@
#include <ewoms/disc/ecfv/ecfvdiscretization.hh>
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionPvsEcfvProblem, INHERITS_FROM(PvsModel, Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionPvsEcfvProblem, SpatialDiscretizationSplice, EcfvDiscretization);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -33,8 +33,8 @@
#include <ewoms/disc/ecfv/ecfvdiscretization.hh>
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionPvsNiEcfvProblem, INHERITS_FROM(PvsModel, Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionPvsNiEcfvProblem, SpatialDiscretizationSplice, EcfvDiscretization);
@ -42,7 +42,8 @@ SET_BOOL_PROP(Co2InjectionPvsNiEcfvProblem, EnableEnergy, true);
//! Use automatic differentiation to linearize the system of PDEs
SET_TAG_PROP(Co2InjectionPvsNiEcfvProblem, LocalLinearizerSplice, AutoDiffLocalLinearizer);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -33,13 +33,14 @@
#include <ewoms/disc/vcfv/vcfvdiscretization.hh>
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionPvsNiVcfvProblem, INHERITS_FROM(PvsModel, Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionPvsNiVcfvProblem, SpatialDiscretizationSplice, VcfvDiscretization);
SET_BOOL_PROP(Co2InjectionPvsNiVcfvProblem, EnableEnergy, true);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -34,11 +34,12 @@
#include "problems/co2injectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(Co2InjectionPvsVcfvProblem, INHERITS_FROM(PvsModel, Co2InjectionBaseProblem));
SET_TAG_PROP(Co2InjectionPvsVcfvProblem, SpatialDiscretizationSplice, VcfvDiscretization);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -31,10 +31,11 @@
#include <ewoms/models/pvs/pvsmodel.hh>
#include "problems/cuvetteproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(CuvetteProblem, INHERITS_FROM(PvsModel, CuvetteBaseProblem));
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -31,10 +31,11 @@
#include <ewoms/models/flash/flashmodel.hh>
#include "problems/diffusionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(DiffusionProblem, INHERITS_FROM(FlashModel, DiffusionBaseProblem));
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -31,10 +31,11 @@
#include <ewoms/models/ncp/ncpmodel.hh>
#include "problems/diffusionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(DiffusionProblem, INHERITS_FROM(NcpModel, DiffusionBaseProblem));
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -31,10 +31,11 @@
#include <ewoms/models/pvs/pvsmodel.hh>
#include "problems/diffusionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(DiffusionProblem, INHERITS_FROM(PvsModel, DiffusionBaseProblem));
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -32,11 +32,12 @@
#include <ewoms/disc/ecfv/ecfvdiscretization.hh>
#include "problems/fingerproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(FingerProblemEcfv, INHERITS_FROM(ImmiscibleTwoPhaseModel, FingerBaseProblem));
SET_TAG_PROP(FingerProblemEcfv, SpatialDiscretizationSplice, EcfvDiscretization);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -32,11 +32,12 @@
#include <ewoms/disc/vcfv/vcfvdiscretization.hh>
#include "problems/fingerproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(FingerProblemVcfv, INHERITS_FROM(ImmiscibleTwoPhaseModel, FingerBaseProblem));
SET_TAG_PROP(FingerProblemVcfv, SpatialDiscretizationSplice, VcfvDiscretization);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -31,10 +31,11 @@
#include <ewoms/models/immiscible/immisciblemodel.hh>
#include "problems/groundwaterproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(GroundWaterProblem, INHERITS_FROM(ImmiscibleSinglePhaseModel, GroundWaterBaseProblem));
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -31,10 +31,11 @@
#include <ewoms/models/pvs/pvsmodel.hh>
#include "problems/infiltrationproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(InfiltrationProblem, INHERITS_FROM(PvsModel, InfiltrationBaseProblem));
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -33,8 +33,8 @@
#include <ewoms/disc/ecfv/ecfvdiscretization.hh>
#include "problems/lensproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(LensProblemEcfvAd, INHERITS_FROM(ImmiscibleTwoPhaseModel, LensBaseProblem));
// use the element centered finite volume spatial discretization
@ -45,6 +45,7 @@ SET_TAG_PROP(LensProblemEcfvAd, LocalLinearizerSplice, AutoDiffLocalLinearizer);
// this problem works fine if the linear solver uses single precision scalars
SET_TYPE_PROP(LensProblemEcfvAd, LinearSolverScalar, float);
}}
END_PROPERTIES
#endif // EWOMS_LENS_IMMISCIBLE_ECFV_AD_HH

View File

@ -32,8 +32,8 @@
#include <ewoms/models/immiscible/immisciblemodel.hh>
#include "problems/lensproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(LensProblemVcfvAd, INHERITS_FROM(ImmiscibleTwoPhaseModel, LensBaseProblem));
// use automatic differentiation for this simulator
@ -43,7 +43,8 @@ SET_TAG_PROP(LensProblemVcfvAd, LocalLinearizerSplice, AutoDiffLocalLinearizer);
#if HAVE_DUNE_LOCALFUNCTIONS
SET_BOOL_PROP(LensProblemVcfvAd, UseP1FiniteElementGradients, true);
#endif
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -32,8 +32,8 @@
#include <ewoms/models/immiscible/immisciblemodel.hh>
#include "problems/lensproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(LensProblemVcfvFd, INHERITS_FROM(ImmiscibleTwoPhaseModel, LensBaseProblem));
// use the finite difference methodfor this simulator
@ -43,7 +43,8 @@ SET_TAG_PROP(LensProblemVcfvFd, LocalLinearizerSplice, FiniteDifferenceLocalLine
#if HAVE_DUNE_LOCALFUNCTIONS
SET_BOOL_PROP(LensProblemVcfvFd, UseP1FiniteElementGradients, true);
#endif
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -32,14 +32,15 @@
#include "problems/richardslensproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(RichardsLensEcfvProblem, INHERITS_FROM(RichardsLensProblem));
SET_TAG_PROP(RichardsLensEcfvProblem, SpatialDiscretizationSplice, EcfvDiscretization);
//! Use automatic differentiation to linearize the system of PDEs
SET_TAG_PROP(RichardsLensEcfvProblem, LocalLinearizerSplice, AutoDiffLocalLinearizer);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -32,11 +32,12 @@
#include "problems/richardslensproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(RichardsLensVcfvProblem, INHERITS_FROM(RichardsLensProblem));
SET_TAG_PROP(RichardsLensVcfvProblem, SpatialDiscretizationSplice, VcfvDiscretization);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -32,11 +32,11 @@
#include <ewoms/models/immiscible/immisciblemodel.hh>
#include "problems/obstacleproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(ObstacleProblem, INHERITS_FROM(ImmiscibleModel, ObstacleBaseProblem));
}
}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -32,11 +32,11 @@
#include "problems/obstacleproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(ObstacleProblem, INHERITS_FROM(NcpModel, ObstacleBaseProblem));
}
}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -33,14 +33,14 @@
#include <ewoms/models/pvs/pvsmodel.hh>
#include "problems/obstacleproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(ObstacleProblem, INHERITS_FROM(PvsModel, ObstacleBaseProblem));
// Verbosity of the PVS model (0=silent, 1=medium, 2=chatty)
SET_INT_PROP(ObstacleProblem, PvsVerbosity, 1);
}
}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -31,14 +31,14 @@
#include <ewoms/models/pvs/pvsmodel.hh>
#include "problems/outflowproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(OutflowProblem, INHERITS_FROM(PvsModel, OutflowBaseProblem));
// Verbosity of the PVS model (0=silent, 1=medium, 2=chatty)
SET_INT_PROP(OutflowProblem, PvsVerbosity, 1);
}
}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -31,15 +31,16 @@
#include <ewoms/models/immiscible/immisciblemodel.hh>
#include "problems/powerinjectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(PowerInjectionDarcyAdProblem,
INHERITS_FROM(ImmiscibleTwoPhaseModel,
PowerInjectionBaseProblem));
SET_TYPE_PROP(PowerInjectionDarcyAdProblem, FluxModule, Ewoms::DarcyFluxModule<TypeTag>);
SET_TAG_PROP(PowerInjectionDarcyAdProblem, LocalLinearizerSplice, AutoDiffLocalLinearizer);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -31,15 +31,16 @@
#include <ewoms/models/immiscible/immisciblemodel.hh>
#include "problems/powerinjectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(PowerInjectionDarcyFdProblem,
INHERITS_FROM(ImmiscibleTwoPhaseModel,
PowerInjectionBaseProblem));
SET_TYPE_PROP(PowerInjectionDarcyFdProblem, FluxModule, Ewoms::DarcyFluxModule<TypeTag>);
SET_TAG_PROP(PowerInjectionDarcyFdProblem, LocalLinearizerSplice, FiniteDifferenceLocalLinearizer);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -31,15 +31,16 @@
#include <ewoms/models/immiscible/immisciblemodel.hh>
#include "problems/powerinjectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(PowerInjectionForchheimerAdProblem,
INHERITS_FROM(ImmiscibleTwoPhaseModel,
PowerInjectionBaseProblem));
SET_TYPE_PROP(PowerInjectionForchheimerAdProblem, FluxModule, Ewoms::ForchheimerFluxModule<TypeTag>);
SET_TAG_PROP(PowerInjectionForchheimerAdProblem, LocalLinearizerSplice, AutoDiffLocalLinearizer);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -31,15 +31,16 @@
#include <ewoms/models/immiscible/immisciblemodel.hh>
#include "problems/powerinjectionproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(PowerInjectionForchheimerFdProblem,
INHERITS_FROM(ImmiscibleTwoPhaseModel,
PowerInjectionBaseProblem));
SET_TYPE_PROP(PowerInjectionForchheimerFdProblem, FluxModule, Ewoms::ForchheimerFluxModule<TypeTag>);
SET_TAG_PROP(PowerInjectionForchheimerFdProblem, LocalLinearizerSplice, FiniteDifferenceLocalLinearizer);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -66,8 +66,10 @@ namespace Co2Injection {
#include <opm/material/components/co2tables.inc>
}
//! \endcond
}
BEGIN_PROPERTIES
namespace Properties {
NEW_TYPE_TAG(Co2InjectionBaseProblem);
// declare the CO2 injection problem specific property tags
@ -168,8 +170,8 @@ SET_SCALAR_PROP(Co2InjectionBaseProblem, InitialTimeStepSize, 250);
// The default DGF file to load
SET_STRING_PROP(Co2InjectionBaseProblem, GridFile, "data/co2injection.dgf");
} // namespace Properties
} // namespace Ewoms
END_PROPERTIES
namespace Ewoms {
/*!

View File

@ -56,8 +56,8 @@ template <class TypeTag>
class CuvetteProblem;
}
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
// create a new type tag for the cuvette steam injection problem
NEW_TYPE_TAG(CuvetteBaseProblem);
@ -120,8 +120,8 @@ SET_SCALAR_PROP(CuvetteBaseProblem, InitialTimeStepSize, 1);
// The default DGF file to load
SET_STRING_PROP(CuvetteBaseProblem, GridFile, "./data/cuvette_11x4.dgf");
} // namespace Properties
} // namespace Ewoms
END_PROPERTIES
namespace Ewoms {
/*!

View File

@ -52,8 +52,7 @@ template <class TypeTag>
class DiffusionProblem;
}
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(DiffusionBaseProblem);
@ -116,8 +115,8 @@ SET_SCALAR_PROP(DiffusionBaseProblem, EndTime, 1e6);
// The default for the initial time step size of the simulation
SET_SCALAR_PROP(DiffusionBaseProblem, InitialTimeStepSize, 1000);
}
} // namespace Ewoms, Properties
END_PROPERTIES
namespace Ewoms {
/*!

View File

@ -60,7 +60,10 @@ namespace Ewoms {
template <class TypeTag>
class FingerProblem;
namespace Properties {
} // namespace Ewoms
BEGIN_PROPERTIES
NEW_TYPE_TAG(FingerBaseProblem, INHERITS_FROM(StructuredGridVanguard));
#if HAVE_DUNE_ALUGRID
@ -141,7 +144,10 @@ SET_SCALAR_PROP(FingerBaseProblem, EndTime, 215);
// The default for the initial time step size of the simulation
SET_SCALAR_PROP(FingerBaseProblem, InitialTimeStepSize, 10);
} // namespace Properties
END_PROPERTIES
namespace Ewoms {
/*!
* \ingroup TestProblems

View File

@ -65,8 +65,8 @@ template <class TypeTag>
class FractureProblem;
}
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
// Create a type tag for the problem
NEW_TYPE_TAG(FractureProblem, INHERITS_FROM(DiscreteFractureModel));
@ -157,8 +157,8 @@ SET_SCALAR_PROP(FractureProblem, EndTime, 3e3);
// Set the default value for the initial time step size
SET_SCALAR_PROP(FractureProblem, InitialTimeStepSize, 100);
} // namespace Properties
} // namespace Ewoms
END_PROPERTIES
namespace Ewoms {
/*!

View File

@ -51,8 +51,8 @@ template <class TypeTag>
class GroundWaterProblem;
}
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(GroundWaterBaseProblem);
NEW_PROP_TAG(LensLowerLeftX);
@ -106,7 +106,8 @@ SET_STRING_PROP(GroundWaterBaseProblem, GridFile, "./data/groundwater_2d.dgf");
SET_TAG_PROP(GroundWaterBaseProblem, LinearSolverSplice, ParallelIstlLinearSolver);
SET_TYPE_PROP(GroundWaterBaseProblem, LinearSolverWrapper,
Ewoms::Linear::SolverWrapperConjugatedGradients<TypeTag>);
}} // namespace Properties, Ewoms
END_PROPERTIES
namespace Ewoms {
/*!

View File

@ -52,8 +52,8 @@ template <class TypeTag>
class InfiltrationProblem;
}
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(InfiltrationBaseProblem);
// Set the grid type
@ -103,8 +103,8 @@ SET_SCALAR_PROP(InfiltrationBaseProblem, InitialTimeStepSize, 60);
// The default DGF file to load
SET_STRING_PROP(InfiltrationBaseProblem, GridFile,
"./data/infiltration_50x3.dgf");
} // namespace Properties
} // namespace Ewoms
END_PROPERTIES
namespace Ewoms {
/*!

View File

@ -53,8 +53,10 @@
namespace Ewoms {
template <class TypeTag>
class LensProblem;
}
BEGIN_PROPERTIES
namespace Properties {
NEW_TYPE_TAG(LensBaseProblem, INHERITS_FROM(StructuredGridVanguard));
// declare the properties specific for the lens problem
@ -152,7 +154,10 @@ SET_BOOL_PROP(LensBaseProblem, EnableStorageCache, true);
// enable the cache for intensive quantities by default for this problem
SET_BOOL_PROP(LensBaseProblem, EnableIntensiveQuantityCache, true);
} // namespace Properties
END_PROPERTIES
namespace Ewoms {
/*!
* \ingroup TestProblems
@ -302,6 +307,35 @@ public:
}
}
/*!
* \copydoc FvBaseProblem::briefDescription
*/
static std::string briefDescription()
{
std::string thermal = "isothermal";
bool enableEnergy = GET_PROP_VALUE(TypeTag, EnableEnergy);
if (enableEnergy)
thermal = "non-isothermal";
std::string deriv = "finite difference";
typedef typename GET_PROP_TYPE(TypeTag, LocalLinearizerSplice) LLS;
bool useAutoDiff = std::is_same<LLS, TTAG(AutoDiffLocalLinearizer)>::value;
if (useAutoDiff)
deriv = "automatic differentiation";
std::string disc = "vertex centered finite volume";
typedef typename GET_PROP_TYPE(TypeTag, Discretization) D;
bool useEcfv = std::is_same<D, Ewoms::EcfvDiscretization<TypeTag>>::value;
if (useEcfv)
disc = "element centered finite volume";
return std::string("")+
"Ground remediation problem where a dense oil infiltrates\n"+
"an aquifer with an embedded low-permability lens.\n" +
"This is the binary for the "+thermal+" variant using "+deriv+"\n"+
"and the "+disc+" discretization";
}
/*!
* \name Soil parameters
*/

View File

@ -57,8 +57,8 @@ template <class TypeTag>
class ObstacleProblem;
}
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(ObstacleBaseProblem);
// Set the grid type
@ -116,8 +116,8 @@ SET_SCALAR_PROP(ObstacleBaseProblem, InitialTimeStepSize, 250);
// The default DGF file to load
SET_STRING_PROP(ObstacleBaseProblem, GridFile, "./data/obstacle_24x16.dgf");
} // namespace Properties
} // namespace Ewoms
END_PROPERTIES
namespace Ewoms {
/*!

View File

@ -45,8 +45,8 @@ template <class TypeTag>
class OutflowProblem;
}
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(OutflowBaseProblem);
// Set the grid type
@ -80,8 +80,8 @@ SET_SCALAR_PROP(OutflowBaseProblem, InitialTimeStepSize, 1);
// The default DGF file to load
SET_STRING_PROP(OutflowBaseProblem, GridFile, "./data/outflow.dgf");
} // namespace Properties
} // namespace Ewoms
END_PROPERTIES
namespace Ewoms {
/*!

View File

@ -57,8 +57,8 @@ template <class TypeTag>
class PowerInjectionProblem;
}
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(PowerInjectionBaseProblem);
// Set the grid implementation to be used
@ -135,8 +135,8 @@ SET_SCALAR_PROP(PowerInjectionBaseProblem, EndTime, 100);
// The default for the initial time step size of the simulation
SET_SCALAR_PROP(PowerInjectionBaseProblem, InitialTimeStepSize, 1e-3);
} // namespace Properties
} // namespace Ewoms
END_PROPERTIES
namespace Ewoms {
/*!

View File

@ -54,7 +54,10 @@ namespace Ewoms {
template <class TypeTag>
class ReservoirProblem;
namespace Properties {
} // namespace Ewoms
BEGIN_PROPERTIES
NEW_TYPE_TAG(ReservoirBaseProblem);
@ -135,7 +138,10 @@ SET_STRING_PROP(ReservoirBaseProblem, GridFile, "data/reservoir.dgf");
// increase the tolerance for this problem to get larger time steps
SET_SCALAR_PROP(ReservoirBaseProblem, NewtonRawTolerance, 1e-6);
} // namespace Properties
END_PROPERTIES
namespace Ewoms {
/*!
* \ingroup TestProblems

View File

@ -49,7 +49,10 @@ namespace Ewoms {
template <class TypeTag>
class RichardsLensProblem;
namespace Properties {
} // namespace Ewoms
BEGIN_PROPERTIES
NEW_TYPE_TAG(RichardsLensProblem, INHERITS_FROM(Richards));
// Use 2d YaspGrid
@ -114,7 +117,10 @@ SET_SCALAR_PROP(RichardsLensProblem, InitialTimeStepSize, 100);
// The default DGF file to load
SET_STRING_PROP(RichardsLensProblem, GridFile, "./data/richardslens_24x16.dgf");
} // namespace Properties
END_PROPERTIES
namespace Ewoms {
/*!
* \ingroup TestProblems

View File

@ -58,8 +58,8 @@ template <class TypeTag>
class WaterAirProblem;
}
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(WaterAirBaseProblem);
// Set the grid type
@ -139,8 +139,8 @@ SET_TYPE_PROP(WaterAirBaseProblem, PreconditionerWrapper,
Ewoms::Linear::PreconditionerWrapperILUn<TypeTag>);
#endif
SET_INT_PROP(WaterAirBaseProblem, PreconditionerOrder, 2);
} // namespace Properties
} // namespace Ewoms
END_PROPERTIES
namespace Ewoms {
/*!

View File

@ -33,8 +33,8 @@
#include <ewoms/disc/ecfv/ecfvdiscretization.hh>
#include "problems/reservoirproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(ReservoirBlackOilEcfvProblem, INHERITS_FROM(BlackOilModel, ReservoirBaseProblem));
// Select the element centered finite volume method as spatial discretization
@ -42,7 +42,8 @@ SET_TAG_PROP(ReservoirBlackOilEcfvProblem, SpatialDiscretizationSplice, EcfvDisc
// Use automatic differentiation to linearize the system of PDEs
SET_TAG_PROP(ReservoirBlackOilEcfvProblem, LocalLinearizerSplice, AutoDiffLocalLinearizer);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -32,13 +32,14 @@
#include <ewoms/disc/vcfv/vcfvdiscretization.hh>
#include "problems/reservoirproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(ReservoirBlackOilVcfvProblem, INHERITS_FROM(BlackOilModel, ReservoirBaseProblem));
// Select the vertex centered finite volume method as spatial discretization
SET_TAG_PROP(ReservoirBlackOilVcfvProblem, SpatialDiscretizationSplice, VcfvDiscretization);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -32,8 +32,8 @@
#include <ewoms/disc/ecfv/ecfvdiscretization.hh>
#include "problems/reservoirproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(ReservoirNcpEcfvProblem, INHERITS_FROM(NcpModel, ReservoirBaseProblem));
// Select the element centered finite volume method as spatial discretization
@ -41,7 +41,8 @@ SET_TAG_PROP(ReservoirNcpEcfvProblem, SpatialDiscretizationSplice, EcfvDiscretiz
//! use automatic differentiation to linearize the system of PDEs
SET_TAG_PROP(ReservoirNcpEcfvProblem, LocalLinearizerSplice, AutoDiffLocalLinearizer);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -33,8 +33,8 @@
#include <ewoms/disc/vcfv/vcfvdiscretization.hh>
#include "problems/reservoirproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(ReservoirNcpVcfvProblem, INHERITS_FROM(NcpModel, ReservoirBaseProblem));
// Select the vertex centered finite volume method as spatial discretization
@ -48,7 +48,8 @@ SET_BOOL_PROP(ReservoirNcpVcfvProblem, EnableStorageCache, true);
// the simulator converges better with this. (TODO: use automatic differentiation?)
SET_SCALAR_PROP(ReservoirNcpVcfvProblem, BaseEpsilon, 1e-11);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -57,8 +57,8 @@ template <class TypeTag>
class Tutorial1Problem;
}
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
// Create a new type tag for the problem
NEW_TYPE_TAG(Tutorial1Problem, INHERITS_FROM(ImmiscibleTwoPhaseModel)); /*@\label{tutorial1:create-type-tag}@*/
@ -126,8 +126,8 @@ SET_SCALAR_PROP(Tutorial1Problem, DomainSizeZ, 0.0);
SET_INT_PROP(Tutorial1Problem, CellsX, 100);
SET_INT_PROP(Tutorial1Problem, CellsY, 1);
SET_INT_PROP(Tutorial1Problem, CellsZ, 1); /*@\label{tutorial1:default-params-end}@*/
} // namespace Properties
} // namespace Ewoms
END_PROPERTIES
namespace Ewoms {
//! Tutorial problem using the "immiscible" model.

View File

@ -31,12 +31,13 @@
#include <ewoms/models/pvs/pvsmodel.hh>
#include "problems/waterairproblem.hh"
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(WaterAirProblem, INHERITS_FROM(PvsModel, WaterAirBaseProblem));
SET_BOOL_PROP(WaterAirProblem, EnableEnergy, true);
}}
END_PROPERTIES
int main(int argc, char **argv)
{

View File

@ -35,8 +35,7 @@
#include <iostream>
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
///////////////////
// Define some hierarchy of type tags:
@ -125,8 +124,7 @@ SET_INT_PROP(HummerH1, TopSpeed, GET_PROP_VALUE(TTAG(Pickup), TopSpeed));
// Unmount the canon from the Hummer
UNSET_PROP(HummerH1, CanonCaliber);
} // namespace Properties
} // namespace Ewoms
END_PROPERTIES
int main()

View File

@ -75,12 +75,13 @@
std::abort(); \
}
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(TestEclOutputTypeTag, INHERITS_FROM(BlackOilModel, EclBaseProblem));
SET_BOOL_PROP(TestEclOutputTypeTag, EnableGravity, false);
SET_BOOL_PROP(TestEclOutputTypeTag, EnableAsyncEclOutput, false);
}}
END_PROPERTIES
static const int day = 24 * 60 * 60;

View File

@ -66,10 +66,11 @@
std::abort(); \
}
namespace Ewoms {
namespace Properties {
BEGIN_PROPERTIES
NEW_TYPE_TAG(TestEquilTypeTag, INHERITS_FROM(BlackOilModel, EclBaseProblem));
}}
END_PROPERTIES
template <class TypeTag>
std::unique_ptr<typename GET_PROP_TYPE(TypeTag, Simulator)>