using flowexp as files names

This commit is contained in:
Kai Bao 2024-04-19 10:28:41 +02:00
parent 7cc1880196
commit 68c202eb55
3 changed files with 22 additions and 11 deletions

View File

@ -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>
)

View File

@ -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);
}
}

View File

@ -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)