Commit 2566b8cc authored by Dennis Gläser's avatar Dennis Gläser Committed by Timo Koch
Browse files

[staggered][assembler] add constructor for instationary problems

parent 6f68a7b0
...@@ -61,6 +61,7 @@ class StaggeredFVAssembler: public MultiDomainFVAssembler<StaggeredMultiDomainTr ...@@ -61,6 +61,7 @@ class StaggeredFVAssembler: public MultiDomainFVAssembler<StaggeredMultiDomainTr
diffMethod>; diffMethod>;
using Problem = GetPropType<TypeTag, Properties::Problem>; using Problem = GetPropType<TypeTag, Properties::Problem>;
using SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>;
using TimeLoop = TimeLoopBase<GetPropType<TypeTag, Properties::Scalar>>; using TimeLoop = TimeLoopBase<GetPropType<TypeTag, Properties::Scalar>>;
public: public:
...@@ -82,6 +83,7 @@ public: ...@@ -82,6 +83,7 @@ public:
} }
//! The constructor for instationary problems //! The constructor for instationary problems
[[deprecated("Please use the constructor additionally taking the previous solution. Will be removed after 3.2 release!")]]
StaggeredFVAssembler(std::shared_ptr<const Problem> problem, StaggeredFVAssembler(std::shared_ptr<const Problem> problem,
std::shared_ptr<const FVGridGeometry> fvGridGeometry, std::shared_ptr<const FVGridGeometry> fvGridGeometry,
std::shared_ptr<GridVariables> gridVariables, std::shared_ptr<GridVariables> gridVariables,
...@@ -96,6 +98,23 @@ public: ...@@ -96,6 +98,23 @@ public:
this->couplingManager_->setSubProblems(std::make_tuple(problem, problem)); this->couplingManager_->setSubProblems(std::make_tuple(problem, problem));
} }
//! The constructor for instationary problems
StaggeredFVAssembler(std::shared_ptr<const Problem> problem,
std::shared_ptr<const FVGridGeometry> fvGridGeometry,
std::shared_ptr<GridVariables> gridVariables,
std::shared_ptr<const TimeLoop> timeLoop,
const SolutionVector& prevSol)
: ParentType(std::make_tuple(problem, problem),
std::make_tuple(fvGridGeometry->cellCenterFVGridGeometryPtr(), fvGridGeometry->faceFVGridGeometryPtr()),
std::make_tuple(gridVariables->cellCenterGridVariablesPtr(), gridVariables->faceGridVariablesPtr()),
std::make_shared<CouplingManager>(),
timeLoop,
prevSol)
{
static_assert(isImplicit, "Explicit assembler for stationary problem doesn't make sense!");
this->couplingManager_->setSubProblems(std::make_tuple(problem, problem));
}
auto& gridVariables() auto& gridVariables()
{ return ParentType::gridVariables(Dune::index_constant<0>()); } { return ParentType::gridVariables(Dune::index_constant<0>()); }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment