mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
using flowexp as files names
This commit is contained in:
parent
7cc1880196
commit
68c202eb55
@ -672,13 +672,13 @@ opm_add_test(flow_distribute_z
|
||||
$<TARGET_OBJECTS:moduleVersion>
|
||||
)
|
||||
|
||||
opm_add_test(ebos
|
||||
opm_add_test(flowexp_blackoil
|
||||
ONLY_COMPILE
|
||||
ALWAYS_ENABLE
|
||||
DEPENDS opmsimulators
|
||||
LIBRARIES opmsimulators
|
||||
SOURCES
|
||||
flowexperimental/ebos.cpp
|
||||
flowexperimental/flowexp_blackoil.cpp
|
||||
$<TARGET_OBJECTS:moduleVersion>
|
||||
)
|
||||
|
||||
|
@ -72,6 +72,11 @@ struct WellModel<TypeTag, TTag::EbosTypeTag> {
|
||||
using type = BlackoilWellModel<TypeTag>;
|
||||
};
|
||||
|
||||
template<class TypeTag>
|
||||
struct NewtonMethod<TypeTag, TTag::EbosTypeTag> {
|
||||
using type = EclNewtonMethod<TypeTag>;
|
||||
};
|
||||
|
||||
// currently, ebos uses the non-multisegment well model by default to avoid
|
||||
// regressions. the --use-multisegment-well=true|false command line parameter is still
|
||||
// available in ebos, but hidden from view.
|
||||
@ -151,6 +156,11 @@ struct EclNewtonSumTolerance<TypeTag, TTag::EbosTypeTag> {
|
||||
static constexpr type value = 1e-5;
|
||||
};
|
||||
|
||||
template<class TypeTag>
|
||||
struct EclNewtonSumToleranceExponent<TypeTag, TTag::EbosTypeTag> {
|
||||
using type = GetPropType<TypeTag, Scalar>;
|
||||
static constexpr type value = 1./3.;
|
||||
};
|
||||
// make all Newton iterations strict, i.e., the volumetric Newton tolerance must be
|
||||
// always be upheld in the majority of the spatial domain. In this context, "majority"
|
||||
// means 1 - EclNewtonRelaxedVolumeFraction.
|
||||
@ -193,15 +203,17 @@ template <class TypeTag>
|
||||
class EbosProblem : public FlowProblem<TypeTag> //, public FvBaseProblem<TypeTag>
|
||||
{
|
||||
typedef FlowProblem<TypeTag> ParentType;
|
||||
using BaseType = GetPropType<TypeTag, Properties::BaseProblem>;
|
||||
using BaseType = ParentType; // GetPropType<TypeTag, Properties::BaseProblem>;
|
||||
public:
|
||||
void writeOutput(bool verbose = true)
|
||||
{
|
||||
OPM_TIMEBLOCK(problemWriteOutput);
|
||||
// use the generic code to prepare the output fields and to
|
||||
// write the desired VTK files.
|
||||
if (Parameters::get<TypeTag, Properties::EnableWriteAllSolutions>() || this->simulator().episodeWillBeOver()){
|
||||
BaseType::writeOutput(verbose);
|
||||
if (Parameters::get<TypeTag, Properties::EnableWriteAllSolutions>() || this->simulator().episodeWillBeOver()) {
|
||||
// \Note: the SimulatorTimer does not carry any useful information, so PRT file (if it gets output) will contain wrong
|
||||
// timing information.
|
||||
BaseType::writeOutput(SimulatorTimer{}, verbose);
|
||||
}
|
||||
}
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include "config.h"
|
||||
#include <opm/simulators/flow/FlowProblem.hpp>
|
||||
#include "eclnewtonmethod.hh"
|
||||
#include "ebos.hh"
|
||||
#include "flowexp.hpp"
|
||||
#include <opm/simulators/flow/Main.hpp>
|
||||
|
||||
#include <opm/models/blackoil/blackoillocalresidualtpfa.hh>
|
||||
@ -31,18 +31,17 @@
|
||||
// the trick is to be able to recalculate the residual from here.
|
||||
// unsure where the timestepping is done from suggestedtime??
|
||||
// suggestTimeStep is taken from newton solver in problem.limitTimestep
|
||||
namespace Opm{
|
||||
/* namespace Opm{
|
||||
template<typename TypeTag>
|
||||
class OutputAuxModule : public BaseAuxiliaryModule<TypeTag>
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
} */
|
||||
|
||||
|
||||
namespace Opm {
|
||||
namespace Properties {
|
||||
namespace Opm::Properties {
|
||||
namespace TTag {
|
||||
struct EclFlowProblemEbos {
|
||||
using InheritsFrom = std::tuple<EbosTypeTag>;
|
||||
@ -134,7 +133,7 @@ struct Simulator<TypeTag, TTag::EclFlowProblemEbos> { using type = Opm::Simulato
|
||||
// static constexpr bool value = false;
|
||||
// };
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main(int argc, char** argv)
|
Loading…
Reference in New Issue
Block a user